From dc3f70b397239a9b8e75e0d411286ee9aa64c399 Mon Sep 17 00:00:00 2001 From: Philippe Brochard Date: Tue, 8 Mar 2011 22:17:48 +0100 Subject: [PATCH] src/clfswm-configuration.lisp (save-variables-in-conf-file): Save only variables with a different value than there original value. --- ChangeLog | 6 ++++++ src/clfswm-configuration.lisp | 10 ++++++---- src/clfswm-corner.lisp | 4 ++-- src/config.lisp | 8 +++++--- src/xlib-util.lisp | 18 +++++++++--------- 5 files changed, 28 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index d48f9ec..4ec2f8d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2011-03-08 Philippe Brochard + + * src/clfswm-configuration.lisp (save-variables-in-conf-file): + Save only variables with a different value than there original + value. + 2011-03-07 Philippe Brochard * src/clfswm-info.lisp (show-config-variable): Use the new diff --git a/src/clfswm-configuration.lisp b/src/clfswm-configuration.lisp index 932ae8f..3a78e94 100644 --- a/src/clfswm-configuration.lisp +++ b/src/clfswm-configuration.lisp @@ -98,11 +98,13 @@ (format stream "(in-package :clfswm)~2%") (format stream "(setf~%") (dolist (group all-groups) - (format stream " ;; ~A:~%" group) + (format stream " ;; ~A:~%" (config-group->string group)) (dolist (var all-variables) - (when (string-equal (second var) group) - (format stream " ~A ~A~%" (first var) - (escape-conf-symbol-value (first var))))) + (unless (equal (escape-conf-symbol-value (first var)) + (escape-conf-value (config-default-value (first var)))) + (when (string-equal (second var) group) + (format stream " ~A ~A~%" (first var) + (escape-conf-symbol-value (first var)))))) (format stream "~%")) (format stream ")~%") (format stream ";;; ### End of internal variables definitions ### ;;;~%"))) diff --git a/src/clfswm-corner.lisp b/src/clfswm-corner.lisp index 24b030a..0fd42da 100644 --- a/src/clfswm-corner.lisp +++ b/src/clfswm-corner.lisp @@ -119,9 +119,9 @@ Corner is one of :bottom-right :bottom-left :top-right :top-left" (let (win) - (defun equal-clfswm-terminal-id (window) + (defun equal-clfswm-terminal (window) (when win - (equal (xlib:window-id window) (xlib:window-id win)))) + (xlib:window-equal window win))) (defun close-clfswm-terminal () (when win (xlib:destroy-window win) diff --git a/src/config.lisp b/src/config.lisp index b65b33c..4230562 100644 --- a/src/config.lisp +++ b/src/config.lisp @@ -38,12 +38,14 @@ Example: :mod-2 for num_lock, :lock for Caps_lock...") +(defun-equal-wm-class equal-wm-class-rox-pinboard "ROX-Pinboard") +(defun-equal-wm-class equal-wm-class-xvkbd "xvkbd") ;;; CONFIG - Never managed window list (defconfig *never-managed-window-list* - (list (list (equal-wm-class-fun "ROX-Pinboard") nil) - (list (equal-wm-class-fun "xvkbd") 'raise-window) - (list 'equal-clfswm-terminal-id 'raise-and-focus-window)) + (list (list 'equal-wm-class-rox-pinboard nil) + (list 'equal-wm-class-xvkbd 'raise-window) + (list 'equal-clfswm-terminal 'raise-and-focus-window)) nil "CLFSWM will never manage windows of this type. A list of (list match-function handle-function)") diff --git a/src/xlib-util.lisp b/src/xlib-util.lisp index 6c99e9b..16ce59d 100644 --- a/src/xlib-util.lisp +++ b/src/xlib-util.lisp @@ -812,12 +812,12 @@ Expand in handle-event-fun-main-mode-key-press" return t)) ;;; Windows wm class and name tests -(defun equal-wm-class-fun (class) - (lambda (win) - (when (xlib:window-p win) - (string-equal (xlib:get-wm-class win) class)))) - -(defun equal-wm-name-fun (name) - (lambda (win) - (when (xlib:window-p win) - (string-equal (xlib:wm-name win) name)))) +(defmacro defun-equal-wm-class (symbol class) + `(defun ,symbol (window) + (when (xlib:window-p window) + (string-equal (xlib:get-wm-class window) ,class)))) + +(defmacro defun-equal-wm-name (symbol name) + `(defun ,symbol (window) + (when (xlib:window-p window) + (string-equal (xlib:wm-name window) ,name)))) -- 2.11.4.GIT