From pbrochard at common-lisp.net Thu Mar 3 22:58:59 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Thu, 03 Mar 2011 17:58:59 -0500 Subject: [clfswm-cvs] r417 - in clfswm: . src Message-ID: Author: pbrochard Date: Thu Mar 3 17:58:58 2011 New Revision: 417 Log: src/clfswm-internal.lisp (show-all-children): Rethink of display child order to prevent very annoying flickering. Modified: clfswm/ChangeLog clfswm/src/clfswm-internal.lisp clfswm/src/xlib-util.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Thu Mar 3 17:58:58 2011 @@ -1,3 +1,8 @@ +2011-03-03 Philippe Brochard + + * src/clfswm-internal.lisp (show-all-children): Rethink of display + child order to prevent very annoying flickering. + 2011-02-27 Philippe Brochard * src/clfswm-util.lisp (query-yes-or-no): New function. Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Thu Mar 3 17:58:58 2011 @@ -604,24 +604,36 @@ nil) +(defgeneric set-child-stack-order (window child) + (:documentation "Raise window if child is NIL else put window just below child")) +(defmethod set-child-stack-order (window (child xlib:window)) + (lower-window window child)) -(defgeneric show-child (child parent raise-p)) +(defmethod set-child-stack-order (window (child frame)) + (lower-window window (frame-window child))) -(defmethod show-child ((frame frame) parent raise-p) +(defmethod set-child-stack-order (window child) + (declare (ignore child)) + (raise-window window)) + + + +(defgeneric show-child (child parent previous)) + +(defmethod show-child ((frame frame) parent previous) (declare (ignore parent)) (with-slots (window show-window-p) frame (if show-window-p (when (or *show-root-frame-p* (not (child-equal-p frame *current-root*))) (map-window window) - (when raise-p - (raise-window window)) + (set-child-stack-order window previous) (display-frame-info frame)) (hide-window window)))) -(defun hide-unmanager-window-p (parent) +(defun hide-unmanaged-window-p (parent) (let ((action (frame-data-slot parent :unmanaged-window-action))) (case action (:hide t) @@ -629,14 +641,13 @@ (t *hide-unmanaged-window*)))) -(defmethod show-child ((window xlib:window) parent raise-p) +(defmethod show-child ((window xlib:window) parent previous) (if (or (managed-window-p window parent) - (not (hide-unmanager-window-p parent)) + (not (hide-unmanaged-window-p parent)) (child-equal-p parent *current-child*)) (progn (map-window window) - (when raise-p - (raise-window window))) + (set-child-stack-order window previous)) (hide-window window))) (defmethod show-child (child parent raise-p) @@ -718,32 +729,11 @@ - -(defun raise-p-list (children) - (let ((acc nil)) - (labels ((rec (list) - (when list - (multiple-value-bind (xo1 yo1 xo2 yo2) - (child-coordinates (first list)) - (push (dolist (c (rest list) t) - (multiple-value-bind (x1 y1 x2 y2) - (child-coordinates c) - (when (and (<= x1 xo1) - (>= x2 xo2) - (<= y1 yo1) - (>= y2 yo2)) - (return nil)))) - acc)) - (rec (rest list))))) - (rec children) - (nreverse acc)))) - - - (defun show-all-children (&optional (display-child *current-child*)) "Show all children from *current-root*. Start the effective display only for display-child and its children" - (let ((geometry-change nil)) + (let ((geometry-change nil) + (previous nil)) (labels ((rec-geom (root parent selected-p selected-parent-p) (when (adapt-child-to-parent root parent) (setf geometry-change t)) @@ -754,21 +744,18 @@ (let ((selected-child (frame-selected-child root))) (dolist (child (reverse (frame-child root))) (rec-geom child root (child-equal-p child selected-child) (and selected-p selected-parent-p)))))) - (rec (root parent raise-p) - (show-child root parent raise-p) - (when (frame-p root) - (let ((reversed-children (reverse (frame-child root)))) - (loop for child in reversed-children - for c-raise-p in (raise-p-list reversed-children) - do (rec child root (and c-raise-p - (or (null parent) raise-p)))))))) + (rec (child parent n) + (when (frame-p child) + (dolist (sub-child (frame-child child)) + (rec sub-child child (1+ n)))) + (show-child child parent previous) + (setf previous child))) (rec-geom *current-root* nil t t) - (rec display-child nil nil) + (rec display-child nil 0) (set-focus-to-current-child) geometry-change))) - (defun hide-all-children (root) "Hide all root children" (when (frame-p root) Modified: clfswm/src/xlib-util.lisp ============================================================================== --- clfswm/src/xlib-util.lisp (original) +++ clfswm/src/xlib-util.lisp Thu Mar 3 17:58:58 2011 @@ -413,6 +413,14 @@ (xlib:set-input-focus *display* *no-focus-window* :pointer-root)) +(defun lower-window (window sibling) + "Map the window if needed and bring it just above sibling. Does not affect focus." + (when (xlib:window-p window) + (when (window-hidden-p window) + (unhide-window window)) + (setf (xlib:window-priority window sibling) :below))) + + (let ((cursor-font nil) From pbrochard at common-lisp.net Fri Mar 4 21:18:47 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Fri, 04 Mar 2011 16:18:47 -0500 Subject: [clfswm-cvs] r418 - in clfswm: . src Message-ID: Author: pbrochard Date: Fri Mar 4 16:18:47 2011 New Revision: 418 Log: src/clfswm-internal.lisp (show-all-children): Perform only one recusion on the clfswm tree: calculate geometry and place child in one pass. Modified: clfswm/ChangeLog clfswm/src/clfswm-circulate-mode.lisp clfswm/src/clfswm-corner.lisp clfswm/src/clfswm-expose-mode.lisp clfswm/src/clfswm-internal.lisp clfswm/src/clfswm-layout.lisp clfswm/src/clfswm-nw-hooks.lisp clfswm/src/clfswm-util.lisp clfswm/src/clfswm.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Fri Mar 4 16:18:47 2011 @@ -1,3 +1,9 @@ +2011-03-04 Philippe Brochard + + * src/clfswm-internal.lisp (show-all-children): Perform only one + recusion on the clfswm tree: calculate geometry and place child in + one pass. + 2011-03-03 Philippe Brochard * src/clfswm-internal.lisp (show-all-children): Rethink of display Modified: clfswm/src/clfswm-circulate-mode.lisp ============================================================================== --- clfswm/src/clfswm-circulate-mode.lisp (original) +++ clfswm/src/clfswm-circulate-mode.lisp Fri Mar 4 16:18:47 2011 @@ -98,9 +98,7 @@ *current-child* (frame-selected-child *circulate-parent*)))) (when frame-is-root? (setf *current-root* *current-child*)))) - (show-all-children (if frame-is-root? - *current-child* - (find-parent-frame *current-child*))) + (show-all-children) (draw-circulate-mode-window))) (defun reorder-subchild (direction) @@ -112,7 +110,7 @@ (with-slots (child) selected-child (let ((elem (first (last child)))) (setf child (cons elem (child-remove elem child))) - (show-all-children selected-child) + (show-all-children) (draw-circulate-mode-window))))))) Modified: clfswm/src/clfswm-corner.lisp ============================================================================== --- clfswm/src/clfswm-corner.lisp (original) +++ clfswm/src/clfswm-corner.lisp Fri Mar 4 16:18:47 2011 @@ -98,7 +98,7 @@ (focus-window win)) (raise-window win)) (t (hide-window win) - (show-all-children nil))) + (show-all-children))) win) Modified: clfswm/src/clfswm-expose-mode.lisp ============================================================================== --- clfswm/src/clfswm-expose-mode.lisp (original) +++ clfswm/src/clfswm-expose-mode.lisp Fri Mar 4 16:18:47 2011 @@ -156,7 +156,7 @@ (with-all-frames (first-restore-frame frame) (setf (frame-data-slot frame :old-layout) (frame-layout frame) (frame-layout frame) #'tile-space-layout)) - (show-all-children *current-root*) + (show-all-children) (expose-mode-display-accel-windows) (let ((grab-keyboard-p (xgrab-keyboard-p)) (grab-pointer-p (xgrab-pointer-p))) @@ -185,7 +185,7 @@ (with-all-frames (first-restore-frame frame) (setf (frame-layout frame) (frame-data-slot frame :old-layout) (frame-data-slot frame :old-layout) nil)) - (show-all-children *current-root*) + (show-all-children) (banish-pointer) (unless grab-keyboard-p (xungrab-keyboard) @@ -227,6 +227,6 @@ (unless (child-equal-p *current-child* orig-root) (hide-all *current-root*) (setf *current-root* orig-root)) - (show-all-children *current-root*)))) + (show-all-children)))) Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Fri Mar 4 16:18:47 2011 @@ -615,7 +615,8 @@ (defmethod set-child-stack-order (window child) (declare (ignore child)) - (raise-window window)) + (raise-window window) + (xlib:display-finish-output *display*)) @@ -729,33 +730,31 @@ -(defun show-all-children (&optional (display-child *current-child*)) - "Show all children from *current-root*. Start the effective display -only for display-child and its children" +(defun show-all-children () + "Show all children from *current-root*." (let ((geometry-change nil) (previous nil)) - (labels ((rec-geom (root parent selected-p selected-parent-p) - (when (adapt-child-to-parent root parent) + (labels ((rec (child parent selected-p selected-parent-p) + (when (adapt-child-to-parent child parent) (setf geometry-change t)) - (select-child root (cond ((child-equal-p root *current-child*) t) - ((and selected-p selected-parent-p) :maybe) - (t nil))) - (when (frame-p root) - (let ((selected-child (frame-selected-child root))) - (dolist (child (reverse (frame-child root))) - (rec-geom child root (child-equal-p child selected-child) (and selected-p selected-parent-p)))))) - (rec (child parent n) + (select-child child (cond ((child-equal-p child *current-child*) t) + ((and selected-p selected-parent-p) :maybe) + (t nil))) (when (frame-p child) - (dolist (sub-child (frame-child child)) - (rec sub-child child (1+ n)))) + (let ((selected-child (frame-selected-child child))) + (dolist (sub-child (frame-child child)) + (rec sub-child child (child-equal-p sub-child selected-child) (and selected-p selected-parent-p))))) (show-child child parent previous) (setf previous child))) - (rec-geom *current-root* nil t t) - (rec display-child nil 0) + (rec *current-root* nil t t) (set-focus-to-current-child) geometry-change))) + + + + (defun hide-all-children (root) "Hide all root children" (when (frame-p root) @@ -850,7 +849,7 @@ "Enter in the selected frame - ie make it the root frame" (hide-all *current-root*) (setf *current-root* *current-child*) - (show-all-children *current-root*)) + (show-all-children)) (defun leave-frame () "Leave the selected frame - ie make its parent the root frame" @@ -858,7 +857,7 @@ (awhen (find-parent-frame *current-root*) (when (frame-p it) (setf *current-root* it))) - (show-all-children *current-root*)) + (show-all-children)) ;;; Other actions (select-next-child, select-next-brother...) are in @@ -914,7 +913,7 @@ (hide-all *current-root*) (setf *current-root* *root-frame*) (unless show-later - (show-all-children *current-root*))) + (show-all-children))) (defun switch-and-select-root-frame (&key (show-later nil)) "Switch and select the root frame" @@ -922,14 +921,14 @@ (setf *current-root* *root-frame*) (setf *current-child* *current-root*) (unless show-later - (show-all-children *current-root*))) + (show-all-children))) (defun toggle-show-root-frame () "Show/Hide the root frame" (hide-all *current-root*) (setf *show-root-frame-p* (not *show-root-frame-p*)) - (show-all-children *current-root*)) + (show-all-children)) (defun remove-child-in-frame (child frame) Modified: clfswm/src/clfswm-layout.lisp ============================================================================== --- clfswm/src/clfswm-layout.lisp (original) +++ clfswm/src/clfswm-layout.lisp Fri Mar 4 16:18:47 2011 @@ -56,7 +56,7 @@ (defun set-layout-once (layout-name) (set-layout-dont-leave layout-name) - (show-all-children *current-root*) + (show-all-children) (fixe-real-size-current-child) (set-layout-dont-leave #'no-layout)) Modified: clfswm/src/clfswm-nw-hooks.lisp ============================================================================== --- clfswm/src/clfswm-nw-hooks.lisp (original) +++ clfswm/src/clfswm-nw-hooks.lisp Fri Mar 4 16:18:47 2011 @@ -164,7 +164,7 @@ (set-layout-once #'tile-space-layout) (setf *current-child* new-frame) (default-window-placement new-frame window) - (show-all-children *current-root*) + (show-all-children) t))) @@ -207,7 +207,7 @@ (setf *current-child* frame) (focus-all-children window frame) (default-window-placement frame window) - (show-all-children *current-root*) + (show-all-children) t)) ;;; Open a new window in a named frame @@ -254,7 +254,7 @@ (setf *current-child* frame) (focus-all-children window frame) (default-window-placement frame window) - (show-all-children *current-root*)) + (show-all-children)) (throw 'nw-hook-loop t))) nil) Modified: clfswm/src/clfswm-util.lisp ============================================================================== --- clfswm/src/clfswm-util.lisp (original) +++ clfswm/src/clfswm-util.lisp Fri Mar 4 16:18:47 2011 @@ -273,7 +273,7 @@ (setf (frame-data-slot *current-child* :unmaximized-coords) (list x y w h) x 0 y 0 w 1 h 1)))) - (show-all-children (find-parent-frame *current-child*)) + (show-all-children) (leave-second-mode))) @@ -405,7 +405,7 @@ (focus-all-children frame (or (find-parent-frame frame *current-root*) (find-parent-frame frame) *root-frame*)) - (show-all-children *current-root*))) + (show-all-children))) (defun focus-frame-by-name () @@ -423,7 +423,7 @@ (defun open-frame-by (frame) (when (frame-p frame) (push (create-frame :name (query-string "Frame name")) (frame-child frame)) - (show-all-children *current-root*))) + (show-all-children))) @@ -447,7 +447,7 @@ (when (child-equal-p frame *current-child*) (setf *current-child* *current-root*)) (remove-child-in-frame frame (find-parent-frame frame))) - (show-all-children *current-root*)) + (show-all-children)) (defun delete-frame-by-name () @@ -468,7 +468,7 @@ (remove-child-in-frame child (find-parent-frame child)) (pushnew child (frame-child frame-dest)) (focus-all-children child frame-dest) - (show-all-children *current-root*))) + (show-all-children))) (defun move-current-child-by-name () "Move current child in a named frame" @@ -491,7 +491,7 @@ (hide-all *current-root*) (pushnew child (frame-child frame-dest)) (focus-all-children child frame-dest) - (show-all-children *current-root*))) + (show-all-children))) (defun copy-current-child-by-name () "Copy current child in a named frame" @@ -544,7 +544,7 @@ (move-window window orig-x orig-y #'display-frame-info (list frame)) (setf (frame-x frame) (x-px->fl (xlib:drawable-x window) parent) (frame-y frame) (y-px->fl (xlib:drawable-y window) parent))) - (show-all-children frame))) + (show-all-children))) (defun resize-frame (frame parent orig-x orig-y) @@ -554,7 +554,7 @@ (resize-window window orig-x orig-y #'display-frame-info (list frame)) (setf (frame-w frame) (w-px->fl (xlib:drawable-width window) parent) (frame-h frame) (h-px->fl (xlib:drawable-height window) parent))) - (show-all-children frame))) + (show-all-children))) @@ -582,13 +582,15 @@ (unless (equal (type-of child) 'frame) (setf child (find-frame-window child *current-root*))) (setf parent (find-parent-frame child))))) + (when (and child parent + (focus-all-children child parent + (not (and (child-equal-p *current-child* *current-root*) + (xlib:window-p *current-root*))))) + (when (show-all-children) + (setf to-replay nil))) (when (equal (type-of child) 'frame) (funcall mouse-fn child parent root-x root-y)) - (when (and child parent (focus-all-children child parent - (not (and (child-equal-p *current-child* *current-root*) - (xlib:window-p *current-root*))))) - (when (show-all-children *current-root*) - (setf to-replay nil)))) + (show-all-children)) (if to-replay (replay-button-event) (stop-button-event))))) @@ -630,6 +632,8 @@ (place-frame child parent root-x root-y 10 10) (map-window (frame-window child)) (pushnew child (frame-child *current-root*))) + (focus-all-children child parent window-parent) + (show-all-children) (typecase child (xlib:window (if (managed-window-p child parent) @@ -638,8 +642,7 @@ ((eql mouse-fn #'resize-frame) #'resize-window)) child root-x root-y))) (frame (funcall mouse-fn child parent root-x root-y))) - (focus-all-children child parent window-parent) - (show-all-children *current-root*))) + (show-all-children))) (move/resize-never-managed (child raise-fun) (funcall raise-fun child) (funcall (cond ((eql mouse-fn #'move-frame) #'move-window) @@ -734,7 +737,7 @@ (setf *current-root* jump-child *current-child* *current-root*) (focus-all-children *current-child* *current-child*) - (show-all-children *current-root*)))) + (show-all-children)))) (defun bind-or-jump (n) "Bind or jump to a slot (a frame or a window)" @@ -1026,7 +1029,7 @@ (setf dest (find-parent-frame dest))) (unless (child-equal-p child dest) (move-child-to child dest) - (show-all-children *current-root*)))))) + (show-all-children)))))) (stop-button-event)) @@ -1037,7 +1040,7 @@ "Hide/show the frame window" (when (frame-p frame) (setf (frame-show-window-p *current-child*) value) - (show-all-children *current-root*)) + (show-all-children)) (leave-second-mode)) @@ -1135,7 +1138,7 @@ (setf *current-root* last-child *current-child* *current-root*) (focus-all-children *current-child* *current-child*) - (show-all-children *current-root*)) + (show-all-children)) (setf last-child current-child)))) @@ -1565,7 +1568,7 @@ (when maximized (setf *current-root* parent)) (focus-all-children window parent) - (show-all-children *current-root*)) + (show-all-children)) (funcall run-fn)))) Modified: clfswm/src/clfswm.lisp ============================================================================== --- clfswm/src/clfswm.lisp (original) +++ clfswm/src/clfswm.lisp Fri Mar 4 16:18:47 2011 @@ -209,7 +209,7 @@ *current-child* *current-root*) (call-hook *init-hook*) (process-existing-windows *screen*) - (show-all-children *current-root*) + (show-all-children) (grab-main-keys) (xlib:display-finish-output *display*)) From pbrochard at common-lisp.net Sat Mar 5 10:40:22 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 05 Mar 2011 05:40:22 -0500 Subject: [clfswm-cvs] r419 - clfswm Message-ID: Author: pbrochard Date: Sat Mar 5 05:40:22 2011 New Revision: 419 Log: TODO update Modified: clfswm/TODO Modified: clfswm/TODO ============================================================================== --- clfswm/TODO (original) +++ clfswm/TODO Sat Mar 5 05:40:22 2011 @@ -13,7 +13,20 @@ - Make frame/window border size variable. -- Switch to a reparenting window manager to prevent remaining flickering. +- Make a green border for the window to move and remove the + focus-all-children/show-all-children. + +- In show-all-children: add the ability to display all child from + *root-frame* and hide all those who are not in *current-root*. + -> remove hide-all-children when needed. + +- in show-all-children: simplify the selected -> remove the parent one. + +- estimate the time to raise/lower a child in show-all-children and + see if there is a need for a rectangular optimization + +- Change the config system with a more lispy one and a less string + base one: (defconfig name group doc) MAYBE From pbrochard at common-lisp.net Sat Mar 5 23:38:07 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 05 Mar 2011 18:38:07 -0500 Subject: [clfswm-cvs] r420 - in clfswm: . src Message-ID: Author: pbrochard Date: Sat Mar 5 18:38:07 2011 New Revision: 420 Log: src/xlib-util.lisp (move-window,resize-window): Add a *color-move-window* border when moving or resizing a window. Modified: clfswm/ChangeLog clfswm/TODO clfswm/src/clfswm-util.lisp clfswm/src/package.lisp clfswm/src/xlib-util.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Sat Mar 5 18:38:07 2011 @@ -1,3 +1,8 @@ +2011-03-06 Philippe Brochard + + * src/xlib-util.lisp (move-window,resize-window): Add a + *color-move-window* border when moving or resizing a window. + 2011-03-04 Philippe Brochard * src/clfswm-internal.lisp (show-all-children): Perform only one Modified: clfswm/TODO ============================================================================== --- clfswm/TODO (original) +++ clfswm/TODO Sat Mar 5 18:38:07 2011 @@ -13,20 +13,17 @@ - Make frame/window border size variable. -- Make a green border for the window to move and remove the - focus-all-children/show-all-children. - - In show-all-children: add the ability to display all child from *root-frame* and hide all those who are not in *current-root*. -> remove hide-all-children when needed. -- in show-all-children: simplify the selected -> remove the parent one. +- in show-all-children: simplify the selected method -> remove the parent one. -- estimate the time to raise/lower a child in show-all-children and +- Estimate the time to raise/lower a child in show-all-children and see if there is a need for a rectangular optimization - Change the config system with a more lispy one and a less string - base one: (defconfig name group doc) + base one: (defconfig name value group doc) MAYBE Modified: clfswm/src/clfswm-util.lisp ============================================================================== --- clfswm/src/clfswm-util.lisp (original) +++ clfswm/src/clfswm-util.lisp Sat Mar 5 18:38:07 2011 @@ -582,15 +582,14 @@ (unless (equal (type-of child) 'frame) (setf child (find-frame-window child *current-root*))) (setf parent (find-parent-frame child))))) + (when (equal (type-of child) 'frame) + (funcall mouse-fn child parent root-x root-y)) (when (and child parent (focus-all-children child parent (not (and (child-equal-p *current-child* *current-root*) (xlib:window-p *current-root*))))) (when (show-all-children) - (setf to-replay nil))) - (when (equal (type-of child) 'frame) - (funcall mouse-fn child parent root-x root-y)) - (show-all-children)) + (setf to-replay nil)))) (if to-replay (replay-button-event) (stop-button-event))))) Modified: clfswm/src/package.lisp ============================================================================== --- clfswm/src/package.lisp (original) +++ clfswm/src/package.lisp Sat Mar 5 18:38:07 2011 @@ -71,6 +71,8 @@ (defparameter *default-font-string* "fixed" "Config(): The default font used in clfswm") +(defparameter *color-move-window* "Green" + "Config(Main mode group): Color when moving or resizing a windows") (defparameter *child-selection* nil) Modified: clfswm/src/xlib-util.lisp ============================================================================== --- clfswm/src/xlib-util.lisp (original) +++ clfswm/src/xlib-util.lisp Sat Mar 5 18:38:07 2011 @@ -538,7 +538,8 @@ add-fn additional-fn add-arg additional-arg dx (- (xlib:drawable-x window) orig-x) - dy (- (xlib:drawable-y window) orig-y)) + dy (- (xlib:drawable-y window) orig-y) + (xlib:window-border window) (get-color *color-move-window*)) (raise-window window) (let ((pointer-grabbed-p (xgrab-pointer-p))) (unless pointer-grabbed-p @@ -579,7 +580,8 @@ min-width (or (and hints (xlib:wm-size-hints-min-width hints)) 0) min-height (or (and hints (xlib:wm-size-hints-min-height hints)) 0) max-width (or (and hints (xlib:wm-size-hints-max-width hints)) most-positive-fixnum) - max-height (or (and hints (xlib:wm-size-hints-max-height hints)) most-positive-fixnum)) + max-height (or (and hints (xlib:wm-size-hints-max-height hints)) most-positive-fixnum) + (xlib:window-border window) (get-color *color-move-window*)) (raise-window window) (unless pointer-grabbed-p (xgrab-pointer *root* nil nil)) From pbrochard at common-lisp.net Sun Mar 6 00:09:16 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 05 Mar 2011 19:09:16 -0500 Subject: [clfswm-cvs] r421 - in clfswm: . src Message-ID: Author: pbrochard Date: Sat Mar 5 19:09:16 2011 New Revision: 421 Log: src/clfswm-internal.lisp (show-all-children): Simplify the selection method. Modified: clfswm/ChangeLog clfswm/TODO clfswm/src/clfswm-internal.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Sat Mar 5 19:09:16 2011 @@ -1,5 +1,8 @@ 2011-03-06 Philippe Brochard + * src/clfswm-internal.lisp (show-all-children): Simplify the + selection method. + * src/xlib-util.lisp (move-window,resize-window): Add a *color-move-window* border when moving or resizing a window. Modified: clfswm/TODO ============================================================================== --- clfswm/TODO (original) +++ clfswm/TODO Sat Mar 5 19:09:16 2011 @@ -17,8 +17,6 @@ *root-frame* and hide all those who are not in *current-root*. -> remove hide-all-children when needed. -- in show-all-children: simplify the selected method -> remove the parent one. - - Estimate the time to raise/lower a child in show-all-children and see if there is a need for a rectangular optimization Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Sat Mar 5 19:09:16 2011 @@ -734,19 +734,19 @@ "Show all children from *current-root*." (let ((geometry-change nil) (previous nil)) - (labels ((rec (child parent selected-p selected-parent-p) + (labels ((rec (child parent selected-p) (when (adapt-child-to-parent child parent) (setf geometry-change t)) (select-child child (cond ((child-equal-p child *current-child*) t) - ((and selected-p selected-parent-p) :maybe) + (selected-p :maybe) (t nil))) (when (frame-p child) (let ((selected-child (frame-selected-child child))) (dolist (sub-child (frame-child child)) - (rec sub-child child (child-equal-p sub-child selected-child) (and selected-p selected-parent-p))))) + (rec sub-child child (and selected-p (child-equal-p sub-child selected-child)))))) (show-child child parent previous) (setf previous child))) - (rec *current-root* nil t t) + (rec *current-root* nil t) (set-focus-to-current-child) geometry-change))) From pbrochard at common-lisp.net Sun Mar 6 20:18:10 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 06 Mar 2011 15:18:10 -0500 Subject: [clfswm-cvs] r422 - in clfswm: . src Message-ID: Author: pbrochard Date: Sun Mar 6 15:18:10 2011 New Revision: 422 Log: (show-all-children): add the ability to display all child from *root-frame* and hide all those who are not in *current-root*. -> remove hide-all-children when needed. Modified: clfswm/ChangeLog clfswm/src/clfswm-circulate-mode.lisp clfswm/src/clfswm-expose-mode.lisp clfswm/src/clfswm-internal.lisp clfswm/src/package.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Sun Mar 6 15:18:10 2011 @@ -2,6 +2,11 @@ * src/clfswm-internal.lisp (show-all-children): Simplify the selection method. + (show-child): Display an unmanaged window whe it's the current + child. + (show-all-children): add the ability to display all child from + *root-frame* and hide all those who are not in *current-root*. + -> remove hide-all-children when needed. * src/xlib-util.lisp (move-window,resize-window): Add a *color-move-window* border when moving or resizing a window. Modified: clfswm/src/clfswm-circulate-mode.lisp ============================================================================== --- clfswm/src/clfswm-circulate-mode.lisp (original) +++ clfswm/src/clfswm-circulate-mode.lisp Sun Mar 6 15:18:10 2011 @@ -85,9 +85,7 @@ (no-focus) (let ((frame-is-root? (and (child-equal-p *current-root* *current-child*) (not (child-equal-p *current-root* *root-frame*))))) - (if frame-is-root? - (hide-all *current-root*) - (select-current-frame nil)) + (select-current-frame nil) (unless (and *circulate-orig* *circulate-parent*) (reset-circulate-brother)) (let ((len (length *circulate-orig*))) @@ -98,7 +96,7 @@ *current-child* (frame-selected-child *circulate-parent*)))) (when frame-is-root? (setf *current-root* *current-child*)))) - (show-all-children) + (show-all-children t) (draw-circulate-mode-window))) (defun reorder-subchild (direction) Modified: clfswm/src/clfswm-expose-mode.lisp ============================================================================== --- clfswm/src/clfswm-expose-mode.lisp (original) +++ clfswm/src/clfswm-expose-mode.lisp Sun Mar 6 15:18:10 2011 @@ -167,7 +167,6 @@ (if (generic-mode 'expose-mode 'exit-expose-loop :original-mode '(main-mode)) (multiple-value-bind (x y) (xlib:query-pointer *root*) - (dbg *expose-selected-child* (child-fullname *expose-selected-child*)) (let* ((child (or *expose-selected-child* (find-child-under-mouse x y))) (parent (find-parent-frame child *root-frame*))) (when (and child parent) Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Sun Mar 6 15:18:10 2011 @@ -644,6 +644,7 @@ (defmethod show-child ((window xlib:window) parent previous) (if (or (managed-window-p window parent) + (child-equal-p window *current-child*) (not (hide-unmanaged-window-p parent)) (child-equal-p parent *current-child*)) (progn @@ -730,23 +731,31 @@ -(defun show-all-children () - "Show all children from *current-root*." +(defun show-all-children (&optional (from-root-from nil)) + "Show all children from *current-root*. When from-root-from is true +Display all children from root frame and hide those not in *current-root*" (let ((geometry-change nil) (previous nil)) - (labels ((rec (child parent selected-p) - (when (adapt-child-to-parent child parent) - (setf geometry-change t)) - (select-child child (cond ((child-equal-p child *current-child*) t) - (selected-p :maybe) - (t nil))) - (when (frame-p child) - (let ((selected-child (frame-selected-child child))) - (dolist (sub-child (frame-child child)) - (rec sub-child child (and selected-p (child-equal-p sub-child selected-child)))))) - (show-child child parent previous) - (setf previous child))) - (rec *current-root* nil t) + (labels ((rec (child parent selected-p in-current-root) + (let ((child-current-root-p (child-equal-p child *current-root*))) + (when (or in-current-root child-current-root-p) + (when (adapt-child-to-parent child (if child-current-root-p nil parent)) + (setf geometry-change t)) + (select-child child (cond ((child-equal-p child *current-child*) t) + (selected-p :maybe) + (t nil)))) + (when (frame-p child) + (let ((selected-child (frame-selected-child child))) + (dolist (sub-child (frame-child child)) + (rec sub-child child + (and selected-p (child-equal-p sub-child selected-child)) + (or in-current-root child-current-root-p))))) + (if (or in-current-root child-current-root-p) + (show-child child parent previous) + (hide-child child)) + (setf previous child)))) + (rec (if from-root-from *root-frame* *current-root*) + nil t (child-equal-p *current-root* *root-frame*)) (set-focus-to-current-child) geometry-change))) @@ -926,7 +935,6 @@ (defun toggle-show-root-frame () "Show/Hide the root frame" - (hide-all *current-root*) (setf *show-root-frame-p* (not *show-root-frame-p*)) (show-all-children)) Modified: clfswm/src/package.lisp ============================================================================== --- clfswm/src/package.lisp (original) +++ clfswm/src/package.lisp Sun Mar 6 15:18:10 2011 @@ -71,7 +71,7 @@ (defparameter *default-font-string* "fixed" "Config(): The default font used in clfswm") -(defparameter *color-move-window* "Green" +(defparameter *color-move-window* "DeepPink" "Config(Main mode group): Color when moving or resizing a windows") (defparameter *child-selection* nil) From pbrochard at common-lisp.net Mon Mar 7 22:23:54 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Mon, 07 Mar 2011 17:23:54 -0500 Subject: [clfswm-cvs] r423 - in clfswm: . contrib src Message-ID: Author: pbrochard Date: Mon Mar 7 17:23:53 2011 New Revision: 423 Log: src/clfswm-configuration.lisp (create-configuration-menu): Change the config system with a more lispy one and a less string based one: (defconfig name value group doc). Modified: clfswm/ChangeLog clfswm/TODO clfswm/contrib/volume-mode.lisp clfswm/src/clfswm-configuration.lisp clfswm/src/clfswm-internal.lisp clfswm/src/clfswm-util.lisp clfswm/src/clfswm.lisp clfswm/src/config.lisp clfswm/src/package.lisp clfswm/src/tools.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Mon Mar 7 17:23:53 2011 @@ -1,3 +1,10 @@ +2011-03-07 Philippe Brochard + + * src/clfswm-configuration.lisp (create-configuration-menu): + Change the config system with a more lispy one and a less string + based one: (defconfig name value group doc). + + 2011-03-06 Philippe Brochard * src/clfswm-internal.lisp (show-all-children): Simplify the Modified: clfswm/TODO ============================================================================== --- clfswm/TODO (original) +++ clfswm/TODO Mon Mar 7 17:23:53 2011 @@ -13,15 +13,10 @@ - Make frame/window border size variable. -- In show-all-children: add the ability to display all child from - *root-frame* and hide all those who are not in *current-root*. - -> remove hide-all-children when needed. - - Estimate the time to raise/lower a child in show-all-children and - see if there is a need for a rectangular optimization - -- Change the config system with a more lispy one and a less string - base one: (defconfig name value group doc) + see if there is a need for a rectangular optimization: + Result: map-window: 1.2E-5 sec. change stack order: 3.14E-4 sec. + => It maybe useful to optimize this part. MAYBE Modified: clfswm/contrib/volume-mode.lisp ============================================================================== --- clfswm/contrib/volume-mode.lisp (original) +++ clfswm/contrib/volume-mode.lisp Mon Mar 7 17:23:53 2011 @@ -63,8 +63,8 @@ (format t "Loading Volume mode code... ") (defparameter *volume-keys* nil) -(defparameter *volume-mode-placement* 'bottom-middle-placement - "Config(Placement group): Volume mode window placement") +(defconfig *volume-mode-placement* 'bottom-middle-placement + 'Placement "Volume mode window placement") (defvar *volume-window* nil) @@ -84,22 +84,22 @@ ;;; CONFIG - Volume mode -(defparameter *volume-font-string* *default-font-string* - "Config(Volume mode group): Volume string window font string") -(defparameter *volume-background* "black" - "Config(Volume mode group): Volume string window background color") -(defparameter *volume-foreground* "green" - "Config(Volume mode group): Volume string window foreground color") -(defparameter *volume-border* "red" - "Config(Volume mode group): Volume string window border color") -(defparameter *volume-width* 400 - "Config(Volume mode group): Volume mode window width") -(defparameter *volume-height* 15 - "Config(Volume mode group): Volume mode window height") -(defparameter *volume-text-limit* 30 - "Config(Volume mode group): Maximum text limit in the volume window") -(defparameter *volume-external-mixer-cmd* "/usr/bin/gnome-alsamixer" - "Config(Volume mode group): Command to start an external mixer program") +(defconfig *volume-font-string* *default-font-string* + 'Volume-mode "Volume string window font string") +(defconfig *volume-background* "black" + 'Volume-mode "Volume string window background color") +(defconfig *volume-foreground* "green" + 'Volume-mode "Volume string window foreground color") +(defconfig *volume-border* "red" + 'Volume-mode "Volume string window border color") +(defconfig *volume-width* 400 + 'Volume-mode "Volume mode window width") +(defconfig *volume-height* 15 + 'Volume-mode "Volume mode window height") +(defconfig *volume-text-limit* 30 + 'Volume-mode "Maximum text limit in the volume window") +(defconfig *volume-external-mixer-cmd* "/usr/bin/gnome-alsamixer" + 'Volume-mode "Command to start an external mixer program") (define-init-hash-table-key *volume-keys* "Volume mode keys") (define-define-key "volume" *volume-keys*) Modified: clfswm/src/clfswm-configuration.lisp ============================================================================== --- clfswm/src/clfswm-configuration.lisp (original) +++ clfswm/src/clfswm-configuration.lisp Mon Mar 7 17:23:53 2011 @@ -26,48 +26,46 @@ (in-package :clfswm) - (defun find-configuration-variables () (let ((all-groups nil) (all-variables nil)) - (with-all-internal-symbols (symbol :clfswm) - (when (is-config-p symbol) - (pushnew (config-group symbol) all-groups :test #'string-equal) - (push (list symbol (config-group symbol)) all-variables))) + (maphash (lambda (key val) + (pushnew (configvar-group val) all-groups :test #'string-equal) + (push (list key (configvar-group val)) all-variables)) + *config-var-table*) (values all-groups all-variables))) +(defun find-symbol-function (function) + (with-all-internal-symbols (symbol :clfswm) + (when (and (fboundp symbol) (equal (symbol-function symbol) function)) + (return-from find-symbol-function symbol)))) + (defun escape-conf-value (value) - (let ((value (symbol-value value))) - (cond ((or (equal value t) (equal value nil)) - (format nil "~S" value)) - ((consp value) - (format nil "(quote ~S)" value)) - ((symbolp value) - (format nil "'~S" value)) - ((functionp value) - (format nil "'~S" (find-symbol-function value))) - ((xlib:color-p value) - (format nil "(->color #x~X)" (color->rgb value))) - (t (format nil "~S" value))))) - -(defun remove-config-group (documentation) - (let ((pos (position #\: documentation))) - (if pos - (string-trim " " (subseq documentation (1+ pos))) - documentation))) + (cond ((or (equal value t) (equal value nil)) + (format nil "~S" value)) + ((consp value) + (format nil "(quote ~S)" value)) + ((symbolp value) + (format nil "'~S" value)) + ((functionp value) + (format nil "'~S" (find-symbol-function value))) + ((xlib:color-p value) + (format nil "(->color #x~X)" (color->rgb value))) + (t (format nil "~S" value)))) + +(defun escape-conf-symbol-value (symbol) + (let ((value (symbol-value symbol))) + (escape-conf-value value))) (defun get-config-value (value) (ignore-errors (eval (read-from-string value)))) +(defun reset-config-to-default-value (symbol) + (setf (symbol-value symbol) (config-default-value symbol))) -;;; Configuration variables save - -(defun find-symbol-function (function) - (with-all-internal-symbols (symbol :clfswm) - (when (and (fboundp symbol) (equal (symbol-function symbol) function)) - (return-from find-symbol-function symbol)))) +;;; Save configuration variables part (defun temp-conf-file-name () (let ((name (conf-file-name))) (make-pathname :directory (pathname-directory name) @@ -104,7 +102,7 @@ (dolist (var all-variables) (when (string-equal (second var) group) (format stream " ~A ~A~%" (first var) - (escape-conf-value (first var))))) + (escape-conf-symbol-value (first var))))) (format stream "~%")) (format stream ")~%") (format stream ";;; ### End of internal variables definitions ### ;;;~%"))) @@ -129,26 +127,29 @@ ;;; Configuration menu definition (defun group->menu (group) - (intern (string-upcase - (format nil "conf-~A" (substitute #\- #\Space group))) - :clfswm)) + (intern (string-upcase (format nil "conf-~A" group)) :clfswm)) + +(defun group-name (group) + (format nil "~:(~A~) Group" (substitute #\Space #\- (string group)))) (defun query-conf-value (var string original) (labels ((warn-wrong-type (result original) (if (equal (simple-type-of result) (simple-type-of original)) result - (if (query-yes-or-no "~S and ~S are not of the same type (~A and ~A). Do you really want to use this value?" - result original (type-of result) (type-of original)) + (if (query-yes-or-no "~A and ~A are not of the same type (~A and ~A). Do you really want to use this value?" + (escape-conf-value result) (escape-conf-value original) + (type-of result) (type-of original)) result original))) (ask-set-default-value (original-val) - (let ((default (extract-config-default-value var))) - (if (query-yes-or-no "Reset ~A from ~A to ~A?" var original default) - (get-config-value default) + (let ((default (config-default-value var))) + (if (query-yes-or-no "Reset ~A from ~A to ~A?" var original (escape-conf-value default)) + default original-val)))) (multiple-value-bind (result return) - (query-string (format nil "Configure ~A - ~A" string - (remove-config-group (documentation var 'variable))) + (query-string (format nil "Configure ~A - ~A (blank=Default: ~A)" string + (documentation var 'variable) + (escape-conf-value (config-default-value var))) original) (let ((original-val (get-config-value original))) (if (equal return :Return) @@ -163,7 +164,7 @@ (let* ((string (remove #\* (format nil "~A" var))) (symbol (intern (format nil "CONFIGURE-~A" string) :clfswm))) (setf (symbol-function symbol) (lambda () - (setf (symbol-value var) (query-conf-value var string (escape-conf-value var))) + (setf (symbol-value var) (query-conf-value var string (escape-conf-symbol-value var))) (open-menu (find-menu 'configuration-menu))) (documentation symbol 'function) (format nil "Configure ~A" string)) symbol)) @@ -178,7 +179,7 @@ (loop for group in all-groups for i from 0 do (let ((menu (group->menu group))) - (add-sub-menu 'configuration-menu (number->char i) menu group) + (add-sub-menu 'configuration-menu (number->char i) menu (group-name group)) (loop for var in all-variables with j = -1 do (when (equal (second var) group) @@ -189,52 +190,12 @@ -;;; Default documentation string utility -(defparameter *config-default-string* "(blank=Default: ") - -(defmacro with-config-default-value-position ((symbol doc pos1 pos2) &body body) - `(let* ((,doc (documentation ,symbol 'variable)) - (length (length ,doc)) - (,pos2 (and (plusp length) (1- length)))) - (when (and ,pos2 (char= (char ,doc ,pos2) #\))) - (let ((,pos1 (awhen (search *config-default-string* ,doc :from-end t) - (+ it (length *config-default-string*))))) - (when ,pos1 - , at body))))) - -(defun remove-config-default-value (symbol) - (with-config-default-value-position (symbol doc pos1 pos2) - (setf (documentation symbol 'variable) - (string-trim " " (subseq doc 0 pos1))))) - -(defun extract-config-default-value (symbol) - (with-config-default-value-position (symbol doc pos1 pos2) - (string-trim " " (subseq doc pos1 pos2)))) - - -(defun change-config-default-value (symbol) - (remove-config-default-value symbol) - (setf (documentation symbol 'variable) - (format nil "~A ~A~A)" (documentation symbol 'variable) - *config-default-string* - (escape-conf-value symbol)))) - -(defun reset-config-to-default-value (symbol) - (let ((default (extract-config-default-value symbol))) - (setf (symbol-value symbol) (get-config-value default)))) - - -(defun add-all-config-default-value () - (with-all-internal-symbols (symbol :clfswm) - (when (is-config-p symbol) - (change-config-default-value symbol)))) - - (defun reset-all-config-variables () "Reset all configuration variables to there default values" (when (query-yes-or-no "Do you really want to reset all values to there default?") - (with-all-internal-symbols (symbol :clfswm) - (when (is-config-p symbol) - (reset-config-to-default-value symbol)))) + (maphash (lambda (key val) + (declare (ignore val)) + (reset-config-to-default-value key)) + *config-var-table*)) (open-menu (find-menu 'configuration-menu))) Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Mon Mar 7 17:23:53 2011 @@ -627,8 +627,8 @@ (with-slots (window show-window-p) frame (if show-window-p (when (or *show-root-frame-p* (not (child-equal-p frame *current-root*))) - (map-window window) - (set-child-stack-order window previous) + (map-window window) + (set-child-stack-order window previous) (display-frame-info frame)) (hide-window window)))) Modified: clfswm/src/clfswm-util.lisp ============================================================================== --- clfswm/src/clfswm-util.lisp (original) +++ clfswm/src/clfswm-util.lisp Mon Mar 7 17:23:53 2011 @@ -1237,10 +1237,10 @@ ;;; Standard menu functions - Based on the XDG specifications -(defparameter *xdg-section-list* (append '(TextEditor FileManager WebBrowser) - '(AudioVideo Audio Video Development Education Game Graphics Network Office Settings System Utility) - '(TerminalEmulator Archlinux Screensaver)) - "Config(Menu group): Standard menu sections") +(defconfig *xdg-section-list* (append '(TextEditor FileManager WebBrowser) + '(AudioVideo Audio Video Development Education Game Graphics Network Office Settings System Utility) + '(TerminalEmulator Archlinux Screensaver)) + 'Menu "Standard menu sections") (defun um-create-xdg-section-list (menu) Modified: clfswm/src/clfswm.lisp ============================================================================== --- clfswm/src/clfswm.lisp (original) +++ clfswm/src/clfswm.lisp Mon Mar 7 17:23:53 2011 @@ -252,7 +252,6 @@ (when read-conf-file-p (read-conf-file)) (create-configuration-menu :clear t) - (add-all-config-default-value) (call-hook *main-entrance-hook*) (handler-case (open-display display protocol) Modified: clfswm/src/config.lisp ============================================================================== --- clfswm/src/config.lisp (original) +++ clfswm/src/config.lisp Mon Mar 7 17:23:53 2011 @@ -31,32 +31,26 @@ (in-package :clfswm) -;;; CONFIG - Compress motion notify ? -;; This variable may be useful to speed up some slow version of CLX. -;; It is particulary useful with CLISP/MIT-CLX. -(setf *have-to-compress-notify* t) - - ;;; CONFIG - Default modifiers -(defparameter *default-modifiers* '() - "Config(): Default modifiers list to append to explicit modifiers +(defconfig *default-modifiers* '() nil + "Default modifiers list to append to explicit modifiers Example: :mod-2 for num_lock, :lock for Caps_lock...") ;;; CONFIG - Never managed window list -(defparameter *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)) - "Config(): CLFSWM will never manage windows of this type. +(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)) + nil "CLFSWM will never manage windows of this type. A list of (list match-function handle-function)") -(defparameter *hide-unmanaged-window* t - "Config(): Hide or not unmanaged windows when a child is deselected.") +(defconfig *hide-unmanaged-window* t nil + "Hide or not unmanaged windows when a child is deselected.") ;;; CONFIG - Screen size (defun get-fullscreen-size () @@ -68,57 +62,57 @@ ;; (values 100 100 800 600)) -(defparameter *corner-size* 3 - "Config(Corner group): The size of the corner square") +(defconfig *corner-size* 3 'Corner + "The size of the corner square") ;;; CONFIG: Corner actions - See in clfswm-corner.lisp for ;;; allowed functions -(defparameter *corner-main-mode-left-button* - '((:top-left open-menu) - (:top-right present-virtual-keyboard) - (:bottom-right expose-windows-mode) - (:bottom-left nil)) - "Config(Corner group): Actions on corners in the main mode with the left mouse button") - -(defparameter *corner-main-mode-middle-button* - '((:top-left help-on-clfswm) - (:top-right ask-close/kill-current-window) - (:bottom-right nil) - (:bottom-left nil)) - "Config(Corner group): Actions on corners in the main mode with the middle mouse button") - -(defparameter *corner-main-mode-right-button* - '((:top-left present-clfswm-terminal) - (:top-right ask-close/kill-current-window) - (:bottom-right expose-all-windows-mode) - (:bottom-left nil)) - "Config(Corner group): Actions on corners in the main mode with the right mouse button") - -(defparameter *corner-second-mode-left-button* - '((:top-left nil) - (:top-right nil) - (:bottom-right expose-windows-mode) - (:bottom-left nil)) - "Config(Corner group): Actions on corners in the second mode with the left mouse button") - -(defparameter *corner-second-mode-middle-button* - '((:top-left help-on-clfswm) - (:top-right nil) - (:bottom-right nil) - (:bottom-left nil)) - "Config(Corner group): Actions on corners in the second mode with the middle mouse button") - -(defparameter *corner-second-mode-right-button* - '((:top-left nil) - (:top-right nil) - (:bottom-right expose-all-windows-mode) - (:bottom-left nil)) - "Config(Corner group): Actions on corners in the second mode with the right mouse button") +(defconfig *corner-main-mode-left-button* + '((:top-left open-menu) + (:top-right present-virtual-keyboard) + (:bottom-right expose-windows-mode) + (:bottom-left nil)) + 'Corner "Actions on corners in the main mode with the left mouse button") + +(defconfig *corner-main-mode-middle-button* + '((:top-left help-on-clfswm) + (:top-right ask-close/kill-current-window) + (:bottom-right nil) + (:bottom-left nil)) + 'Corner "Actions on corners in the main mode with the middle mouse button") + +(defconfig *corner-main-mode-right-button* + '((:top-left present-clfswm-terminal) + (:top-right ask-close/kill-current-window) + (:bottom-right expose-all-windows-mode) + (:bottom-left nil)) + 'Corner "Actions on corners in the main mode with the right mouse button") + +(defconfig *corner-second-mode-left-button* + '((:top-left nil) + (:top-right nil) + (:bottom-right expose-windows-mode) + (:bottom-left nil)) + 'Corner "Actions on corners in the second mode with the left mouse button") + +(defconfig *corner-second-mode-middle-button* + '((:top-left help-on-clfswm) + (:top-right nil) + (:bottom-right nil) + (:bottom-left nil)) + 'Corner "Actions on corners in the second mode with the middle mouse button") + +(defconfig *corner-second-mode-right-button* + '((:top-left nil) + (:top-right nil) + (:bottom-right expose-all-windows-mode) + (:bottom-left nil)) + 'Corner "Actions on corners in the second mode with the right mouse button") -(defparameter *virtual-keyboard-cmd* "xvkbd" - "Config(Corner group): The command to display the virtual keybaord +(defconfig *virtual-keyboard-cmd* "xvkbd" + 'Corner "The command to display the virtual keybaord Here is an ~/.Xresources example for xvkbd: xvkbd.windowGeometry: 300x100-0-0 xvkbd*Font: 6x12 @@ -127,12 +121,12 @@ xvkbd.keypad: false And make it always on top") -(defparameter *clfswm-terminal-name* "clfswm-terminal" - "Config(Corner group): The clfswm terminal name") +(defconfig *clfswm-terminal-name* "clfswm-terminal" + 'Corner "The clfswm terminal name") ;;(defparameter *clfswm-terminal-cmd* (format nil "xterm -T ~A -e /bin/bash --noprofile --norc" *clfswm-terminal-name*) ;;(defparameter *clfswm-terminal-cmd* (format nil "urxvt -name ~A" *clfswm-terminal-name*) -(defparameter *clfswm-terminal-cmd* (format nil "xterm -T ~A" *clfswm-terminal-name*) - "Config(Corner group): The clfswm terminal command. +(defconfig *clfswm-terminal-cmd* (format nil "xterm -T ~A" *clfswm-terminal-name*) + 'Corner "The clfswm terminal command. This command must set the window title to *clfswm-terminal-name*") @@ -148,182 +142,182 @@ ;;; ;;; See clfswm.lisp for hooks examples. -(defparameter *init-hook* '(default-init-hook display-hello-window) - "Config(Hook group): Init hook. This hook is run just after the first root frame is created") +(defconfig *init-hook* '(default-init-hook display-hello-window) + 'Hook "Init hook. This hook is run just after the first root frame is created") -(defparameter *close-hook* '(close-notify-window close-clfswm-terminal close-virtual-keyboard) - "Config(Hook group): Close hook. This hook is run just before closing the display") +(defconfig *close-hook* '(close-notify-window close-clfswm-terminal close-virtual-keyboard) + 'Hook "Close hook. This hook is run just before closing the display") -(defparameter *default-nw-hook* 'default-frame-nw-hook - "Config(Hook group): Default action to do on newly created windows") +(defconfig *default-nw-hook* 'default-frame-nw-hook + 'Hook "Default action to do on newly created windows") ;;; CONFIG -(defparameter *create-frame-on-root* nil - "Config(): Create frame on root. +(defconfig *create-frame-on-root* nil + nil "Create frame on root. Set this variable to true if you want to allow to create a new frame on the root window in the main mode with the mouse") ;;; CONFIG: Main mode colors -(defparameter *color-selected* "Red" - "Config(Main mode group): Color of selected window") -(defparameter *color-unselected* "Blue" - "Config(Main mode group): Color of unselected color") -(defparameter *color-maybe-selected* "Yellow" - "Config(Main mode group): Color of maybe selected windows") +(defconfig *color-selected* "Red" + 'Main-mode "Color of selected window") +(defconfig *color-unselected* "Blue" + 'Main-mode "Color of unselected color") +(defconfig *color-maybe-selected* "Yellow" + 'Main-mode "Color of maybe selected windows") ;;; CONFIG: Frame colors -(defparameter *frame-background* "Black" - "Config(Frame colors group): Frame background") -(defparameter *frame-foreground* "Green" - "Config(Frame colors group): Frame foreground") -(defparameter *frame-foreground-root* "Red" - "Config(Frame colors group): Frame foreground when the frame is the root frame") -(defparameter *frame-foreground-hidden* "Darkgreen" - "Config(Frame colors group): Frame foreground for hidden windows") +(defconfig *frame-background* "Black" + 'Frame-colors "Frame background") +(defconfig *frame-foreground* "Green" + 'Frame-colors "Frame foreground") +(defconfig *frame-foreground-root* "Red" + 'Frame-colors "Frame foreground when the frame is the root frame") +(defconfig *frame-foreground-hidden* "Darkgreen" + 'Frame-colors "Frame foreground for hidden windows") ;;; CONFIG: Default window size -(defparameter *default-window-width* 400 - "Config(): Default window width") -(defparameter *default-window-height* 300 - "Config(): Default window height") +(defconfig *default-window-width* 400 + nil "Default window width") +(defconfig *default-window-height* 300 + nil "Default window height") ;;; CONFIG: Second mode colors and fonts -(defparameter *sm-border-color* "Green" - "Config(Second mode group): Second mode window border color") -(defparameter *sm-background-color* "Black" - "Config(Second mode group): Second mode window background color") -(defparameter *sm-foreground-color* "Red" - "Config(Second mode group): Second mode window foreground color") -(defparameter *sm-font-string* *default-font-string* - "Config(Second mode group): Second mode window font string") -(defparameter *sm-width* 300 - "Config(Second mode group): Second mode window width") -(defparameter *sm-height* 25 - "Config(Second mode group): Second mode window height") +(defconfig *sm-border-color* "Green" + 'Second-mode "Second mode window border color") +(defconfig *sm-background-color* "Black" + 'Second-mode "Second mode window background color") +(defconfig *sm-foreground-color* "Red" + 'Second-mode "Second mode window foreground color") +(defconfig *sm-font-string* *default-font-string* + 'Second-mode "Second mode window font string") +(defconfig *sm-width* 300 + 'Second-mode "Second mode window width") +(defconfig *sm-height* 25 + 'Second-mode "Second mode window height") ;;; CONFIG - Identify key colors -(defparameter *identify-font-string* *default-font-string* - "Config(Identify key group): Identify window font string") -(defparameter *identify-background* "black" - "Config(Identify key group): Identify window background color") -(defparameter *identify-foreground* "green" - "Config(Identify key group): Identify window foreground color") -(defparameter *identify-border* "red" - "Config(Identify key group): Identify window border color") +(defconfig *identify-font-string* *default-font-string* + 'Identify-key "Identify window font string") +(defconfig *identify-background* "black" + 'Identify-key "Identify window background color") +(defconfig *identify-foreground* "green" + 'Identify-key "Identify window foreground color") +(defconfig *identify-border* "red" + 'Identify-key "Identify window border color") ;;; CONFIG - Query string colors -(defparameter *query-font-string* *default-font-string* - "Config(Query string group): Query string window font string") -(defparameter *query-background* "black" - "Config(Query string group): Query string window background color") -(defparameter *query-message-color* "yellow" - "Config(Query string group): Query string window message color") -(defparameter *query-foreground* "green" - "Config(Query string group): Query string window foreground color") -(defparameter *query-cursor-color* "white" - "Config(Query string group): Query string window foreground cursor color") -(defparameter *query-parent-color* "blue" - "Config(Query string group): Query string window parenthesis color") -(defparameter *query-parent-error-color* "red" - "Config(Query string group): Query string window parenthesis color when no match") -(defparameter *query-border* "red" - "Config(Query string group): Query string window border color") +(defconfig *query-font-string* *default-font-string* + 'Query-string "Query string window font string") +(defconfig *query-background* "black" + 'Query-string "Query string window background color") +(defconfig *query-message-color* "yellow" + 'Query-string "Query string window message color") +(defconfig *query-foreground* "green" + 'Query-string "Query string window foreground color") +(defconfig *query-cursor-color* "white" + 'Query-string "Query string window foreground cursor color") +(defconfig *query-parent-color* "blue" + 'Query-string "Query string window parenthesis color") +(defconfig *query-parent-error-color* "red" + 'Query-string "Query string window parenthesis color when no match") +(defconfig *query-border* "red" + 'Query-string "Query string window border color") ;;; CONFIG - Info mode -(defparameter *info-background* "black" - "Config(Info mode group): Info window background color") -(defparameter *info-foreground* "green" - "Config(Info mode group): Info window foreground color") -(defparameter *info-border* "red" - "Config(Info mode group): Info window border color") -(defparameter *info-line-cursor* "white" - "Config(Info mode group): Info window line cursor color color") -(defparameter *info-selected-background* "blue" - "Config(Info mode group): Info selected item background color") -(defparameter *info-font-string* *default-font-string* - "Config(Info mode group): Info window font string") +(defconfig *info-background* "black" + 'Info-mode "Info window background color") +(defconfig *info-foreground* "green" + 'Info-mode "Info window foreground color") +(defconfig *info-border* "red" + 'Info-mode "Info window border color") +(defconfig *info-line-cursor* "white" + 'Info-mode "Info window line cursor color color") +(defconfig *info-selected-background* "blue" + 'Info-mode "Info selected item background color") +(defconfig *info-font-string* *default-font-string* + 'Info-mode "Info window font string") -(defparameter *info-click-to-select* t - "Config(Info mode group): If true, click on info window select item. Otherwise, click to drag the menu") +(defconfig *info-click-to-select* t + 'Info-mode "If true, click on info window select item. Otherwise, click to drag the menu") ;;; CONFIG - Circulate string colors -(defparameter *circulate-font-string* *default-font-string* - "Config(Circulate mode group): Circulate string window font string") -(defparameter *circulate-background* "black" - "Config(Circulate mode group): Circulate string window background color") -(defparameter *circulate-foreground* "green" - "Config(Circulate mode group): Circulate string window foreground color") -(defparameter *circulate-border* "red" - "Config(Circulate mode group): Circulate string window border color") -(defparameter *circulate-width* 400 - "Config(Circulate mode group): Circulate mode window width") -(defparameter *circulate-height* 15 - "Config(Circulate mode group): Circulate mode window height") +(defconfig *circulate-font-string* *default-font-string* + 'Circulate-mode "Circulate string window font string") +(defconfig *circulate-background* "black" + 'Circulate-mode "Circulate string window background color") +(defconfig *circulate-foreground* "green" + 'Circulate-mode "Circulate string window foreground color") +(defconfig *circulate-border* "red" + 'Circulate-mode "Circulate string window border color") +(defconfig *circulate-width* 400 + 'Circulate-mode "Circulate mode window width") +(defconfig *circulate-height* 15 + 'Circulate-mode "Circulate mode window height") -(defparameter *circulate-text-limite* 30 - "Config(Circulate mode group): Maximum text limite in the circulate window") +(defconfig *circulate-text-limite* 30 + 'Circulate-mode "Maximum text limite in the circulate window") ;;; CONFIG - Expose string colors -(defparameter *expose-font-string* *default-font-string* - "Config(Expose mode group): Expose string window font string") -(defparameter *expose-background* "black" - "Config(Expose mode group): Expose string window background color") -(defparameter *expose-foreground* "green" - "Config(Expose mode group): Expose string window foreground color") -(defparameter *expose-border* "red" - "Config(Expose mode group): Expose string window border color") -(defparameter *expose-valid-on-key* t - "Config(Expose mode group): Valid expose mode when an accel key is pressed") -(defparameter *expose-show-window-title* t - "Config(Expose mode group): Show the window title on accel window") +(defconfig *expose-font-string* *default-font-string* + 'Expose-mode "Expose string window font string") +(defconfig *expose-background* "black" + 'Expose-mode "Expose string window background color") +(defconfig *expose-foreground* "green" + 'Expose-mode "Expose string window foreground color") +(defconfig *expose-border* "red" + 'Expose-mode "Expose string window border color") +(defconfig *expose-valid-on-key* t + 'Expose-mode "Valid expose mode when an accel key is pressed") +(defconfig *expose-show-window-title* t + 'Expose-mode "Show the window title on accel window") ;;; CONFIG - Show key binding colors -(defparameter *info-color-title* "Magenta" - "Config(Info mode group): Colored info title color") -(defparameter *info-color-underline* "Yellow" - "Config(Info mode group): Colored info underline color") -(defparameter *info-color-first* "Cyan" - "Config(Info mode group): Colored info first color") -(defparameter *info-color-second* "lightblue" - "Config(Info mode group): Colored info second color") +(defconfig *info-color-title* "Magenta" + 'Info-mode "Colored info title color") +(defconfig *info-color-underline* "Yellow" + 'Info-mode "Colored info underline color") +(defconfig *info-color-first* "Cyan" + 'Info-mode "Colored info first color") +(defconfig *info-color-second* "lightblue" + 'Info-mode "Colored info second color") ;;; CONFIG - Menu colors ;;; Set *info-foreground* to change the default menu foreground -(defparameter *menu-color-submenu* "Cyan" - "Config(Menu group): Submenu color in menu") -(defparameter *menu-color-comment* "Yellow" - "Config(Menu group): Comment color in menu") -(defparameter *menu-color-key* "Magenta" - "Config(Menu group): Key color in menu") -(defparameter *menu-color-menu-key* (->color #xFF9AFF) - "Config(Menu group): Menu key color in menu") +(defconfig *menu-color-submenu* "Cyan" + 'Menu "Submenu color in menu") +(defconfig *menu-color-comment* "Yellow" + 'Menu "Comment color in menu") +(defconfig *menu-color-key* "Magenta" + 'Menu "Key color in menu") +(defconfig *menu-color-menu-key* (->color #xFF9AFF) + 'Menu "Menu key color in menu") ;;; CONFIG - Notify window string colors -(defparameter *notify-window-font-string* *default-font-string* - "Config(Notify Window mode group): Notify window font string") -(defparameter *notify-window-background* "black" - "Config(Notify Window group): Notify Window background color") -(defparameter *notify-window-foreground* "green" - "Config(Notify Window group): Notify Window foreground color") -(defparameter *notify-window-border* "red" - "Config(Notify Window group): Notify Window border color") -(defparameter *notify-window-delay* 10 - "Config(Notify Window group): Notify Window display delay") +(defconfig *notify-window-font-string* *default-font-string* + 'Notify-Window "Notify window font string") +(defconfig *notify-window-background* "black" + 'Notify-Window "Notify Window background color") +(defconfig *notify-window-foreground* "green" + 'Notify-Window "Notify Window foreground color") +(defconfig *notify-window-border* "red" + 'Notify-Window "Notify Window border color") +(defconfig *notify-window-delay* 10 + 'Notify-Window "Notify Window display delay") Modified: clfswm/src/package.lisp ============================================================================== --- clfswm/src/package.lisp (original) +++ clfswm/src/package.lisp Mon Mar 7 17:23:53 2011 @@ -37,12 +37,11 @@ (in-package :clfswm) - - -;;; Compress motion notify ? -;;; Note: this variable is overwriten in config.lisp -(defparameter *have-to-compress-notify* t - "Config(): Compress event notify? +;;; CONFIG - Compress motion notify ? +;; This variable may be useful to speed up some slow version of CLX. +;; It is particulary useful with CLISP/MIT-CLX (and others). +(defconfig *have-to-compress-notify* t nil + "Compress event notify? This variable may be useful to speed up some slow version of CLX. It is particulary useful with CLISP/MIT-CLX.") @@ -59,8 +58,8 @@ (defparameter *root* nil) (defparameter *no-focus-window* nil) -(defparameter *loop-timeout* 0.1 - "Config(): Maximum time (in seconds) to wait before calling *loop-hook*") +(defconfig *loop-timeout* 0.1 nil + "Maximum time (in seconds) to wait before calling *loop-hook*") (defparameter *pixmap-buffer* nil) @@ -68,26 +67,27 @@ (defparameter *default-font* nil) ;;(defparameter *default-font-string* "9x15") -(defparameter *default-font-string* "fixed" - "Config(): The default font used in clfswm") +(defconfig *default-font-string* "fixed" nil + "The default font used in clfswm") -(defparameter *color-move-window* "DeepPink" - "Config(Main mode group): Color when moving or resizing a windows") +(defconfig *color-move-window* "DeepPink" 'Main-mode + "Color when moving or resizing a windows") (defparameter *child-selection* nil) ;;; CONFIG - Default frame datas -(defparameter *default-frame-data* +(defconfig *default-frame-data* (list '(:tile-size 0.8) '(:tile-space-size 0.1) '(:fast-layout (tile-left-layout tile-layout)) '(:main-layout-windows nil)) - "Config(): Default slots set in frame date") + nil + "Default slots set in frame date") ;;; CONFIG - Default managed window type for a frame ;;; type can be :all, :normal, :transient, :maxsize, :desktop, :dock, :toolbar, :menu, :utility, :splash, :dialog -(defparameter *default-managed-type* '(:normal) - "Config(): Default managed window types") +(defconfig *default-managed-type* '(:normal) nil + "Default managed window types") ;;(defparameter *default-managed-type* '(:normal :maxsize :transient)) ;;(defparameter *default-managed-type* '(:normal :transient :maxsize :desktop :dock :toolbar :menu :utility :splash :dialog)) ;;(defparameter *default-managed-type* '()) @@ -95,8 +95,8 @@ ;;; CONFIG - Default focus policy -(defparameter *default-focus-policy* :click - "Config(): Default mouse focus policy. One of :click, :sloppy, :sloppy-strict or :sloppy-select.") +(defconfig *default-focus-policy* :click nil + "Default mouse focus policy. One of :click, :sloppy, :sloppy-strict or :sloppy-select.") (defclass frame () @@ -179,14 +179,14 @@ -(defparameter *binding-hook* nil - "Config(Hook group): Hook executed when keys/buttons are bounds") +(defconfig *binding-hook* nil 'Hook + "Hook executed when keys/buttons are bounds") -(defparameter *loop-hook* nil - "Config(Hook group): Hook executed on each event loop") +(defconfig *loop-hook* nil 'Hook + "Hook executed on each event loop") -(defparameter *main-entrance-hook* nil - "Config(Hook group): Hook executed on the main function entrance after +(defconfig *main-entrance-hook* nil 'Hook + "Hook executed on the main function entrance after loading configuration file and before opening the display.") @@ -202,20 +202,20 @@ ;;; middle-left middle-middle middle-right ;;; bottom-left bottom-middle bottom-right ;;; -(defparameter *banish-pointer-placement* 'bottom-right-placement - "Config(Placement group): Pointer banishment placement") -(defparameter *second-mode-placement* 'top-middle-placement - "Config(Placement group): Second mode window placement") -(defparameter *info-mode-placement* 'top-left-placement - "Config(Placement group): Info mode window placement") -(defparameter *query-mode-placement* 'top-left-placement - "Config(Placement group): Query mode window placement") -(defparameter *circulate-mode-placement* 'bottom-middle-placement - "Config(Placement group): Circulate mode window placement") -(defparameter *expose-mode-placement* 'top-left-child-placement - "Config(Placement group): Expose mode window placement (Selection keys position)") -(defparameter *notify-window-placement* 'bottom-right-placement - "Config(Placement group): Notify window placement") +(defconfig *banish-pointer-placement* 'bottom-right-placement + 'Placement "Pointer banishment placement") +(defconfig *second-mode-placement* 'top-middle-placement + 'Placement "Second mode window placement") +(defconfig *info-mode-placement* 'top-left-placement + 'Placement "Info mode window placement") +(defconfig *query-mode-placement* 'top-left-placement + 'Placement "Query mode window placement") +(defconfig *circulate-mode-placement* 'bottom-middle-placement + 'Placement "Circulate mode window placement") +(defconfig *expose-mode-placement* 'top-left-child-placement + 'Placement "Expose mode window placement (Selection keys position)") +(defconfig *notify-window-placement* 'bottom-right-placement + 'Placement "Notify window placement") Modified: clfswm/src/tools.lisp ============================================================================== --- clfswm/src/tools.lisp (original) +++ clfswm/src/tools.lisp Mon Mar 7 17:23:53 2011 @@ -31,6 +31,7 @@ (:export :it :awhen :aif + :defconfig :*config-var-table* :configvar-value :configvar-group :config-default-value :find-in-hash :nfuncall :pfuncall @@ -55,7 +56,6 @@ :ensure-function :empty-string-p :find-common-string - :is-config-p :config-documentation :config-group :setf/= :create-symbol :number->char @@ -126,6 +126,26 @@ `(let ((it ,test)) (if it ,then ,else))) +;;; Configuration variables +(defstruct configvar value group doc) + +(defparameter *config-var-table* (make-hash-table :test #'equal)) + +(defmacro defconfig (name value group doc) + `(progn + (setf (gethash ',name *config-var-table*) + (make-configvar :value ,value + :group (or ,group 'Miscellaneous))) + (defparameter ,name ,value ,doc))) + +(defun config-default-value (var) + (let ((config (gethash var *config-var-table*))) + (when config + (configvar-value config)))) + + + + (defun find-in-hash (val hashtable &optional (test #'equal)) "Return the key associated to val in the hashtable" (maphash #'(lambda (k v) @@ -372,35 +392,6 @@ -;;; Auto configuration tools -;;; Syntaxe: (defparameter symbol value "Config(config group): documentation string") -(let* ((start-string "Config(") - (start-len (length start-string)) - (stop-string "):") - (stop-len (length stop-string))) - (defun is-config-p (symbol) - (when (boundp symbol) - (let ((doc (documentation symbol 'variable))) - (and doc - (= (or (search start-string doc :test #'string-equal) -1) 0) - (search stop-string doc) - t)))) - - (defun config-documentation (symbol) - (when (is-config-p symbol) - (let ((doc (documentation symbol 'variable))) - (string-trim " " (subseq doc (+ (search stop-string doc) stop-len)))))) - - (defun config-group (symbol) - (when (is-config-p symbol) - (let* ((doc (documentation symbol 'variable)) - (group (string-trim " " (subseq doc (+ (search start-string doc) start-len) - (search stop-string doc))))) - (if (empty-string-p group) "Miscellaneous group" group))))) - - - - ;;; Tools (defmacro setf/= (var val) "Set var to val only when var not equal to val" From pbrochard at common-lisp.net Mon Mar 7 22:53:46 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Mon, 07 Mar 2011 17:53:46 -0500 Subject: [clfswm-cvs] r424 - in clfswm: . src Message-ID: Author: pbrochard Date: Mon Mar 7 17:53:46 2011 New Revision: 424 Log: src/clfswm-info.lisp (show-config-variable); src/clfswm-autodoc.lisp (produce-configuration-variables): Use the new defconfig method. Modified: clfswm/ChangeLog clfswm/src/clfswm-autodoc.lisp clfswm/src/clfswm-configuration.lisp clfswm/src/clfswm-info.lisp clfswm/src/tools.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Mon Mar 7 17:53:46 2011 @@ -1,5 +1,11 @@ 2011-03-07 Philippe Brochard + * src/clfswm-info.lisp (show-config-variable): Use the new + defconfig method. + + * src/clfswm-autodoc.lisp (produce-configuration-variables): Use + the new defconfig method. + * src/clfswm-configuration.lisp (create-configuration-menu): Change the config system with a more lispy one and a less string based one: (defconfig name value group doc). Modified: clfswm/src/clfswm-autodoc.lisp ============================================================================== --- clfswm/src/clfswm-autodoc.lisp (original) +++ clfswm/src/clfswm-autodoc.lisp Mon Mar 7 17:53:46 2011 @@ -304,18 +304,18 @@ (format t " done~%")) -;;; Configuration variables (defun produce-configuration-variables (stream &optional (group t)) (format stream " * CLFSWM Configuration variables *~%") (format stream " ------------------------------~2%") - (format stream " <= ~A =>~2%" (if (equal group t) "" group)) - (with-all-internal-symbols (symbol :clfswm) - (when (and (is-config-p symbol) - (or (equal group t) - (string-equal group (config-group symbol)))) - (format stream "~A = ~S~%~A~%" symbol (symbol-value symbol) - (config-documentation symbol)))) - (format stream "~2& Those variables can be changed in clfswm. + (format stream " <= ~A =>~2%" (if (equal group t) "" + (config-group->string group))) + (maphash (lambda (key val) + (when (or (equal group t) + (equal group (configvar-group val))) + (format stream "~A = ~S~%~A~%" key (symbol-value key) + (documentation key 'variable)))) + *config-var-table*) + (format stream "~2& Those variables can be changed in clfswm. Maybe you'll need to restart clfswm to take care of new values~2%")) Modified: clfswm/src/clfswm-configuration.lisp ============================================================================== --- clfswm/src/clfswm-configuration.lisp (original) +++ clfswm/src/clfswm-configuration.lisp Mon Mar 7 17:53:46 2011 @@ -129,9 +129,6 @@ (defun group->menu (group) (intern (string-upcase (format nil "conf-~A" group)) :clfswm)) -(defun group-name (group) - (format nil "~:(~A~) Group" (substitute #\Space #\- (string group)))) - (defun query-conf-value (var string original) (labels ((warn-wrong-type (result original) (if (equal (simple-type-of result) (simple-type-of original)) @@ -179,7 +176,7 @@ (loop for group in all-groups for i from 0 do (let ((menu (group->menu group))) - (add-sub-menu 'configuration-menu (number->char i) menu (group-name group)) + (add-sub-menu 'configuration-menu (number->char i) menu (config-group->string group)) (loop for var in all-variables with j = -1 do (when (equal (second var) group) Modified: clfswm/src/clfswm-info.lisp ============================================================================== --- clfswm/src/clfswm-info.lisp (original) +++ clfswm/src/clfswm-info.lisp Mon Mar 7 17:53:46 2011 @@ -537,9 +537,10 @@ "Show all configurable variables" (let ((all-groups nil) (result nil)) - (with-all-internal-symbols (symbol :clfswm) - (when (is-config-p symbol) - (pushnew (config-group symbol) all-groups :test #'string-equal))) + (maphash (lambda (key val) + (declare (ignore key)) + (pushnew (configvar-group val) all-groups :test #'equal)) + *config-var-table*) (labels ((rec () (setf result nil) (info-mode-menu (loop :for group :in all-groups @@ -548,7 +549,7 @@ (let ((group group)) (lambda () (setf result group))) - group))) + (config-group->string group)))) (when result (info-mode (configuration-variable-colorize-line (split-string (append-newline-space Modified: clfswm/src/tools.lisp ============================================================================== --- clfswm/src/tools.lisp (original) +++ clfswm/src/tools.lisp Mon Mar 7 17:53:46 2011 @@ -32,6 +32,7 @@ :awhen :aif :defconfig :*config-var-table* :configvar-value :configvar-group :config-default-value + :config-group->string :find-in-hash :nfuncall :pfuncall @@ -143,6 +144,8 @@ (when config (configvar-value config)))) +(defun config-group->string (group) + (format nil "~:(~A group~)" (substitute #\Space #\- (string group)))) From pbrochard at common-lisp.net Tue Mar 8 21:34:48 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Tue, 08 Mar 2011 16:34:48 -0500 Subject: [clfswm-cvs] r425 - in clfswm: . src Message-ID: Author: pbrochard Date: Tue Mar 8 16:34:47 2011 New Revision: 425 Log: src/clfswm-configuration.lisp (save-variables-in-conf-file): Save only variables with a different value than there original value. Modified: clfswm/ChangeLog clfswm/src/clfswm-configuration.lisp clfswm/src/clfswm-corner.lisp clfswm/src/config.lisp clfswm/src/xlib-util.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Tue Mar 8 16:34:47 2011 @@ -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 Modified: clfswm/src/clfswm-configuration.lisp ============================================================================== --- clfswm/src/clfswm-configuration.lisp (original) +++ clfswm/src/clfswm-configuration.lisp Tue Mar 8 16:34:47 2011 @@ -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 ### ;;;~%"))) Modified: clfswm/src/clfswm-corner.lisp ============================================================================== --- clfswm/src/clfswm-corner.lisp (original) +++ clfswm/src/clfswm-corner.lisp Tue Mar 8 16:34:47 2011 @@ -119,9 +119,9 @@ (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) Modified: clfswm/src/config.lisp ============================================================================== --- clfswm/src/config.lisp (original) +++ clfswm/src/config.lisp Tue Mar 8 16:34:47 2011 @@ -38,12 +38,14 @@ +(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)") Modified: clfswm/src/xlib-util.lisp ============================================================================== --- clfswm/src/xlib-util.lisp (original) +++ clfswm/src/xlib-util.lisp Tue Mar 8 16:34:47 2011 @@ -812,12 +812,12 @@ 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)))) +(defmacro defun-equal-wm-class (symbol class) + `(defun ,symbol (window) + (when (xlib:window-p window) + (string-equal (xlib:get-wm-class window) ,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-name (symbol name) + `(defun ,symbol (window) + (when (xlib:window-p window) + (string-equal (xlib:wm-name window) ,name)))) From pbrochard at common-lisp.net Tue Mar 8 22:04:07 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Tue, 08 Mar 2011 17:04:07 -0500 Subject: [clfswm-cvs] r426 - in clfswm: . src Message-ID: Author: pbrochard Date: Tue Mar 8 17:04:07 2011 New Revision: 426 Log: src/clfswm-internal.lisp (show-all-children): Hide windows not in the current root before displaying those in current root. Remove all hide-all unnecessary calls. Modified: clfswm/ChangeLog clfswm/src/clfswm-expose-mode.lisp clfswm/src/clfswm-internal.lisp clfswm/src/clfswm-nw-hooks.lisp clfswm/src/clfswm-util.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Tue Mar 8 17:04:07 2011 @@ -1,5 +1,9 @@ 2011-03-08 Philippe Brochard + * src/clfswm-internal.lisp (show-all-children): Hide windows not + in the current root before displaying those in current root. + Remove all hide-all unnecessary calls. + * src/clfswm-configuration.lisp (save-variables-in-conf-file): Save only variables with a different value than there original value. Modified: clfswm/src/clfswm-expose-mode.lisp ============================================================================== --- clfswm/src/clfswm-expose-mode.lisp (original) +++ clfswm/src/clfswm-expose-mode.lisp Tue Mar 8 17:04:07 2011 @@ -156,7 +156,7 @@ (with-all-frames (first-restore-frame frame) (setf (frame-data-slot frame :old-layout) (frame-layout frame) (frame-layout frame) #'tile-space-layout)) - (show-all-children) + (show-all-children t) (expose-mode-display-accel-windows) (let ((grab-keyboard-p (xgrab-keyboard-p)) (grab-pointer-p (xgrab-pointer-p))) @@ -184,7 +184,7 @@ (with-all-frames (first-restore-frame frame) (setf (frame-layout frame) (frame-data-slot frame :old-layout) (frame-data-slot frame :old-layout) nil)) - (show-all-children) + (show-all-children t) (banish-pointer) (unless grab-keyboard-p (xungrab-keyboard) @@ -208,10 +208,8 @@ (switch-to-root-frame :show-later t) (expose-windows-generic *root-frame* (lambda (parent) - (hide-all-children *root-frame*) (setf *current-root* parent)) (lambda () - (hide-all-children *current-root*) (setf *current-root* orig-root))))) (defun expose-windows-current-child-mode () @@ -220,12 +218,10 @@ (when (frame-p *current-child*) (let ((orig-root *current-root*)) (unless (child-equal-p *current-child* *current-root*) - (hide-all *current-root*) (setf *current-root* *current-child*)) (expose-windows-generic *current-root*) (unless (child-equal-p *current-child* orig-root) - (hide-all *current-root*) (setf *current-root* orig-root)) - (show-all-children)))) + (show-all-children t)))) Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Tue Mar 8 17:04:07 2011 @@ -738,6 +738,8 @@ (previous nil)) (labels ((rec (child parent selected-p in-current-root) (let ((child-current-root-p (child-equal-p child *current-root*))) + (unless (or in-current-root child-current-root-p) + (hide-child child)) (when (or in-current-root child-current-root-p) (when (adapt-child-to-parent child (if child-current-root-p nil parent)) (setf geometry-change t)) @@ -750,9 +752,8 @@ (rec sub-child child (and selected-p (child-equal-p sub-child selected-child)) (or in-current-root child-current-root-p))))) - (if (or in-current-root child-current-root-p) - (show-child child parent previous) - (hide-child child)) + (when (or in-current-root child-current-root-p) + (show-child child parent previous)) (setf previous child)))) (rec (if from-root-from *root-frame* *current-root*) nil t (child-equal-p *current-root* *root-frame*)) @@ -856,17 +857,15 @@ (defun enter-frame () "Enter in the selected frame - ie make it the root frame" - (hide-all *current-root*) (setf *current-root* *current-child*) - (show-all-children)) + (show-all-children t)) (defun leave-frame () "Leave the selected frame - ie make its parent the root frame" - (hide-all *current-root*) (awhen (find-parent-frame *current-root*) (when (frame-p it) (setf *current-root* it))) - (show-all-children)) + (show-all-children t)) ;;; Other actions (select-next-child, select-next-brother...) are in @@ -919,18 +918,16 @@ (defun switch-to-root-frame (&key (show-later nil)) "Switch to the root frame" - (hide-all *current-root*) (setf *current-root* *root-frame*) (unless show-later - (show-all-children))) + (show-all-children t))) (defun switch-and-select-root-frame (&key (show-later nil)) "Switch and select the root frame" - (hide-all *current-root*) (setf *current-root* *root-frame*) (setf *current-child* *current-root*) (unless show-later - (show-all-children))) + (show-all-children t))) (defun toggle-show-root-frame () Modified: clfswm/src/clfswm-nw-hooks.lisp ============================================================================== --- clfswm/src/clfswm-nw-hooks.lisp (original) +++ clfswm/src/clfswm-nw-hooks.lisp Tue Mar 8 17:04:07 2011 @@ -158,13 +158,12 @@ (when parent (pushnew new-frame (frame-child parent)) (pushnew window (frame-child new-frame)) - (hide-all *current-root*) (setf *current-root* parent *current-child* parent) (set-layout-once #'tile-space-layout) (setf *current-child* new-frame) (default-window-placement new-frame window) - (show-all-children) + (show-all-children t) t))) @@ -202,12 +201,11 @@ (when (frame-p frame) (pushnew window (frame-child frame)) (unless (find-child frame *current-root*) - (hide-all *current-root*) (setf *current-root* frame)) (setf *current-child* frame) (focus-all-children window frame) (default-window-placement frame window) - (show-all-children) + (show-all-children t) t)) ;;; Open a new window in a named frame @@ -249,12 +247,11 @@ (pushnew window (frame-child frame)) (unless *in-process-existing-windows* (unless (find-child frame *current-root*) - (hide-all *current-root*) (setf *current-root* frame)) (setf *current-child* frame) (focus-all-children window frame) (default-window-placement frame window) - (show-all-children)) + (show-all-children t)) (throw 'nw-hook-loop t))) nil) Modified: clfswm/src/clfswm-util.lisp ============================================================================== --- clfswm/src/clfswm-util.lisp (original) +++ clfswm/src/clfswm-util.lisp Tue Mar 8 17:04:07 2011 @@ -220,22 +220,21 @@ (defun cut-current-child () "Cut the current child to the selection" (copy-current-child) - (hide-all *current-child*) (remove-child-in-frame *current-child* (find-parent-frame *current-child* *current-root*)) (setf *current-child* *current-root*) - (show-all-children)) + (show-all-children t)) (defun remove-current-child () "Remove the current child from its parent frame" - (hide-all *current-child*) (remove-child-in-frame *current-child* (find-parent-frame *current-child* *current-root*)) (setf *current-child* *current-root*) + (show-all-children t) (leave-second-mode)) (defun delete-current-child () "Delete the current child and its children in all frames" - (hide-all *current-child*) (delete-child-and-children-in-all-frames *current-child*) + (show-all-children t) (leave-second-mode)) @@ -401,11 +400,10 @@ ;;; Focus by functions (defun focus-frame-by (frame) (when (frame-p frame) - (hide-all *current-root*) (focus-all-children frame (or (find-parent-frame frame *current-root*) (find-parent-frame frame) *root-frame*)) - (show-all-children))) + (show-all-children t))) (defun focus-frame-by-name () @@ -440,14 +438,13 @@ ;;; Delete by functions (defun delete-frame-by (frame) - (hide-all *current-root*) (unless (child-equal-p frame *root-frame*) (when (child-equal-p frame *current-root*) (setf *current-root* *root-frame*)) (when (child-equal-p frame *current-child*) (setf *current-child* *current-root*)) (remove-child-in-frame frame (find-parent-frame frame))) - (show-all-children)) + (show-all-children t)) (defun delete-frame-by-name () @@ -464,11 +461,10 @@ ;;; Move by function (defun move-child-to (child frame-dest) (when (and child (frame-p frame-dest)) - (hide-all *current-root*) (remove-child-in-frame child (find-parent-frame child)) (pushnew child (frame-child frame-dest)) (focus-all-children child frame-dest) - (show-all-children))) + (show-all-children t))) (defun move-current-child-by-name () "Move current child in a named frame" @@ -488,10 +484,9 @@ ;;; Copy by function (defun copy-child-to (child frame-dest) (when (and child (frame-p frame-dest)) - (hide-all *current-root*) (pushnew child (frame-child frame-dest)) (focus-all-children child frame-dest) - (show-all-children))) + (show-all-children t))) (defun copy-current-child-by-name () "Copy current child in a named frame" @@ -732,11 +727,10 @@ "Jump to slot" (let ((jump-child (aref key-slots current-slot))) (when (find-child jump-child *root-frame*) - (hide-all *current-root*) (setf *current-root* jump-child *current-child* *current-root*) (focus-all-children *current-child* *current-child*) - (show-all-children)))) + (show-all-children t)))) (defun bind-or-jump (n) "Bind or jump to a slot (a frame or a window)" @@ -1133,11 +1127,10 @@ "Store the current child and switch to the previous one" (let ((current-child *current-child*)) (when last-child - (hide-all *current-root*) (setf *current-root* last-child *current-child* *current-root*) (focus-all-children *current-child* *current-child*) - (show-all-children)) + (show-all-children t)) (setf last-child current-child)))) @@ -1561,13 +1554,12 @@ (return win))))) (if window (let ((parent (find-parent-frame window))) - (hide-all-children *current-root*) (setf *current-child* parent) (put-child-on-top window parent) (when maximized (setf *current-root* parent)) (focus-all-children window parent) - (show-all-children)) + (show-all-children t)) (funcall run-fn)))) From pbrochard at common-lisp.net Tue Mar 8 22:31:48 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Tue, 08 Mar 2011 17:31:48 -0500 Subject: [clfswm-cvs] r427 - in clfswm: . src Message-ID: Author: pbrochard Date: Tue Mar 8 17:31:48 2011 New Revision: 427 Log: src/clfswm-util.lisp (cut-current-child, remove-current-child, delete-current-child): Hide the current child before doing the action. Modified: clfswm/ChangeLog clfswm/src/clfswm-internal.lisp clfswm/src/clfswm-util.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Tue Mar 8 17:31:48 2011 @@ -1,5 +1,9 @@ 2011-03-08 Philippe Brochard + * src/clfswm-util.lisp (cut-current-child, remove-current-child) + (delete-current-child): Hide the current child before doing the + action. + * src/clfswm-internal.lisp (show-all-children): Hide windows not in the current root before displaying those in current root. Remove all hide-all unnecessary calls. Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Tue Mar 8 17:31:48 2011 @@ -865,7 +865,7 @@ (awhen (find-parent-frame *current-root*) (when (frame-p it) (setf *current-root* it))) - (show-all-children t)) + (show-all-children)) ;;; Other actions (select-next-child, select-next-brother...) are in Modified: clfswm/src/clfswm-util.lisp ============================================================================== --- clfswm/src/clfswm-util.lisp (original) +++ clfswm/src/clfswm-util.lisp Tue Mar 8 17:31:48 2011 @@ -219,6 +219,7 @@ (defun cut-current-child () "Cut the current child to the selection" + (hide-all *current-child*) (copy-current-child) (remove-child-in-frame *current-child* (find-parent-frame *current-child* *current-root*)) (setf *current-child* *current-root*) @@ -226,6 +227,7 @@ (defun remove-current-child () "Remove the current child from its parent frame" + (hide-all *current-child*) (remove-child-in-frame *current-child* (find-parent-frame *current-child* *current-root*)) (setf *current-child* *current-root*) (show-all-children t) @@ -233,6 +235,7 @@ (defun delete-current-child () "Delete the current child and its children in all frames" + (hide-all *current-child*) (delete-child-and-children-in-all-frames *current-child*) (show-all-children t) (leave-second-mode)) From pbrochard at common-lisp.net Wed Mar 9 22:16:51 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Wed, 09 Mar 2011 17:16:51 -0500 Subject: [clfswm-cvs] r428 - in clfswm: . contrib src Message-ID: Author: pbrochard Date: Wed Mar 9 17:16:51 2011 New Revision: 428 Log: src/clfswm-layout.lisp: Add a variable border size for frames and windows. contrib/volume-mode.lisp (set-default-volume-keys): Add more keybindings (up/down, right/left) to raise/lower the volume. Modified: clfswm/ChangeLog clfswm/TODO clfswm/contrib/volume-mode.lisp clfswm/src/clfswm-circulate-mode.lisp clfswm/src/clfswm-expose-mode.lisp clfswm/src/clfswm-info.lisp clfswm/src/clfswm-internal.lisp clfswm/src/clfswm-layout.lisp clfswm/src/clfswm-placement.lisp clfswm/src/clfswm-query.lisp clfswm/src/clfswm-second-mode.lisp clfswm/src/clfswm-util.lisp clfswm/src/config.lisp clfswm/src/package.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Wed Mar 9 17:16:51 2011 @@ -1,3 +1,11 @@ +2011-03-09 Philippe Brochard + + * contrib/volume-mode.lisp (set-default-volume-keys): Add more + keybindings (up/down, right/left) to raise/lower the volume. + + * src/clfswm-layout.lisp: Add a variable border size for frames + and windows. + 2011-03-08 Philippe Brochard * src/clfswm-util.lisp (cut-current-child, remove-current-child) Modified: clfswm/TODO ============================================================================== --- clfswm/TODO (original) +++ clfswm/TODO Wed Mar 9 17:16:51 2011 @@ -17,6 +17,10 @@ see if there is a need for a rectangular optimization: Result: map-window: 1.2E-5 sec. change stack order: 3.14E-4 sec. => It maybe useful to optimize this part. + + Do not redisplay a child already displayed + Implementation note: build a list with all displayed children and there sizes + -> display a child only if it is not already displayed and it's not behind + a child already displayed (-> search in child list and return as soon as one is found) MAYBE Modified: clfswm/contrib/volume-mode.lisp ============================================================================== --- clfswm/contrib/volume-mode.lisp (original) +++ clfswm/contrib/volume-mode.lisp Wed Mar 9 17:16:51 2011 @@ -116,6 +116,12 @@ (define-volume-key ("m") 'volume-mute) (define-volume-key ("l") 'volume-lower) (define-volume-key ("r") 'volume-raise) + (define-volume-key ("Down") 'volume-lower) + (define-volume-key ("Up") 'volume-raise) + (define-volume-key ("Left") 'volume-lower) + (define-volume-key ("Right") 'volume-raise) + (define-volume-key ("PageUp") 'volume-lower) + (define-volume-key ("PageDown") 'volume-raise) (define-volume-key ("Return") 'leave-volume-mode) (define-volume-key ("Escape") 'leave-volume-mode) (define-volume-key ("g" :control) 'leave-volume-mode) Modified: clfswm/src/clfswm-circulate-mode.lisp ============================================================================== --- clfswm/src/clfswm-circulate-mode.lisp (original) +++ clfswm/src/clfswm-circulate-mode.lisp Wed Mar 9 17:16:51 2011 @@ -204,7 +204,7 @@ :width *circulate-width* :height *circulate-height* :background (get-color *circulate-background*) - :border-width 1 + :border-width *border-size* :border (get-color *circulate-border*) :colormap (xlib:screen-default-colormap *screen*) :event-mask '(:exposure :key-press)) Modified: clfswm/src/clfswm-expose-mode.lisp ============================================================================== --- clfswm/src/clfswm-expose-mode.lisp (original) +++ clfswm/src/clfswm-expose-mode.lisp Wed Mar 9 17:16:51 2011 @@ -121,7 +121,7 @@ :x x :y y :width width :height height :background (get-color *expose-background*) - :border-width 1 + :border-width *border-size* :border (get-color *expose-border*) :colormap (xlib:screen-default-colormap *screen*) :event-mask '(:exposure :key-press))) Modified: clfswm/src/clfswm-info.lisp ============================================================================== --- clfswm/src/clfswm-info.lisp (original) +++ clfswm/src/clfswm-info.lisp Wed Mar 9 17:16:51 2011 @@ -326,7 +326,7 @@ :height height :background (get-color *info-background*) :colormap (xlib:screen-default-colormap *screen*) - :border-width 1 + :border-width *border-size* :border (get-color *info-border*) :event-mask '(:exposure))) (gc (xlib:create-gcontext :drawable window Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Wed Mar 9 17:16:51 2011 @@ -371,7 +371,7 @@ :height 200 :background (get-color *frame-background*) :colormap (xlib:screen-default-colormap *screen*) - :border-width 1 + :border-width *border-size* :border (get-color *color-selected*) :event-mask '(:exposure :button-press :button-release :pointer-motion :enter-window))) (gc (xlib:create-gcontext :drawable window @@ -1034,10 +1034,10 @@ (setf (xlib:window-event-mask window) *window-events*) (set-window-state window +normal-state+) (setf (xlib:drawable-border-width window) (case (window-type window) - (:normal 1) - (:maxsize 1) - (:transient 1) - (t 1))) + (:normal *border-size*) + (:maxsize *border-size*) + (:transient *border-size*) + (t *border-size*))) (grab-all-buttons window) (unless (never-managed-window-p window) (unless (do-all-frames-nw-hook window) Modified: clfswm/src/clfswm-layout.lisp ============================================================================== --- clfswm/src/clfswm-layout.lisp (original) +++ clfswm/src/clfswm-layout.lisp Wed Mar 9 17:16:51 2011 @@ -30,9 +30,9 @@ ;;; ;;; To add a new layout: ;;; 1- define your own layout: a method returning the real size of the -;;; child in screen size (integer) as 5 values (rx, ry, rw, rh). +;;; child in screen size (integer) as 4 values (rx, ry, rw, rh). ;;; This method can use the float size of the child (x, y ,w , h). -;;; It can be specialised for xlib:window or frame +;;; It can be specialized for xlib:window or frame ;;; 2- Define a setter function for your layout ;;; 3- Register your new layout with register-layout or create ;;; a sub menu for it with register-layout-sub-menu. @@ -126,6 +126,21 @@ '(("s" fast-layout-switch) ("p" push-in-fast-layout-list))) +(declaim (inline adj-border-xy adj-border-wh)) +(defgeneric adj-border-xy (value child)) +(defgeneric adj-border-wh (value child)) + +(defmethod adj-border-xy (v (child xlib:window)) + (+ v (xlib:drawable-border-width child))) + +(defmethod adj-border-xy (v (child frame)) + (+ v (xlib:drawable-border-width (frame-window child)))) + +(defmethod adj-border-wh (v (child xlib:window)) + (- v (* (xlib:drawable-border-width child) 2))) + +(defmethod adj-border-wh (v (child frame)) + (- v (* (xlib:drawable-border-width (frame-window child)) 2))) ;;; No layout @@ -134,16 +149,16 @@ (defmethod no-layout ((child xlib:window) parent) (with-slots (rx ry rw rh) parent - (values (1+ rx) - (1+ ry) - (- rw 2) - (- rh 2)))) + (values (adj-border-xy rx child) + (adj-border-xy ry child) + (adj-border-wh rw child) + (adj-border-wh rh child)))) (defmethod no-layout ((child frame) parent) - (values (x-fl->px (frame-x child) parent) - (y-fl->px (frame-y child) parent) - (w-fl->px (frame-w child) parent) - (h-fl->px (frame-h child) parent))) + (values (adj-border-xy (x-fl->px (frame-x child) parent) child) + (adj-border-xy (y-fl->px (frame-y child) parent) child) + (adj-border-wh (w-fl->px (frame-w child) parent) child) + (adj-border-wh (h-fl->px (frame-h child) parent) child))) @@ -168,12 +183,11 @@ (:documentation "Maximize layout: Maximize windows and frames in there parent frame")) (defmethod maximize-layout (child parent) - (declare (ignore child)) (with-slots (rx ry rw rh) parent - (values (1+ rx) - (1+ ry) - (- rw 2) - (- rh 2)))) + (values (adj-border-xy rx child) + (adj-border-xy ry child) + (adj-border-wh rw child) + (adj-border-wh rh child)))) (defun set-maximize-layout () @@ -235,10 +249,10 @@ (if (zerop pos) (setf width (* dx (1+ dpos))) (incf pos dpos))) - (values (round (+ (frame-rx parent) (truncate (* (mod pos nx) dx)) 1)) - (round (+ (frame-ry parent) (truncate (* (truncate (/ pos nx)) dy)) 1)) - (round (- width 2)) - (round (- dy 2))))) + (values (round (adj-border-xy (+ (frame-rx parent) (truncate (* (mod pos nx) dx))) child)) + (round (adj-border-xy (+ (frame-ry parent) (truncate (* (truncate (/ pos nx)) dy))) child)) + (round (adj-border-wh width child)) + (round (adj-border-wh dy child))))) (defun set-tile-layout () "Tile child in its frame (vertical)" @@ -265,10 +279,10 @@ (if (zerop pos) (setf height (* dy (1+ dpos))) (incf pos dpos))) - (values (round (+ (frame-rx parent) (truncate (* (truncate (/ pos ny)) dx)) 1)) - (round (+ (frame-ry parent) (truncate (* (mod pos ny) dy)) 1)) - (round (- dx 2)) - (round (- height 2))))) + (values (round (adj-border-xy (+ (frame-rx parent) (truncate (* (truncate (/ pos ny)) dx))) child)) + (round (adj-border-xy (+ (frame-ry parent) (truncate (* (mod pos ny) dy))) child)) + (round (adj-border-wh dx child)) + (round (adj-border-wh height child))))) (defun set-tile-horizontal-layout () "Tile child in its frame (horizontal)" @@ -286,10 +300,10 @@ (pos (child-position child managed-children)) (len (length managed-children)) (dy (/ (frame-rh parent) len))) - (values (round (+ (frame-rx parent) 1)) - (round (+ (frame-ry parent) (* pos dy) 1)) - (round (- (frame-rw parent) 2)) - (round (- dy 2))))) + (values (round (adj-border-xy (frame-rx parent) child)) + (round (adj-border-xy (+ (frame-ry parent) (* pos dy)) child)) + (round (adj-border-wh (frame-rw parent) child)) + (round (adj-border-wh dy child))))) (defun set-one-column-layout () "One column layout" @@ -306,10 +320,10 @@ (pos (child-position child managed-children)) (len (length managed-children)) (dx (/ (frame-rw parent) len))) - (values (round (+ (frame-rx parent) (* pos dx) 1)) - (round (+ (frame-ry parent) 1)) - (round (- dx 2)) - (round (- (frame-rh parent) 2))))) + (values (round (adj-border-xy (+ (frame-rx parent) (* pos dx)) child)) + (round (adj-border-xy (frame-ry parent) child)) + (round (adj-border-wh dx child)) + (round (adj-border-wh (frame-rh parent) child))))) (defun set-one-line-layout () "One line layout" @@ -332,10 +346,10 @@ (dy (/ rh (ceiling (/ len n)))) (size (or (frame-data-slot parent :tile-space-size) 0.1))) (when (> size 0.5) (setf size 0.45)) - (values (round (+ rx (truncate (* (mod pos n) dx)) (* dx size) 1)) - (round (+ ry (truncate (* (truncate (/ pos n)) dy)) (* dy size) 1)) - (round (- dx (* dx size 2) 2)) - (round (- dy (* dy size 2) 2)))))) + (values (round (adj-border-xy (+ rx (truncate (* (mod pos n) dx)) (* dx size)) child)) + (round (adj-border-xy (+ ry (truncate (* (truncate (/ pos n)) dy)) (* dy size)) child)) + (round (adj-border-wh (- dx (* dx size 2)) child)) + (round (adj-border-wh (- dy (* dy size 2)) child)))))) @@ -368,14 +382,14 @@ (size (or (frame-data-slot parent :tile-size) 0.8))) (if (> (length managed-children) 1) (if (= pos 0) - (values (1+ rx) - (1+ ry) - (- (round (* rw size)) 2) - (- rh 2)) - (values (1+ (round (+ rx (* rw size)))) - (1+ (round (+ ry (* dy (1- pos))))) - (- (round (* rw (- 1 size))) 2) - (- (round dy) 2))) + (values (adj-border-xy rx child) + (adj-border-xy ry child) + (adj-border-wh (round (* rw size)) child) + (adj-border-wh rh child)) + (values (adj-border-xy (round (+ rx (* rw size))) child) + (adj-border-xy (round (+ ry (* dy (1- pos)))) child) + (adj-border-wh (round (* rw (- 1 size))) child) + (adj-border-wh (round dy) child))) (no-layout child parent))))) @@ -397,14 +411,14 @@ (size (or (frame-data-slot parent :tile-size) 0.8))) (if (> (length managed-children) 1) (if (= pos 0) - (values (1+ (round (+ rx (* rw (- 1 size))))) - (1+ ry) - (- (round (* rw size)) 2) - (- rh 2)) - (values (1+ rx) - (1+ (round (+ ry (* dy (1- pos))))) - (- (round (* rw (- 1 size))) 2) - (- (round dy) 2))) + (values (adj-border-xy (round (+ rx (* rw (- 1 size)))) child) + (adj-border-xy ry child) + (adj-border-wh (round (* rw size)) child) + (adj-border-wh rh child)) + (values (adj-border-xy rx child) + (adj-border-xy (round (+ ry (* dy (1- pos)))) child) + (adj-border-wh (round (* rw (- 1 size))) child) + (adj-border-wh (round dy) child))) (no-layout child parent))))) @@ -429,14 +443,14 @@ (size (or (frame-data-slot parent :tile-size) 0.8))) (if (> (length managed-children) 1) (if (= pos 0) - (values (1+ rx) - (1+ ry) - (- rw 2) - (- (round (* rh size)) 2)) - (values (1+ (round (+ rx (* dx (1- pos))))) - (1+ (round (+ ry (* rh size)))) - (- (round dx) 2) - (- (round (* rh (- 1 size))) 2))) + (values (adj-border-xy rx child) + (adj-border-xy ry child) + (adj-border-wh rw child) + (adj-border-wh (round (* rh size)) child)) + (values (adj-border-xy (round (+ rx (* dx (1- pos)))) child) + (adj-border-xy (round (+ ry (* rh size))) child) + (adj-border-wh (round dx) child) + (adj-border-wh (round (* rh (- 1 size))) child))) (no-layout child parent))))) @@ -459,14 +473,14 @@ (size (or (frame-data-slot parent :tile-size) 0.8))) (if (> (length managed-children) 1) (if (= pos 0) - (values (1+ rx) - (1+ (round (+ ry (* rh (- 1 size))))) - (- rw 2) - (- (round (* rh size)) 2)) - (values (1+ (round (+ rx (* dx (1- pos))))) - (1+ ry) - (- (round dx) 2) - (- (round (* rh (- 1 size))) 2))) + (values (adj-border-xy rx child) + (adj-border-xy (round (+ ry (* rh (- 1 size)))) child) + (adj-border-wh rw child) + (adj-border-wh (round (* rh size)) child)) + (values (adj-border-xy (round (+ rx (* dx (1- pos)))) child) + (adj-border-xy ry child) + (adj-border-wh (round dx) child) + (adj-border-wh (round (* rh (- 1 size))) child))) (no-layout child parent))))) @@ -496,7 +510,7 @@ (defun tile-left-space-layout (child parent) - "Tile Left Space: main child on left and others on right. Leave some space on the left." + "Tile Left Space: main child on left and others on right. Leave some space (in pixels) on the left." (with-slots (rx ry rw rh) parent (let* ((managed-children (get-managed-child parent)) (pos (child-position child managed-children)) @@ -506,14 +520,14 @@ (space (or (frame-data-slot parent :tile-left-space) 100))) (if (> (length managed-children) 1) (if (= pos 0) - (values (+ rx space 1) - (1+ ry) - (- (round (* rw size)) 2 space) - (- rh 2)) - (values (1+ (round (+ rx (* rw size)))) - (1+ (round (+ ry (* dy (1- pos))))) - (- (round (* rw (- 1 size))) 2) - (- (round dy) 2))) + (values (adj-border-xy (+ rx space) child) + (adj-border-xy ry child) + (adj-border-wh (- (round (* rw size)) space) child) + (adj-border-wh rh child)) + (values (adj-border-xy (round (+ rx (* rw size))) child) + (adj-border-xy (round (+ ry (* dy (1- pos)))) child) + (adj-border-wh (round (* rw (- 1 size))) child) + (adj-border-wh (round dy) child))) (multiple-value-bind (rnx rny rnw rnh) (no-layout child parent) (values (+ rnx space) @@ -525,7 +539,7 @@ (defun set-tile-left-space-layout () "Tile Left Space: main child on left and others on right. Leave some space on the left." (layout-ask-size "Tile size in percent (%)" :tile-size) - (layout-ask-space "Tile space" :tile-left-space) + (layout-ask-space "Tile space (in pixels)" :tile-left-space) (set-layout #'tile-left-space-layout)) (register-layout-sub-menu 'frame-tile-space-layout-menu "Tile with some space on one side menu" @@ -548,14 +562,14 @@ (if (child-member child main-windows) (let* ((dy (/ rh len)) (pos (child-position child main-windows))) - (values (1+ (round (+ rx (* rw (- 1 size))))) - (1+ (round (+ ry (* dy pos)))) - (- (round (* rw size)) 2) - (- (round dy) 2))) - (values (1+ rx) - (1+ ry) - (- (round (* rw (- 1 size))) 2) - (- rh 2))))))) + (values (adj-border-xy (round (+ rx (* rw (- 1 size)))) child) + (adj-border-xy (round (+ ry (* dy pos))) child) + (adj-border-wh (round (* rw size)) child) + (adj-border-wh (round dy) child))) + (values (adj-border-xy rx child) + (adj-border-xy ry child) + (adj-border-wh (round (* rw (- 1 size))) child) + (adj-border-wh rh child))))))) (defun set-main-window-right-layout () "Main window right: Main windows on the right. Others on the left." @@ -576,14 +590,14 @@ (if (child-member child main-windows) (let* ((dy (/ rh len)) (pos (child-position child main-windows))) - (values (1+ rx) - (1+ (round (+ ry (* dy pos)))) - (- (round (* rw size)) 2) - (- (round dy) 2))) - (values (1+ (round (+ rx (* rw size)))) - (1+ ry) - (- (round (* rw (- 1 size))) 2) - (- rh 2))))))) + (values (adj-border-xy rx child) + (adj-border-xy (round (+ ry (* dy pos))) child) + (adj-border-wh (round (* rw size)) child) + (adj-border-wh (round dy) child))) + (values (adj-border-xy (round (+ rx (* rw size))) child) + (adj-border-xy ry child) + (adj-border-wh (round (* rw (- 1 size))) child) + (adj-border-wh rh child))))))) (defun set-main-window-left-layout () "Main window left: Main windows on the left. Others on the right." @@ -603,14 +617,14 @@ (if (child-member child main-windows) (let* ((dx (/ rw len)) (pos (child-position child main-windows))) - (values (1+ (round (+ rx (* dx pos)))) - (1+ ry) - (- (round dx) 2) - (- (round (* rh size)) 2))) - (values (1+ rx) - (1+ (round (+ ry (* rh size)))) - (- rw 2) - (- (round (* rh (- 1 size))) 2))))))) + (values (adj-border-xy (round (+ rx (* dx pos))) child) + (adj-border-xy ry child) + (adj-border-wh (round dx) child) + (adj-border-wh (round (* rh size)) child))) + (values (adj-border-xy rx child) + (adj-border-xy (round (+ ry (* rh size))) child) + (adj-border-wh rw child) + (adj-border-wh (round (* rh (- 1 size))) child))))))) (defun set-main-window-top-layout () "Main window top: Main windows on the top. Others on the bottom." @@ -630,14 +644,14 @@ (if (child-member child main-windows) (let* ((dx (/ rw len)) (pos (child-position child main-windows))) - (values (1+ (round (+ rx (* dx pos)))) - (1+ (round (+ ry (* rh (- 1 size))))) - (- (round dx) 2) - (- (round (* rh size)) 2))) - (values (1+ rx) - (1+ ry) - (- rw 2) - (- (round (* rh (- 1 size))) 2))))))) + (values (adj-border-xy (round (+ rx (* dx pos))) child) + (adj-border-xy (round (+ ry (* rh (- 1 size)))) child) + (adj-border-wh (round dx) child) + (adj-border-wh (round (* rh size)) child))) + (values (adj-border-xy rx child) + (adj-border-xy ry child) + (adj-border-wh rw child) + (adj-border-wh (round (* rh (- 1 size))) child))))))) (defun set-main-window-bottom-layout () "Main window bottom: Main windows on the bottom. Others on the top." Modified: clfswm/src/clfswm-placement.lisp ============================================================================== --- clfswm/src/clfswm-placement.lisp (original) +++ clfswm/src/clfswm-placement.lisp Wed Mar 9 17:16:51 2011 @@ -69,7 +69,7 @@ (defun top-right-placement (&optional (width 0) (height 0)) (declare (ignore height)) - (values (- (xlib:screen-width *screen*) width 1) + (values (- (xlib:screen-width *screen*) width (* *border-size* 2)) 0)) @@ -84,22 +84,22 @@ (truncate (/ (- (xlib:screen-height *screen*) height) 2)))) (defun middle-right-placement (&optional (width 0) (height 0)) - (values (- (xlib:screen-width *screen*) width 1) + (values (- (xlib:screen-width *screen*) width (* *border-size* 2)) (truncate (/ (- (xlib:screen-height *screen*) height) 2)))) (defun bottom-left-placement (&optional (width 0) (height 0)) (declare (ignore width)) (values 0 - (- (xlib:screen-height *screen*) height 1))) + (- (xlib:screen-height *screen*) height (* *border-size* 2)))) (defun bottom-middle-placement (&optional (width 0) (height 0)) (values (truncate (/ (- (xlib:screen-width *screen*) width) 2)) - (- (xlib:screen-height *screen*) height 1))) + (- (xlib:screen-height *screen*) height (* *border-size* 2)))) (defun bottom-right-placement (&optional (width 0) (height 0)) - (values (- (xlib:screen-width *screen*) width 1) - (- (xlib:screen-height *screen*) height 1))) + (values (- (xlib:screen-width *screen*) width (* *border-size* 2)) + (- (xlib:screen-height *screen*) height (* *border-size* 2)))) ;;; Modified: clfswm/src/clfswm-query.lisp ============================================================================== --- clfswm/src/clfswm-query.lisp (original) +++ clfswm/src/clfswm-query.lisp Wed Mar 9 17:16:51 2011 @@ -139,7 +139,7 @@ :width width :height height :background (get-color *query-background*) - :border-width 1 + :border-width *border-size* :border (get-color *query-border*) :colormap (xlib:screen-default-colormap *screen*) :event-mask '(:exposure :key-press)) Modified: clfswm/src/clfswm-second-mode.lisp ============================================================================== --- clfswm/src/clfswm-second-mode.lisp (original) +++ clfswm/src/clfswm-second-mode.lisp Wed Mar 9 17:16:51 2011 @@ -104,7 +104,7 @@ :x x :y y :width *sm-width* :height *sm-height* :background (get-color *sm-background-color*) - :border-width 1 + :border-width *border-size* :border (get-color *sm-border-color*) :colormap (xlib:screen-default-colormap *screen*) :event-mask '(:exposure)) Modified: clfswm/src/clfswm-util.lisp ============================================================================== --- clfswm/src/clfswm-util.lisp (original) +++ clfswm/src/clfswm-util.lisp Wed Mar 9 17:16:51 2011 @@ -106,8 +106,8 @@ (let ((name (query-string "Frame name")) (x (/ (query-number "Frame x in percent (%)") 100)) (y (/ (query-number "Frame y in percent (%)") 100)) - (w (/ (query-number "Frame width in percent (%)") 100)) - (h (/ (query-number "Frame height in percent (%)") 100))) + (w (/ (query-number "Frame width in percent (%)" 100) 100)) + (h (/ (query-number "Frame height in percent (%)" 100) 100))) (push (create-frame :name name :x x :y y :w w :h h) (frame-child *current-child*)))) (leave-second-mode)) @@ -293,10 +293,10 @@ (font (xlib:open-font *display* *identify-font-string*)) (window (xlib:create-window :parent *root* :x 0 :y 0 - :width (- (xlib:screen-width *screen*) 2) + :width (- (xlib:screen-width *screen*) (* *border-size* 2)) :height (* 5 (+ (xlib:max-char-ascent font) (xlib:max-char-descent font))) :background (get-color *identify-background*) - :border-width 1 + :border-width *border-size* :border (get-color *identify-border*) :colormap (xlib:screen-default-colormap *screen*) :event-mask '(:exposure))) @@ -1527,7 +1527,7 @@ :width width :height height :background (get-color *notify-window-background*) - :border-width 1 + :border-width *border-size* :border (get-color *notify-window-border*) :colormap (xlib:screen-default-colormap *screen*) :event-mask '(:exposure :key-press)) Modified: clfswm/src/config.lisp ============================================================================== --- clfswm/src/config.lisp (original) +++ clfswm/src/config.lisp Wed Mar 9 17:16:51 2011 @@ -37,7 +37,6 @@ 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") @@ -58,7 +57,9 @@ (defun get-fullscreen-size () "Return the size of root child (values rx ry rw rh) You can tweak this to what you want" - (values -2 -2 (+ (xlib:screen-width *screen*) 2) (+ (xlib:screen-height *screen*) 2))) + (values (- *border-size*) (- *border-size*) + (xlib:screen-width *screen*) + (xlib:screen-height *screen*))) ;;(values -1 -1 (xlib:screen-width *screen*) (xlib:screen-height *screen*))) ;; (values -1 -1 1024 768)) ;; (values 100 100 800 600)) Modified: clfswm/src/package.lisp ============================================================================== --- clfswm/src/package.lisp (original) +++ clfswm/src/package.lisp Wed Mar 9 17:16:51 2011 @@ -45,6 +45,12 @@ This variable may be useful to speed up some slow version of CLX. It is particulary useful with CLISP/MIT-CLX.") + +(defconfig *border-size* 1 nil + "Windows and frames border size") + + + (defparameter *modifier-alias* '((:alt :mod-1) (:alt-l :mod-1) (:numlock :mod-2) (:super_l :mod-4) From pbrochard at common-lisp.net Thu Mar 10 22:57:58 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Thu, 10 Mar 2011 17:57:58 -0500 Subject: [clfswm-cvs] r429 - in clfswm: . src Message-ID: Author: pbrochard Date: Thu Mar 10 17:57:58 2011 New Revision: 429 Log: src/clfswm-internal.lisp (show-all-children): Handle properly duplicated child in multipe frames. Modified: clfswm/ChangeLog clfswm/TODO clfswm/src/clfswm-internal.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Thu Mar 10 17:57:58 2011 @@ -1,3 +1,8 @@ +2011-03-10 Philippe Brochard + + * src/clfswm-internal.lisp (show-all-children): Handle properly + duplicated child in multipe frames. + 2011-03-09 Philippe Brochard * contrib/volume-mode.lisp (set-default-volume-keys): Add more Modified: clfswm/TODO ============================================================================== --- clfswm/TODO (original) +++ clfswm/TODO Thu Mar 10 17:57:58 2011 @@ -7,22 +7,12 @@ =============== Should handle these soon. +-> Nothing here yet. + FOR THE NEXT RELEASE ==================== -- Make frame/window border size variable. - -- Estimate the time to raise/lower a child in show-all-children and - see if there is a need for a rectangular optimization: - Result: map-window: 1.2E-5 sec. change stack order: 3.14E-4 sec. - => It maybe useful to optimize this part. - + Do not redisplay a child already displayed - Implementation note: build a list with all displayed children and there sizes - -> display a child only if it is not already displayed and it's not behind - a child already displayed (-> search in child list and return as soon as one is found) - - MAYBE ===== @@ -43,6 +33,9 @@ * up * down + Note: This is done by some applications like the surf web browser from suckless: + http://surf.suckless.org/ + Maybe this can be done with a compositing system: http://en.wikipedia.org/wiki/Compositing_window_manager http://ktown.kde.org/~fredrik/composite_howto.html Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Thu Mar 10 17:57:58 2011 @@ -573,11 +573,12 @@ (/= (xlib:drawable-y window) ny) (/= (xlib:drawable-width window) nw) (/= (xlib:drawable-height window) nh)))) - (setf (xlib:drawable-x window) nx - (xlib:drawable-y window) ny - (xlib:drawable-width window) nw - (xlib:drawable-height window) nh) - (xlib:display-finish-output *display*) + (when change + (setf (xlib:drawable-x window) nx + (xlib:drawable-y window) ny + (xlib:drawable-width window) nw + (xlib:drawable-height window) nh) + (xlib:display-finish-output *display*)) change)))) @@ -592,11 +593,12 @@ (/= (xlib:drawable-y window) ry) (/= (xlib:drawable-width window) rw) (/= (xlib:drawable-height window) rh)))) - (setf (xlib:drawable-x window) rx - (xlib:drawable-y window) ry - (xlib:drawable-width window) rw - (xlib:drawable-height window) rh) - (xlib:display-finish-output *display*) + (when change + (setf (xlib:drawable-x window) rx + (xlib:drawable-y window) ry + (xlib:drawable-width window) rw + (xlib:drawable-height window) rh) + (xlib:display-finish-output *display*)) change)))) (defmethod adapt-child-to-parent (child parent) @@ -695,22 +697,22 @@ (defgeneric select-child (child selected)) -(defmethod select-child ((frame frame) selected) - (when (and (frame-p frame) (frame-window frame)) - (setf (xlib:window-border (frame-window frame)) - (get-color (cond ((equal selected :maybe) *color-maybe-selected*) - ((equal selected nil) *color-unselected*) - (selected *color-selected*)))))) - -(defmethod select-child ((window xlib:window) selected) - (setf (xlib:window-border window) - (get-color (cond ((equal selected :maybe) *color-maybe-selected*) - ((equal selected nil) *color-unselected*) - (selected *color-selected*))))) - -(defmethod select-child (child selected) - (declare (ignore child selected)) - ()) +(labels ((get-selected-color (child selected-p) + (get-color (cond ((child-equal-p child *current-child*) *color-selected*) + (selected-p *color-maybe-selected*) + (t *color-unselected*))))) + (defmethod select-child ((frame frame) selected-p) + (when (and (frame-p frame) (frame-window frame)) + (setf (xlib:window-border (frame-window frame)) + (get-selected-color frame selected-p)))) + + (defmethod select-child ((window xlib:window) selected-p) + (setf (xlib:window-border window) + (get-selected-color window selected-p))) + + (defmethod select-child (child selected) + (declare (ignore child selected)) + ())) (defun select-current-frame (selected) (select-child *current-child* selected)) @@ -735,26 +737,40 @@ "Show all children from *current-root*. When from-root-from is true Display all children from root frame and hide those not in *current-root*" (let ((geometry-change nil) - (previous nil)) - (labels ((rec (child parent selected-p in-current-root) - (let ((child-current-root-p (child-equal-p child *current-root*))) - (unless (or in-current-root child-current-root-p) - (hide-child child)) - (when (or in-current-root child-current-root-p) - (when (adapt-child-to-parent child (if child-current-root-p nil parent)) - (setf geometry-change t)) - (select-child child (cond ((child-equal-p child *current-child*) t) - (selected-p :maybe) - (t nil)))) - (when (frame-p child) - (let ((selected-child (frame-selected-child child))) - (dolist (sub-child (frame-child child)) - (rec sub-child child - (and selected-p (child-equal-p sub-child selected-child)) - (or in-current-root child-current-root-p))))) - (when (or in-current-root child-current-root-p) - (show-child child parent previous)) - (setf previous child)))) + (previous nil) + (displayed-child nil)) + (labels ((in-displayed-list (child) + (member child displayed-child :test #'child-equal-p)) + + (set-geometry (child parent in-current-root child-current-root-p) + (if (or in-current-root child-current-root-p) + (when (adapt-child-to-parent child (if child-current-root-p nil parent)) + (setf geometry-change t)) + (hide-child child))) + + (recurse-on-frame-child (child in-current-root child-current-root-p selected-p) + (let ((selected-child (frame-selected-child child))) + (dolist (sub-child (frame-child child)) + (rec sub-child child + (and selected-p (child-equal-p sub-child selected-child)) + (or in-current-root child-current-root-p))))) + + (select-and-display (child parent selected-p) + (push child displayed-child) + (select-child child selected-p) + (show-child child parent previous) + (setf previous child)) + + (rec (child parent selected-p in-current-root) + (let ((child-current-root-p (child-equal-p child *current-root*))) + (unless (in-displayed-list child) + (set-geometry child parent in-current-root child-current-root-p)) + (when (frame-p child) + (recurse-on-frame-child child in-current-root child-current-root-p selected-p)) + (when (and (or in-current-root child-current-root-p) + (not (in-displayed-list child))) + (select-and-display child parent selected-p))))) + (rec (if from-root-from *root-frame* *current-root*) nil t (child-equal-p *current-root* *root-frame*)) (set-focus-to-current-child) @@ -862,6 +878,7 @@ (defun leave-frame () "Leave the selected frame - ie make its parent the root frame" + (hide-all *current-root*) (awhen (find-parent-frame *current-root*) (when (frame-p it) (setf *current-root* it))) From pbrochard at common-lisp.net Sat Mar 12 22:14:31 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 12 Mar 2011 17:14:31 -0500 Subject: [clfswm-cvs] r430 - in clfswm: . src Message-ID: Author: pbrochard Date: Sat Mar 12 17:14:31 2011 New Revision: 430 Log: clfswm.asd: Change compilation order to prevent undefined variables. src/clfswm-internal.lisp (show-child(frame)): Handle properly the show-root-frame-p parameter. src/clfswm-util.lisp (move-frame, resize-frame): Do not move or resize a frame when it's the current root. Modified: clfswm/ChangeLog clfswm/clfswm.asd clfswm/src/clfswm-internal.lisp clfswm/src/clfswm-util.lisp clfswm/src/package.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Sat Mar 12 17:14:31 2011 @@ -1,3 +1,16 @@ +2011-03-12 Philippe Brochard + + * clfswm.asd: Change compilation order to prevent undefined + variables. + + * src/clfswm-internal.lisp (show-child(frame)): Handle properly + the show-root-frame-p parameter. + +2011-03-11 Philippe Brochard + + * src/clfswm-util.lisp (move-frame, resize-frame): Do not move or + resize a frame when it's the current root. + 2011-03-10 Philippe Brochard * src/clfswm-internal.lisp (show-all-children): Handle properly Modified: clfswm/clfswm.asd ============================================================================== --- clfswm/clfswm.asd (original) +++ clfswm/clfswm.asd Sat Mar 12 17:14:31 2011 @@ -13,6 +13,8 @@ :components ((:module src :components ((:file "tools") + (:file "version" + :depends-on ("tools")) (:file "my-html" :depends-on ("tools")) (:file "package" @@ -41,8 +43,6 @@ (:file "clfswm" :depends-on ("xlib-util" "netwm-util" "clfswm-keys" "config" "clfswm-internal" "clfswm-circulate-mode" "tools")) - (:file "version" - :depends-on ("tools")) (:file "clfswm-second-mode" :depends-on ("package" "clfswm" "clfswm-internal" "clfswm-generic-mode" "clfswm-placement")) @@ -60,18 +60,19 @@ :depends-on ("package" "config" "xlib-util" "clfswm-keys" "clfswm-generic-mode" "clfswm-placement")) (:file "clfswm-util" - :depends-on ("clfswm" "keysyms" "clfswm-info" "clfswm-second-mode" "clfswm-query" "clfswm-menu" "clfswm-autodoc" "clfswm-corner")) + :depends-on ("clfswm" "keysyms" "clfswm-info" "clfswm-second-mode" "clfswm-query" + "clfswm-menu" "clfswm-autodoc" "clfswm-corner")) + (:file "clfswm-configuration" + :depends-on ("package" "config" "clfswm-internal" "clfswm-util" "clfswm-query" + "clfswm-menu")) + (:file "menu-def" + :depends-on ("clfswm-menu" "clfswm-configuration" "clfswm" "clfswm-util" "clfswm-info")) (:file "clfswm-layout" :depends-on ("package" "clfswm-internal" "clfswm-util" "clfswm-info" "menu-def")) (:file "clfswm-pack" :depends-on ("clfswm" "clfswm-util" "clfswm-second-mode")) (:file "clfswm-nw-hooks" :depends-on ("package" "clfswm-util" "clfswm-info" "clfswm-layout" "menu-def")) - (:file "clfswm-configuration" - :depends-on ("package" "config" "clfswm-internal" "clfswm-util" "clfswm-query" - "clfswm-menu")) - (:file "menu-def" - :depends-on ("clfswm-menu" "clfswm-configuration" "clfswm" "clfswm-util" "clfswm-info")) (:file "bindings" :depends-on ("clfswm" "clfswm-internal" "clfswm-util" "clfswm-menu")) (:file "bindings-second-mode" Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Sat Mar 12 17:14:31 2011 @@ -627,8 +627,9 @@ (defmethod show-child ((frame frame) parent previous) (declare (ignore parent)) (with-slots (window show-window-p) frame - (if show-window-p - (when (or *show-root-frame-p* (not (child-equal-p frame *current-root*))) + (if (and show-window-p + (or *show-root-frame-p* (not (child-equal-p frame *current-root*)))) + (progn (map-window window) (set-child-stack-order window previous) (display-frame-info frame)) Modified: clfswm/src/clfswm-util.lisp ============================================================================== --- clfswm/src/clfswm-util.lisp (original) +++ clfswm/src/clfswm-util.lisp Sat Mar 12 17:14:31 2011 @@ -532,11 +532,8 @@ - - - (defun move-frame (frame parent orig-x orig-y) - (when (and frame parent) + (when (and frame parent (not (child-equal-p frame *current-root*))) (hide-all-children frame) (with-slots (window) frame (move-window window orig-x orig-y #'display-frame-info (list frame)) @@ -546,7 +543,7 @@ (defun resize-frame (frame parent orig-x orig-y) - (when (and frame parent) + (when (and frame parent (not (child-equal-p frame *current-root*))) (hide-all-children frame) (with-slots (window) frame (resize-window window orig-x orig-y #'display-frame-info (list frame)) @@ -580,7 +577,7 @@ (unless (equal (type-of child) 'frame) (setf child (find-frame-window child *current-root*))) (setf parent (find-parent-frame child))))) - (when (equal (type-of child) 'frame) + (when (and (frame-p child) (not (child-equal-p child *current-root*))) (funcall mouse-fn child parent root-x root-y)) (when (and child parent (focus-all-children child parent Modified: clfswm/src/package.lisp ============================================================================== --- clfswm/src/package.lisp (original) +++ clfswm/src/package.lisp Sat Mar 12 17:14:31 2011 @@ -46,6 +46,10 @@ It is particulary useful with CLISP/MIT-CLX.") +(defconfig *show-root-frame-p* nil nil + "Show the root frame information or not") + + (defconfig *border-size* 1 nil "Windows and frames border size") @@ -157,8 +161,6 @@ (defparameter *current-child* nil "The current child with the focus") -(defparameter *show-root-frame-p* nil) - (defparameter *main-keys* nil) (defparameter *main-mouse* nil) From pbrochard at common-lisp.net Sat Mar 12 22:57:53 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 12 Mar 2011 17:57:53 -0500 Subject: [clfswm-cvs] r431 - in clfswm: . contrib contrib/server src Message-ID: Author: pbrochard Date: Sat Mar 12 17:57:52 2011 New Revision: 431 Log: Copyright date update Modified: clfswm/ChangeLog clfswm/contrib/cd-player.lisp clfswm/contrib/keyb_fr.lisp clfswm/contrib/mpd.lisp clfswm/contrib/osd.lisp clfswm/contrib/reboot-halt.lisp clfswm/contrib/server/clfswm-client.lisp clfswm/contrib/server/crypt.lisp clfswm/contrib/server/key.lisp clfswm/contrib/server/load.lisp clfswm/contrib/server/server.lisp clfswm/contrib/xmms.lisp clfswm/src/bindings-second-mode.lisp clfswm/src/bindings.lisp clfswm/src/clfswm-autodoc.lisp clfswm/src/clfswm-circulate-mode.lisp clfswm/src/clfswm-configuration.lisp clfswm/src/clfswm-corner.lisp clfswm/src/clfswm-expose-mode.lisp clfswm/src/clfswm-generic-mode.lisp clfswm/src/clfswm-info.lisp clfswm/src/clfswm-internal.lisp clfswm/src/clfswm-keys.lisp clfswm/src/clfswm-layout.lisp clfswm/src/clfswm-menu.lisp clfswm/src/clfswm-nw-hooks.lisp clfswm/src/clfswm-pack.lisp clfswm/src/clfswm-placement.lisp clfswm/src/clfswm-query.lisp clfswm/src/clfswm-second-mode.lisp clfswm/src/clfswm-util.lisp clfswm/src/clfswm.lisp clfswm/src/config.lisp clfswm/src/menu-def.lisp clfswm/src/my-html.lisp clfswm/src/netwm-util.lisp clfswm/src/package.lisp clfswm/src/tools.lisp clfswm/src/version.lisp clfswm/src/xlib-util.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Sat Mar 12 17:57:52 2011 @@ -1,5 +1,7 @@ 2011-03-12 Philippe Brochard + * src/menu-def.lisp: Menu update to prevent cursor keys clash. + * clfswm.asd: Change compilation order to prevent undefined variables. Modified: clfswm/contrib/cd-player.lisp ============================================================================== --- clfswm/contrib/cd-player.lisp (original) +++ clfswm/contrib/cd-player.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Music Player Daemon (MPD) interface ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2009 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/contrib/keyb_fr.lisp ============================================================================== --- clfswm/contrib/keyb_fr.lisp (original) +++ clfswm/contrib/keyb_fr.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Define some keybindings for an azerty french keyboard ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2009 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/contrib/mpd.lisp ============================================================================== --- clfswm/contrib/mpd.lisp (original) +++ clfswm/contrib/mpd.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Music Player Daemon (MPD) interface ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2009 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/contrib/osd.lisp ============================================================================== --- clfswm/contrib/osd.lisp (original) +++ clfswm/contrib/osd.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: OSD (On Screen Display) for presentations. ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/contrib/reboot-halt.lisp ============================================================================== --- clfswm/contrib/reboot-halt.lisp (original) +++ clfswm/contrib/reboot-halt.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Reboot and halt menu ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2009 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/contrib/server/clfswm-client.lisp ============================================================================== --- clfswm/contrib/server/clfswm-client.lisp (original) +++ clfswm/contrib/server/clfswm-client.lisp Sat Mar 12 17:57:52 2011 @@ -1,3 +1,37 @@ +;;; -------------------------------------------------------------------------- +;;; CLFSWM - FullScreen Window Manager +;;; +;;; -------------------------------------------------------------------------- +;;; Documentation: Client/server connection. +;;; The connection is crypted and you can only connect to the server with the +;;; same clfswm binary. +;;; -------------------------------------------------------------------------- +;;; +;;; (C) 2011 Philippe Brochard +;;; +;;; This program is free software; you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program; if not, write to the Free Software +;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +;;; +;;; -------------------------------------------------------------------------- +;;; Server protocole: +;;; Server -> Client: orig_key=a generated key crypted with *key* +;;; Client : build its new_key with orig_key+*key* +;;; Client -> Server: new_key+(md5 new_key) crypted with new_key +;;; Server -> Client: check if the keys match and then authenticate the client. +;;; Server <-> Client: All connections are crypted with new_key +;;; -------------------------------------------------------------------------- + (in-package :common-lisp-user) (defpackage :clfswm-client Modified: clfswm/contrib/server/crypt.lisp ============================================================================== --- clfswm/contrib/server/crypt.lisp (original) +++ clfswm/contrib/server/crypt.lisp Sat Mar 12 17:57:52 2011 @@ -1,3 +1,37 @@ +;;; -------------------------------------------------------------------------- +;;; CLFSWM - FullScreen Window Manager +;;; +;;; -------------------------------------------------------------------------- +;;; Documentation: Client/server connection. +;;; The connection is crypted and you can only connect to the server with the +;;; same clfswm binary. +;;; -------------------------------------------------------------------------- +;;; +;;; (C) 2011 Philippe Brochard +;;; +;;; This program is free software; you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program; if not, write to the Free Software +;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +;;; +;;; -------------------------------------------------------------------------- +;;; Server protocole: +;;; Server -> Client: orig_key=a generated key crypted with *key* +;;; Client : build its new_key with orig_key+*key* +;;; Client -> Server: new_key+(md5 new_key) crypted with new_key +;;; Server -> Client: check if the keys match and then authenticate the client. +;;; Server <-> Client: All connections are crypted with new_key +;;; -------------------------------------------------------------------------- + (in-package :common-lisp-user) (defpackage :crypt Modified: clfswm/contrib/server/key.lisp ============================================================================== --- clfswm/contrib/server/key.lisp (original) +++ clfswm/contrib/server/key.lisp Sat Mar 12 17:57:52 2011 @@ -1,3 +1,37 @@ +;;; -------------------------------------------------------------------------- +;;; CLFSWM - FullScreen Window Manager +;;; +;;; -------------------------------------------------------------------------- +;;; Documentation: Client/server connection. +;;; The connection is crypted and you can only connect to the server with the +;;; same clfswm binary. +;;; -------------------------------------------------------------------------- +;;; +;;; (C) 2011 Philippe Brochard +;;; +;;; This program is free software; you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program; if not, write to the Free Software +;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +;;; +;;; -------------------------------------------------------------------------- +;;; Server protocole: +;;; Server -> Client: orig_key=a generated key crypted with *key* +;;; Client : build its new_key with orig_key+*key* +;;; Client -> Server: new_key+(md5 new_key) crypted with new_key +;;; Server -> Client: check if the keys match and then authenticate the client. +;;; Server <-> Client: All connections are crypted with new_key +;;; -------------------------------------------------------------------------- + (in-package :crypt) (export '(load-new-key Modified: clfswm/contrib/server/load.lisp ============================================================================== --- clfswm/contrib/server/load.lisp (original) +++ clfswm/contrib/server/load.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: CLFSWM Client ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2005 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/contrib/server/server.lisp ============================================================================== --- clfswm/contrib/server/server.lisp (original) +++ clfswm/contrib/server/server.lisp Sat Mar 12 17:57:52 2011 @@ -7,7 +7,7 @@ ;;; same clfswm binary. ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2005 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/contrib/xmms.lisp ============================================================================== --- clfswm/contrib/xmms.lisp (original) +++ clfswm/contrib/xmms.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Music Player Daemon (MPD) interface ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2009 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/bindings-second-mode.lisp ============================================================================== --- clfswm/src/bindings-second-mode.lisp (original) +++ clfswm/src/bindings-second-mode.lisp Sat Mar 12 17:57:52 2011 @@ -7,7 +7,7 @@ ;;; Note: Mod-1 is the Alt or Meta key, Mod-2 is the Numlock key. ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/bindings.lisp ============================================================================== --- clfswm/src/bindings.lisp (original) +++ clfswm/src/bindings.lisp Sat Mar 12 17:57:52 2011 @@ -7,7 +7,7 @@ ;;; Note: Mod-1 is the Alt or Meta key, Mod-2 is the Numlock key. ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-autodoc.lisp ============================================================================== --- clfswm/src/clfswm-autodoc.lisp (original) +++ clfswm/src/clfswm-autodoc.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Auto documentation tools ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-circulate-mode.lisp ============================================================================== --- clfswm/src/clfswm-circulate-mode.lisp (original) +++ clfswm/src/clfswm-circulate-mode.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Main functions ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-configuration.lisp ============================================================================== --- clfswm/src/clfswm-configuration.lisp (original) +++ clfswm/src/clfswm-configuration.lisp Sat Mar 12 17:57:52 2011 @@ -6,7 +6,7 @@ ;;; ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-corner.lisp ============================================================================== --- clfswm/src/clfswm-corner.lisp (original) +++ clfswm/src/clfswm-corner.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Corner functions ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-expose-mode.lisp ============================================================================== --- clfswm/src/clfswm-expose-mode.lisp (original) +++ clfswm/src/clfswm-expose-mode.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Expose functions - An expose like. ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-generic-mode.lisp ============================================================================== --- clfswm/src/clfswm-generic-mode.lisp (original) +++ clfswm/src/clfswm-generic-mode.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Main functions ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-info.lisp ============================================================================== --- clfswm/src/clfswm-info.lisp (original) +++ clfswm/src/clfswm-info.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Info function (see the end of this file for user definition ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Main functions ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-keys.lisp ============================================================================== --- clfswm/src/clfswm-keys.lisp (original) +++ clfswm/src/clfswm-keys.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Keys functions definition ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-layout.lisp ============================================================================== --- clfswm/src/clfswm-layout.lisp (original) +++ clfswm/src/clfswm-layout.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Layout functions ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-menu.lisp ============================================================================== --- clfswm/src/clfswm-menu.lisp (original) +++ clfswm/src/clfswm-menu.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Menu functions ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-nw-hooks.lisp ============================================================================== --- clfswm/src/clfswm-nw-hooks.lisp (original) +++ clfswm/src/clfswm-nw-hooks.lisp Sat Mar 12 17:57:52 2011 @@ -8,7 +8,7 @@ ;;; mapped. ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-pack.lisp ============================================================================== --- clfswm/src/clfswm-pack.lisp (original) +++ clfswm/src/clfswm-pack.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Tile, pack and fill functions ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-placement.lisp ============================================================================== --- clfswm/src/clfswm-placement.lisp (original) +++ clfswm/src/clfswm-placement.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Placement functions ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-query.lisp ============================================================================== --- clfswm/src/clfswm-query.lisp (original) +++ clfswm/src/clfswm-query.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Query utility ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-second-mode.lisp ============================================================================== --- clfswm/src/clfswm-second-mode.lisp (original) +++ clfswm/src/clfswm-second-mode.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Second mode functions ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm-util.lisp ============================================================================== --- clfswm/src/clfswm-util.lisp (original) +++ clfswm/src/clfswm-util.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Utility ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/clfswm.lisp ============================================================================== --- clfswm/src/clfswm.lisp (original) +++ clfswm/src/clfswm.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Main functions ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/config.lisp ============================================================================== --- clfswm/src/config.lisp (original) +++ clfswm/src/config.lisp Sat Mar 12 17:57:52 2011 @@ -10,7 +10,7 @@ ;;; (you can do a 'grep CONFIG *.lisp' to see what you can configure) ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/menu-def.lisp ============================================================================== --- clfswm/src/menu-def.lisp (original) +++ clfswm/src/menu-def.lisp Sat Mar 12 17:57:52 2011 @@ -7,7 +7,7 @@ ;;; Note: Mod-1 is the Alt or Meta key, Mod-2 is the Numlock key. ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by @@ -107,35 +107,35 @@ (add-sub-menu 'frame-movement-menu "p" 'frame-pack-menu "Frame pack menu") (add-sub-menu 'frame-movement-menu "f" 'frame-fill-menu "Frame fill menu") -(add-sub-menu 'frame-movement-menu "r" 'frame-resize-menu "Frame resize menu") +(add-sub-menu 'frame-movement-menu "z" 'frame-resize-menu "Frame resize menu") (add-menu-key 'frame-movement-menu "c" 'center-current-frame) -(add-menu-key 'frame-movement-menu "Right" 'with-movement-select-next-brother) -(add-menu-key 'frame-movement-menu "Left" 'with-movement-select-previous-brother) -(add-menu-key 'frame-movement-menu "Up" 'with-movement-select-next-level) -(add-menu-key 'frame-movement-menu "Down" 'with-movement-select-previous-level) -(add-menu-key 'frame-movement-menu "Tab" 'with-movement-select-next-child) - - -(add-menu-key 'frame-pack-menu "Up" 'current-frame-pack-up) -(add-menu-key 'frame-pack-menu "Down" 'current-frame-pack-down) -(add-menu-key 'frame-pack-menu "Left" 'current-frame-pack-left) -(add-menu-key 'frame-pack-menu "Right" 'current-frame-pack-right) - - -(add-menu-key 'frame-fill-menu "Up" 'current-frame-fill-up) -(add-menu-key 'frame-fill-menu "Down" 'current-frame-fill-down) -(add-menu-key 'frame-fill-menu "Left" 'current-frame-fill-left) -(add-menu-key 'frame-fill-menu "Right" 'current-frame-fill-right) -(add-menu-key 'frame-fill-menu #\a 'current-frame-fill-all-dir) -(add-menu-key 'frame-fill-menu #\v 'current-frame-fill-vertical) -(add-menu-key 'frame-fill-menu #\h 'current-frame-fill-horizontal) - -(add-menu-key 'frame-resize-menu "Up" 'current-frame-resize-up) -(add-menu-key 'frame-resize-menu "Down" 'current-frame-resize-down) -(add-menu-key 'frame-resize-menu "Left" 'current-frame-resize-left) -(add-menu-key 'frame-resize-menu "Right" 'current-frame-resize-right) -(add-menu-key 'frame-resize-menu #\d 'current-frame-resize-all-dir) -(add-menu-key 'frame-resize-menu #\a 'current-frame-resize-all-dir-minimal) +(add-menu-key 'frame-movement-menu "r" 'with-movement-select-next-brother) +(add-menu-key 'frame-movement-menu "l" 'with-movement-select-previous-brother) +(add-menu-key 'frame-movement-menu "u" 'with-movement-select-next-level) +(add-menu-key 'frame-movement-menu "d" 'with-movement-select-previous-level) +(add-menu-key 'frame-movement-menu "t" 'with-movement-select-next-child) + + +(add-menu-key 'frame-pack-menu "u" 'current-frame-pack-up) +(add-menu-key 'frame-pack-menu "d" 'current-frame-pack-down) +(add-menu-key 'frame-pack-menu "l" 'current-frame-pack-left) +(add-menu-key 'frame-pack-menu "r" 'current-frame-pack-right) + + +(add-menu-key 'frame-fill-menu "u" 'current-frame-fill-up) +(add-menu-key 'frame-fill-menu "d" 'current-frame-fill-down) +(add-menu-key 'frame-fill-menu "l" 'current-frame-fill-left) +(add-menu-key 'frame-fill-menu "r" 'current-frame-fill-right) +(add-menu-key 'frame-fill-menu "a" 'current-frame-fill-all-dir) +(add-menu-key 'frame-fill-menu "v" 'current-frame-fill-vertical) +(add-menu-key 'frame-fill-menu "h" 'current-frame-fill-horizontal) + +(add-menu-key 'frame-resize-menu "u" 'current-frame-resize-up) +(add-menu-key 'frame-resize-menu "d" 'current-frame-resize-down) +(add-menu-key 'frame-resize-menu "l" 'current-frame-resize-left) +(add-menu-key 'frame-resize-menu "r" 'current-frame-resize-right) +(add-menu-key 'frame-resize-menu "a" 'current-frame-resize-all-dir) +(add-menu-key 'frame-resize-menu "m" 'current-frame-resize-all-dir-minimal) (add-menu-comment 'frame-focus-policy "-=- For the current frame -=-") Modified: clfswm/src/my-html.lisp ============================================================================== --- clfswm/src/my-html.lisp (original) +++ clfswm/src/my-html.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Html generator helper ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/netwm-util.lisp ============================================================================== --- clfswm/src/netwm-util.lisp (original) +++ clfswm/src/netwm-util.lisp Sat Mar 12 17:57:52 2011 @@ -6,7 +6,7 @@ ;;; http://freedesktop.org/wiki/Specifications_2fwm_2dspec ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/package.lisp ============================================================================== --- clfswm/src/package.lisp (original) +++ clfswm/src/package.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Package definition ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/tools.lisp ============================================================================== --- clfswm/src/tools.lisp (original) +++ clfswm/src/tools.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: General tools ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by Modified: clfswm/src/version.lisp ============================================================================== --- clfswm/src/version.lisp (original) +++ clfswm/src/version.lisp Sat Mar 12 17:57:52 2011 @@ -1,5 +1,5 @@ -;; Copyright (C) 2010 Xavier Maillard -;; Copyright (C) 2010 Martin Bishop +;; Copyright (C) 2011 Xavier Maillard +;; Copyright (C) 2011 Martin Bishop ;; ;; Borrowed from Stumpwm ;; This file is part of clfswm. @@ -33,4 +33,4 @@ (in-package :version) -(defparameter *version* #.(concatenate 'string "Version: 11.10 built " (date-string))) +(defparameter *version* #.(concatenate 'string "Version: 11.03 built " (date-string))) Modified: clfswm/src/xlib-util.lisp ============================================================================== --- clfswm/src/xlib-util.lisp (original) +++ clfswm/src/xlib-util.lisp Sat Mar 12 17:57:52 2011 @@ -5,7 +5,7 @@ ;;; Documentation: Utility functions ;;; -------------------------------------------------------------------------- ;;; -;;; (C) 2010 Philippe Brochard +;;; (C) 2011 Philippe Brochard ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by From pbrochard at common-lisp.net Sat Mar 12 23:01:10 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 12 Mar 2011 18:01:10 -0500 Subject: [clfswm-cvs] r432 - clfswm/doc Message-ID: Author: pbrochard Date: Sat Mar 12 18:01:10 2011 New Revision: 432 Log: Documentation update Modified: clfswm/doc/menu.html clfswm/doc/menu.txt Modified: clfswm/doc/menu.html ============================================================================== --- clfswm/doc/menu.html (original) +++ clfswm/doc/menu.html Sat Mar 12 18:01:10 2011 @@ -193,7 +193,7 @@ d: Krusader

- e: File Manager + e: File Manager - Configure the Thunar file manager

f: ROX Filer - ROX Filer @@ -227,16 +227,22 @@ f: Firefox

- g: Konqueror + g: IcedTea Web Start - IcedTea Application Launcher

- h: rekonq + h: Konqueror

- i: Midori - Lightweight web browser + i: rekonq

- j: Opera - A fast and secure web browser and Internet suite + j: Links +

+

+ k: Midori - Lightweight web browser +

+

+ l: Opera - A fast and secure web browser and Internet suite


@@ -342,6 +348,9 @@ |: Audio CD Extractor - Copy music from your CDs

+ |: Movie Player - Play movies and songs +

+

|: VLC media player - Read, capture, broadcast your multimedia streams

@@ -400,6 +409,9 @@

c: OpenShot Video Editor - Create and edit videos and movies

+

+ d: Movie Player - Play movies and songs +


Development @@ -438,46 +450,52 @@ k: Java VisualVM

- l: Akonadi Console - Akonadi Management and Debugging Console + l: OpenJDK Monitoring & Management Console - Monitor and manage OpenJDK applications +

+

+ m: Akonadi Console - Akonadi Management and Debugging Console

- m: Cervisia + n: Cervisia

- n: KAppTemplate + o: KAppTemplate

- o: KBugBuster + p: KBugBuster

- p: KCachegrind - Visualization of Performance Profiling Data + q: KCachegrind - Visualization of Performance Profiling Data

- q: KDE Source Builder - Builds the KDE Platform and associated software from its source code. A command-line only program. + r: KDE Source Builder - Builds the KDE Platform and associated software from its source code. A command-line only program.

- r: KImageMapEditor + s: KImageMapEditor

- s: KLinkStatus + t: KLinkStatus

- t: Kompare + u: Kompare

- u: KUIViewer + v: KUIViewer

- v: Lokalize + w: Lokalize

- w: Umbrello + x: Umbrello

- x: KiCad - Design a printed circuit board. + y: KiCad - Design a printed circuit board.

- y: Qt Linguist - Add translations to Qt applications + z: Qt Linguist - Add translations to Qt applications +

+

+ |: OpenJDK Policy Tool - Manage OpenJDK policy files


@@ -511,61 +529,61 @@ i: KAlgebra - Math Expression Solver and Plotter

- j: Kalzium - KDE Periodic Table of Elements + j: KAlgebra Mobile - Pocket Math Expression Solver and Plotter

- k: Kanagram - KDE Letter Order Game + k: Kalzium - KDE Periodic Table of Elements

- l: KBruch - Practice exercises with fractions + l: Kanagram - KDE Letter Order Game

- m: KGeography - A Geography Learning Program + m: KBruch - Practice exercises with fractions

- n: KHangMan - KDE Hangman Game + n: KGeography - A Geography Learning Program

- o: Kig - Explore Geometric Constructions + o: KHangMan - KDE Hangman Game

- p: Kiten - Japanese Reference and Study Tool + p: Kig - Explore Geometric Constructions

- q: KLettres - a KDE program to learn the alphabet + q: Kiten - Japanese Reference and Study Tool

- r: KmPlot - Function Plotter + r: KLettres - a KDE program to learn the alphabet

- s: KStars - Desktop Planetarium + s: KmPlot - Function Plotter

- t: KTouch + t: KStars - Desktop Planetarium

- u: KTurtle + u: KTouch

- v: KWordQuiz - A flashcard and vocabulary learning program + v: KTurtle

- w: Marble + w: KWordQuiz - A flashcard and vocabulary learning program

- x: Parley + x: Marble

- y: Rocs - Graph Theory Tool for Professors and Students. + y: Parley

- z: Step - Simulate physics experiments + z: Rocs - Graph Theory Tool for Professors and Students.

- |: Oregano electrical engineering tool - Schematic capture and simulation of electronic circuits + |: Step - Simulate physics experiments

- |: Pyromaths - G?n?rateur d'exercices de maths + |: Oregano electrical engineering tool - Schematic capture and simulation of electronic circuits

|: QtOctave - GUI for GNU Octave @@ -587,73 +605,82 @@ c: AssaultCube

- d: DreamChess + d: BomberClone - Atomic Bomberman clone +

+

+ e: Chromium B.S.U. - Scrolling space shooter +

+

+ f: DreamChess +

+

+ g: DROD - Simple puzzle game.

- e: DROD - Simple puzzle game. + h: eBoard

- f: eBoard + i: Einstein - Einstein puzzle

- g: Einstein - Einstein puzzle + j: Flobopuyo - A remake of the famous PuyoPuyo

- h: Flobopuyo - A remake of the famous PuyoPuyo + k: Foobillard - A 3D billiards game using OpenGL

- i: Foobillard - A 3D billiards game using OpenGL + l: Frasse - Frasse and the Peas of Kejick adventure game

- j: Frasse - Frasse and the Peas of Kejick adventure game + m: Frogatto - Old-school 2D platformer

- k: Frogatto - Old-school 2D platformer + n: gbrainy - Play games that challenge your logic, verbal, calculation and memory abilities

- l: GGoban - Play go and review game records + o: GGoban - Play go and review game records

- m: glChess + p: glChess

- n: Hedgewars - Worms style game + q: Hedgewars - Worms style game

- o: KGoldrunner - A game of action and puzzle-solving + r: KGoldrunner - A game of action and puzzle-solving

- p: AMOR + s: AMOR

- q: Blinken - A memory enhancement game + t: Blinken - A memory enhancement game

- r: Bomber + u: Bomber

- s: Bovo + v: Bovo

- t: Granatier + w: Granatier

- u: Kanagram - KDE Letter Order Game + x: Kanagram - KDE Letter Order Game

- v: Kapman - Eat pills escaping ghosts + y: Kapman - Eat pills escaping ghosts

- w: KAtomic + z: KAtomic

- x: KBattleship + |: Naval Battle

- y: KBlackBox + |: KBlackBox

- z: KBlocks + |: KBlocks

|: KBounce @@ -686,6 +713,9 @@ |: KJumpingCube

+ |: Klickety +

+

|: Kolor Lines

@@ -737,10 +767,7 @@ |: KSudoku - KSudoku, Sudoku game & more for KDE

- |: KTeaTime -

-

- |: KTron + |: KSnakeDuel

|: Potato Guy @@ -758,7 +785,7 @@ |: KoboDeluxe - An excellent 2D Shootem-up game.

- |: ManiaDrive - An arcade car game on acrobatic tracks, with a quick and nervous gameplay + |: Maniadrive - An arcade car game on acrobatic tracks, with a quick and nervous gameplay

|: mechtower(failsafe) @@ -828,52 +855,52 @@ c: Document Viewer - View multi-page documents

- d: Geeqie - View and manage images + d: Gcolor2 - Choose colours from palette or screen

- e: PostScript Viewer - View PostScript files + e: Geeqie - View and manage images

- f: GNU Image Manipulation Program - Create images and edit photographs + f: PostScript Viewer - View PostScript files

- g: Image Viewer + g: GNU Image Manipulation Program - Create images and edit photographs

- h: GQview - View and manage images + h: Image Viewer

- i: gThumb - View and organize your images + i: GQview - View and manage images

j: gThumb - View and organize your images

- k: GV + k: gThumb - View and organize your images

- l: Inkscape - Create and edit Scalable Vector Graphics images + l: GV

- m: digiKam + m: Inkscape - Create and edit Scalable Vector Graphics images

- n: Gwenview - A simple image viewer + n: digiKam

- o: KColorChooser + o: Gwenview - A simple image viewer

- p: KolourPaint + p: KColorChooser

- q: KRuler + q: KolourPaint

- r: KSnapshot + r: KRuler

- s: Okular + s: KSnapshot

t: Okular @@ -921,6 +948,9 @@ |: Okular

+ |: Okular +

+

|: showFoto - Manage your photographs like a professional with the power of open source

@@ -967,58 +997,64 @@ h: Epiphany - Browse the web

- i: Minefield - Safe Mode + i: Mail Reader +

+

+ j: Web Browser

- j: Minefield + k: Minefield - Safe Mode

- k: Firefox - Safe Mode + l: Minefield

- l: Firefox + m: Firefox - Safe Mode

- m: Gnaughty - Porn downloader + n: Firefox

- n: Gwget Download Manager - Download files from the Internet + o: Gnaughty - Porn downloader

- o: Iron Web Browser - Browse the World Wide Web + p: Gwget Download Manager - Download files from the Internet

- p: JAP - JAP makes it possible to surf the internet anonymously and unobservably. + q: JAP - JAP makes it possible to surf the internet anonymously and unobservably.

- q: Java Web Start + r: Java Web Start

- r: KMail + s: IcedTea Web Start - IcedTea Application Launcher

- s: KNode + t: KMail

- t: KPPP + u: KNode

- u: Akregator - A Feed Reader for KDE + v: KPPP

- v: Blogilo + w: Akregator - A Feed Reader for KDE

- w: KGet + x: Blogilo

- x: KNetAttach + y: KGet

- y: Konqueror + z: KNetAttach

- z: Kopete - Instant Messenger + |: Konqueror +

+

+ |: Kopete - Instant Messenger

|: KPPPLogview @@ -1033,6 +1069,9 @@ |: rekonq

+ |: Links +

+

|: Midori - Lightweight web browser

@@ -1094,67 +1133,73 @@ e: Evolution - Manage your email, contacts and schedule

- f: Gnumeric - Calculation, Analysis, and Visualization of Information + f: FreeMind

- g: GV + g: Orage Globaltime - Show clocks from different countries

- h: LibreOffice Impress + h: Gnumeric - Calculation, Analysis, and Visualization of Information

- i: Kontact + i: GV

- j: KAddressBook + j: LibreOffice Impress

- k: KOrganizer - Calendar and Scheduling Program + k: Kontact

- l: KTimeTracker + l: KAddressBook

- m: KWord - Write text documents + m: KOrganizer - Calendar and Scheduling Program

- n: Lokalize + n: KTimeTracker

- o: Okular + o: KWord - Write text documents

- p: LibreOffice 3.3 Math + p: Lokalize

- q: LibreOffice 3.3 Printer Administration + q: Okular

- r: LibreOffice 3.3 + r: LibreOffice 3.3 Math

- s: LibreOffice 3.3 Writer + s: LibreOffice 3.3 Printer Administration

- t: Lyx - Latex WYSIWYM Editor + t: LibreOffice 3.3

- u: LibreOffice Extension Manager + u: LibreOffice 3.3 Writer

- v: OOo4Kids 1.1 Calc + v: Lyx - Latex WYSIWYM Editor

- w: OOo4Kids 1.1 Draw + w: LibreOffice Extension Manager

- x: OOo4Kids 1.1 Impress + x: OOo4Kids 1.1 Calc

- y: OOo4Kids 1.1 Math + y: OOo4Kids 1.1 Draw

- z: OOo4Kids 1.1 + z: OOo4Kids 1.1 Impress +

+

+ |: OOo4Kids 1.1 Math +

+

+ |: OOo4Kids 1.1

|: OOo4Kids 1.1 Printer Administration @@ -1169,11 +1214,14 @@ |: LibreOffice

- |: Orage - Desktop calendar + |: Orage Calendar - Desktop calendar

|: Xpdf - Views Adobe PDF (acrobat) files

+

+ |: Zathura - A minimalistic PDF viewer +


Settings @@ -1269,13 +1317,16 @@ |: Opera Widget Manager

+ |: Panel +

+

|: Qt Config - Configure Qt behavior, styles, fonts

|: Startup Applications - Choose what applications to start when you log in

- |: File Manager + |: File Manager - Configure the Thunar file manager

|: Startup Disk Creator - Create a startup disk using a CD or disc image @@ -1299,7 +1350,7 @@ |: Session and Startup - Customize desktop startup and splash screen

- |: Xfce 4 Settings Manager - Graphical Settings Manager for Xfce 4 + |: Settings Manager - Graphical Settings Manager for Xfce 4

|: Appearance - Customize the look of your desktop @@ -1314,15 +1365,12 @@ |: Workspaces - Set number and names of workspaces

- |: Xfce 4 Calendar Settings - Settings for the Xfce 4 Calendar Application + |: Orage preferences - Settings for the Xfce 4 Calendar Application (Orage)

|: Accessibility - Improve keyboard and mouse accessibility

- |: Panel - Customize the panel settings -

-

|: Settings Editor - Graphical settings editor for Xfconf

@@ -1336,7 +1384,7 @@ System

- a: Terminal + a: Terminal - Terminal Emulator

b: Bulk Rename - Rename Multiple Files @@ -1354,64 +1402,79 @@ f: CD/DVD Creator - Create CDs and DVDs

- g: Manage Printing + g: Cairo-Dock (no OpenGL) - A light and eye-candy dock and desklets for your desktop. +

+

+ h: GLX-Dock (Cairo-Dock with OpenGL) - Cairo-Dock with OpenGL (hardware acceleration) +

+

+ i: Manage Printing +

+

+ j: Configuration Editor - Directly edit your entire configuration database +

+

+ k: System Monitor +

+

+ l: GParted - Create, reorganize, and delete partitions

- h: System Monitor + m: Dolphin

- i: GParted - Create, reorganize, and delete partitions + n: K3b - Disk writing program

- j: Dolphin + o: KDiskFree

- k: KDiskFree + p: Konqueror

- l: Konqueror + q: Konqueror

- m: Konqueror + r: Konqueror

- n: Konqueror + s: Konqueror

- o: Konqueror + t: KInfoCenter

- p: KInfoCenter + u: File Manager - Super User Mode

- q: File Manager - Super User Mode + v: Konsole

- r: Konsole + w: KRandRTray - A panel applet for resizing and reorientating X screens.

- s: KRandRTray - A panel applet for resizing and reorientating X screens. + x: Krfb

- t: Krfb + y: Krusader - root-mode

- u: Krusader - root-mode + z: System Monitor

- v: System Monitor + |: KSystemLog

- w: KSystemLog + |: KUser

- x: KUser + |: KWalletManager

- y: KWalletManager + |: KwikDisk

- z: KwikDisk + |: Nepomuk Backup

|: Yakuake @@ -1444,6 +1507,9 @@ |: Wireshark - Network traffic analyzer

+ |: Log Out +

+

|: Xfe - A lightweight file manager for X Window

@@ -1454,7 +1520,7 @@ Utility

- a: Terminal + a: Terminal - Terminal Emulator

b: Bulk Rename - Rename Multiple Files @@ -1472,64 +1538,79 @@ f: dosbox Emulator - An emulator to run old DOS games

- g: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password + g: File Manager - Configure the Thunar file manager +

+

+ h: Terminal Emulator

- h: About GNOME - Learn more about GNOME + i: gEDA Attribute Editor - Manipulate component attributes with gattrib

- i: Panel - Customize the panel settings + j: gEDA Schematic Editor - Create and edit electrical schematics and symbols with gschem

- j: Theme Installer - Installs themes packages for various parts of the desktop + k: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password

- k: Image Viewer + l: Orage Globaltime - Show clocks from different countries

- l: GSpiceUI - A GUI to various freely available Spice electronic circuit simulators + m: About GNOME - Learn more about GNOME

- m: Character Map - Insert special characters into documents + n: Panel

- n: gVim - GTK2 enhanced vim text editor + o: Theme Installer - Installs themes packages for various parts of the desktop

- o: HP Device Manager - View device status, ink levels and perform maintenance. + p: Image Viewer

- p: K3DSurf - Visualize and manipulate Mathematical models in three, four, five, and six dimensions + q: GSpiceUI - A GUI to various freely available Spice electronic circuit simulators

- q: Help - Get help with GNOME + r: Character Map - Insert special characters into documents

- r: Home + s: gVim - GTK2 enhanced vim text editor

- s: KCharSelect + t: HP Device Manager - View device status, ink levels and perform maintenance.

- t: KFloppy + u: K3DSurf - Visualize and manipulate Mathematical models in three, four, five, and six dimensions

- u: KJots + v: Help - Get help with GNOME

- v: Akonaditray + w: Home

- w: Ark + x: KCharSelect

- x: KDE Groupware Wizard + y: KFloppy

- y: KAlarm + z: KJots

- z: Kate + |: Akonaditray +

+

+ |: Ark +

+

+ |: KDE Groupware Wizard +

+

+ |: KAlarm +

+

+ |: Kate

|: KCalc @@ -1574,6 +1655,9 @@ |: Krusader

+ |: KTeaTime +

+

|: Snippets datafile editor

@@ -1616,7 +1700,7 @@ |: Network - Browse bookmarked and local network locations

- |: File Manager + |: File Manager - Configure the Thunar file manager

|: PDF Editor @@ -1640,24 +1724,9 @@ |: Application Finder - Find and launch applications installed on your system

- |: File Manager -

-

|: Help - Get help with GNOME

- |: Log Out -

-

- |: Run Program... -

-

- |: Terminal -

-

- |: Web Browser -

-

|: Xfi - A simple image viewer for Xfe

@@ -1670,6 +1739,9 @@ |: Xfce 4 Print Dialog - Print a file and allow you to set up its layout

+ |: Run Program... +

+

|: Xfv - A simple text viewer for Xfe

@@ -1682,6 +1754,9 @@ |: Help - Get help with GNOME

+ |: Zhu3D - With Zhu3D, you can view, animate, and solve up to three functions in 3D-space in an interactive manner +

+

|: KDE Resources - Configure KDE Resources


@@ -1689,7 +1764,7 @@ Terminalemulator

- a: Terminal + a: Terminal - Terminal Emulator

b: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password @@ -2615,57 +2690,57 @@ f: < Frame fill menu >

- r: < Frame resize menu > + z: < Frame resize menu >

c: Center the current frame

- Right: Select the next brother frame + r: Select the next brother frame

- Left: Select the previous brother frame + l: Select the previous brother frame

- Up: Select the next level + u: Select the next level

- Down: Select the previous levelframe + d: Select the previous levelframe

- Tab: Select the next child + t: Select the next child


Frame-Pack-Menu

- Up: Pack the current frame up + u: Pack the current frame up

- Down: Pack the current frame down + d: Pack the current frame down

- Left: Pack the current frame left + l: Pack the current frame left

- Right: Pack the current frame right + r: Pack the current frame right


Frame-Fill-Menu

- Up: Fill the current frame up + u: Fill the current frame up

- Down: Fill the current frame down + d: Fill the current frame down

- Left: Fill the current frame left + l: Fill the current frame left

- Right: Fill the current frame right + r: Fill the current frame right

a: Fill the current frame in all directions @@ -2681,22 +2756,22 @@ Frame-Resize-Menu

- Up: Resize the current frame up to its half height + u: Resize the current frame up to its half height

- Down: Resize the current frame down to its half height + d: Resize the current frame down to its half height

- Left: Resize the current frame left to its half width + l: Resize the current frame left to its half width

- Right: Resize the current frame right to its half width + r: Resize the current frame right to its half width

- d: Resize down the current frame + a: Resize down the current frame

- a: Resize down the current frame to its minimal size + m: Resize down the current frame to its minimal size


@@ -2926,56 +3001,56 @@ Configuration-Menu

- a: < Notify Window group > + a: < Notify Window Group >

- b: < Notify Window mode group > + b: < Menu Group >

- c: < Expose mode group > + c: < Expose Mode Group >

- d: < Hook group > + d: < Circulate Mode Group >

- e: < Main mode group > + e: < Info Mode Group >

- f: < Frame colors group > + f: < Query String Group >

- g: < Identify key group > + g: < Identify Key Group >

- h: < Corner group > + h: < Second Mode Group >

- i: < Circulate mode group > + i: < Frame Colors Group >

- j: < Query string group > + j: < Corner Group >

- k: < Placement group > + k: < Placement Group >

- l: < Miscellaneous group > + l: < Hook Group >

- m: < Info mode group > + m: < Main Mode Group >

- n: < Second mode group > + n: < Miscellaneous Group >

- o: < Menu group > + F2: Save all configuration variables in clfswmrc

- F2: Save all configuration variables in clfswmrc + F3: Reset all configuration variables to there default values


- Conf-Notify-Window-Group + Conf-Notify-Window

a: Configure NOTIFY-WINDOW-DELAY @@ -2989,328 +3064,336 @@

d: Configure NOTIFY-WINDOW-BACKGROUND

-
-

- Conf-Notify-Window-Mode-Group -

- a: Configure NOTIFY-WINDOW-FONT-STRING + e: Configure NOTIFY-WINDOW-FONT-STRING


- Conf-Expose-Mode-Group + Conf-Menu

- a: Configure EXPOSE-FOREGROUND -

-

- b: Configure EXPOSE-SHOW-WINDOW-TITLE + a: Configure XDG-SECTION-LIST

- c: Configure EXPOSE-VALID-ON-KEY + b: Configure MENU-COLOR-MENU-KEY

- d: Configure EXPOSE-BORDER + c: Configure MENU-COLOR-KEY

- e: Configure EXPOSE-FONT-STRING + d: Configure MENU-COLOR-COMMENT

- f: Configure EXPOSE-BACKGROUND + e: Configure MENU-COLOR-SUBMENU


- Conf-Hook-Group + Conf-Expose-Mode

- a: Configure INIT-HOOK + a: Configure EXPOSE-SHOW-WINDOW-TITLE

- b: Configure DEFAULT-NW-HOOK + b: Configure EXPOSE-VALID-ON-KEY

- c: Configure MAIN-ENTRANCE-HOOK + c: Configure EXPOSE-BORDER

- d: Configure LOOP-HOOK + d: Configure EXPOSE-FOREGROUND

- e: Configure BINDING-HOOK + e: Configure EXPOSE-BACKGROUND

-
-

- Conf-Main-Mode-Group -

- a: Configure COLOR-UNSELECTED -

-

- b: Configure COLOR-SELECTED -

-

- c: Configure COLOR-MAYBE-SELECTED + f: Configure EXPOSE-FONT-STRING


- Conf-Frame-Colors-Group + Conf-Circulate-Mode

- a: Configure FRAME-FOREGROUND-ROOT -

-

- b: Configure FRAME-FOREGROUND + a: Configure CIRCULATE-TEXT-LIMITE

- c: Configure FRAME-FOREGROUND-HIDDEN + b: Configure CIRCULATE-HEIGHT

- d: Configure FRAME-BACKGROUND + c: Configure CIRCULATE-WIDTH

-
-

- Conf-Identify-Key-Group -

- a: Configure IDENTIFY-FOREGROUND + d: Configure CIRCULATE-BORDER

- b: Configure IDENTIFY-FONT-STRING + e: Configure CIRCULATE-FOREGROUND

- c: Configure IDENTIFY-BORDER + f: Configure CIRCULATE-BACKGROUND

- d: Configure IDENTIFY-BACKGROUND + g: Configure CIRCULATE-FONT-STRING


- Conf-Corner-Group + Conf-Info-Mode

- a: Configure CORNER-MAIN-MODE-LEFT-BUTTON + a: Configure INFO-COLOR-SECOND

- b: Configure CORNER-SECOND-MODE-MIDDLE-BUTTON + b: Configure INFO-COLOR-FIRST

- c: Configure CORNER-SECOND-MODE-LEFT-BUTTON + c: Configure INFO-COLOR-UNDERLINE

- d: Configure CORNER-MAIN-MODE-RIGHT-BUTTON + d: Configure INFO-COLOR-TITLE

- e: Configure CORNER-SECOND-MODE-RIGHT-BUTTON + e: Configure INFO-CLICK-TO-SELECT

- f: Configure CORNER-SIZE + f: Configure INFO-FONT-STRING

- g: Configure CLFSWM-TERMINAL-CMD + g: Configure INFO-SELECTED-BACKGROUND

- h: Configure VIRTUAL-KEYBOARD-CMD + h: Configure INFO-LINE-CURSOR

- i: Configure CORNER-MAIN-MODE-MIDDLE-BUTTON + i: Configure INFO-BORDER

- j: Configure CLFSWM-TERMINAL-NAME + j: Configure INFO-FOREGROUND +

+

+ k: Configure INFO-BACKGROUND


- Conf-Circulate-Mode-Group + Conf-Query-String

- a: Configure CIRCULATE-BORDER + a: Configure QUERY-BORDER

- b: Configure CIRCULATE-WIDTH + b: Configure QUERY-PARENT-ERROR-COLOR

- c: Configure CIRCULATE-HEIGHT + c: Configure QUERY-PARENT-COLOR

- d: Configure CIRCULATE-TEXT-LIMITE + d: Configure QUERY-CURSOR-COLOR

- e: Configure CIRCULATE-FONT-STRING + e: Configure QUERY-FOREGROUND

- f: Configure CIRCULATE-BACKGROUND + f: Configure QUERY-MESSAGE-COLOR +

+

+ g: Configure QUERY-BACKGROUND

- g: Configure CIRCULATE-FOREGROUND + h: Configure QUERY-FONT-STRING


- Conf-Query-String-Group + Conf-Identify-Key

- a: Configure QUERY-BACKGROUND + a: Configure IDENTIFY-BORDER

- b: Configure QUERY-FONT-STRING + b: Configure IDENTIFY-FOREGROUND

- c: Configure QUERY-PARENT-COLOR + c: Configure IDENTIFY-BACKGROUND

- d: Configure QUERY-BORDER + d: Configure IDENTIFY-FONT-STRING +

+
+

+ Conf-Second-Mode +

+

+ a: Configure SM-HEIGHT

- e: Configure QUERY-MESSAGE-COLOR + b: Configure SM-WIDTH

- f: Configure QUERY-PARENT-ERROR-COLOR + c: Configure SM-FONT-STRING

- g: Configure QUERY-FOREGROUND + d: Configure SM-FOREGROUND-COLOR

- h: Configure QUERY-CURSOR-COLOR + e: Configure SM-BACKGROUND-COLOR +

+

+ f: Configure SM-BORDER-COLOR


- Conf-Placement-Group + Conf-Frame-Colors

- a: Configure CIRCULATE-MODE-PLACEMENT + a: Configure FRAME-FOREGROUND-HIDDEN

- b: Configure NOTIFY-WINDOW-PLACEMENT + b: Configure FRAME-FOREGROUND-ROOT

- c: Configure QUERY-MODE-PLACEMENT + c: Configure FRAME-FOREGROUND +

+

+ d: Configure FRAME-BACKGROUND

+
+

+ Conf-Corner +

- d: Configure BANISH-POINTER-PLACEMENT + a: Configure CLFSWM-TERMINAL-CMD

- e: Configure EXPOSE-MODE-PLACEMENT + b: Configure CLFSWM-TERMINAL-NAME

- f: Configure INFO-MODE-PLACEMENT + c: Configure VIRTUAL-KEYBOARD-CMD

- g: Configure SECOND-MODE-PLACEMENT + d: Configure CORNER-SECOND-MODE-RIGHT-BUTTON

-
-

- Conf-Miscellaneous-Group -

- a: Configure HAVE-TO-COMPRESS-NOTIFY + e: Configure CORNER-SECOND-MODE-MIDDLE-BUTTON

- b: Configure HIDE-UNMANAGED-WINDOW + f: Configure CORNER-SECOND-MODE-LEFT-BUTTON

- c: Configure DEFAULT-WINDOW-WIDTH + g: Configure CORNER-MAIN-MODE-RIGHT-BUTTON

- d: Configure CREATE-FRAME-ON-ROOT + h: Configure CORNER-MAIN-MODE-MIDDLE-BUTTON

- e: Configure DEFAULT-MANAGED-TYPE + i: Configure CORNER-MAIN-MODE-LEFT-BUTTON

- f: Configure DEFAULT-FRAME-DATA + j: Configure CORNER-SIZE

+
+

+ Conf-Placement +

- g: Configure DEFAULT-MODIFIERS + a: Configure NOTIFY-WINDOW-PLACEMENT

- h: Configure NEVER-MANAGED-WINDOW-LIST + b: Configure EXPOSE-MODE-PLACEMENT

- i: Configure DEFAULT-WINDOW-HEIGHT + c: Configure CIRCULATE-MODE-PLACEMENT

- j: Configure DEFAULT-FONT-STRING + d: Configure QUERY-MODE-PLACEMENT

- k: Configure DEFAULT-FOCUS-POLICY + e: Configure INFO-MODE-PLACEMENT

- l: Configure LOOP-TIMEOUT + f: Configure SECOND-MODE-PLACEMENT +

+

+ g: Configure BANISH-POINTER-PLACEMENT


- Conf-Info-Mode-Group + Conf-Hook

- a: Configure INFO-FOREGROUND + a: Configure DEFAULT-NW-HOOK

- b: Configure INFO-COLOR-UNDERLINE + b: Configure CLOSE-HOOK

- c: Configure INFO-SELECTED-BACKGROUND + c: Configure INIT-HOOK

- d: Configure INFO-LINE-CURSOR -

-

- e: Configure INFO-CLICK-TO-SELECT + d: Configure MAIN-ENTRANCE-HOOK

- f: Configure INFO-BACKGROUND + e: Configure LOOP-HOOK

- g: Configure INFO-COLOR-FIRST + f: Configure BINDING-HOOK

+
+

+ Conf-Main-Mode +

- h: Configure INFO-BORDER + a: Configure COLOR-MAYBE-SELECTED

- i: Configure INFO-FONT-STRING + b: Configure COLOR-UNSELECTED

- j: Configure INFO-COLOR-TITLE + c: Configure COLOR-SELECTED

- k: Configure INFO-COLOR-SECOND + d: Configure COLOR-MOVE-WINDOW


- Conf-Second-Mode-Group + Conf-Miscellaneous

- a: Configure SM-FOREGROUND-COLOR + a: Configure DEFAULT-WINDOW-HEIGHT

- b: Configure SM-BACKGROUND-COLOR + b: Configure DEFAULT-WINDOW-WIDTH

- c: Configure SM-HEIGHT + c: Configure CREATE-FRAME-ON-ROOT

- d: Configure SM-WIDTH + d: Configure HIDE-UNMANAGED-WINDOW

- e: Configure SM-BORDER-COLOR + e: Configure NEVER-MANAGED-WINDOW-LIST

- f: Configure SM-FONT-STRING + f: Configure DEFAULT-MODIFIERS

-
-

- Conf-Menu-Group -

- a: Configure MENU-COLOR-COMMENT + g: Configure DEFAULT-FOCUS-POLICY

- b: Configure MENU-COLOR-KEY + h: Configure DEFAULT-MANAGED-TYPE

- c: Configure XDG-SECTION-LIST + i: Configure DEFAULT-FRAME-DATA

- d: Configure MENU-COLOR-MENU-KEY + j: Configure DEFAULT-FONT-STRING

- e: Configure MENU-COLOR-SUBMENU + k: Configure LOOP-TIMEOUT +

+

+ l: Configure BORDER-SIZE +

+

+ m: Configure SHOW-ROOT-FRAME-P +

+

+ n: Configure HAVE-TO-COMPRESS-NOTIFY


Modified: clfswm/doc/menu.txt ============================================================================== --- clfswm/doc/menu.txt (original) +++ clfswm/doc/menu.txt Sat Mar 12 18:01:10 2011 @@ -63,7 +63,7 @@ b: Thunar File Manager - Browse the filesystem with the file manager c: Dolphin d: Krusader -e: File Manager +e: File Manager - Configure the Thunar file manager f: ROX Filer - ROX Filer g: Worker - File manager for X. h: Xfe - A lightweight file manager for X Window @@ -75,10 +75,12 @@ d: Epiphany - Browse the web e: Firefox - Safe Mode f: Firefox -g: Konqueror -h: rekonq -i: Midori - Lightweight web browser -j: Opera - A fast and secure web browser and Internet suite +g: IcedTea Web Start - IcedTea Application Launcher +h: Konqueror +i: rekonq +j: Links +k: Midori - Lightweight web browser +l: Opera - A fast and secure web browser and Internet suite Audiovideo a: AcidRip DVD Ripper - DVD Ripper @@ -114,6 +116,7 @@ |: qt-recordMyDesktop - Frontend for recordMyDesktop |: Sonata - An elegant GTK+ MPD client |: Audio CD Extractor - Copy music from your CDs +|: Movie Player - Play movies and songs |: VLC media player - Read, capture, broadcast your multimedia streams |: Mixer - Audio mixer for the Xfce Desktop Environment |: XMMS - X Multimedia System @@ -135,6 +138,7 @@ a: Ardour - Multitrack hard disk recorder b: MPlayer Media Player - Play movies and songs c: OpenShot Video Editor - Create and edit videos and movies +d: Movie Player - Play movies and songs Development a: CMake - Cross-platform buildsystem @@ -148,20 +152,22 @@ i: Factor - Factor is a general purpose, dynamically typed, stack-based programming language j: Java Monitoring and Management Console k: Java VisualVM -l: Akonadi Console - Akonadi Management and Debugging Console -m: Cervisia -n: KAppTemplate -o: KBugBuster -p: KCachegrind - Visualization of Performance Profiling Data -q: KDE Source Builder - Builds the KDE Platform and associated software from its source code. A command-line only program. -r: KImageMapEditor -s: KLinkStatus -t: Kompare -u: KUIViewer -v: Lokalize -w: Umbrello -x: KiCad - Design a printed circuit board. -y: Qt Linguist - Add translations to Qt applications +l: OpenJDK Monitoring & Management Console - Monitor and manage OpenJDK applications +m: Akonadi Console - Akonadi Management and Debugging Console +n: Cervisia +o: KAppTemplate +p: KBugBuster +q: KCachegrind - Visualization of Performance Profiling Data +r: KDE Source Builder - Builds the KDE Platform and associated software from its source code. A command-line only program. +s: KImageMapEditor +t: KLinkStatus +u: Kompare +v: KUIViewer +w: Lokalize +x: Umbrello +y: KiCad - Design a printed circuit board. +z: Qt Linguist - Add translations to Qt applications +|: OpenJDK Policy Tool - Manage OpenJDK policy files Education a: Avogadro - Advanced molecular editor @@ -173,25 +179,25 @@ g: Blinken - A memory enhancement game h: Cantor i: KAlgebra - Math Expression Solver and Plotter -j: Kalzium - KDE Periodic Table of Elements -k: Kanagram - KDE Letter Order Game -l: KBruch - Practice exercises with fractions -m: KGeography - A Geography Learning Program -n: KHangMan - KDE Hangman Game -o: Kig - Explore Geometric Constructions -p: Kiten - Japanese Reference and Study Tool -q: KLettres - a KDE program to learn the alphabet -r: KmPlot - Function Plotter -s: KStars - Desktop Planetarium -t: KTouch -u: KTurtle -v: KWordQuiz - A flashcard and vocabulary learning program -w: Marble -x: Parley -y: Rocs - Graph Theory Tool for Professors and Students. -z: Step - Simulate physics experiments +j: KAlgebra Mobile - Pocket Math Expression Solver and Plotter +k: Kalzium - KDE Periodic Table of Elements +l: Kanagram - KDE Letter Order Game +m: KBruch - Practice exercises with fractions +n: KGeography - A Geography Learning Program +o: KHangMan - KDE Hangman Game +p: Kig - Explore Geometric Constructions +q: Kiten - Japanese Reference and Study Tool +r: KLettres - a KDE program to learn the alphabet +s: KmPlot - Function Plotter +t: KStars - Desktop Planetarium +u: KTouch +v: KTurtle +w: KWordQuiz - A flashcard and vocabulary learning program +x: Marble +y: Parley +z: Rocs - Graph Theory Tool for Professors and Students. +|: Step - Simulate physics experiments |: Oregano electrical engineering tool - Schematic capture and simulation of electronic circuits -|: Pyromaths - G?n?rateur d'exercices de maths |: QtOctave - GUI for GNU Octave |: wxMaxima - Perform symbolic and numeric calculations using Maxima @@ -199,29 +205,32 @@ a: 0 A.D. Editor b: 0 A.D. c: AssaultCube -d: DreamChess -e: DROD - Simple puzzle game. -f: eBoard -g: Einstein - Einstein puzzle -h: Flobopuyo - A remake of the famous PuyoPuyo -i: Foobillard - A 3D billiards game using OpenGL -j: Frasse - Frasse and the Peas of Kejick adventure game -k: Frogatto - Old-school 2D platformer -l: GGoban - Play go and review game records -m: glChess -n: Hedgewars - Worms style game -o: KGoldrunner - A game of action and puzzle-solving -p: AMOR -q: Blinken - A memory enhancement game -r: Bomber -s: Bovo -t: Granatier -u: Kanagram - KDE Letter Order Game -v: Kapman - Eat pills escaping ghosts -w: KAtomic -x: KBattleship -y: KBlackBox -z: KBlocks +d: BomberClone - Atomic Bomberman clone +e: Chromium B.S.U. - Scrolling space shooter +f: DreamChess +g: DROD - Simple puzzle game. +h: eBoard +i: Einstein - Einstein puzzle +j: Flobopuyo - A remake of the famous PuyoPuyo +k: Foobillard - A 3D billiards game using OpenGL +l: Frasse - Frasse and the Peas of Kejick adventure game +m: Frogatto - Old-school 2D platformer +n: gbrainy - Play games that challenge your logic, verbal, calculation and memory abilities +o: GGoban - Play go and review game records +p: glChess +q: Hedgewars - Worms style game +r: KGoldrunner - A game of action and puzzle-solving +s: AMOR +t: Blinken - A memory enhancement game +u: Bomber +v: Bovo +w: Granatier +x: Kanagram - KDE Letter Order Game +y: Kapman - Eat pills escaping ghosts +z: KAtomic +|: Naval Battle +|: KBlackBox +|: KBlocks |: KBounce |: KBreakOut |: KSnake @@ -232,6 +241,7 @@ |: Killbots |: Kiriki |: KJumpingCube +|: Klickety |: Kolor Lines |: KMahjongg |: KMines @@ -249,14 +259,13 @@ |: KSpaceDuel |: KSquares |: KSudoku - KSudoku, Sudoku game & more for KDE -|: KTeaTime -|: KTron +|: KSnakeDuel |: Potato Guy |: Kubrick |: LSkat |: Palapeli |: KoboDeluxe - An excellent 2D Shootem-up game. -|: ManiaDrive - An arcade car game on acrobatic tracks, with a quick and nervous gameplay +|: Maniadrive - An arcade car game on acrobatic tracks, with a quick and nervous gameplay |: mechtower(failsafe) |: mechtower |: Neverball - A 3D arcade game with a ball @@ -280,22 +289,22 @@ a: LibreOffice Draw b: Image Viewer c: Document Viewer - View multi-page documents -d: Geeqie - View and manage images -e: PostScript Viewer - View PostScript files -f: GNU Image Manipulation Program - Create images and edit photographs -g: Image Viewer -h: GQview - View and manage images -i: gThumb - View and organize your images +d: Gcolor2 - Choose colours from palette or screen +e: Geeqie - View and manage images +f: PostScript Viewer - View PostScript files +g: GNU Image Manipulation Program - Create images and edit photographs +h: Image Viewer +i: GQview - View and manage images j: gThumb - View and organize your images -k: GV -l: Inkscape - Create and edit Scalable Vector Graphics images -m: digiKam -n: Gwenview - A simple image viewer -o: KColorChooser -p: KolourPaint -q: KRuler -r: KSnapshot -s: Okular +k: gThumb - View and organize your images +l: GV +m: Inkscape - Create and edit Scalable Vector Graphics images +n: digiKam +o: Gwenview - A simple image viewer +p: KColorChooser +q: KolourPaint +r: KRuler +s: KSnapshot t: Okular u: Okular v: Okular @@ -311,6 +320,7 @@ |: Okular |: Okular |: Okular +|: Okular |: showFoto - Manage your photographs like a professional with the power of open source |: MuPDF - PDF file viewer |: Xfig @@ -327,28 +337,31 @@ f: Conkeror - Conkeror is a Mozilla-based web browser whose design is inspired by GNU Emacs g: Ekiga Softphone - Talk to people over the Internet h: Epiphany - Browse the web -i: Minefield - Safe Mode -j: Minefield -k: Firefox - Safe Mode -l: Firefox -m: Gnaughty - Porn downloader -n: Gwget Download Manager - Download files from the Internet -o: Iron Web Browser - Browse the World Wide Web -p: JAP - JAP makes it possible to surf the internet anonymously and unobservably. -q: Java Web Start -r: KMail -s: KNode -t: KPPP -u: Akregator - A Feed Reader for KDE -v: Blogilo -w: KGet -x: KNetAttach -y: Konqueror -z: Kopete - Instant Messenger +i: Mail Reader +j: Web Browser +k: Minefield - Safe Mode +l: Minefield +m: Firefox - Safe Mode +n: Firefox +o: Gnaughty - Porn downloader +p: Gwget Download Manager - Download files from the Internet +q: JAP - JAP makes it possible to surf the internet anonymously and unobservably. +r: Java Web Start +s: IcedTea Web Start - IcedTea Application Launcher +t: KMail +u: KNode +v: KPPP +w: Akregator - A Feed Reader for KDE +x: Blogilo +y: KGet +z: KNetAttach +|: Konqueror +|: Kopete - Instant Messenger |: KPPPLogview |: KRDC |: Krfb |: rekonq +|: Links |: Midori - Lightweight web browser |: MLDonkey GUI - multi-protocol P2P program |: MultiGet @@ -370,33 +383,36 @@ c: LibreOffice Calc d: ePDFViewer - Lightweight PDF document viewer e: Evolution - Manage your email, contacts and schedule -f: Gnumeric - Calculation, Analysis, and Visualization of Information -g: GV -h: LibreOffice Impress -i: Kontact -j: KAddressBook -k: KOrganizer - Calendar and Scheduling Program -l: KTimeTracker -m: KWord - Write text documents -n: Lokalize -o: Okular -p: LibreOffice 3.3 Math -q: LibreOffice 3.3 Printer Administration -r: LibreOffice 3.3 -s: LibreOffice 3.3 Writer -t: Lyx - Latex WYSIWYM Editor -u: LibreOffice Extension Manager -v: OOo4Kids 1.1 Calc -w: OOo4Kids 1.1 Draw -x: OOo4Kids 1.1 Impress -y: OOo4Kids 1.1 Math -z: OOo4Kids 1.1 +f: FreeMind +g: Orage Globaltime - Show clocks from different countries +h: Gnumeric - Calculation, Analysis, and Visualization of Information +i: GV +j: LibreOffice Impress +k: Kontact +l: KAddressBook +m: KOrganizer - Calendar and Scheduling Program +n: KTimeTracker +o: KWord - Write text documents +p: Lokalize +q: Okular +r: LibreOffice 3.3 Math +s: LibreOffice 3.3 Printer Administration +t: LibreOffice 3.3 +u: LibreOffice 3.3 Writer +v: Lyx - Latex WYSIWYM Editor +w: LibreOffice Extension Manager +x: OOo4Kids 1.1 Calc +y: OOo4Kids 1.1 Draw +z: OOo4Kids 1.1 Impress +|: OOo4Kids 1.1 Math +|: OOo4Kids 1.1 |: OOo4Kids 1.1 Printer Administration |: OOo4Kids 1.1 Writer |: LibreOffice Quickstarter |: LibreOffice -|: Orage - Desktop calendar +|: Orage Calendar - Desktop calendar |: Xpdf - Views Adobe PDF (acrobat) files +|: Zathura - A minimalistic PDF viewer Settings a: Assistive Technologies - Choose which accessibility features to enable when you log in @@ -429,9 +445,10 @@ |: File Management - Change the behaviour and appearance of file manager windows |: Pop-Up Notifications - Set your pop-up notification preferences |: Opera Widget Manager +|: Panel |: Qt Config - Configure Qt behavior, styles, fonts |: Startup Applications - Choose what applications to start when you log in -|: File Manager +|: File Manager - Configure the Thunar file manager |: Startup Disk Creator - Create a startup disk using a CD or disc image |: Windows - Set your window properties |: Desktop - Set desktop background and menu and icon behaviour @@ -439,45 +456,49 @@ |: Keyboard - Edit keyboard settings and application shortcuts |: Mouse - Configure pointer device behavior and appearance |: Session and Startup - Customize desktop startup and splash screen -|: Xfce 4 Settings Manager - Graphical Settings Manager for Xfce 4 +|: Settings Manager - Graphical Settings Manager for Xfce 4 |: Appearance - Customize the look of your desktop |: Window Manager - Configure window behavior and shortcuts |: Window Manager Tweaks - Fine-tune window behaviour and effects |: Workspaces - Set number and names of workspaces -|: Xfce 4 Calendar Settings - Settings for the Xfce 4 Calendar Application +|: Orage preferences - Settings for the Xfce 4 Calendar Application (Orage) |: Accessibility - Improve keyboard and mouse accessibility -|: Panel - Customize the panel settings |: Settings Editor - Graphical settings editor for Xfconf |: Xfce 4 Printing System Settings - Allow you to select the printing system backend that xfprint will use |: Screensaver - Change screensaver properties System -a: Terminal +a: Terminal - Terminal Emulator b: Bulk Rename - Rename Multiple Files c: Open Folder with Thunar - Open the specified folders in Thunar d: Thunar File Manager - Browse the filesystem with the file manager e: Avahi Zeroconf Browser - Browse for Zeroconf services available on your network f: CD/DVD Creator - Create CDs and DVDs -g: Manage Printing -h: System Monitor -i: GParted - Create, reorganize, and delete partitions -j: Dolphin -k: KDiskFree -l: Konqueror -m: Konqueror -n: Konqueror -o: Konqueror -p: KInfoCenter -q: File Manager - Super User Mode -r: Konsole -s: KRandRTray - A panel applet for resizing and reorientating X screens. -t: Krfb -u: Krusader - root-mode -v: System Monitor -w: KSystemLog -x: KUser -y: KWalletManager -z: KwikDisk +g: Cairo-Dock (no OpenGL) - A light and eye-candy dock and desklets for your desktop. +h: GLX-Dock (Cairo-Dock with OpenGL) - Cairo-Dock with OpenGL (hardware acceleration) +i: Manage Printing +j: Configuration Editor - Directly edit your entire configuration database +k: System Monitor +l: GParted - Create, reorganize, and delete partitions +m: Dolphin +n: K3b - Disk writing program +o: KDiskFree +p: Konqueror +q: Konqueror +r: Konqueror +s: Konqueror +t: KInfoCenter +u: File Manager - Super User Mode +v: Konsole +w: KRandRTray - A panel applet for resizing and reorientating X screens. +x: Krfb +y: Krusader - root-mode +z: System Monitor +|: KSystemLog +|: KUser +|: KWalletManager +|: KwikDisk +|: Nepomuk Backup |: Yakuake |: Task Manager - Manage running processes |: File Browser - Browse the file system with the file manager @@ -488,36 +509,42 @@ |: Startup Disk Creator - Create a startup disk using a CD or disc image |: Oracle VM VirtualBox |: Wireshark - Network traffic analyzer +|: Log Out |: Xfe - A lightweight file manager for X Window |: XNC - Graphical File manager, X Northern Captain Utility -a: Terminal +a: Terminal - Terminal Emulator b: Bulk Rename - Rename Multiple Files c: Open Folder with Thunar - Open the specified folders in Thunar d: Thunar File Manager - Browse the filesystem with the file manager e: Circle and Ruler - Geometry program f: dosbox Emulator - An emulator to run old DOS games -g: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password -h: About GNOME - Learn more about GNOME -i: Panel - Customize the panel settings -j: Theme Installer - Installs themes packages for various parts of the desktop -k: Image Viewer -l: GSpiceUI - A GUI to various freely available Spice electronic circuit simulators -m: Character Map - Insert special characters into documents -n: gVim - GTK2 enhanced vim text editor -o: HP Device Manager - View device status, ink levels and perform maintenance. -p: K3DSurf - Visualize and manipulate Mathematical models in three, four, five, and six dimensions -q: Help - Get help with GNOME -r: Home -s: KCharSelect -t: KFloppy -u: KJots -v: Akonaditray -w: Ark -x: KDE Groupware Wizard -y: KAlarm -z: Kate +g: File Manager - Configure the Thunar file manager +h: Terminal Emulator +i: gEDA Attribute Editor - Manipulate component attributes with gattrib +j: gEDA Schematic Editor - Create and edit electrical schematics and symbols with gschem +k: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password +l: Orage Globaltime - Show clocks from different countries +m: About GNOME - Learn more about GNOME +n: Panel +o: Theme Installer - Installs themes packages for various parts of the desktop +p: Image Viewer +q: GSpiceUI - A GUI to various freely available Spice electronic circuit simulators +r: Character Map - Insert special characters into documents +s: gVim - GTK2 enhanced vim text editor +t: HP Device Manager - View device status, ink levels and perform maintenance. +u: K3DSurf - Visualize and manipulate Mathematical models in three, four, five, and six dimensions +v: Help - Get help with GNOME +w: Home +x: KCharSelect +y: KFloppy +z: KJots +|: Akonaditray +|: Ark +|: KDE Groupware Wizard +|: KAlarm +|: Kate |: KCalc |: KFileReplace |: Find Files/Folders @@ -532,6 +559,7 @@ |: KNotes |: KonsoleKalendar |: Krusader +|: KTeaTime |: Snippets datafile editor |: KTimer |: KTimeTracker @@ -546,7 +574,7 @@ |: Computer - Browse all local and remote disks and folders accessible from this computer |: Home Folder - Open your personal folder |: Network - Browse bookmarked and local network locations -|: File Manager +|: File Manager - Configure the Thunar file manager |: PDF Editor |: PlayOnLinux - PlayOnLinux |: Scilab - A scientific software package for numerical computations @@ -554,24 +582,21 @@ |: Worker - File manager for X. |: About Xfce |: Application Finder - Find and launch applications installed on your system -|: File Manager |: Help - Get help with GNOME -|: Log Out -|: Run Program... -|: Terminal -|: Web Browser |: Xfi - A simple image viewer for Xfe |: Xfp - A simple package manager for Xfe |: Xfce 4 Print Manager - Show the printer list and allow you to manage their jobs |: Xfce 4 Print Dialog - Print a file and allow you to set up its layout +|: Run Program... |: Xfv - A simple text viewer for Xfe |: Xfw - A simple text editor for Xfe |: XNC - Graphical File manager, X Northern Captain |: Help - Get help with GNOME +|: Zhu3D - With Zhu3D, you can view, animate, and solve up to three functions in 3D-space in an interactive manner |: KDE Resources - Configure KDE Resources Terminalemulator -a: Terminal +a: Terminal - Terminal Emulator b: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password c: Konsole d: Yakuake @@ -889,36 +914,36 @@ Frame-Movement-Menu p: < Frame pack menu > f: < Frame fill menu > -r: < Frame resize menu > +z: < Frame resize menu > c: Center the current frame -Right: Select the next brother frame -Left: Select the previous brother frame -Up: Select the next level -Down: Select the previous levelframe -Tab: Select the next child +r: Select the next brother frame +l: Select the previous brother frame +u: Select the next level +d: Select the previous levelframe +t: Select the next child Frame-Pack-Menu -Up: Pack the current frame up -Down: Pack the current frame down -Left: Pack the current frame left -Right: Pack the current frame right +u: Pack the current frame up +d: Pack the current frame down +l: Pack the current frame left +r: Pack the current frame right Frame-Fill-Menu -Up: Fill the current frame up -Down: Fill the current frame down -Left: Fill the current frame left -Right: Fill the current frame right +u: Fill the current frame up +d: Fill the current frame down +l: Fill the current frame left +r: Fill the current frame right a: Fill the current frame in all directions v: Fill the current frame vertically h: Fill the current frame horizontally Frame-Resize-Menu -Up: Resize the current frame up to its half height -Down: Resize the current frame down to its half height -Left: Resize the current frame left to its half width -Right: Resize the current frame right to its half width -d: Resize down the current frame -a: Resize down the current frame to its minimal size +u: Resize the current frame up to its half height +d: Resize the current frame down to its half height +l: Resize the current frame left to its half width +r: Resize the current frame right to its half width +a: Resize down the current frame +m: Resize down the current frame to its minimal size Frame-Focus-Policy -=- For the current frame -=- @@ -1002,145 +1027,147 @@ p: Prompt for an other window manager Configuration-Menu -a: < Notify Window group > -b: < Notify Window mode group > -c: < Expose mode group > -d: < Hook group > -e: < Main mode group > -f: < Frame colors group > -g: < Identify key group > -h: < Corner group > -i: < Circulate mode group > -j: < Query string group > -k: < Placement group > -l: < Miscellaneous group > -m: < Info mode group > -n: < Second mode group > -o: < Menu group > +a: < Notify Window Group > +b: < Menu Group > +c: < Expose Mode Group > +d: < Circulate Mode Group > +e: < Info Mode Group > +f: < Query String Group > +g: < Identify Key Group > +h: < Second Mode Group > +i: < Frame Colors Group > +j: < Corner Group > +k: < Placement Group > +l: < Hook Group > +m: < Main Mode Group > +n: < Miscellaneous Group > F2: Save all configuration variables in clfswmrc +F3: Reset all configuration variables to there default values -Conf-Notify-Window-Group +Conf-Notify-Window a: Configure NOTIFY-WINDOW-DELAY b: Configure NOTIFY-WINDOW-BORDER c: Configure NOTIFY-WINDOW-FOREGROUND d: Configure NOTIFY-WINDOW-BACKGROUND +e: Configure NOTIFY-WINDOW-FONT-STRING -Conf-Notify-Window-Mode-Group -a: Configure NOTIFY-WINDOW-FONT-STRING - -Conf-Expose-Mode-Group -a: Configure EXPOSE-FOREGROUND -b: Configure EXPOSE-SHOW-WINDOW-TITLE -c: Configure EXPOSE-VALID-ON-KEY -d: Configure EXPOSE-BORDER -e: Configure EXPOSE-FONT-STRING -f: Configure EXPOSE-BACKGROUND - -Conf-Hook-Group -a: Configure INIT-HOOK -b: Configure DEFAULT-NW-HOOK -c: Configure MAIN-ENTRANCE-HOOK -d: Configure LOOP-HOOK -e: Configure BINDING-HOOK - -Conf-Main-Mode-Group -a: Configure COLOR-UNSELECTED -b: Configure COLOR-SELECTED -c: Configure COLOR-MAYBE-SELECTED - -Conf-Frame-Colors-Group -a: Configure FRAME-FOREGROUND-ROOT -b: Configure FRAME-FOREGROUND -c: Configure FRAME-FOREGROUND-HIDDEN -d: Configure FRAME-BACKGROUND +Conf-Menu +a: Configure XDG-SECTION-LIST +b: Configure MENU-COLOR-MENU-KEY +c: Configure MENU-COLOR-KEY +d: Configure MENU-COLOR-COMMENT +e: Configure MENU-COLOR-SUBMENU -Conf-Identify-Key-Group -a: Configure IDENTIFY-FOREGROUND -b: Configure IDENTIFY-FONT-STRING -c: Configure IDENTIFY-BORDER -d: Configure IDENTIFY-BACKGROUND - -Conf-Corner-Group -a: Configure CORNER-MAIN-MODE-LEFT-BUTTON -b: Configure CORNER-SECOND-MODE-MIDDLE-BUTTON -c: Configure CORNER-SECOND-MODE-LEFT-BUTTON -d: Configure CORNER-MAIN-MODE-RIGHT-BUTTON -e: Configure CORNER-SECOND-MODE-RIGHT-BUTTON -f: Configure CORNER-SIZE -g: Configure CLFSWM-TERMINAL-CMD -h: Configure VIRTUAL-KEYBOARD-CMD -i: Configure CORNER-MAIN-MODE-MIDDLE-BUTTON -j: Configure CLFSWM-TERMINAL-NAME - -Conf-Circulate-Mode-Group -a: Configure CIRCULATE-BORDER -b: Configure CIRCULATE-WIDTH -c: Configure CIRCULATE-HEIGHT -d: Configure CIRCULATE-TEXT-LIMITE -e: Configure CIRCULATE-FONT-STRING +Conf-Expose-Mode +a: Configure EXPOSE-SHOW-WINDOW-TITLE +b: Configure EXPOSE-VALID-ON-KEY +c: Configure EXPOSE-BORDER +d: Configure EXPOSE-FOREGROUND +e: Configure EXPOSE-BACKGROUND +f: Configure EXPOSE-FONT-STRING + +Conf-Circulate-Mode +a: Configure CIRCULATE-TEXT-LIMITE +b: Configure CIRCULATE-HEIGHT +c: Configure CIRCULATE-WIDTH +d: Configure CIRCULATE-BORDER +e: Configure CIRCULATE-FOREGROUND f: Configure CIRCULATE-BACKGROUND -g: Configure CIRCULATE-FOREGROUND +g: Configure CIRCULATE-FONT-STRING -Conf-Query-String-Group -a: Configure QUERY-BACKGROUND -b: Configure QUERY-FONT-STRING +Conf-Info-Mode +a: Configure INFO-COLOR-SECOND +b: Configure INFO-COLOR-FIRST +c: Configure INFO-COLOR-UNDERLINE +d: Configure INFO-COLOR-TITLE +e: Configure INFO-CLICK-TO-SELECT +f: Configure INFO-FONT-STRING +g: Configure INFO-SELECTED-BACKGROUND +h: Configure INFO-LINE-CURSOR +i: Configure INFO-BORDER +j: Configure INFO-FOREGROUND +k: Configure INFO-BACKGROUND + +Conf-Query-String +a: Configure QUERY-BORDER +b: Configure QUERY-PARENT-ERROR-COLOR c: Configure QUERY-PARENT-COLOR -d: Configure QUERY-BORDER -e: Configure QUERY-MESSAGE-COLOR -f: Configure QUERY-PARENT-ERROR-COLOR -g: Configure QUERY-FOREGROUND -h: Configure QUERY-CURSOR-COLOR - -Conf-Placement-Group -a: Configure CIRCULATE-MODE-PLACEMENT -b: Configure NOTIFY-WINDOW-PLACEMENT -c: Configure QUERY-MODE-PLACEMENT -d: Configure BANISH-POINTER-PLACEMENT -e: Configure EXPOSE-MODE-PLACEMENT -f: Configure INFO-MODE-PLACEMENT -g: Configure SECOND-MODE-PLACEMENT - -Conf-Miscellaneous-Group -a: Configure HAVE-TO-COMPRESS-NOTIFY -b: Configure HIDE-UNMANAGED-WINDOW -c: Configure DEFAULT-WINDOW-WIDTH -d: Configure CREATE-FRAME-ON-ROOT -e: Configure DEFAULT-MANAGED-TYPE -f: Configure DEFAULT-FRAME-DATA -g: Configure DEFAULT-MODIFIERS -h: Configure NEVER-MANAGED-WINDOW-LIST -i: Configure DEFAULT-WINDOW-HEIGHT -j: Configure DEFAULT-FONT-STRING -k: Configure DEFAULT-FOCUS-POLICY -l: Configure LOOP-TIMEOUT +d: Configure QUERY-CURSOR-COLOR +e: Configure QUERY-FOREGROUND +f: Configure QUERY-MESSAGE-COLOR +g: Configure QUERY-BACKGROUND +h: Configure QUERY-FONT-STRING + +Conf-Identify-Key +a: Configure IDENTIFY-BORDER +b: Configure IDENTIFY-FOREGROUND +c: Configure IDENTIFY-BACKGROUND +d: Configure IDENTIFY-FONT-STRING + +Conf-Second-Mode +a: Configure SM-HEIGHT +b: Configure SM-WIDTH +c: Configure SM-FONT-STRING +d: Configure SM-FOREGROUND-COLOR +e: Configure SM-BACKGROUND-COLOR +f: Configure SM-BORDER-COLOR + +Conf-Frame-Colors +a: Configure FRAME-FOREGROUND-HIDDEN +b: Configure FRAME-FOREGROUND-ROOT +c: Configure FRAME-FOREGROUND +d: Configure FRAME-BACKGROUND -Conf-Info-Mode-Group -a: Configure INFO-FOREGROUND -b: Configure INFO-COLOR-UNDERLINE -c: Configure INFO-SELECTED-BACKGROUND -d: Configure INFO-LINE-CURSOR -e: Configure INFO-CLICK-TO-SELECT -f: Configure INFO-BACKGROUND -g: Configure INFO-COLOR-FIRST -h: Configure INFO-BORDER -i: Configure INFO-FONT-STRING -j: Configure INFO-COLOR-TITLE -k: Configure INFO-COLOR-SECOND - -Conf-Second-Mode-Group -a: Configure SM-FOREGROUND-COLOR -b: Configure SM-BACKGROUND-COLOR -c: Configure SM-HEIGHT -d: Configure SM-WIDTH -e: Configure SM-BORDER-COLOR -f: Configure SM-FONT-STRING - -Conf-Menu-Group -a: Configure MENU-COLOR-COMMENT -b: Configure MENU-COLOR-KEY -c: Configure XDG-SECTION-LIST -d: Configure MENU-COLOR-MENU-KEY -e: Configure MENU-COLOR-SUBMENU +Conf-Corner +a: Configure CLFSWM-TERMINAL-CMD +b: Configure CLFSWM-TERMINAL-NAME +c: Configure VIRTUAL-KEYBOARD-CMD +d: Configure CORNER-SECOND-MODE-RIGHT-BUTTON +e: Configure CORNER-SECOND-MODE-MIDDLE-BUTTON +f: Configure CORNER-SECOND-MODE-LEFT-BUTTON +g: Configure CORNER-MAIN-MODE-RIGHT-BUTTON +h: Configure CORNER-MAIN-MODE-MIDDLE-BUTTON +i: Configure CORNER-MAIN-MODE-LEFT-BUTTON +j: Configure CORNER-SIZE + +Conf-Placement +a: Configure NOTIFY-WINDOW-PLACEMENT +b: Configure EXPOSE-MODE-PLACEMENT +c: Configure CIRCULATE-MODE-PLACEMENT +d: Configure QUERY-MODE-PLACEMENT +e: Configure INFO-MODE-PLACEMENT +f: Configure SECOND-MODE-PLACEMENT +g: Configure BANISH-POINTER-PLACEMENT + +Conf-Hook +a: Configure DEFAULT-NW-HOOK +b: Configure CLOSE-HOOK +c: Configure INIT-HOOK +d: Configure MAIN-ENTRANCE-HOOK +e: Configure LOOP-HOOK +f: Configure BINDING-HOOK + +Conf-Main-Mode +a: Configure COLOR-MAYBE-SELECTED +b: Configure COLOR-UNSELECTED +c: Configure COLOR-SELECTED +d: Configure COLOR-MOVE-WINDOW + +Conf-Miscellaneous +a: Configure DEFAULT-WINDOW-HEIGHT +b: Configure DEFAULT-WINDOW-WIDTH +c: Configure CREATE-FRAME-ON-ROOT +d: Configure HIDE-UNMANAGED-WINDOW +e: Configure NEVER-MANAGED-WINDOW-LIST +f: Configure DEFAULT-MODIFIERS +g: Configure DEFAULT-FOCUS-POLICY +h: Configure DEFAULT-MANAGED-TYPE +i: Configure DEFAULT-FRAME-DATA +j: Configure DEFAULT-FONT-STRING +k: Configure LOOP-TIMEOUT +l: Configure BORDER-SIZE +m: Configure SHOW-ROOT-FRAME-P +n: Configure HAVE-TO-COMPRESS-NOTIFY Clfswm-Menu r: Reset clfswm From pbrochard at common-lisp.net Wed Mar 16 20:41:37 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Wed, 16 Mar 2011 16:41:37 -0400 Subject: [clfswm-cvs] r433 - in clfswm: . src Message-ID: Author: pbrochard Date: Wed Mar 16 16:41:37 2011 New Revision: 433 Log: src/clfswm-layout.lisp (set-gimp-layout): Display a notify window with the help on the GIMP layout. Modified: clfswm/ChangeLog clfswm/src/clfswm-layout.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Wed Mar 16 16:41:37 2011 @@ -1,3 +1,8 @@ +2011-03-16 Philippe Brochard + + * src/clfswm-layout.lisp (set-gimp-layout): Display a notify + window with the help on the GIMP layout. + 2011-03-12 Philippe Brochard * src/menu-def.lisp: Menu update to prevent cursor keys clash. Modified: clfswm/src/clfswm-layout.lisp ============================================================================== --- clfswm/src/clfswm-layout.lisp (original) +++ clfswm/src/clfswm-layout.lisp Wed Mar 16 16:41:37 2011 @@ -700,6 +700,11 @@ ("c" clear-main-window-list))) +;;; GIMP layout specifics functions +;;; +(defconfig *gimp-layout-notify-window-delay* 30 'gimp-layout + "Time to display the GIMP layout notify window help") + (defun select-next/previous-child-no-main-window (fun-rotate) "Select the next/previous child - Skip windows in main window list" @@ -738,24 +743,43 @@ -(defun set-gimp-layout () - "The GIMP Layout" - (when (frame-p *current-child*) - ;; Note: There is no need to ungrab/grab keys because this - ;; is done when leaving the second mode. - (define-main-key ("F8" :mod-1) 'add-in-main-window-list) - (define-main-key ("F9" :mod-1) 'remove-in-main-window-list) - (define-main-key ("F10" :mod-1) 'clear-main-window-list) - (define-main-key ("Tab" :mod-1) 'select-next-child-no-main-window) - (define-main-key ("Tab" :mod-1 :shift) 'select-previous-child-no-main-window) - (define-main-mouse (1) 'mouse-click-to-focus-and-move-no-main-window) - (setf (frame-data-slot *current-child* :focus-policy-save) - (frame-focus-policy *current-child*)) - (setf (frame-focus-policy *current-child*) :sloppy) - (setf (frame-data-slot *current-child* :layout-save) - (frame-layout *current-child*)) - ;; Set the default layout and leave the second mode. - (set-main-window-right-layout))) +(let ((help-text-list `(("-=- Help on The GIMP layout -=-" ,*info-color-title*) + "" + "The GIMP layout is a main-window-layout with a sloppy focus policy." + "You can change the main windows direction with the layout menu." + "" + "Press Alt+F8 to add a window to the main windows list." + "Press Alt+F9 to remove a window from the main windows list." + "Press Alt+F10 to clear the main windows list." + "" + "You can select a main window with the right mouse button." + "" + "Use the layout menu to restore the previous layout and keybinding."))) + (defun help-on-gimp-layout () + "Help on the GIMP layout" + (info-mode help-text-list) + (leave-second-mode)) + + (defun set-gimp-layout () + "The GIMP Layout" + (when (frame-p *current-child*) + ;; Note: There is no need to ungrab/grab keys because this + ;; is done when leaving the second mode. + (define-main-key ("F8" :mod-1) 'add-in-main-window-list) + (define-main-key ("F9" :mod-1) 'remove-in-main-window-list) + (define-main-key ("F10" :mod-1) 'clear-main-window-list) + (define-main-key ("Tab" :mod-1) 'select-next-child-no-main-window) + (define-main-key ("Tab" :mod-1 :shift) 'select-previous-child-no-main-window) + (define-main-mouse (1) 'mouse-click-to-focus-and-move-no-main-window) + (setf (frame-data-slot *current-child* :focus-policy-save) + (frame-focus-policy *current-child*)) + (setf (frame-focus-policy *current-child*) :sloppy) + (setf (frame-data-slot *current-child* :layout-save) + (frame-layout *current-child*)) + (open-notify-window help-text-list) + (add-timer *gimp-layout-notify-window-delay* #'close-notify-window) + ;; Set the default layout and leave the second mode. + (set-main-window-right-layout)))) (defun set-previous-layout () @@ -773,21 +797,6 @@ (leave-second-mode)) -(defun help-on-gimp-layout () - "Help on the GIMP layout" - (info-mode `(("-=- Help on The GIMP layout -=-" ,*info-color-title*) - "" - "The GIMP layout is a main-window-layout with a sloppy focus policy." - "You can change the main windows direction with the layout menu." - "" - "Press Alt+F8 to add a window to the main windows list." - "Press Alt+F9 to remove a window from the main windows list." - "Press Alt+F10 to clear the main windows list." - "" - "You can select a main window with the right mouse button." - "" - "Use the layout menu to restore the previous layout and keybinding.")) - (leave-second-mode)) (register-layout-sub-menu 'frame-gimp-layout-menu "The GIMP layout menu" From pbrochard at common-lisp.net Wed Mar 16 21:48:59 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Wed, 16 Mar 2011 17:48:59 -0400 Subject: [clfswm-cvs] r434 - in clfswm: . doc src Message-ID: Author: pbrochard Date: Wed Mar 16 17:48:59 2011 New Revision: 434 Log: src/clfswm-autodoc.lisp (produce-all-docs): Produce a documentation for all configurable variables in CLFSWM. Added: clfswm/doc/variables.txt Modified: clfswm/ChangeLog clfswm/doc/corner.html clfswm/doc/corner.txt clfswm/doc/keys.html clfswm/doc/keys.txt clfswm/doc/menu.html clfswm/doc/menu.txt clfswm/src/clfswm-autodoc.lisp clfswm/src/clfswm-info.lisp clfswm/src/tools.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Wed Mar 16 17:48:59 2011 @@ -1,5 +1,8 @@ 2011-03-16 Philippe Brochard + * src/clfswm-autodoc.lisp (produce-all-docs): Produce a + documentation for all configurable variables in CLFSWM. + * src/clfswm-layout.lisp (set-gimp-layout): Display a notify window with the help on the GIMP layout. Modified: clfswm/doc/corner.html ============================================================================== --- clfswm/doc/corner.html (original) +++ clfswm/doc/corner.html Wed Mar 16 17:48:59 2011 @@ -120,7 +120,7 @@ Bottom-Left: - --- + Start the file manager Modified: clfswm/doc/corner.txt ============================================================================== --- clfswm/doc/corner.txt (original) +++ clfswm/doc/corner.txt Wed Mar 16 17:48:59 2011 @@ -16,7 +16,7 @@ Top-Left: Hide/Unhide a terminal Top-Right: Close or kill the current window (ask before doing anything) Bottom-Right: Present all windows in all frames (An expose like) - Bottom-Left: --- + Bottom-Left: Start the file manager *Corner-Second-Mode-Left-Button*: Top-Left: --- Modified: clfswm/doc/keys.html ============================================================================== --- clfswm/doc/keys.html (original) +++ clfswm/doc/keys.html Wed Mar 16 17:48:59 2011 @@ -365,7 +365,7 @@ Mod-1 - 1 + Ccedilla Bind or jump to a slot (a frame or a window) @@ -376,7 +376,7 @@ Mod-1 - 2 + Underscore Bind or jump to a slot (a frame or a window) @@ -387,7 +387,7 @@ Mod-1 - 3 + Egrave Bind or jump to a slot (a frame or a window) @@ -398,7 +398,7 @@ Mod-1 - 4 + Minus Bind or jump to a slot (a frame or a window) @@ -409,7 +409,7 @@ Mod-1 - 5 + Parenleft Bind or jump to a slot (a frame or a window) @@ -420,7 +420,7 @@ Mod-1 - 6 + Quoteright Bind or jump to a slot (a frame or a window) @@ -431,7 +431,7 @@ Mod-1 - 7 + Quotedbl Bind or jump to a slot (a frame or a window) @@ -442,7 +442,7 @@ Mod-1 - 8 + Eacute Bind or jump to a slot (a frame or a window) @@ -453,7 +453,7 @@ Mod-1 - 9 + Ampersand Bind or jump to a slot (a frame or a window) @@ -464,12 +464,111 @@ Mod-1 - 0 + F2 + + + Open the Music Player Daemon (MPD) menu + + + + + Mod-1 + + + Agrave Bind or jump to a slot (a frame or a window) + + + + + + Pause + + + Open the Reboot/Halt menu + + + + + + + + Xf86audiomute + + + Toggle mute. + + + + + + + + Xf86audiolowervolume + + + Lower volume. + + + + + + + + Xf86audioraisevolume + + + Raise volume. + + + + + + + + Control_r + + + Move the pointer to the lower right corner of the screen + + + + + Control + + + 66 + + + Present all windows in the current child (An expose like) + + + + + Mod-1 Control + + + 66 + + + Present all windows in the current frame (An expose like) + + + + + Control Shift + + + 66 + + + Present all windows in all frames (An expose like) + +

@@ -648,7 +747,7 @@ Less - Open the main menu + Lower 1% volume. @@ -1327,7 +1426,7 @@ Mod-1 - 1 + Ccedilla Bind or jump to a slot (a frame or a window) @@ -1338,7 +1437,7 @@ Mod-1 - 2 + Underscore Bind or jump to a slot (a frame or a window) @@ -1349,7 +1448,7 @@ Mod-1 - 3 + Egrave Bind or jump to a slot (a frame or a window) @@ -1360,7 +1459,7 @@ Mod-1 - 4 + Minus Bind or jump to a slot (a frame or a window) @@ -1371,7 +1470,7 @@ Mod-1 - 5 + Parenleft Bind or jump to a slot (a frame or a window) @@ -1382,7 +1481,7 @@ Mod-1 - 6 + Quoteright Bind or jump to a slot (a frame or a window) @@ -1393,7 +1492,7 @@ Mod-1 - 7 + Quotedbl Bind or jump to a slot (a frame or a window) @@ -1404,7 +1503,7 @@ Mod-1 - 8 + Eacute Bind or jump to a slot (a frame or a window) @@ -1415,7 +1514,7 @@ Mod-1 - 9 + Ampersand Bind or jump to a slot (a frame or a window) @@ -1423,15 +1522,148 @@ + + + + Twosuperior + + + Move the pointer to the lower right corner of the screen + + + + Mod-1 - 0 + Agrave Bind or jump to a slot (a frame or a window) + + + + + + Xf86audiomute + + + Toggle mute. + + + + + + + + Xf86audiolowervolume + + + Lower volume. + + + + + + + + Xf86audioraisevolume + + + Raise volume. + + + + + + + + Greater + + + Raise 1% volume. + + + + + + + + Space + + + start the file manager + + + + + + + + Z + + + start the web browser + + + + + Shift + + + Z + + + start the Konqueror web browser + + + + + + + + S + + + start the web browser on the search page + + + + + Control + + + S + + + start the web browser on the search page with google + + + + + Shift + + + S + + + Ask an URL to be opened in the Surf browser + + + + + + + + Q + + + + + +

Modified: clfswm/doc/keys.txt ============================================================================== --- clfswm/doc/keys.txt (original) +++ clfswm/doc/keys.txt Wed Mar 16 17:48:59 2011 @@ -36,16 +36,25 @@ Control Escape Close or kill the current window (ask before doing anything) Mod-1 T Switch to editing mode (second mode) Control Less Switch to editing mode (second mode) - Mod-1 1 Bind or jump to a slot (a frame or a window) - Mod-1 2 Bind or jump to a slot (a frame or a window) - Mod-1 3 Bind or jump to a slot (a frame or a window) - Mod-1 4 Bind or jump to a slot (a frame or a window) - Mod-1 5 Bind or jump to a slot (a frame or a window) - Mod-1 6 Bind or jump to a slot (a frame or a window) - Mod-1 7 Bind or jump to a slot (a frame or a window) - Mod-1 8 Bind or jump to a slot (a frame or a window) - Mod-1 9 Bind or jump to a slot (a frame or a window) - Mod-1 0 Bind or jump to a slot (a frame or a window) + Mod-1 Ccedilla Bind or jump to a slot (a frame or a window) + Mod-1 Underscore Bind or jump to a slot (a frame or a window) + Mod-1 Egrave Bind or jump to a slot (a frame or a window) + Mod-1 Minus Bind or jump to a slot (a frame or a window) + Mod-1 Parenleft Bind or jump to a slot (a frame or a window) + Mod-1 Quoteright Bind or jump to a slot (a frame or a window) + Mod-1 Quotedbl Bind or jump to a slot (a frame or a window) + Mod-1 Eacute Bind or jump to a slot (a frame or a window) + Mod-1 Ampersand Bind or jump to a slot (a frame or a window) + Mod-1 F2 Open the Music Player Daemon (MPD) menu + Mod-1 Agrave Bind or jump to a slot (a frame or a window) + Pause Open the Reboot/Halt menu + Xf86audiomute Toggle mute. + Xf86audiolowervolume Lower volume. + Xf86audioraisevolume Raise volume. + Control_r Move the pointer to the lower right corner of the screen + Control 66 Present all windows in the current child (An expose like) + Mod-1 Control 66 Present all windows in the current frame (An expose like) + Control Shift 66 Present all windows in all frames (An expose like) Mouse buttons actions in main mode: @@ -70,7 +79,7 @@ Mod-1 F1 Open the help and info window M Open the main menu - Less Open the main menu + Less Lower 1% volume. Control Less Open the main menu F Open the frame menu W Open the window menu @@ -132,16 +141,28 @@ Control F10 Present all windows in the current frame (An expose like) Shift L2 Show all frames info windows until a key is release Mod-1 Shift L2 Show all frames info windows - Mod-1 1 Bind or jump to a slot (a frame or a window) - Mod-1 2 Bind or jump to a slot (a frame or a window) - Mod-1 3 Bind or jump to a slot (a frame or a window) - Mod-1 4 Bind or jump to a slot (a frame or a window) - Mod-1 5 Bind or jump to a slot (a frame or a window) - Mod-1 6 Bind or jump to a slot (a frame or a window) - Mod-1 7 Bind or jump to a slot (a frame or a window) - Mod-1 8 Bind or jump to a slot (a frame or a window) - Mod-1 9 Bind or jump to a slot (a frame or a window) - Mod-1 0 Bind or jump to a slot (a frame or a window) + Mod-1 Ccedilla Bind or jump to a slot (a frame or a window) + Mod-1 Underscore Bind or jump to a slot (a frame or a window) + Mod-1 Egrave Bind or jump to a slot (a frame or a window) + Mod-1 Minus Bind or jump to a slot (a frame or a window) + Mod-1 Parenleft Bind or jump to a slot (a frame or a window) + Mod-1 Quoteright Bind or jump to a slot (a frame or a window) + Mod-1 Quotedbl Bind or jump to a slot (a frame or a window) + Mod-1 Eacute Bind or jump to a slot (a frame or a window) + Mod-1 Ampersand Bind or jump to a slot (a frame or a window) + Twosuperior Move the pointer to the lower right corner of the screen + Mod-1 Agrave Bind or jump to a slot (a frame or a window) + Xf86audiomute Toggle mute. + Xf86audiolowervolume Lower volume. + Xf86audioraisevolume Raise volume. + Greater Raise 1% volume. + Space start the file manager + Z start the web browser + Shift Z start the Konqueror web browser + S start the web browser on the search page + Control S start the web browser on the search page with google + Shift S Ask an URL to be opened in the Surf browser + Q NIL Mouse buttons actions in second mode: Modified: clfswm/doc/menu.html ============================================================================== --- clfswm/doc/menu.html (original) +++ clfswm/doc/menu.html Wed Mar 16 17:48:59 2011 @@ -90,6 +90,105 @@

v: Show the current CLFSWM version

+

+ F2: < Music Player Daemon (MPD) menu > +

+

+ x: < XMMS menu > +

+

+ i: < CDPLAYER menu > +

+
+

+ Mpd-Menu +

+

+ i: Show MPD informations +

+

+ p: Play the previous song in the current playlist +

+

+ n: Play the next song in the current playlist +

+

+ t: Toggles Play/Pause, plays if stopped +

+

+ y: Start playing +

+

+ k: Stop the currently playing playlists +

+

+ x: Seeks to +5% +

+

+ w: Seeks to -5% +

+

+ l: Show the current MPD playlist +

+

+ s: Start sonata +

+

+ g: Start gmpc +

+
+

+ Xmms-Menu +

+

+ r: Lanch XMMS +

+

+ s: Show the current xmms status +

+

+ l: Show the current xmms playlist +

+

+ n: Play the next XMMS track +

+

+ p: Play the previous XMMS track +

+

+ e: open xmms "Load file(s)" dialog window. +

+
+

+ Cdplayer-Menu +

+

+ y: Start playing CD +

+

+ k: Stop playing CD +

+

+ t: Toggle pause +

+

+ s: Show the current CD status +

+

+ l: Show the current CD playlist +

+

+ n: Play the next CD track +

+

+ p: Play the previous CD track +

+

+ e: Eject CD +

+

+ c: Close CD +


Standard-Menu @@ -644,34 +743,40 @@ p: glChess

- q: Hedgewars - Worms style game + q: GLTron - Lightcycle game with a nice 3D perspective.

- r: KGoldrunner - A game of action and puzzle-solving + r: Hedgewars - Worms style game

- s: AMOR + s: Hex-a-Hop - Hexagonal Tile-based Puzzle Game

- t: Blinken - A memory enhancement game + t: KGoldrunner - A game of action and puzzle-solving

- u: Bomber + u: AMOR

- v: Bovo + v: Blinken - A memory enhancement game

- w: Granatier + w: Bomber

- x: Kanagram - KDE Letter Order Game + x: Bovo

- y: Kapman - Eat pills escaping ghosts + y: Granatier

- z: KAtomic + z: Kanagram - KDE Letter Order Game +

+

+ |: Kapman - Eat pills escaping ghosts +

+

+ |: KAtomic

|: Naval Battle @@ -815,6 +920,12 @@ |: pouetChess - Play a game of chess, either against another player or against the AI

+ |: Racer - Choose your car and race +

+

+ |: Racer - Choose your car and race +

+

|: SolarWolf

@@ -846,61 +957,61 @@ Graphics

- a: LibreOffice Draw + a: Image Viewer

- b: Image Viewer + b: Document Viewer - View multi-page documents

- c: Document Viewer - View multi-page documents + c: Gcolor2 - Choose colours from palette or screen

- d: Gcolor2 - Choose colours from palette or screen + d: Geeqie - View and manage images

- e: Geeqie - View and manage images + e: PostScript Viewer - View PostScript files

- f: PostScript Viewer - View PostScript files + f: GNU Image Manipulation Program - Create images and edit photographs

- g: GNU Image Manipulation Program - Create images and edit photographs + g: Image Viewer

- h: Image Viewer + h: GQview - View and manage images

- i: GQview - View and manage images + i: gThumb - View and organize your images

j: gThumb - View and organize your images

- k: gThumb - View and organize your images + k: GV

- l: GV + l: Inkscape - Create and edit Scalable Vector Graphics images

- m: Inkscape - Create and edit Scalable Vector Graphics images + m: digiKam

- n: digiKam + n: Gwenview - A simple image viewer

- o: Gwenview - A simple image viewer + o: KColorChooser

- p: KColorChooser + p: KolourPaint

- q: KolourPaint + q: KRuler

- r: KRuler + r: KSnapshot

- s: KSnapshot + s: Okular

t: Okular @@ -948,9 +1059,6 @@ |: Okular

- |: Okular -

-

|: showFoto - Manage your photographs like a professional with the power of open source

@@ -1118,94 +1226,97 @@ Office

- a: AbiWord + a: LibreOffice 3.3 Base

- b: LibreOffice Base + b: LibreOffice 3.3 Calc

- c: LibreOffice Calc + c: LibreOffice 3.3 Draw

- d: ePDFViewer - Lightweight PDF document viewer + d: LibreOffice 3.3 Impress

- e: Evolution - Manage your email, contacts and schedule + e: LibreOffice 3.3 Math

- f: FreeMind + f: LibreOffice 3.3 Printer Administration

- g: Orage Globaltime - Show clocks from different countries + g: LibreOffice 3.3

- h: Gnumeric - Calculation, Analysis, and Visualization of Information + h: LibreOffice 3.3 Writer

- i: GV + i: AbiWord

- j: LibreOffice Impress + j: ePDFViewer - Lightweight PDF document viewer

- k: Kontact + k: Evolution - Manage your email, contacts and schedule

- l: KAddressBook + l: FreeMind

- m: KOrganizer - Calendar and Scheduling Program + m: Orage Globaltime - Show clocks from different countries

- n: KTimeTracker + n: Gnumeric - Calculation, Analysis, and Visualization of Information

- o: KWord - Write text documents + o: GV

- p: Lokalize + p: Kontact

- q: Okular + q: KAddressBook

- r: LibreOffice 3.3 Math + r: KOrganizer - Calendar and Scheduling Program

- s: LibreOffice 3.3 Printer Administration + s: KTimeTracker

- t: LibreOffice 3.3 + t: KWord - Write text documents

- u: LibreOffice 3.3 Writer + u: Lokalize

- v: Lyx - Latex WYSIWYM Editor + v: Okular +

+

+ w: Lyx - Latex WYSIWYM Editor

- w: LibreOffice Extension Manager + x: LibreOffice Extension Manager

- x: OOo4Kids 1.1 Calc + y: OOo4Kids 1.2 Calc

- y: OOo4Kids 1.1 Draw + z: OOo4Kids 1.2 Draw

- z: OOo4Kids 1.1 Impress + |: OOo4Kids 1.2 Impress

- |: OOo4Kids 1.1 Math + |: OOo4Kids 1.2 Math

- |: OOo4Kids 1.1 + |: OOo4Kids 1.2

- |: OOo4Kids 1.1 Printer Administration + |: OOo4Kids 1.2 Printer Administration

- |: OOo4Kids 1.1 Writer + |: OOo4Kids 1.2 Writer

|: LibreOffice Quickstarter @@ -2679,6 +2790,12 @@

i: Open the window in this frame if it match absorb-nw-test

+

+ z: Open the window in the UZBL frame if it match uzbl absorb-nw-test +

+

+ s: Open the window in the Surf frame if it match surf absorb-nw-test +


Frame-Movement-Menu @@ -3001,46 +3118,52 @@ Configuration-Menu

- a: < Notify Window Group > + a: < Volume Mode Group > +

+

+ b: < Gimp Layout Group > +

+

+ c: < Notify Window Group >

- b: < Menu Group > + d: < Menu Group >

- c: < Expose Mode Group > + e: < Expose Mode Group >

- d: < Circulate Mode Group > + f: < Circulate Mode Group >

- e: < Info Mode Group > + g: < Info Mode Group >

- f: < Query String Group > + h: < Query String Group >

- g: < Identify Key Group > + i: < Identify Key Group >

- h: < Second Mode Group > + j: < Second Mode Group >

- i: < Frame Colors Group > + k: < Frame Colors Group >

- j: < Corner Group > + l: < Corner Group >

- k: < Placement Group > + m: < Placement Group >

- l: < Hook Group > + n: < Hook Group >

- m: < Main Mode Group > + o: < Main Mode Group >

- n: < Miscellaneous Group > + p: < Miscellaneous Group >

F2: Save all configuration variables in clfswmrc @@ -3050,6 +3173,41 @@


+ Conf-Volume-Mode +

+

+ a: Configure VOLUME-EXTERNAL-MIXER-CMD +

+

+ b: Configure VOLUME-TEXT-LIMIT +

+

+ c: Configure VOLUME-HEIGHT +

+

+ d: Configure VOLUME-WIDTH +

+

+ e: Configure VOLUME-BORDER +

+

+ f: Configure VOLUME-FOREGROUND +

+

+ g: Configure VOLUME-BACKGROUND +

+

+ h: Configure VOLUME-FONT-STRING +

+
+

+ Conf-Gimp-Layout +

+

+ a: Configure GIMP-LAYOUT-NOTIFY-WINDOW-DELAY +

+
+

Conf-Notify-Window

@@ -3291,25 +3449,28 @@ Conf-Placement

- a: Configure NOTIFY-WINDOW-PLACEMENT + a: Configure VOLUME-MODE-PLACEMENT +

+

+ b: Configure NOTIFY-WINDOW-PLACEMENT

- b: Configure EXPOSE-MODE-PLACEMENT + c: Configure EXPOSE-MODE-PLACEMENT

- c: Configure CIRCULATE-MODE-PLACEMENT + d: Configure CIRCULATE-MODE-PLACEMENT

- d: Configure QUERY-MODE-PLACEMENT + e: Configure QUERY-MODE-PLACEMENT

- e: Configure INFO-MODE-PLACEMENT + f: Configure INFO-MODE-PLACEMENT

- f: Configure SECOND-MODE-PLACEMENT + g: Configure SECOND-MODE-PLACEMENT

- g: Configure BANISH-POINTER-PLACEMENT + h: Configure BANISH-POINTER-PLACEMENT


@@ -3408,6 +3569,28 @@

x: Exit clfswm

+

+ Pause: < Suspend/Reboot/Halt menu > +

+
+

+ Reboot-Halt-Menu +

+

+ -: Do nothing +

+

+ s: Suspend the computer to RAM +

+

+ d: Suspend the computer to DISK +

+

+ r: Reboot the computer +

+

+ h: Halt the computer +


Modified: clfswm/doc/menu.txt ============================================================================== --- clfswm/doc/menu.txt (original) +++ clfswm/doc/menu.txt Wed Mar 16 17:48:59 2011 @@ -27,6 +27,41 @@ p: Show current processes sorted by CPU usage m: Show current processes sorted by memory usage v: Show the current CLFSWM version +F2: < Music Player Daemon (MPD) menu > +x: < XMMS menu > +i: < CDPLAYER menu > + +Mpd-Menu +i: Show MPD informations +p: Play the previous song in the current playlist +n: Play the next song in the current playlist +t: Toggles Play/Pause, plays if stopped +y: Start playing +k: Stop the currently playing playlists +x: Seeks to +5% +w: Seeks to -5% +l: Show the current MPD playlist +s: Start sonata +g: Start gmpc + +Xmms-Menu +r: Lanch XMMS +s: Show the current xmms status +l: Show the current xmms playlist +n: Play the next XMMS track +p: Play the previous XMMS track +e: open xmms "Load file(s)" dialog window. + +Cdplayer-Menu +y: Start playing CD +k: Stop playing CD +t: Toggle pause +s: Show the current CD status +l: Show the current CD playlist +n: Play the next CD track +p: Play the previous CD track +e: Eject CD +c: Close CD Standard-Menu a: < TEXTEDITOR > @@ -218,16 +253,18 @@ n: gbrainy - Play games that challenge your logic, verbal, calculation and memory abilities o: GGoban - Play go and review game records p: glChess -q: Hedgewars - Worms style game -r: KGoldrunner - A game of action and puzzle-solving -s: AMOR -t: Blinken - A memory enhancement game -u: Bomber -v: Bovo -w: Granatier -x: Kanagram - KDE Letter Order Game -y: Kapman - Eat pills escaping ghosts -z: KAtomic +q: GLTron - Lightcycle game with a nice 3D perspective. +r: Hedgewars - Worms style game +s: Hex-a-Hop - Hexagonal Tile-based Puzzle Game +t: KGoldrunner - A game of action and puzzle-solving +u: AMOR +v: Blinken - A memory enhancement game +w: Bomber +x: Bovo +y: Granatier +z: Kanagram - KDE Letter Order Game +|: Kapman - Eat pills escaping ghosts +|: KAtomic |: Naval Battle |: KBlackBox |: KBlocks @@ -275,6 +312,8 @@ |: OpenTTD |: Pacdefence - Tower defence game. |: pouetChess - Play a game of chess, either against another player or against the AI +|: Racer - Choose your car and race +|: Racer - Choose your car and race |: SolarWolf |: Spring - An open source RTS with similar gameplay to TA |: SuperTux 2 - Play a classic 2D platform game @@ -286,25 +325,25 @@ |: XSpaceWarp - Live long and prosper! Graphics -a: LibreOffice Draw -b: Image Viewer -c: Document Viewer - View multi-page documents -d: Gcolor2 - Choose colours from palette or screen -e: Geeqie - View and manage images -f: PostScript Viewer - View PostScript files -g: GNU Image Manipulation Program - Create images and edit photographs -h: Image Viewer -i: GQview - View and manage images +a: Image Viewer +b: Document Viewer - View multi-page documents +c: Gcolor2 - Choose colours from palette or screen +d: Geeqie - View and manage images +e: PostScript Viewer - View PostScript files +f: GNU Image Manipulation Program - Create images and edit photographs +g: Image Viewer +h: GQview - View and manage images +i: gThumb - View and organize your images j: gThumb - View and organize your images -k: gThumb - View and organize your images -l: GV -m: Inkscape - Create and edit Scalable Vector Graphics images -n: digiKam -o: Gwenview - A simple image viewer -p: KColorChooser -q: KolourPaint -r: KRuler -s: KSnapshot +k: GV +l: Inkscape - Create and edit Scalable Vector Graphics images +m: digiKam +n: Gwenview - A simple image viewer +o: KColorChooser +p: KolourPaint +q: KRuler +r: KSnapshot +s: Okular t: Okular u: Okular v: Okular @@ -320,7 +359,6 @@ |: Okular |: Okular |: Okular -|: Okular |: showFoto - Manage your photographs like a professional with the power of open source |: MuPDF - PDF file viewer |: Xfig @@ -378,36 +416,37 @@ |: Zenmap Office -a: AbiWord -b: LibreOffice Base -c: LibreOffice Calc -d: ePDFViewer - Lightweight PDF document viewer -e: Evolution - Manage your email, contacts and schedule -f: FreeMind -g: Orage Globaltime - Show clocks from different countries -h: Gnumeric - Calculation, Analysis, and Visualization of Information -i: GV -j: LibreOffice Impress -k: Kontact -l: KAddressBook -m: KOrganizer - Calendar and Scheduling Program -n: KTimeTracker -o: KWord - Write text documents -p: Lokalize -q: Okular -r: LibreOffice 3.3 Math -s: LibreOffice 3.3 Printer Administration -t: LibreOffice 3.3 -u: LibreOffice 3.3 Writer -v: Lyx - Latex WYSIWYM Editor -w: LibreOffice Extension Manager -x: OOo4Kids 1.1 Calc -y: OOo4Kids 1.1 Draw -z: OOo4Kids 1.1 Impress -|: OOo4Kids 1.1 Math -|: OOo4Kids 1.1 -|: OOo4Kids 1.1 Printer Administration -|: OOo4Kids 1.1 Writer +a: LibreOffice 3.3 Base +b: LibreOffice 3.3 Calc +c: LibreOffice 3.3 Draw +d: LibreOffice 3.3 Impress +e: LibreOffice 3.3 Math +f: LibreOffice 3.3 Printer Administration +g: LibreOffice 3.3 +h: LibreOffice 3.3 Writer +i: AbiWord +j: ePDFViewer - Lightweight PDF document viewer +k: Evolution - Manage your email, contacts and schedule +l: FreeMind +m: Orage Globaltime - Show clocks from different countries +n: Gnumeric - Calculation, Analysis, and Visualization of Information +o: GV +p: Kontact +q: KAddressBook +r: KOrganizer - Calendar and Scheduling Program +s: KTimeTracker +t: KWord - Write text documents +u: Lokalize +v: Okular +w: Lyx - Latex WYSIWYM Editor +x: LibreOffice Extension Manager +y: OOo4Kids 1.2 Calc +z: OOo4Kids 1.2 Draw +|: OOo4Kids 1.2 Impress +|: OOo4Kids 1.2 Math +|: OOo4Kids 1.2 +|: OOo4Kids 1.2 Printer Administration +|: OOo4Kids 1.2 Writer |: LibreOffice Quickstarter |: LibreOffice |: Orage Calendar - Desktop calendar @@ -910,6 +949,8 @@ g: Open the next window in a named frame h: Open the next window in a numbered frame i: Open the window in this frame if it match absorb-nw-test +z: Open the window in the UZBL frame if it match uzbl absorb-nw-test +s: Open the window in the Surf frame if it match surf absorb-nw-test Frame-Movement-Menu p: < Frame pack menu > @@ -1027,23 +1068,38 @@ p: Prompt for an other window manager Configuration-Menu -a: < Notify Window Group > -b: < Menu Group > -c: < Expose Mode Group > -d: < Circulate Mode Group > -e: < Info Mode Group > -f: < Query String Group > -g: < Identify Key Group > -h: < Second Mode Group > -i: < Frame Colors Group > -j: < Corner Group > -k: < Placement Group > -l: < Hook Group > -m: < Main Mode Group > -n: < Miscellaneous Group > +a: < Volume Mode Group > +b: < Gimp Layout Group > +c: < Notify Window Group > +d: < Menu Group > +e: < Expose Mode Group > +f: < Circulate Mode Group > +g: < Info Mode Group > +h: < Query String Group > +i: < Identify Key Group > +j: < Second Mode Group > +k: < Frame Colors Group > +l: < Corner Group > +m: < Placement Group > +n: < Hook Group > +o: < Main Mode Group > +p: < Miscellaneous Group > F2: Save all configuration variables in clfswmrc F3: Reset all configuration variables to there default values +Conf-Volume-Mode +a: Configure VOLUME-EXTERNAL-MIXER-CMD +b: Configure VOLUME-TEXT-LIMIT +c: Configure VOLUME-HEIGHT +d: Configure VOLUME-WIDTH +e: Configure VOLUME-BORDER +f: Configure VOLUME-FOREGROUND +g: Configure VOLUME-BACKGROUND +h: Configure VOLUME-FONT-STRING + +Conf-Gimp-Layout +a: Configure GIMP-LAYOUT-NOTIFY-WINDOW-DELAY + Conf-Notify-Window a: Configure NOTIFY-WINDOW-DELAY b: Configure NOTIFY-WINDOW-BORDER @@ -1131,13 +1187,14 @@ j: Configure CORNER-SIZE Conf-Placement -a: Configure NOTIFY-WINDOW-PLACEMENT -b: Configure EXPOSE-MODE-PLACEMENT -c: Configure CIRCULATE-MODE-PLACEMENT -d: Configure QUERY-MODE-PLACEMENT -e: Configure INFO-MODE-PLACEMENT -f: Configure SECOND-MODE-PLACEMENT -g: Configure BANISH-POINTER-PLACEMENT +a: Configure VOLUME-MODE-PLACEMENT +b: Configure NOTIFY-WINDOW-PLACEMENT +c: Configure EXPOSE-MODE-PLACEMENT +d: Configure CIRCULATE-MODE-PLACEMENT +e: Configure QUERY-MODE-PLACEMENT +f: Configure INFO-MODE-PLACEMENT +g: Configure SECOND-MODE-PLACEMENT +h: Configure BANISH-POINTER-PLACEMENT Conf-Hook a: Configure DEFAULT-NW-HOOK @@ -1173,6 +1230,14 @@ r: Reset clfswm l: Reload clfswm x: Exit clfswm +Pause: < Suspend/Reboot/Halt menu > + +Reboot-Halt-Menu +-: Do nothing +s: Suspend the computer to RAM +d: Suspend the computer to DISK +r: Reboot the computer +h: Halt the computer This documentation was produced with the CLFSWM auto-doc functions. To reproduce it, use the produce-menu-doc-in-file or Added: clfswm/doc/variables.txt ============================================================================== --- (empty file) +++ clfswm/doc/variables.txt Wed Mar 16 17:48:59 2011 @@ -0,0 +1,349 @@ + * CLFSWM Configuration variables * + ------------------------------ + + <= Volume Mode Group => + +*VOLUME-FONT-STRING* = "fixed" + Volume string window font string +*VOLUME-BACKGROUND* = "black" + Volume string window background color +*VOLUME-FOREGROUND* = "green" + Volume string window foreground color +*VOLUME-BORDER* = "red" + Volume string window border color +*VOLUME-WIDTH* = 400 + Volume mode window width +*VOLUME-HEIGHT* = 15 + Volume mode window height +*VOLUME-TEXT-LIMIT* = 30 + Maximum text limit in the volume window +*VOLUME-EXTERNAL-MIXER-CMD* = "/usr/bin/gnome-alsamixer" + Command to start an external mixer program + + + <= Gimp Layout Group => + +*GIMP-LAYOUT-NOTIFY-WINDOW-DELAY* = 30 + Time to display the GIMP layout notify window help + + + <= Notify Window Group => + +*NOTIFY-WINDOW-FONT-STRING* = "fixed" + Notify window font string +*NOTIFY-WINDOW-BACKGROUND* = "black" + Notify Window background color +*NOTIFY-WINDOW-FOREGROUND* = "green" + Notify Window foreground color +*NOTIFY-WINDOW-BORDER* = "red" + Notify Window border color +*NOTIFY-WINDOW-DELAY* = 10 + Notify Window display delay + + + <= Menu Group => + +*MENU-COLOR-SUBMENU* = "Cyan" + Submenu color in menu +*MENU-COLOR-COMMENT* = "Yellow" + Comment color in menu +*MENU-COLOR-KEY* = "Magenta" + Key color in menu +*MENU-COLOR-MENU-KEY* = # + Menu key color in menu +*XDG-SECTION-LIST* = (TEXTEDITOR FILEMANAGER WEBBROWSER AUDIOVIDEO AUDIO VIDEO + DEVELOPMENT EDUCATION GAME GRAPHICS NETWORK OFFICE + SETTINGS SYSTEM UTILITY TERMINALEMULATOR ARCHLINUX + SCREENSAVER) + Standard menu sections + + + <= Expose Mode Group => + +*EXPOSE-FONT-STRING* = "fixed" + Expose string window font string +*EXPOSE-BACKGROUND* = "black" + Expose string window background color +*EXPOSE-FOREGROUND* = "green" + Expose string window foreground color +*EXPOSE-BORDER* = "red" + Expose string window border color +*EXPOSE-VALID-ON-KEY* = T + Valid expose mode when an accel key is pressed +*EXPOSE-SHOW-WINDOW-TITLE* = T + Show the window title on accel window + + + <= Circulate Mode Group => + +*CIRCULATE-FONT-STRING* = "fixed" + Circulate string window font string +*CIRCULATE-BACKGROUND* = "black" + Circulate string window background color +*CIRCULATE-FOREGROUND* = "green" + Circulate string window foreground color +*CIRCULATE-BORDER* = "red" + Circulate string window border color +*CIRCULATE-WIDTH* = 400 + Circulate mode window width +*CIRCULATE-HEIGHT* = 15 + Circulate mode window height +*CIRCULATE-TEXT-LIMITE* = 30 + Maximum text limite in the circulate window + + + <= Info Mode Group => + +*INFO-BACKGROUND* = "black" + Info window background color +*INFO-FOREGROUND* = "green" + Info window foreground color +*INFO-BORDER* = "red" + Info window border color +*INFO-LINE-CURSOR* = "white" + Info window line cursor color color +*INFO-SELECTED-BACKGROUND* = "blue" + Info selected item background color +*INFO-FONT-STRING* = "fixed" + Info window font string +*INFO-CLICK-TO-SELECT* = T + If true, click on info window select item. Otherwise, click to drag the menu +*INFO-COLOR-TITLE* = "Magenta" + Colored info title color +*INFO-COLOR-UNDERLINE* = "Yellow" + Colored info underline color +*INFO-COLOR-FIRST* = "Cyan" + Colored info first color +*INFO-COLOR-SECOND* = "lightblue" + Colored info second color + + + <= Query String Group => + +*QUERY-FONT-STRING* = "fixed" + Query string window font string +*QUERY-BACKGROUND* = "black" + Query string window background color +*QUERY-MESSAGE-COLOR* = "yellow" + Query string window message color +*QUERY-FOREGROUND* = "green" + Query string window foreground color +*QUERY-CURSOR-COLOR* = "white" + Query string window foreground cursor color +*QUERY-PARENT-COLOR* = "blue" + Query string window parenthesis color +*QUERY-PARENT-ERROR-COLOR* = "red" + Query string window parenthesis color when no match +*QUERY-BORDER* = "red" + Query string window border color + + + <= Identify Key Group => + +*IDENTIFY-FONT-STRING* = "fixed" + Identify window font string +*IDENTIFY-BACKGROUND* = "black" + Identify window background color +*IDENTIFY-FOREGROUND* = "green" + Identify window foreground color +*IDENTIFY-BORDER* = "red" + Identify window border color + + + <= Second Mode Group => + +*SM-BORDER-COLOR* = "Green" + Second mode window border color +*SM-BACKGROUND-COLOR* = "Black" + Second mode window background color +*SM-FOREGROUND-COLOR* = "Red" + Second mode window foreground color +*SM-FONT-STRING* = "fixed" + Second mode window font string +*SM-WIDTH* = 300 + Second mode window width +*SM-HEIGHT* = 25 + Second mode window height + + + <= Frame Colors Group => + +*FRAME-BACKGROUND* = "Black" + Frame background +*FRAME-FOREGROUND* = "Green" + Frame foreground +*FRAME-FOREGROUND-ROOT* = "Red" + Frame foreground when the frame is the root frame +*FRAME-FOREGROUND-HIDDEN* = "Darkgreen" + Frame foreground for hidden windows + + + <= Corner Group => + +*CORNER-SIZE* = 3 + The size of the corner square +*CORNER-MAIN-MODE-LEFT-BUTTON* = ((:TOP-LEFT OPEN-MENU) + (:TOP-RIGHT PRESENT-VIRTUAL-KEYBOARD) + (:BOTTOM-RIGHT EXPOSE-WINDOWS-MODE) + (:BOTTOM-LEFT NIL)) + Actions on corners in the main mode with the left mouse button +*CORNER-MAIN-MODE-MIDDLE-BUTTON* = ((:TOP-LEFT HELP-ON-CLFSWM) + (:TOP-RIGHT ASK-CLOSE/KILL-CURRENT-WINDOW) + (:BOTTOM-RIGHT NIL) (:BOTTOM-LEFT NIL)) + Actions on corners in the main mode with the middle mouse button +*CORNER-MAIN-MODE-RIGHT-BUTTON* = ((:TOP-LEFT PRESENT-CLFSWM-TERMINAL) + (:TOP-RIGHT ASK-CLOSE/KILL-CURRENT-WINDOW) + (:BOTTOM-RIGHT EXPOSE-ALL-WINDOWS-MODE) + (:BOTTOM-LEFT START-FILE-MANAGER)) + Config(Corner group): Actions on corners in the main mode with the right mouse button +*CORNER-SECOND-MODE-LEFT-BUTTON* = ((:TOP-LEFT NIL) (:TOP-RIGHT NIL) + (:BOTTOM-RIGHT EXPOSE-WINDOWS-MODE) + (:BOTTOM-LEFT NIL)) + Actions on corners in the second mode with the left mouse button +*CORNER-SECOND-MODE-MIDDLE-BUTTON* = ((:TOP-LEFT HELP-ON-CLFSWM) + (:TOP-RIGHT NIL) (:BOTTOM-RIGHT NIL) + (:BOTTOM-LEFT NIL)) + Actions on corners in the second mode with the middle mouse button +*CORNER-SECOND-MODE-RIGHT-BUTTON* = ((:TOP-LEFT NIL) (:TOP-RIGHT NIL) + (:BOTTOM-RIGHT EXPOSE-ALL-WINDOWS-MODE) + (:BOTTOM-LEFT NIL)) + Actions on corners in the second mode with the right mouse button +*VIRTUAL-KEYBOARD-CMD* = "xvkbd" + The command to display the virtual keybaord + Here is an ~/.Xresources example for xvkbd: + xvkbd.windowGeometry: 300x100-0-0 + xvkbd*Font: 6x12 + xvkbd.modalKeytop: true + xvkbd.customization: -french + xvkbd.keypad: false + And make it always on top +*CLFSWM-TERMINAL-NAME* = "clfswm-terminal" + The clfswm terminal name +*CLFSWM-TERMINAL-CMD* = "xterm -T clfswm-terminal" + The clfswm terminal command. +This command must set the window title to *clfswm-terminal-name* + + + <= Placement Group => + +*BANISH-POINTER-PLACEMENT* = MIDDLE-RIGHT-CHILD-PLACEMENT + Pointer banishment placement +*SECOND-MODE-PLACEMENT* = TOP-MIDDLE-PLACEMENT + Second mode window placement +*INFO-MODE-PLACEMENT* = TOP-LEFT-PLACEMENT + Info mode window placement +*QUERY-MODE-PLACEMENT* = TOP-LEFT-PLACEMENT + Query mode window placement +*CIRCULATE-MODE-PLACEMENT* = BOTTOM-MIDDLE-PLACEMENT + Circulate mode window placement +*EXPOSE-MODE-PLACEMENT* = TOP-LEFT-CHILD-PLACEMENT + Expose mode window placement (Selection keys position) +*NOTIFY-WINDOW-PLACEMENT* = BOTTOM-RIGHT-PLACEMENT + Notify window placement +*VOLUME-MODE-PLACEMENT* = BOTTOM-MIDDLE-PLACEMENT + Volume mode window placement + + + <= Hook Group => + +*BINDING-HOOK* = (SET-DEFAULT-EXPOSE-KEYS SET-DEFAULT-CIRCULATE-KEYS + INIT-*INFO-KEYS* INIT-*INFO-MOUSE* + SET-DEFAULT-INFO-KEYS + SET-DEFAULT-INFO-MOUSE + INIT-*QUERY-KEYS* + SET-DEFAULT-QUERY-KEYS + INIT-*MAIN-KEYS* INIT-*MAIN-MOUSE* + SET-DEFAULT-MAIN-KEYS + SET-DEFAULT-MAIN-MOUSE + INIT-*SECOND-KEYS* + INIT-*SECOND-MOUSE* + SET-DEFAULT-SECOND-KEYS + SET-DEFAULT-SECOND-MOUSE MPD-BINDING + FR-BINDING REBOOT-HALT-BINDING + INIT-*VOLUME-KEYS* + SET-DEFAULT-VOLUME-KEYS + AMIXER-VOLUME-BIND LOCAL-BINDING) + Hook executed when keys/buttons are bounds +*LOOP-HOOK* = NIL + Hook executed on each event loop +*MAIN-ENTRANCE-HOOK* = NIL + Hook executed on the main function entrance after +loading configuration file and before opening the display. +*INIT-HOOK* = (DEFAULT-INIT-HOOK DISPLAY-HELLO-WINDOW MY-INIT-HOOK + INIT-SURF-FRAME) + Init hook. This hook is run just after the first root frame is created +*CLOSE-HOOK* = (CLOSE-NOTIFY-WINDOW CLOSE-CLFSWM-TERMINAL + CLOSE-VIRTUAL-KEYBOARD) + Close hook. This hook is run just before closing the display +*DEFAULT-NW-HOOK* = DEFAULT-FRAME-NW-HOOK + Default action to do on newly created windows + + + <= Main Mode Group => + +*COLOR-MOVE-WINDOW* = "DeepPink" + Color when moving or resizing a windows +*COLOR-SELECTED* = "Red" + Color of selected window +*COLOR-UNSELECTED* = "Blue" + Color of unselected color +*COLOR-MAYBE-SELECTED* = "Yellow" + Color of maybe selected windows + + + <= Miscellaneous Group => + +*HAVE-TO-COMPRESS-NOTIFY* = T + Compress event notify? +This variable may be useful to speed up some slow version of CLX. +It is particulary useful with CLISP/MIT-CLX. +*SHOW-ROOT-FRAME-P* = NIL + Show the root frame information or not +*BORDER-SIZE* = 1 + Windows and frames border size +*LOOP-TIMEOUT* = 0.1 + Maximum time (in seconds) to wait before calling *loop-hook* +*DEFAULT-FONT-STRING* = "fixed" + The default font used in clfswm +*DEFAULT-FRAME-DATA* = ((:TILE-SIZE 0.8) (:TILE-SPACE-SIZE 0.1) + (:MAIN-LAYOUT-WINDOWS NIL) + (:FAST-LAYOUT (TILE-SPACE-LAYOUT NO-LAYOUT))) + Default slots set in frame date +*DEFAULT-MANAGED-TYPE* = (:NORMAL) + Default managed window types +*DEFAULT-FOCUS-POLICY* = :CLICK + Default mouse focus policy. One of :click, :sloppy, :sloppy-strict or :sloppy-select. +*DEFAULT-MODIFIERS* = NIL + Default modifiers list to append to explicit modifiers +Example: :mod-2 for num_lock, :lock for Caps_lock... +*NEVER-MANAGED-WINDOW-LIST* = ((EQUAL-WM-CLASS-ROX-PINBOARD NIL) + (EQUAL-WM-CLASS-XVKBD RAISE-WINDOW) + (EQUAL-CLFSWM-TERMINAL RAISE-AND-FOCUS-WINDOW)) + CLFSWM will never manage windows of this type. +A list of (list match-function handle-function) +*HIDE-UNMANAGED-WINDOW* = T + Hide or not unmanaged windows when a child is deselected. +*CREATE-FRAME-ON-ROOT* = NIL + Create frame on root. +Set this variable to true if you want to allow to create a new frame +on the root window in the main mode with the mouse +*DEFAULT-WINDOW-WIDTH* = 400 + Default window width +*DEFAULT-WINDOW-HEIGHT* = 300 + Default window height + + Those variables can be changed in clfswm. +Maybe you'll need to restart clfswm to take care of new values + +This documentation was produced with the CLFSWM auto-doc functions. +To reproduce it, use the produce-configuration-variables-doc-in-file or +the produce-all-docs function from the Lisp REPL. + +Something like this: +LISP> (in-package :clfswm) +CLFSWM> (produce-configuration-variables-doc-in-file "my-variables.txt") +or +CLFSWM> (produce-all-docs) + + + Modified: clfswm/src/clfswm-autodoc.lisp ============================================================================== --- clfswm/src/clfswm-autodoc.lisp (original) +++ clfswm/src/clfswm-autodoc.lisp Wed Mar 16 17:48:59 2011 @@ -243,7 +243,7 @@ *corner-second-mode-left-button* *corner-second-mode-middle-button* *corner-second-mode-right-button*)) (print-doc corner)) (format stream "~2%This documentation was produced with the CLFSWM auto-doc functions. -To reproduce it, use the produce-menu-doc-in-file or +To reproduce it, use the produce-corner-doc-in-file or the produce-all-docs function from the Lisp REPL. Something like this: @@ -304,19 +304,46 @@ (format t " done~%")) -(defun produce-configuration-variables (stream &optional (group t)) - (format stream " * CLFSWM Configuration variables *~%") - (format stream " ------------------------------~2%") + +;;; Configuration variables autodoc functions +(defun produce-configuration-variables-doc (stream &optional (group t) (title t) (footnote t)) + (when title + (format stream " * CLFSWM Configuration variables *~%") + (format stream " ------------------------------~2%")) (format stream " <= ~A =>~2%" (if (equal group t) "" (config-group->string group))) (maphash (lambda (key val) (when (or (equal group t) (equal group (configvar-group val))) - (format stream "~A = ~S~%~A~%" key (symbol-value key) + (format stream "~A = ~S~% ~A~%" key (symbol-value key) (documentation key 'variable)))) *config-var-table*) - (format stream "~2& Those variables can be changed in clfswm. -Maybe you'll need to restart clfswm to take care of new values~2%")) + (when footnote + (format stream "~2& Those variables can be changed in clfswm. +Maybe you'll need to restart clfswm to take care of new values") + (format stream "~2%This documentation was produced with the CLFSWM auto-doc functions. +To reproduce it, use the produce-configuration-variables-doc-in-file or +the produce-all-docs function from the Lisp REPL. + +Something like this: +LISP> (in-package :clfswm) +CLFSWM> (produce-configuration-variables-doc-in-file \"my-variables.txt\") +or +CLFSWM> (produce-all-docs)~2%")) + (format stream "~2%")) + +(defun produce-configuration-variables-doc-in-file (filename) + (format t "Producing text config variables documentation in ~S " filename) + (with-open-file (stream filename :direction :output + :if-exists :supersede :if-does-not-exist :create) + (let* ((title t) + (all-groups (config-all-groups)) + (last-group (first (last all-groups)))) + (dolist (group all-groups) + (produce-configuration-variables-doc stream group title + (equal group last-group)) + (setf title nil)))) + (format t " done~%")) @@ -331,7 +358,8 @@ (produce-menu-doc-in-file "doc/menu.txt") (produce-menu-doc-html-in-file "doc/menu.html") (produce-corner-doc-in-file "doc/corner.txt") - (produce-corner-doc-html-in-file "doc/corner.html")) + (produce-corner-doc-html-in-file "doc/corner.html") + (produce-configuration-variables-doc-in-file "doc/variables.txt")) Modified: clfswm/src/clfswm-info.lisp ============================================================================== --- clfswm/src/clfswm-info.lisp (original) +++ clfswm/src/clfswm-info.lisp Wed Mar 16 17:48:59 2011 @@ -535,15 +535,10 @@ (defun show-config-variable () "Show all configurable variables" - (let ((all-groups nil) - (result nil)) - (maphash (lambda (key val) - (declare (ignore key)) - (pushnew (configvar-group val) all-groups :test #'equal)) - *config-var-table*) + (let ((result nil)) (labels ((rec () (setf result nil) - (info-mode-menu (loop :for group :in all-groups + (info-mode-menu (loop :for group :in (config-all-groups) :for i :from 0 :collect (list (number->char i) (let ((group group)) @@ -554,7 +549,7 @@ (info-mode (configuration-variable-colorize-line (split-string (append-newline-space (with-output-to-string (stream) - (produce-configuration-variables stream result))) + (produce-configuration-variables-doc stream result t nil))) #\Newline))) (rec)))) (rec)))) Modified: clfswm/src/tools.lisp ============================================================================== --- clfswm/src/tools.lisp (original) +++ clfswm/src/tools.lisp Wed Mar 16 17:48:59 2011 @@ -32,6 +32,7 @@ :awhen :aif :defconfig :*config-var-table* :configvar-value :configvar-group :config-default-value + :config-all-groups :config-group->string :find-in-hash :nfuncall @@ -148,6 +149,17 @@ (format nil "~:(~A group~)" (substitute #\Space #\- (string group)))) +;;; Configuration variables +(defun config-all-groups () + (let (all-groups) + (maphash (lambda (key val) + (declare (ignore key)) + (pushnew (configvar-group val) all-groups :test #'equal)) + *config-var-table*) + all-groups)) + + + (defun find-in-hash (val hashtable &optional (test #'equal)) "Return the key associated to val in the hashtable" From pbrochard at common-lisp.net Fri Mar 18 21:28:07 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Fri, 18 Mar 2011 17:28:07 -0400 Subject: [clfswm-cvs] r435 - in clfswm: . doc src Message-ID: Author: pbrochard Date: Fri Mar 18 17:28:07 2011 New Revision: 435 Log: src/clfswm-autodoc.lisp (produce-conf-var-doc-html): Produce a documentation for all configurable variables in CLFSWM - HTML version. Added: clfswm/doc/variables.html Modified: clfswm/ChangeLog clfswm/doc/corner.html clfswm/doc/corner.txt clfswm/doc/keys.html clfswm/doc/keys.txt clfswm/doc/menu.html clfswm/doc/menu.txt clfswm/doc/variables.txt clfswm/src/clfswm-autodoc.lisp clfswm/src/clfswm-internal.lisp clfswm/src/my-html.lisp clfswm/src/tools.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Fri Mar 18 17:28:07 2011 @@ -1,3 +1,12 @@ +2011-03-18 Philippe Brochard + + * src/clfswm-autodoc.lisp (produce-conf-var-doc-html): Produce a + documentation for all configurable variables in CLFSWM - + HTML version. + + * src/clfswm-internal.lisp (leave-frame): Hide all children except + the current window. + 2011-03-16 Philippe Brochard * src/clfswm-autodoc.lisp (produce-all-docs): Produce a Modified: clfswm/doc/corner.html ============================================================================== --- clfswm/doc/corner.html (original) +++ clfswm/doc/corner.html Fri Mar 18 17:28:07 2011 @@ -120,7 +120,7 @@ Bottom-Left: - Start the file manager + --- Modified: clfswm/doc/corner.txt ============================================================================== --- clfswm/doc/corner.txt (original) +++ clfswm/doc/corner.txt Fri Mar 18 17:28:07 2011 @@ -16,7 +16,7 @@ Top-Left: Hide/Unhide a terminal Top-Right: Close or kill the current window (ask before doing anything) Bottom-Right: Present all windows in all frames (An expose like) - Bottom-Left: Start the file manager + Bottom-Left: --- *Corner-Second-Mode-Left-Button*: Top-Left: --- @@ -38,7 +38,7 @@ This documentation was produced with the CLFSWM auto-doc functions. -To reproduce it, use the produce-menu-doc-in-file or +To reproduce it, use the produce-corner-doc-in-file or the produce-all-docs function from the Lisp REPL. Something like this: Modified: clfswm/doc/keys.html ============================================================================== --- clfswm/doc/keys.html (original) +++ clfswm/doc/keys.html Fri Mar 18 17:28:07 2011 @@ -365,7 +365,7 @@ Mod-1 - Ccedilla + 1 Bind or jump to a slot (a frame or a window) @@ -376,7 +376,7 @@ Mod-1 - Underscore + 2 Bind or jump to a slot (a frame or a window) @@ -387,7 +387,7 @@ Mod-1 - Egrave + 3 Bind or jump to a slot (a frame or a window) @@ -398,7 +398,7 @@ Mod-1 - Minus + 4 Bind or jump to a slot (a frame or a window) @@ -409,7 +409,7 @@ Mod-1 - Parenleft + 5 Bind or jump to a slot (a frame or a window) @@ -420,7 +420,7 @@ Mod-1 - Quoteright + 6 Bind or jump to a slot (a frame or a window) @@ -431,7 +431,7 @@ Mod-1 - Quotedbl + 7 Bind or jump to a slot (a frame or a window) @@ -442,7 +442,7 @@ Mod-1 - Eacute + 8 Bind or jump to a slot (a frame or a window) @@ -453,7 +453,7 @@ Mod-1 - Ampersand + 9 Bind or jump to a slot (a frame or a window) @@ -464,111 +464,12 @@ Mod-1 - F2 - - - Open the Music Player Daemon (MPD) menu - - - - - Mod-1 - - - Agrave + 0 Bind or jump to a slot (a frame or a window) - - - - - - Pause - - - Open the Reboot/Halt menu - - - - - - - - Xf86audiomute - - - Toggle mute. - - - - - - - - Xf86audiolowervolume - - - Lower volume. - - - - - - - - Xf86audioraisevolume - - - Raise volume. - - - - - - - - Control_r - - - Move the pointer to the lower right corner of the screen - - - - - Control - - - 66 - - - Present all windows in the current child (An expose like) - - - - - Mod-1 Control - - - 66 - - - Present all windows in the current frame (An expose like) - - - - - Control Shift - - - 66 - - - Present all windows in all frames (An expose like) - -

@@ -747,7 +648,7 @@ Less - Lower 1% volume. + Open the main menu @@ -1426,7 +1327,7 @@ Mod-1 - Ccedilla + 1 Bind or jump to a slot (a frame or a window) @@ -1437,7 +1338,7 @@ Mod-1 - Underscore + 2 Bind or jump to a slot (a frame or a window) @@ -1448,7 +1349,7 @@ Mod-1 - Egrave + 3 Bind or jump to a slot (a frame or a window) @@ -1459,7 +1360,7 @@ Mod-1 - Minus + 4 Bind or jump to a slot (a frame or a window) @@ -1470,7 +1371,7 @@ Mod-1 - Parenleft + 5 Bind or jump to a slot (a frame or a window) @@ -1481,7 +1382,7 @@ Mod-1 - Quoteright + 6 Bind or jump to a slot (a frame or a window) @@ -1492,7 +1393,7 @@ Mod-1 - Quotedbl + 7 Bind or jump to a slot (a frame or a window) @@ -1503,7 +1404,7 @@ Mod-1 - Eacute + 8 Bind or jump to a slot (a frame or a window) @@ -1514,7 +1415,7 @@ Mod-1 - Ampersand + 9 Bind or jump to a slot (a frame or a window) @@ -1522,148 +1423,15 @@ - - - - Twosuperior - - - Move the pointer to the lower right corner of the screen - - - - Mod-1 - Agrave + 0 Bind or jump to a slot (a frame or a window) - - - - - - Xf86audiomute - - - Toggle mute. - - - - - - - - Xf86audiolowervolume - - - Lower volume. - - - - - - - - Xf86audioraisevolume - - - Raise volume. - - - - - - - - Greater - - - Raise 1% volume. - - - - - - - - Space - - - start the file manager - - - - - - - - Z - - - start the web browser - - - - - Shift - - - Z - - - start the Konqueror web browser - - - - - - - - S - - - start the web browser on the search page - - - - - Control - - - S - - - start the web browser on the search page with google - - - - - Shift - - - S - - - Ask an URL to be opened in the Surf browser - - - - - - - - Q - - - - - -

Modified: clfswm/doc/keys.txt ============================================================================== --- clfswm/doc/keys.txt (original) +++ clfswm/doc/keys.txt Fri Mar 18 17:28:07 2011 @@ -36,25 +36,16 @@ Control Escape Close or kill the current window (ask before doing anything) Mod-1 T Switch to editing mode (second mode) Control Less Switch to editing mode (second mode) - Mod-1 Ccedilla Bind or jump to a slot (a frame or a window) - Mod-1 Underscore Bind or jump to a slot (a frame or a window) - Mod-1 Egrave Bind or jump to a slot (a frame or a window) - Mod-1 Minus Bind or jump to a slot (a frame or a window) - Mod-1 Parenleft Bind or jump to a slot (a frame or a window) - Mod-1 Quoteright Bind or jump to a slot (a frame or a window) - Mod-1 Quotedbl Bind or jump to a slot (a frame or a window) - Mod-1 Eacute Bind or jump to a slot (a frame or a window) - Mod-1 Ampersand Bind or jump to a slot (a frame or a window) - Mod-1 F2 Open the Music Player Daemon (MPD) menu - Mod-1 Agrave Bind or jump to a slot (a frame or a window) - Pause Open the Reboot/Halt menu - Xf86audiomute Toggle mute. - Xf86audiolowervolume Lower volume. - Xf86audioraisevolume Raise volume. - Control_r Move the pointer to the lower right corner of the screen - Control 66 Present all windows in the current child (An expose like) - Mod-1 Control 66 Present all windows in the current frame (An expose like) - Control Shift 66 Present all windows in all frames (An expose like) + Mod-1 1 Bind or jump to a slot (a frame or a window) + Mod-1 2 Bind or jump to a slot (a frame or a window) + Mod-1 3 Bind or jump to a slot (a frame or a window) + Mod-1 4 Bind or jump to a slot (a frame or a window) + Mod-1 5 Bind or jump to a slot (a frame or a window) + Mod-1 6 Bind or jump to a slot (a frame or a window) + Mod-1 7 Bind or jump to a slot (a frame or a window) + Mod-1 8 Bind or jump to a slot (a frame or a window) + Mod-1 9 Bind or jump to a slot (a frame or a window) + Mod-1 0 Bind or jump to a slot (a frame or a window) Mouse buttons actions in main mode: @@ -79,7 +70,7 @@ Mod-1 F1 Open the help and info window M Open the main menu - Less Lower 1% volume. + Less Open the main menu Control Less Open the main menu F Open the frame menu W Open the window menu @@ -141,28 +132,16 @@ Control F10 Present all windows in the current frame (An expose like) Shift L2 Show all frames info windows until a key is release Mod-1 Shift L2 Show all frames info windows - Mod-1 Ccedilla Bind or jump to a slot (a frame or a window) - Mod-1 Underscore Bind or jump to a slot (a frame or a window) - Mod-1 Egrave Bind or jump to a slot (a frame or a window) - Mod-1 Minus Bind or jump to a slot (a frame or a window) - Mod-1 Parenleft Bind or jump to a slot (a frame or a window) - Mod-1 Quoteright Bind or jump to a slot (a frame or a window) - Mod-1 Quotedbl Bind or jump to a slot (a frame or a window) - Mod-1 Eacute Bind or jump to a slot (a frame or a window) - Mod-1 Ampersand Bind or jump to a slot (a frame or a window) - Twosuperior Move the pointer to the lower right corner of the screen - Mod-1 Agrave Bind or jump to a slot (a frame or a window) - Xf86audiomute Toggle mute. - Xf86audiolowervolume Lower volume. - Xf86audioraisevolume Raise volume. - Greater Raise 1% volume. - Space start the file manager - Z start the web browser - Shift Z start the Konqueror web browser - S start the web browser on the search page - Control S start the web browser on the search page with google - Shift S Ask an URL to be opened in the Surf browser - Q NIL + Mod-1 1 Bind or jump to a slot (a frame or a window) + Mod-1 2 Bind or jump to a slot (a frame or a window) + Mod-1 3 Bind or jump to a slot (a frame or a window) + Mod-1 4 Bind or jump to a slot (a frame or a window) + Mod-1 5 Bind or jump to a slot (a frame or a window) + Mod-1 6 Bind or jump to a slot (a frame or a window) + Mod-1 7 Bind or jump to a slot (a frame or a window) + Mod-1 8 Bind or jump to a slot (a frame or a window) + Mod-1 9 Bind or jump to a slot (a frame or a window) + Mod-1 0 Bind or jump to a slot (a frame or a window) Mouse buttons actions in second mode: Modified: clfswm/doc/menu.html ============================================================================== --- clfswm/doc/menu.html (original) +++ clfswm/doc/menu.html Fri Mar 18 17:28:07 2011 @@ -90,105 +90,6 @@

v: Show the current CLFSWM version

-

- F2: < Music Player Daemon (MPD) menu > -

-

- x: < XMMS menu > -

-

- i: < CDPLAYER menu > -

-
-

- Mpd-Menu -

-

- i: Show MPD informations -

-

- p: Play the previous song in the current playlist -

-

- n: Play the next song in the current playlist -

-

- t: Toggles Play/Pause, plays if stopped -

-

- y: Start playing -

-

- k: Stop the currently playing playlists -

-

- x: Seeks to +5% -

-

- w: Seeks to -5% -

-

- l: Show the current MPD playlist -

-

- s: Start sonata -

-

- g: Start gmpc -

-
-

- Xmms-Menu -

-

- r: Lanch XMMS -

-

- s: Show the current xmms status -

-

- l: Show the current xmms playlist -

-

- n: Play the next XMMS track -

-

- p: Play the previous XMMS track -

-

- e: open xmms "Load file(s)" dialog window. -

-
-

- Cdplayer-Menu -

-

- y: Start playing CD -

-

- k: Stop playing CD -

-

- t: Toggle pause -

-

- s: Show the current CD status -

-

- l: Show the current CD playlist -

-

- n: Play the next CD track -

-

- p: Play the previous CD track -

-

- e: Eject CD -

-

- c: Close CD -


Standard-Menu @@ -957,61 +858,61 @@ Graphics

- a: Image Viewer + a: LibreOffice Draw

- b: Document Viewer - View multi-page documents + b: Image Viewer

- c: Gcolor2 - Choose colours from palette or screen + c: Document Viewer - View multi-page documents

- d: Geeqie - View and manage images + d: Gcolor2 - Choose colours from palette or screen

- e: PostScript Viewer - View PostScript files + e: Geeqie - View and manage images

- f: GNU Image Manipulation Program - Create images and edit photographs + f: PostScript Viewer - View PostScript files

- g: Image Viewer + g: GNU Image Manipulation Program - Create images and edit photographs

- h: GQview - View and manage images + h: Image Viewer

- i: gThumb - View and organize your images + i: GQview - View and manage images

j: gThumb - View and organize your images

- k: GV + k: gThumb - View and organize your images

- l: Inkscape - Create and edit Scalable Vector Graphics images + l: GV

- m: digiKam + m: Inkscape - Create and edit Scalable Vector Graphics images

- n: Gwenview - A simple image viewer + n: digiKam

- o: KColorChooser + o: Gwenview - A simple image viewer

- p: KolourPaint + p: KColorChooser

- q: KRuler + q: KolourPaint

- r: KSnapshot + r: KRuler

- s: Okular + s: KSnapshot

t: Okular @@ -1059,6 +960,9 @@ |: Okular

+ |: Okular +

+

|: showFoto - Manage your photographs like a professional with the power of open source

@@ -1226,85 +1130,82 @@ Office

- a: LibreOffice 3.3 Base + a: AbiWord

- b: LibreOffice 3.3 Calc + b: LibreOffice Base

- c: LibreOffice 3.3 Draw + c: LibreOffice Calc

- d: LibreOffice 3.3 Impress + d: ePDFViewer - Lightweight PDF document viewer

- e: LibreOffice 3.3 Math + e: Evolution - Manage your email, contacts and schedule

- f: LibreOffice 3.3 Printer Administration + f: FreeMind

- g: LibreOffice 3.3 + g: Orage Globaltime - Show clocks from different countries

- h: LibreOffice 3.3 Writer + h: Gnumeric - Calculation, Analysis, and Visualization of Information

- i: AbiWord + i: GV

- j: ePDFViewer - Lightweight PDF document viewer + j: LibreOffice Impress

- k: Evolution - Manage your email, contacts and schedule + k: Kontact

- l: FreeMind + l: KAddressBook

- m: Orage Globaltime - Show clocks from different countries + m: KOrganizer - Calendar and Scheduling Program

- n: Gnumeric - Calculation, Analysis, and Visualization of Information + n: KTimeTracker

- o: GV + o: KWord - Write text documents

- p: Kontact + p: Lokalize

- q: KAddressBook + q: Okular

- r: KOrganizer - Calendar and Scheduling Program + r: LibreOffice 3.3 Math

- s: KTimeTracker + s: LibreOffice 3.3 Printer Administration

- t: KWord - Write text documents + t: LibreOffice 3.3

- u: Lokalize -

-

- v: Okular + u: LibreOffice 3.3 Writer

- w: Lyx - Latex WYSIWYM Editor + v: Lyx - Latex WYSIWYM Editor

- x: LibreOffice Extension Manager + w: LibreOffice Extension Manager

- y: OOo4Kids 1.2 Calc + x: OOo4Kids 1.2 Calc

- z: OOo4Kids 1.2 Draw + y: OOo4Kids 1.2 Draw

- |: OOo4Kids 1.2 Impress + z: OOo4Kids 1.2 Impress

|: OOo4Kids 1.2 Math @@ -2790,12 +2691,6 @@

i: Open the window in this frame if it match absorb-nw-test

-

- z: Open the window in the UZBL frame if it match uzbl absorb-nw-test -

-

- s: Open the window in the Surf frame if it match surf absorb-nw-test -


Frame-Movement-Menu @@ -3118,52 +3013,49 @@ Configuration-Menu

- a: < Volume Mode Group > + a: < Gimp Layout Group >

- b: < Gimp Layout Group > + b: < Notify Window Group >

- c: < Notify Window Group > + c: < Menu Group >

- d: < Menu Group > + d: < Expose Mode Group >

- e: < Expose Mode Group > + e: < Circulate Mode Group >

- f: < Circulate Mode Group > + f: < Info Mode Group >

- g: < Info Mode Group > + g: < Query String Group >

- h: < Query String Group > + h: < Identify Key Group >

- i: < Identify Key Group > + i: < Second Mode Group >

- j: < Second Mode Group > + j: < Frame Colors Group >

- k: < Frame Colors Group > + k: < Corner Group >

- l: < Corner Group > + l: < Placement Group >

- m: < Placement Group > + m: < Hook Group >

- n: < Hook Group > + n: < Main Mode Group >

- o: < Main Mode Group > -

-

- p: < Miscellaneous Group > + o: < Miscellaneous Group >

F2: Save all configuration variables in clfswmrc @@ -3173,34 +3065,6 @@


- Conf-Volume-Mode -

-

- a: Configure VOLUME-EXTERNAL-MIXER-CMD -

-

- b: Configure VOLUME-TEXT-LIMIT -

-

- c: Configure VOLUME-HEIGHT -

-

- d: Configure VOLUME-WIDTH -

-

- e: Configure VOLUME-BORDER -

-

- f: Configure VOLUME-FOREGROUND -

-

- g: Configure VOLUME-BACKGROUND -

-

- h: Configure VOLUME-FONT-STRING -

-
-

Conf-Gimp-Layout

@@ -3449,28 +3313,25 @@ Conf-Placement

- a: Configure VOLUME-MODE-PLACEMENT + a: Configure NOTIFY-WINDOW-PLACEMENT

- b: Configure NOTIFY-WINDOW-PLACEMENT + b: Configure EXPOSE-MODE-PLACEMENT

- c: Configure EXPOSE-MODE-PLACEMENT + c: Configure CIRCULATE-MODE-PLACEMENT

- d: Configure CIRCULATE-MODE-PLACEMENT + d: Configure QUERY-MODE-PLACEMENT

- e: Configure QUERY-MODE-PLACEMENT + e: Configure INFO-MODE-PLACEMENT

- f: Configure INFO-MODE-PLACEMENT + f: Configure SECOND-MODE-PLACEMENT

- g: Configure SECOND-MODE-PLACEMENT -

-

- h: Configure BANISH-POINTER-PLACEMENT + g: Configure BANISH-POINTER-PLACEMENT


@@ -3569,28 +3430,6 @@

x: Exit clfswm

-

- Pause: < Suspend/Reboot/Halt menu > -

-
-

- Reboot-Halt-Menu -

-

- -: Do nothing -

-

- s: Suspend the computer to RAM -

-

- d: Suspend the computer to DISK -

-

- r: Reboot the computer -

-

- h: Halt the computer -


Modified: clfswm/doc/menu.txt ============================================================================== --- clfswm/doc/menu.txt (original) +++ clfswm/doc/menu.txt Fri Mar 18 17:28:07 2011 @@ -27,41 +27,6 @@ p: Show current processes sorted by CPU usage m: Show current processes sorted by memory usage v: Show the current CLFSWM version -F2: < Music Player Daemon (MPD) menu > -x: < XMMS menu > -i: < CDPLAYER menu > - -Mpd-Menu -i: Show MPD informations -p: Play the previous song in the current playlist -n: Play the next song in the current playlist -t: Toggles Play/Pause, plays if stopped -y: Start playing -k: Stop the currently playing playlists -x: Seeks to +5% -w: Seeks to -5% -l: Show the current MPD playlist -s: Start sonata -g: Start gmpc - -Xmms-Menu -r: Lanch XMMS -s: Show the current xmms status -l: Show the current xmms playlist -n: Play the next XMMS track -p: Play the previous XMMS track -e: open xmms "Load file(s)" dialog window. - -Cdplayer-Menu -y: Start playing CD -k: Stop playing CD -t: Toggle pause -s: Show the current CD status -l: Show the current CD playlist -n: Play the next CD track -p: Play the previous CD track -e: Eject CD -c: Close CD Standard-Menu a: < TEXTEDITOR > @@ -325,25 +290,25 @@ |: XSpaceWarp - Live long and prosper! Graphics -a: Image Viewer -b: Document Viewer - View multi-page documents -c: Gcolor2 - Choose colours from palette or screen -d: Geeqie - View and manage images -e: PostScript Viewer - View PostScript files -f: GNU Image Manipulation Program - Create images and edit photographs -g: Image Viewer -h: GQview - View and manage images -i: gThumb - View and organize your images +a: LibreOffice Draw +b: Image Viewer +c: Document Viewer - View multi-page documents +d: Gcolor2 - Choose colours from palette or screen +e: Geeqie - View and manage images +f: PostScript Viewer - View PostScript files +g: GNU Image Manipulation Program - Create images and edit photographs +h: Image Viewer +i: GQview - View and manage images j: gThumb - View and organize your images -k: GV -l: Inkscape - Create and edit Scalable Vector Graphics images -m: digiKam -n: Gwenview - A simple image viewer -o: KColorChooser -p: KolourPaint -q: KRuler -r: KSnapshot -s: Okular +k: gThumb - View and organize your images +l: GV +m: Inkscape - Create and edit Scalable Vector Graphics images +n: digiKam +o: Gwenview - A simple image viewer +p: KColorChooser +q: KolourPaint +r: KRuler +s: KSnapshot t: Okular u: Okular v: Okular @@ -359,6 +324,7 @@ |: Okular |: Okular |: Okular +|: Okular |: showFoto - Manage your photographs like a professional with the power of open source |: MuPDF - PDF file viewer |: Xfig @@ -416,33 +382,32 @@ |: Zenmap Office -a: LibreOffice 3.3 Base -b: LibreOffice 3.3 Calc -c: LibreOffice 3.3 Draw -d: LibreOffice 3.3 Impress -e: LibreOffice 3.3 Math -f: LibreOffice 3.3 Printer Administration -g: LibreOffice 3.3 -h: LibreOffice 3.3 Writer -i: AbiWord -j: ePDFViewer - Lightweight PDF document viewer -k: Evolution - Manage your email, contacts and schedule -l: FreeMind -m: Orage Globaltime - Show clocks from different countries -n: Gnumeric - Calculation, Analysis, and Visualization of Information -o: GV -p: Kontact -q: KAddressBook -r: KOrganizer - Calendar and Scheduling Program -s: KTimeTracker -t: KWord - Write text documents -u: Lokalize -v: Okular -w: Lyx - Latex WYSIWYM Editor -x: LibreOffice Extension Manager -y: OOo4Kids 1.2 Calc -z: OOo4Kids 1.2 Draw -|: OOo4Kids 1.2 Impress +a: AbiWord +b: LibreOffice Base +c: LibreOffice Calc +d: ePDFViewer - Lightweight PDF document viewer +e: Evolution - Manage your email, contacts and schedule +f: FreeMind +g: Orage Globaltime - Show clocks from different countries +h: Gnumeric - Calculation, Analysis, and Visualization of Information +i: GV +j: LibreOffice Impress +k: Kontact +l: KAddressBook +m: KOrganizer - Calendar and Scheduling Program +n: KTimeTracker +o: KWord - Write text documents +p: Lokalize +q: Okular +r: LibreOffice 3.3 Math +s: LibreOffice 3.3 Printer Administration +t: LibreOffice 3.3 +u: LibreOffice 3.3 Writer +v: Lyx - Latex WYSIWYM Editor +w: LibreOffice Extension Manager +x: OOo4Kids 1.2 Calc +y: OOo4Kids 1.2 Draw +z: OOo4Kids 1.2 Impress |: OOo4Kids 1.2 Math |: OOo4Kids 1.2 |: OOo4Kids 1.2 Printer Administration @@ -949,8 +914,6 @@ g: Open the next window in a named frame h: Open the next window in a numbered frame i: Open the window in this frame if it match absorb-nw-test -z: Open the window in the UZBL frame if it match uzbl absorb-nw-test -s: Open the window in the Surf frame if it match surf absorb-nw-test Frame-Movement-Menu p: < Frame pack menu > @@ -1068,35 +1031,24 @@ p: Prompt for an other window manager Configuration-Menu -a: < Volume Mode Group > -b: < Gimp Layout Group > -c: < Notify Window Group > -d: < Menu Group > -e: < Expose Mode Group > -f: < Circulate Mode Group > -g: < Info Mode Group > -h: < Query String Group > -i: < Identify Key Group > -j: < Second Mode Group > -k: < Frame Colors Group > -l: < Corner Group > -m: < Placement Group > -n: < Hook Group > -o: < Main Mode Group > -p: < Miscellaneous Group > +a: < Gimp Layout Group > +b: < Notify Window Group > +c: < Menu Group > +d: < Expose Mode Group > +e: < Circulate Mode Group > +f: < Info Mode Group > +g: < Query String Group > +h: < Identify Key Group > +i: < Second Mode Group > +j: < Frame Colors Group > +k: < Corner Group > +l: < Placement Group > +m: < Hook Group > +n: < Main Mode Group > +o: < Miscellaneous Group > F2: Save all configuration variables in clfswmrc F3: Reset all configuration variables to there default values -Conf-Volume-Mode -a: Configure VOLUME-EXTERNAL-MIXER-CMD -b: Configure VOLUME-TEXT-LIMIT -c: Configure VOLUME-HEIGHT -d: Configure VOLUME-WIDTH -e: Configure VOLUME-BORDER -f: Configure VOLUME-FOREGROUND -g: Configure VOLUME-BACKGROUND -h: Configure VOLUME-FONT-STRING - Conf-Gimp-Layout a: Configure GIMP-LAYOUT-NOTIFY-WINDOW-DELAY @@ -1187,14 +1139,13 @@ j: Configure CORNER-SIZE Conf-Placement -a: Configure VOLUME-MODE-PLACEMENT -b: Configure NOTIFY-WINDOW-PLACEMENT -c: Configure EXPOSE-MODE-PLACEMENT -d: Configure CIRCULATE-MODE-PLACEMENT -e: Configure QUERY-MODE-PLACEMENT -f: Configure INFO-MODE-PLACEMENT -g: Configure SECOND-MODE-PLACEMENT -h: Configure BANISH-POINTER-PLACEMENT +a: Configure NOTIFY-WINDOW-PLACEMENT +b: Configure EXPOSE-MODE-PLACEMENT +c: Configure CIRCULATE-MODE-PLACEMENT +d: Configure QUERY-MODE-PLACEMENT +e: Configure INFO-MODE-PLACEMENT +f: Configure SECOND-MODE-PLACEMENT +g: Configure BANISH-POINTER-PLACEMENT Conf-Hook a: Configure DEFAULT-NW-HOOK @@ -1230,14 +1181,6 @@ r: Reset clfswm l: Reload clfswm x: Exit clfswm -Pause: < Suspend/Reboot/Halt menu > - -Reboot-Halt-Menu --: Do nothing -s: Suspend the computer to RAM -d: Suspend the computer to DISK -r: Reboot the computer -h: Halt the computer This documentation was produced with the CLFSWM auto-doc functions. To reproduce it, use the produce-menu-doc-in-file or Added: clfswm/doc/variables.html ============================================================================== --- (empty file) +++ clfswm/doc/variables.html Fri Mar 18 17:28:07 2011 @@ -0,0 +1,1076 @@ + + + + CLFSWM - Configuration variables + + + +

+ + CLFSWM - Configuration variables + +

+

+ Here are the variables you can configure in CLFSWM with the configuration file or the configuration menu: +

+

+ + Configuration variables groups: + +

+ +

+ + <= Circulate Mode Group => + +

+ +    *circulate-font-string* + + + = "fixed"
+
+         Circulate string window font string
+ + +    *circulate-background* + + + = "black"
+
+         Circulate string window background color
+ + +    *circulate-foreground* + + + = "green"
+
+         Circulate string window foreground color
+ + +    *circulate-border* + + + = "red"
+
+         Circulate string window border color
+ + +    *circulate-width* + + + = 400
+
+         Circulate mode window width
+ + +    *circulate-height* + + + = 15
+
+         Circulate mode window height
+ + +    *circulate-text-limite* + + + = 30
+
+         Maximum text limite in the circulate window
+ +

+ + <= Corner Group => + +

+ +    *corner-size* + + + = 3
+
+         The size of the corner square
+ + +    *corner-main-mode-left-button* + + + = ((:TOP-LEFT OPEN-MENU)
+
+         (:TOP-RIGHT PRESENT-VIRTUAL-KEYBOARD)
+ +         (:BOTTOM-RIGHT EXPOSE-WINDOWS-MODE)
+ +         (:BOTTOM-LEFT NIL))
+ +         Actions on corners in the main mode with the left mouse button
+ + +    *corner-main-mode-middle-button* + + + = ((:TOP-LEFT HELP-ON-CLFSWM)
+
+         (:TOP-RIGHT
+ +         ASK-CLOSE/KILL-CURRENT-WINDOW)
+ +         (:BOTTOM-RIGHT NIL) (:BOTTOM-LEFT NIL))
+ +         Actions on corners in the main mode with the middle mouse button
+ + +    *corner-main-mode-right-button* + + + = ((:TOP-LEFT PRESENT-CLFSWM-TERMINAL)
+
+         (:TOP-RIGHT ASK-CLOSE/KILL-CURRENT-WINDOW)
+ +         (:BOTTOM-RIGHT EXPOSE-ALL-WINDOWS-MODE)
+ +         (:BOTTOM-LEFT NIL))
+ +         Actions on corners in the main mode with the right mouse button
+ + +    *corner-second-mode-left-button* + + + = ((:TOP-LEFT NIL) (:TOP-RIGHT NIL)
+
+         (:BOTTOM-RIGHT EXPOSE-WINDOWS-MODE)
+ +         (:BOTTOM-LEFT NIL))
+ +         Actions on corners in the second mode with the left mouse button
+ + +    *corner-second-mode-middle-button* + + + = ((:TOP-LEFT HELP-ON-CLFSWM)
+
+         (:TOP-RIGHT NIL) (:BOTTOM-RIGHT NIL)
+ +         (:BOTTOM-LEFT NIL))
+ +         Actions on corners in the second mode with the middle mouse button
+ + +    *corner-second-mode-right-button* + + + = ((:TOP-LEFT NIL) (:TOP-RIGHT NIL)
+
+         (:BOTTOM-RIGHT EXPOSE-ALL-WINDOWS-MODE)
+ +         (:BOTTOM-LEFT NIL))
+ +         Actions on corners in the second mode with the right mouse button
+ + +    *virtual-keyboard-cmd* + + + = "xvkbd"
+
+         The command to display the virtual keybaord
+ +         Here is an ~/.Xresources example for xvkbd:
+ +         xvkbd.windowGeometry: 300x100-0-0
+ +         xvkbd*Font: 6x12
+ +         xvkbd.modalKeytop: true
+ +         xvkbd.customization: -french
+ +         xvkbd.keypad: false
+ +         And make it always on top
+ + +    *clfswm-terminal-name* + + + = "clfswm-terminal"
+
+         The clfswm terminal name
+ + +    *clfswm-terminal-cmd* + + + = "xterm -T clfswm-terminal"
+
+         The clfswm terminal command.
+ +         This command must set the window title to *clfswm-terminal-name*
+ +

+ + <= Expose Mode Group => + +

+ +    *expose-font-string* + + + = "fixed"
+
+         Expose string window font string
+ + +    *expose-background* + + + = "black"
+
+         Expose string window background color
+ + +    *expose-foreground* + + + = "green"
+
+         Expose string window foreground color
+ + +    *expose-border* + + + = "red"
+
+         Expose string window border color
+ + +    *expose-valid-on-key* + + + = T
+
+         Valid expose mode when an accel key is pressed
+ + +    *expose-show-window-title* + + + = T
+
+         Show the window title on accel window
+ +

+ + <= Frame Colors Group => + +

+ +    *frame-background* + + + = "Black"
+
+         Frame background
+ + +    *frame-foreground* + + + = "Green"
+
+         Frame foreground
+ + +    *frame-foreground-root* + + + = "Red"
+
+         Frame foreground when the frame is the root frame
+ + +    *frame-foreground-hidden* + + + = "Darkgreen"
+
+         Frame foreground for hidden windows
+ +

+ + <= Gimp Layout Group => + +

+ +    *gimp-layout-notify-window-delay* + + + = 30
+
+         Time to display the GIMP layout notify window help
+ +

+ + <= Hook Group => + +

+ +    *binding-hook* + + + = (SET-DEFAULT-CIRCULATE-KEYS SET-DEFAULT-EXPOSE-KEYS
+
+         INIT-*INFO-KEYS*
+ +         INIT-*INFO-MOUSE*
+ +         SET-DEFAULT-INFO-KEYS
+ +         SET-DEFAULT-INFO-MOUSE
+ +         INIT-*QUERY-KEYS*
+ +         SET-DEFAULT-QUERY-KEYS
+ +         INIT-*MAIN-KEYS*
+ +         INIT-*MAIN-MOUSE*
+ +         SET-DEFAULT-MAIN-KEYS
+ +         SET-DEFAULT-MAIN-MOUSE
+ +         INIT-*SECOND-KEYS*
+ +         INIT-*SECOND-MOUSE*
+ +         SET-DEFAULT-SECOND-KEYS
+ +         SET-DEFAULT-SECOND-MOUSE)
+ +         Hook executed when keys/buttons are bounds
+ + +    *loop-hook* + + + = NIL
+
+         Hook executed on each event loop
+ + +    *main-entrance-hook* + + + = NIL
+
+         Hook executed on the main function entrance after
+ +         loading configuration file and before opening the display.
+ + +    *init-hook* + + + = (DEFAULT-INIT-HOOK DISPLAY-HELLO-WINDOW)
+
+         Init hook. This hook is run just after the first root frame is created
+ + +    *close-hook* + + + = (CLOSE-NOTIFY-WINDOW CLOSE-CLFSWM-TERMINAL
+
+         CLOSE-VIRTUAL-KEYBOARD)
+ +         Close hook. This hook is run just before closing the display
+ + +    *default-nw-hook* + + + = DEFAULT-FRAME-NW-HOOK
+
+         Default action to do on newly created windows
+ +

+ + <= Identify Key Group => + +

+ +    *identify-font-string* + + + = "fixed"
+
+         Identify window font string
+ + +    *identify-background* + + + = "black"
+
+         Identify window background color
+ + +    *identify-foreground* + + + = "green"
+
+         Identify window foreground color
+ + +    *identify-border* + + + = "red"
+
+         Identify window border color
+ +

+ + <= Info Mode Group => + +

+ +    *info-background* + + + = "black"
+
+         Info window background color
+ + +    *info-foreground* + + + = "green"
+
+         Info window foreground color
+ + +    *info-border* + + + = "red"
+
+         Info window border color
+ + +    *info-line-cursor* + + + = "white"
+
+         Info window line cursor color color
+ + +    *info-selected-background* + + + = "blue"
+
+         Info selected item background color
+ + +    *info-font-string* + + + = "fixed"
+
+         Info window font string
+ + +    *info-click-to-select* + + + = T
+
+         If true, click on info window select item. Otherwise, click to drag the menu
+ + +    *info-color-title* + + + = "Magenta"
+
+         Colored info title color
+ + +    *info-color-underline* + + + = "Yellow"
+
+         Colored info underline color
+ + +    *info-color-first* + + + = "Cyan"
+
+         Colored info first color
+ + +    *info-color-second* + + + = "lightblue"
+
+         Colored info second color
+ +

+ + <= Main Mode Group => + +

+ +    *color-move-window* + + + = "DeepPink"
+
+         Color when moving or resizing a windows
+ + +    *color-selected* + + + = "Red"
+
+         Color of selected window
+ + +    *color-unselected* + + + = "Blue"
+
+         Color of unselected color
+ + +    *color-maybe-selected* + + + = "Yellow"
+
+         Color of maybe selected windows
+ +

+ + <= Menu Group => + +

+ +    *menu-color-submenu* + + + = "Cyan"
+
+         Submenu color in menu
+ + +    *menu-color-comment* + + + = "Yellow"
+
+         Comment color in menu
+ + +    *menu-color-key* + + + = "Magenta"
+
+         Key color in menu
+ + +    *menu-color-menu-key* + + + = #
+
+         Menu key color in menu
+ + +    *xdg-section-list* + + + = (TEXTEDITOR FILEMANAGER WEBBROWSER AUDIOVIDEO AUDIO
+
+         VIDEO DEVELOPMENT EDUCATION GAME GRAPHICS NETWORK
+ +         OFFICE SETTINGS SYSTEM UTILITY TERMINALEMULATOR
+ +         ARCHLINUX SCREENSAVER)
+ +         Standard menu sections
+ +

+ + <= Miscellaneous Group => + +

+ +    *have-to-compress-notify* + + + = T
+
+         Compress event notify?
+ +         This variable may be useful to speed up some slow version of CLX.
+ +         It is particulary useful with CLISP/MIT-CLX.
+ + +    *show-root-frame-p* + + + = NIL
+
+         Show the root frame information or not
+ + +    *border-size* + + + = 1
+
+         Windows and frames border size
+ + +    *loop-timeout* + + + = 0.1
+
+         Maximum time (in seconds) to wait before calling *loop-hook*
+ + +    *default-font-string* + + + = "fixed"
+
+         The default font used in clfswm
+ + +    *default-frame-data* + + + = ((:TILE-SIZE 0.8) (:TILE-SPACE-SIZE 0.1)
+
+         (:FAST-LAYOUT (TILE-LEFT-LAYOUT TILE-LAYOUT))
+ +         (:MAIN-LAYOUT-WINDOWS NIL))
+ +         Default slots set in frame date
+ + +    *default-managed-type* + + + = (:NORMAL)
+
+         Default managed window types
+ + +    *default-focus-policy* + + + = :CLICK
+
+         Default mouse focus policy. One of :click, :sloppy, :sloppy-strict or :sloppy-select.
+ + +    *default-modifiers* + + + = NIL
+
+         Default modifiers list to append to explicit modifiers
+ +         Example: :mod-2 for num_lock, :lock for Caps_lock...
+ + +    *never-managed-window-list* + + + = ((EQUAL-WM-CLASS-ROX-PINBOARD NIL)
+
+         (EQUAL-WM-CLASS-XVKBD RAISE-WINDOW)
+ +         (EQUAL-CLFSWM-TERMINAL RAISE-AND-FOCUS-WINDOW))
+ +         CLFSWM will never manage windows of this type.
+ +         A list of (list match-function handle-function)
+ + +    *hide-unmanaged-window* + + + = T
+
+         Hide or not unmanaged windows when a child is deselected.
+ + +    *create-frame-on-root* + + + = NIL
+
+         Create frame on root.
+ +         Set this variable to true if you want to allow to create a new frame
+ +         on the root window in the main mode with the mouse
+ + +    *default-window-width* + + + = 400
+
+         Default window width
+ + +    *default-window-height* + + + = 300
+
+         Default window height
+ +

+ + <= Notify Window Group => + +

+ +    *notify-window-font-string* + + + = "fixed"
+
+         Notify window font string
+ + +    *notify-window-background* + + + = "black"
+
+         Notify Window background color
+ + +    *notify-window-foreground* + + + = "green"
+
+         Notify Window foreground color
+ + +    *notify-window-border* + + + = "red"
+
+         Notify Window border color
+ + +    *notify-window-delay* + + + = 10
+
+         Notify Window display delay
+ +

+ + <= Placement Group => + +

+ +    *banish-pointer-placement* + + + = BOTTOM-RIGHT-PLACEMENT
+
+         Pointer banishment placement
+ + +    *second-mode-placement* + + + = TOP-MIDDLE-PLACEMENT
+
+         Second mode window placement
+ + +    *info-mode-placement* + + + = TOP-LEFT-PLACEMENT
+
+         Info mode window placement
+ + +    *query-mode-placement* + + + = TOP-LEFT-PLACEMENT
+
+         Query mode window placement
+ + +    *circulate-mode-placement* + + + = BOTTOM-MIDDLE-PLACEMENT
+
+         Circulate mode window placement
+ + +    *expose-mode-placement* + + + = TOP-LEFT-CHILD-PLACEMENT
+
+         Expose mode window placement (Selection keys position)
+ + +    *notify-window-placement* + + + = BOTTOM-RIGHT-PLACEMENT
+
+         Notify window placement
+ +

+ + <= Query String Group => + +

+ +    *query-font-string* + + + = "fixed"
+
+         Query string window font string
+ + +    *query-background* + + + = "black"
+
+         Query string window background color
+ + +    *query-message-color* + + + = "yellow"
+
+         Query string window message color
+ + +    *query-foreground* + + + = "green"
+
+         Query string window foreground color
+ + +    *query-cursor-color* + + + = "white"
+
+         Query string window foreground cursor color
+ + +    *query-parent-color* + + + = "blue"
+
+         Query string window parenthesis color
+ + +    *query-parent-error-color* + + + = "red"
+
+         Query string window parenthesis color when no match
+ + +    *query-border* + + + = "red"
+
+         Query string window border color
+ +

+ + <= Second Mode Group => + +

+ +    *sm-border-color* + + + = "Green"
+
+         Second mode window border color
+ + +    *sm-background-color* + + + = "Black"
+
+         Second mode window background color
+ + +    *sm-foreground-color* + + + = "Red"
+
+         Second mode window foreground color
+ + +    *sm-font-string* + + + = "fixed"
+
+         Second mode window font string
+ + +    *sm-width* + + + = 300
+
+         Second mode window width
+ + +    *sm-height* + + + = 25
+
+         Second mode window height
+ +

+ + This documentation was produced with the CLFSWM auto-doc functions. To reproduce it, use the produce-conf-var-doc-html-in-file or +the produce-all-docs function from the Lisp REPL. + +

+

+ + Something like this:
+LISP> (in-package :clfswm)
+CLFSWM> (produce-conf-var-doc-html-in-file "my-variables.html")
+or
CLFSWM> (produce-all-docs) +
+

+ + Modified: clfswm/doc/variables.txt ============================================================================== --- clfswm/doc/variables.txt (original) +++ clfswm/doc/variables.txt Fri Mar 18 17:28:07 2011 @@ -1,215 +1,57 @@ * CLFSWM Configuration variables * ------------------------------ - <= Volume Mode Group => +<= Circulate Mode Group => -*VOLUME-FONT-STRING* = "fixed" - Volume string window font string -*VOLUME-BACKGROUND* = "black" - Volume string window background color -*VOLUME-FOREGROUND* = "green" - Volume string window foreground color -*VOLUME-BORDER* = "red" - Volume string window border color -*VOLUME-WIDTH* = 400 - Volume mode window width -*VOLUME-HEIGHT* = 15 - Volume mode window height -*VOLUME-TEXT-LIMIT* = 30 - Maximum text limit in the volume window -*VOLUME-EXTERNAL-MIXER-CMD* = "/usr/bin/gnome-alsamixer" - Command to start an external mixer program - - - <= Gimp Layout Group => - -*GIMP-LAYOUT-NOTIFY-WINDOW-DELAY* = 30 - Time to display the GIMP layout notify window help - - - <= Notify Window Group => - -*NOTIFY-WINDOW-FONT-STRING* = "fixed" - Notify window font string -*NOTIFY-WINDOW-BACKGROUND* = "black" - Notify Window background color -*NOTIFY-WINDOW-FOREGROUND* = "green" - Notify Window foreground color -*NOTIFY-WINDOW-BORDER* = "red" - Notify Window border color -*NOTIFY-WINDOW-DELAY* = 10 - Notify Window display delay - - - <= Menu Group => - -*MENU-COLOR-SUBMENU* = "Cyan" - Submenu color in menu -*MENU-COLOR-COMMENT* = "Yellow" - Comment color in menu -*MENU-COLOR-KEY* = "Magenta" - Key color in menu -*MENU-COLOR-MENU-KEY* = # - Menu key color in menu -*XDG-SECTION-LIST* = (TEXTEDITOR FILEMANAGER WEBBROWSER AUDIOVIDEO AUDIO VIDEO - DEVELOPMENT EDUCATION GAME GRAPHICS NETWORK OFFICE - SETTINGS SYSTEM UTILITY TERMINALEMULATOR ARCHLINUX - SCREENSAVER) - Standard menu sections - - - <= Expose Mode Group => - -*EXPOSE-FONT-STRING* = "fixed" - Expose string window font string -*EXPOSE-BACKGROUND* = "black" - Expose string window background color -*EXPOSE-FOREGROUND* = "green" - Expose string window foreground color -*EXPOSE-BORDER* = "red" - Expose string window border color -*EXPOSE-VALID-ON-KEY* = T - Valid expose mode when an accel key is pressed -*EXPOSE-SHOW-WINDOW-TITLE* = T - Show the window title on accel window - - - <= Circulate Mode Group => - -*CIRCULATE-FONT-STRING* = "fixed" - Circulate string window font string -*CIRCULATE-BACKGROUND* = "black" - Circulate string window background color -*CIRCULATE-FOREGROUND* = "green" - Circulate string window foreground color -*CIRCULATE-BORDER* = "red" - Circulate string window border color -*CIRCULATE-WIDTH* = 400 - Circulate mode window width -*CIRCULATE-HEIGHT* = 15 - Circulate mode window height -*CIRCULATE-TEXT-LIMITE* = 30 - Maximum text limite in the circulate window - - - <= Info Mode Group => - -*INFO-BACKGROUND* = "black" - Info window background color -*INFO-FOREGROUND* = "green" - Info window foreground color -*INFO-BORDER* = "red" - Info window border color -*INFO-LINE-CURSOR* = "white" - Info window line cursor color color -*INFO-SELECTED-BACKGROUND* = "blue" - Info selected item background color -*INFO-FONT-STRING* = "fixed" - Info window font string -*INFO-CLICK-TO-SELECT* = T - If true, click on info window select item. Otherwise, click to drag the menu -*INFO-COLOR-TITLE* = "Magenta" - Colored info title color -*INFO-COLOR-UNDERLINE* = "Yellow" - Colored info underline color -*INFO-COLOR-FIRST* = "Cyan" - Colored info first color -*INFO-COLOR-SECOND* = "lightblue" - Colored info second color - - - <= Query String Group => - -*QUERY-FONT-STRING* = "fixed" - Query string window font string -*QUERY-BACKGROUND* = "black" - Query string window background color -*QUERY-MESSAGE-COLOR* = "yellow" - Query string window message color -*QUERY-FOREGROUND* = "green" - Query string window foreground color -*QUERY-CURSOR-COLOR* = "white" - Query string window foreground cursor color -*QUERY-PARENT-COLOR* = "blue" - Query string window parenthesis color -*QUERY-PARENT-ERROR-COLOR* = "red" - Query string window parenthesis color when no match -*QUERY-BORDER* = "red" - Query string window border color - - - <= Identify Key Group => - -*IDENTIFY-FONT-STRING* = "fixed" - Identify window font string -*IDENTIFY-BACKGROUND* = "black" - Identify window background color -*IDENTIFY-FOREGROUND* = "green" - Identify window foreground color -*IDENTIFY-BORDER* = "red" - Identify window border color - - - <= Second Mode Group => - -*SM-BORDER-COLOR* = "Green" - Second mode window border color -*SM-BACKGROUND-COLOR* = "Black" - Second mode window background color -*SM-FOREGROUND-COLOR* = "Red" - Second mode window foreground color -*SM-FONT-STRING* = "fixed" - Second mode window font string -*SM-WIDTH* = 300 - Second mode window width -*SM-HEIGHT* = 25 - Second mode window height - - - <= Frame Colors Group => - -*FRAME-BACKGROUND* = "Black" - Frame background -*FRAME-FOREGROUND* = "Green" - Frame foreground -*FRAME-FOREGROUND-ROOT* = "Red" - Frame foreground when the frame is the root frame -*FRAME-FOREGROUND-HIDDEN* = "Darkgreen" - Frame foreground for hidden windows - - - <= Corner Group => - -*CORNER-SIZE* = 3 - The size of the corner square -*CORNER-MAIN-MODE-LEFT-BUTTON* = ((:TOP-LEFT OPEN-MENU) - (:TOP-RIGHT PRESENT-VIRTUAL-KEYBOARD) - (:BOTTOM-RIGHT EXPOSE-WINDOWS-MODE) - (:BOTTOM-LEFT NIL)) - Actions on corners in the main mode with the left mouse button -*CORNER-MAIN-MODE-MIDDLE-BUTTON* = ((:TOP-LEFT HELP-ON-CLFSWM) - (:TOP-RIGHT ASK-CLOSE/KILL-CURRENT-WINDOW) - (:BOTTOM-RIGHT NIL) (:BOTTOM-LEFT NIL)) - Actions on corners in the main mode with the middle mouse button -*CORNER-MAIN-MODE-RIGHT-BUTTON* = ((:TOP-LEFT PRESENT-CLFSWM-TERMINAL) - (:TOP-RIGHT ASK-CLOSE/KILL-CURRENT-WINDOW) - (:BOTTOM-RIGHT EXPOSE-ALL-WINDOWS-MODE) - (:BOTTOM-LEFT START-FILE-MANAGER)) - Config(Corner group): Actions on corners in the main mode with the right mouse button -*CORNER-SECOND-MODE-LEFT-BUTTON* = ((:TOP-LEFT NIL) (:TOP-RIGHT NIL) + *CIRCULATE-FONT-STRING* = "fixed" + Circulate string window font string + *CIRCULATE-BACKGROUND* = "black" + Circulate string window background color + *CIRCULATE-FOREGROUND* = "green" + Circulate string window foreground color + *CIRCULATE-BORDER* = "red" + Circulate string window border color + *CIRCULATE-WIDTH* = 400 + Circulate mode window width + *CIRCULATE-HEIGHT* = 15 + Circulate mode window height + *CIRCULATE-TEXT-LIMITE* = 30 + Maximum text limite in the circulate window + + +<= Corner Group => + + *CORNER-SIZE* = 3 + The size of the corner square + *CORNER-MAIN-MODE-LEFT-BUTTON* = ((:TOP-LEFT OPEN-MENU) + (:TOP-RIGHT PRESENT-VIRTUAL-KEYBOARD) (:BOTTOM-RIGHT EXPOSE-WINDOWS-MODE) (:BOTTOM-LEFT NIL)) - Actions on corners in the second mode with the left mouse button -*CORNER-SECOND-MODE-MIDDLE-BUTTON* = ((:TOP-LEFT HELP-ON-CLFSWM) - (:TOP-RIGHT NIL) (:BOTTOM-RIGHT NIL) - (:BOTTOM-LEFT NIL)) - Actions on corners in the second mode with the middle mouse button -*CORNER-SECOND-MODE-RIGHT-BUTTON* = ((:TOP-LEFT NIL) (:TOP-RIGHT NIL) + Actions on corners in the main mode with the left mouse button + *CORNER-MAIN-MODE-MIDDLE-BUTTON* = ((:TOP-LEFT HELP-ON-CLFSWM) + (:TOP-RIGHT + ASK-CLOSE/KILL-CURRENT-WINDOW) + (:BOTTOM-RIGHT NIL) (:BOTTOM-LEFT NIL)) + Actions on corners in the main mode with the middle mouse button + *CORNER-MAIN-MODE-RIGHT-BUTTON* = ((:TOP-LEFT PRESENT-CLFSWM-TERMINAL) + (:TOP-RIGHT ASK-CLOSE/KILL-CURRENT-WINDOW) (:BOTTOM-RIGHT EXPOSE-ALL-WINDOWS-MODE) (:BOTTOM-LEFT NIL)) - Actions on corners in the second mode with the right mouse button -*VIRTUAL-KEYBOARD-CMD* = "xvkbd" - The command to display the virtual keybaord + Actions on corners in the main mode with the right mouse button + *CORNER-SECOND-MODE-LEFT-BUTTON* = ((:TOP-LEFT NIL) (:TOP-RIGHT NIL) + (:BOTTOM-RIGHT EXPOSE-WINDOWS-MODE) + (:BOTTOM-LEFT NIL)) + Actions on corners in the second mode with the left mouse button + *CORNER-SECOND-MODE-MIDDLE-BUTTON* = ((:TOP-LEFT HELP-ON-CLFSWM) + (:TOP-RIGHT NIL) (:BOTTOM-RIGHT NIL) + (:BOTTOM-LEFT NIL)) + Actions on corners in the second mode with the middle mouse button + *CORNER-SECOND-MODE-RIGHT-BUTTON* = ((:TOP-LEFT NIL) (:TOP-RIGHT NIL) + (:BOTTOM-RIGHT EXPOSE-ALL-WINDOWS-MODE) + (:BOTTOM-LEFT NIL)) + Actions on corners in the second mode with the right mouse button + *VIRTUAL-KEYBOARD-CMD* = "xvkbd" + The command to display the virtual keybaord Here is an ~/.Xresources example for xvkbd: xvkbd.windowGeometry: 300x100-0-0 xvkbd*Font: 6x12 @@ -217,131 +59,265 @@ xvkbd.customization: -french xvkbd.keypad: false And make it always on top -*CLFSWM-TERMINAL-NAME* = "clfswm-terminal" - The clfswm terminal name -*CLFSWM-TERMINAL-CMD* = "xterm -T clfswm-terminal" - The clfswm terminal command. + *CLFSWM-TERMINAL-NAME* = "clfswm-terminal" + The clfswm terminal name + *CLFSWM-TERMINAL-CMD* = "xterm -T clfswm-terminal" + The clfswm terminal command. This command must set the window title to *clfswm-terminal-name* - <= Placement Group => +<= Expose Mode Group => -*BANISH-POINTER-PLACEMENT* = MIDDLE-RIGHT-CHILD-PLACEMENT - Pointer banishment placement -*SECOND-MODE-PLACEMENT* = TOP-MIDDLE-PLACEMENT - Second mode window placement -*INFO-MODE-PLACEMENT* = TOP-LEFT-PLACEMENT - Info mode window placement -*QUERY-MODE-PLACEMENT* = TOP-LEFT-PLACEMENT - Query mode window placement -*CIRCULATE-MODE-PLACEMENT* = BOTTOM-MIDDLE-PLACEMENT - Circulate mode window placement -*EXPOSE-MODE-PLACEMENT* = TOP-LEFT-CHILD-PLACEMENT - Expose mode window placement (Selection keys position) -*NOTIFY-WINDOW-PLACEMENT* = BOTTOM-RIGHT-PLACEMENT - Notify window placement -*VOLUME-MODE-PLACEMENT* = BOTTOM-MIDDLE-PLACEMENT - Volume mode window placement - - - <= Hook Group => - -*BINDING-HOOK* = (SET-DEFAULT-EXPOSE-KEYS SET-DEFAULT-CIRCULATE-KEYS - INIT-*INFO-KEYS* INIT-*INFO-MOUSE* - SET-DEFAULT-INFO-KEYS - SET-DEFAULT-INFO-MOUSE - INIT-*QUERY-KEYS* - SET-DEFAULT-QUERY-KEYS - INIT-*MAIN-KEYS* INIT-*MAIN-MOUSE* - SET-DEFAULT-MAIN-KEYS - SET-DEFAULT-MAIN-MOUSE - INIT-*SECOND-KEYS* - INIT-*SECOND-MOUSE* - SET-DEFAULT-SECOND-KEYS - SET-DEFAULT-SECOND-MOUSE MPD-BINDING - FR-BINDING REBOOT-HALT-BINDING - INIT-*VOLUME-KEYS* - SET-DEFAULT-VOLUME-KEYS - AMIXER-VOLUME-BIND LOCAL-BINDING) - Hook executed when keys/buttons are bounds -*LOOP-HOOK* = NIL - Hook executed on each event loop -*MAIN-ENTRANCE-HOOK* = NIL - Hook executed on the main function entrance after + *EXPOSE-FONT-STRING* = "fixed" + Expose string window font string + *EXPOSE-BACKGROUND* = "black" + Expose string window background color + *EXPOSE-FOREGROUND* = "green" + Expose string window foreground color + *EXPOSE-BORDER* = "red" + Expose string window border color + *EXPOSE-VALID-ON-KEY* = T + Valid expose mode when an accel key is pressed + *EXPOSE-SHOW-WINDOW-TITLE* = T + Show the window title on accel window + + +<= Frame Colors Group => + + *FRAME-BACKGROUND* = "Black" + Frame background + *FRAME-FOREGROUND* = "Green" + Frame foreground + *FRAME-FOREGROUND-ROOT* = "Red" + Frame foreground when the frame is the root frame + *FRAME-FOREGROUND-HIDDEN* = "Darkgreen" + Frame foreground for hidden windows + + +<= Gimp Layout Group => + + *GIMP-LAYOUT-NOTIFY-WINDOW-DELAY* = 30 + Time to display the GIMP layout notify window help + + +<= Hook Group => + + *BINDING-HOOK* = (SET-DEFAULT-CIRCULATE-KEYS SET-DEFAULT-EXPOSE-KEYS + INIT-*INFO-KEYS* + INIT-*INFO-MOUSE* + SET-DEFAULT-INFO-KEYS + SET-DEFAULT-INFO-MOUSE + INIT-*QUERY-KEYS* + SET-DEFAULT-QUERY-KEYS + INIT-*MAIN-KEYS* + INIT-*MAIN-MOUSE* + SET-DEFAULT-MAIN-KEYS + SET-DEFAULT-MAIN-MOUSE + INIT-*SECOND-KEYS* + INIT-*SECOND-MOUSE* + SET-DEFAULT-SECOND-KEYS + SET-DEFAULT-SECOND-MOUSE) + Hook executed when keys/buttons are bounds + *LOOP-HOOK* = NIL + Hook executed on each event loop + *MAIN-ENTRANCE-HOOK* = NIL + Hook executed on the main function entrance after loading configuration file and before opening the display. -*INIT-HOOK* = (DEFAULT-INIT-HOOK DISPLAY-HELLO-WINDOW MY-INIT-HOOK - INIT-SURF-FRAME) - Init hook. This hook is run just after the first root frame is created -*CLOSE-HOOK* = (CLOSE-NOTIFY-WINDOW CLOSE-CLFSWM-TERMINAL - CLOSE-VIRTUAL-KEYBOARD) - Close hook. This hook is run just before closing the display -*DEFAULT-NW-HOOK* = DEFAULT-FRAME-NW-HOOK - Default action to do on newly created windows - - - <= Main Mode Group => - -*COLOR-MOVE-WINDOW* = "DeepPink" - Color when moving or resizing a windows -*COLOR-SELECTED* = "Red" - Color of selected window -*COLOR-UNSELECTED* = "Blue" - Color of unselected color -*COLOR-MAYBE-SELECTED* = "Yellow" - Color of maybe selected windows + *INIT-HOOK* = (DEFAULT-INIT-HOOK DISPLAY-HELLO-WINDOW) + Init hook. This hook is run just after the first root frame is created + *CLOSE-HOOK* = (CLOSE-NOTIFY-WINDOW CLOSE-CLFSWM-TERMINAL + CLOSE-VIRTUAL-KEYBOARD) + Close hook. This hook is run just before closing the display + *DEFAULT-NW-HOOK* = DEFAULT-FRAME-NW-HOOK + Default action to do on newly created windows + + +<= Identify Key Group => + + *IDENTIFY-FONT-STRING* = "fixed" + Identify window font string + *IDENTIFY-BACKGROUND* = "black" + Identify window background color + *IDENTIFY-FOREGROUND* = "green" + Identify window foreground color + *IDENTIFY-BORDER* = "red" + Identify window border color + + +<= Info Mode Group => + + *INFO-BACKGROUND* = "black" + Info window background color + *INFO-FOREGROUND* = "green" + Info window foreground color + *INFO-BORDER* = "red" + Info window border color + *INFO-LINE-CURSOR* = "white" + Info window line cursor color color + *INFO-SELECTED-BACKGROUND* = "blue" + Info selected item background color + *INFO-FONT-STRING* = "fixed" + Info window font string + *INFO-CLICK-TO-SELECT* = T + If true, click on info window select item. Otherwise, click to drag the menu + *INFO-COLOR-TITLE* = "Magenta" + Colored info title color + *INFO-COLOR-UNDERLINE* = "Yellow" + Colored info underline color + *INFO-COLOR-FIRST* = "Cyan" + Colored info first color + *INFO-COLOR-SECOND* = "lightblue" + Colored info second color + + +<= Main Mode Group => + + *COLOR-MOVE-WINDOW* = "DeepPink" + Color when moving or resizing a windows + *COLOR-SELECTED* = "Red" + Color of selected window + *COLOR-UNSELECTED* = "Blue" + Color of unselected color + *COLOR-MAYBE-SELECTED* = "Yellow" + Color of maybe selected windows + + +<= Menu Group => + + *MENU-COLOR-SUBMENU* = "Cyan" + Submenu color in menu + *MENU-COLOR-COMMENT* = "Yellow" + Comment color in menu + *MENU-COLOR-KEY* = "Magenta" + Key color in menu + *MENU-COLOR-MENU-KEY* = # + Menu key color in menu + *XDG-SECTION-LIST* = (TEXTEDITOR FILEMANAGER WEBBROWSER AUDIOVIDEO AUDIO + VIDEO DEVELOPMENT EDUCATION GAME GRAPHICS NETWORK + OFFICE SETTINGS SYSTEM UTILITY TERMINALEMULATOR + ARCHLINUX SCREENSAVER) + Standard menu sections - <= Miscellaneous Group => +<= Miscellaneous Group => -*HAVE-TO-COMPRESS-NOTIFY* = T - Compress event notify? + *HAVE-TO-COMPRESS-NOTIFY* = T + Compress event notify? This variable may be useful to speed up some slow version of CLX. It is particulary useful with CLISP/MIT-CLX. -*SHOW-ROOT-FRAME-P* = NIL - Show the root frame information or not -*BORDER-SIZE* = 1 - Windows and frames border size -*LOOP-TIMEOUT* = 0.1 - Maximum time (in seconds) to wait before calling *loop-hook* -*DEFAULT-FONT-STRING* = "fixed" - The default font used in clfswm -*DEFAULT-FRAME-DATA* = ((:TILE-SIZE 0.8) (:TILE-SPACE-SIZE 0.1) - (:MAIN-LAYOUT-WINDOWS NIL) - (:FAST-LAYOUT (TILE-SPACE-LAYOUT NO-LAYOUT))) - Default slots set in frame date -*DEFAULT-MANAGED-TYPE* = (:NORMAL) - Default managed window types -*DEFAULT-FOCUS-POLICY* = :CLICK - Default mouse focus policy. One of :click, :sloppy, :sloppy-strict or :sloppy-select. -*DEFAULT-MODIFIERS* = NIL - Default modifiers list to append to explicit modifiers + *SHOW-ROOT-FRAME-P* = NIL + Show the root frame information or not + *BORDER-SIZE* = 1 + Windows and frames border size + *LOOP-TIMEOUT* = 0.1 + Maximum time (in seconds) to wait before calling *loop-hook* + *DEFAULT-FONT-STRING* = "fixed" + The default font used in clfswm + *DEFAULT-FRAME-DATA* = ((:TILE-SIZE 0.8) (:TILE-SPACE-SIZE 0.1) + (:FAST-LAYOUT (TILE-LEFT-LAYOUT TILE-LAYOUT)) + (:MAIN-LAYOUT-WINDOWS NIL)) + Default slots set in frame date + *DEFAULT-MANAGED-TYPE* = (:NORMAL) + Default managed window types + *DEFAULT-FOCUS-POLICY* = :CLICK + Default mouse focus policy. One of :click, :sloppy, :sloppy-strict or :sloppy-select. + *DEFAULT-MODIFIERS* = NIL + Default modifiers list to append to explicit modifiers Example: :mod-2 for num_lock, :lock for Caps_lock... -*NEVER-MANAGED-WINDOW-LIST* = ((EQUAL-WM-CLASS-ROX-PINBOARD NIL) - (EQUAL-WM-CLASS-XVKBD RAISE-WINDOW) - (EQUAL-CLFSWM-TERMINAL RAISE-AND-FOCUS-WINDOW)) - CLFSWM will never manage windows of this type. + *NEVER-MANAGED-WINDOW-LIST* = ((EQUAL-WM-CLASS-ROX-PINBOARD NIL) + (EQUAL-WM-CLASS-XVKBD RAISE-WINDOW) + (EQUAL-CLFSWM-TERMINAL RAISE-AND-FOCUS-WINDOW)) + CLFSWM will never manage windows of this type. A list of (list match-function handle-function) -*HIDE-UNMANAGED-WINDOW* = T - Hide or not unmanaged windows when a child is deselected. -*CREATE-FRAME-ON-ROOT* = NIL - Create frame on root. + *HIDE-UNMANAGED-WINDOW* = T + Hide or not unmanaged windows when a child is deselected. + *CREATE-FRAME-ON-ROOT* = NIL + Create frame on root. Set this variable to true if you want to allow to create a new frame on the root window in the main mode with the mouse -*DEFAULT-WINDOW-WIDTH* = 400 - Default window width -*DEFAULT-WINDOW-HEIGHT* = 300 - Default window height + *DEFAULT-WINDOW-WIDTH* = 400 + Default window width + *DEFAULT-WINDOW-HEIGHT* = 300 + Default window height + + +<= Notify Window Group => + + *NOTIFY-WINDOW-FONT-STRING* = "fixed" + Notify window font string + *NOTIFY-WINDOW-BACKGROUND* = "black" + Notify Window background color + *NOTIFY-WINDOW-FOREGROUND* = "green" + Notify Window foreground color + *NOTIFY-WINDOW-BORDER* = "red" + Notify Window border color + *NOTIFY-WINDOW-DELAY* = 10 + Notify Window display delay + + +<= Placement Group => + + *BANISH-POINTER-PLACEMENT* = BOTTOM-RIGHT-PLACEMENT + Pointer banishment placement + *SECOND-MODE-PLACEMENT* = TOP-MIDDLE-PLACEMENT + Second mode window placement + *INFO-MODE-PLACEMENT* = TOP-LEFT-PLACEMENT + Info mode window placement + *QUERY-MODE-PLACEMENT* = TOP-LEFT-PLACEMENT + Query mode window placement + *CIRCULATE-MODE-PLACEMENT* = BOTTOM-MIDDLE-PLACEMENT + Circulate mode window placement + *EXPOSE-MODE-PLACEMENT* = TOP-LEFT-CHILD-PLACEMENT + Expose mode window placement (Selection keys position) + *NOTIFY-WINDOW-PLACEMENT* = BOTTOM-RIGHT-PLACEMENT + Notify window placement + + +<= Query String Group => + + *QUERY-FONT-STRING* = "fixed" + Query string window font string + *QUERY-BACKGROUND* = "black" + Query string window background color + *QUERY-MESSAGE-COLOR* = "yellow" + Query string window message color + *QUERY-FOREGROUND* = "green" + Query string window foreground color + *QUERY-CURSOR-COLOR* = "white" + Query string window foreground cursor color + *QUERY-PARENT-COLOR* = "blue" + Query string window parenthesis color + *QUERY-PARENT-ERROR-COLOR* = "red" + Query string window parenthesis color when no match + *QUERY-BORDER* = "red" + Query string window border color + + +<= Second Mode Group => + + *SM-BORDER-COLOR* = "Green" + Second mode window border color + *SM-BACKGROUND-COLOR* = "Black" + Second mode window background color + *SM-FOREGROUND-COLOR* = "Red" + Second mode window foreground color + *SM-FONT-STRING* = "fixed" + Second mode window font string + *SM-WIDTH* = 300 + Second mode window width + *SM-HEIGHT* = 25 + Second mode window height Those variables can be changed in clfswm. Maybe you'll need to restart clfswm to take care of new values This documentation was produced with the CLFSWM auto-doc functions. -To reproduce it, use the produce-configuration-variables-doc-in-file or +To reproduce it, use the produce-conf-var-doc-in-file or the produce-all-docs function from the Lisp REPL. Something like this: LISP> (in-package :clfswm) -CLFSWM> (produce-configuration-variables-doc-in-file "my-variables.txt") +CLFSWM> (produce-conf-var-doc-in-file "my-variables.txt") or CLFSWM> (produce-all-docs) Modified: clfswm/src/clfswm-autodoc.lisp ============================================================================== --- clfswm/src/clfswm-autodoc.lisp (original) +++ clfswm/src/clfswm-autodoc.lisp Fri Mar 18 17:28:07 2011 @@ -306,33 +306,33 @@ ;;; Configuration variables autodoc functions -(defun produce-configuration-variables-doc (stream &optional (group t) (title t) (footnote t)) +(defun produce-conf-var-doc (stream &optional (group t) (title t) (footnote t)) (when title (format stream " * CLFSWM Configuration variables *~%") (format stream " ------------------------------~2%")) - (format stream " <= ~A =>~2%" (if (equal group t) "" + (format stream "<= ~A =>~2%" (if (equal group t) "" (config-group->string group))) (maphash (lambda (key val) (when (or (equal group t) (equal group (configvar-group val))) - (format stream "~A = ~S~% ~A~%" key (symbol-value key) + (format stream " ~A = ~S~% ~A~%" key (symbol-value key) (documentation key 'variable)))) *config-var-table*) (when footnote (format stream "~2& Those variables can be changed in clfswm. Maybe you'll need to restart clfswm to take care of new values") (format stream "~2%This documentation was produced with the CLFSWM auto-doc functions. -To reproduce it, use the produce-configuration-variables-doc-in-file or +To reproduce it, use the produce-conf-var-doc-in-file or the produce-all-docs function from the Lisp REPL. Something like this: LISP> (in-package :clfswm) -CLFSWM> (produce-configuration-variables-doc-in-file \"my-variables.txt\") +CLFSWM> (produce-conf-var-doc-in-file \"my-variables.txt\") or CLFSWM> (produce-all-docs)~2%")) (format stream "~2%")) -(defun produce-configuration-variables-doc-in-file (filename) +(defun produce-conf-var-doc-in-file (filename) (format t "Producing text config variables documentation in ~S " filename) (with-open-file (stream filename :direction :output :if-exists :supersede :if-does-not-exist :create) @@ -340,12 +340,67 @@ (all-groups (config-all-groups)) (last-group (first (last all-groups)))) (dolist (group all-groups) - (produce-configuration-variables-doc stream group title + (produce-conf-var-doc stream group title (equal group last-group)) (setf title nil)))) (format t " done~%")) +(defun produce-conf-var-doc-html (&optional (stream t)) + (let ((all-groups (config-all-groups))) + (labels ((conf-var-group () + `((h3 ("a name='TOP'" "Configuration variables groups:")) + (ul ,@(loop for group in all-groups + collect `(li (,(format nil "a href='#~A'" group) ,(config-group->string group))))))) + (colorize-line (group list) + (let ((acc nil)) + (dolist (line list) + (cond ((search "* =" line) + (let ((pos (position #\= line))) + (push `("font color='#FF0000'" ,(format nil "  ~(~A~)" (subseq line 0 (1- pos)))) acc) + (push `("font color='#0000FF'" ,(format nil "~A
" (subseq line (1- pos)))) acc))) + ((search "<=" line) + (push `(p (,(format nil "a name='~A' href='#TOP'" group) ,(escape-html line))) acc)) + ((not (string= line " ")) + (push (format nil "        ~A
~%" line) acc)))) + (nreverse acc))) + (conf-var (group) + (colorize-line group + (split-string (append-newline-space + (with-output-to-string (stream) + (produce-conf-var-doc stream group nil nil))) + #\Newline))) + (all-conf-var () + (let ((acc nil)) + (dolist (group all-groups) + (setf acc (nconc acc (conf-var group)))) + acc))) + (produce-html `(html + (head + (title "CLFSWM - Configuration variables")) + (body + (h1 ("a name='Top'" "CLFSWM - Configuration variables")) + (p "Here are the variables you can configure in CLFSWM with the configuration file or the configuration menu:") + ,@(conf-var-group) + ,@(all-conf-var) + (p (small "This documentation was produced with the CLFSWM auto-doc functions. To reproduce it, use the produce-conf-var-doc-html-in-file or +the produce-all-docs function from the Lisp REPL.")) + (p (small "Something like this:
+LISP> (in-package :clfswm)
+CLFSWM> (produce-conf-var-doc-html-in-file \"my-variables.html\")
+or
CLFSWM> (produce-all-docs)")))) + 0 stream)))) + + +(defun produce-conf-var-doc-html-in-file (filename) + (format t "Producing html configuration variables documentation in ~S " filename) + (with-open-file (stream filename :direction :output + :if-exists :supersede :if-does-not-exist :create) + (produce-conf-var-doc-html stream)) + (format t " done~%")) + + + @@ -359,7 +414,8 @@ (produce-menu-doc-html-in-file "doc/menu.html") (produce-corner-doc-in-file "doc/corner.txt") (produce-corner-doc-html-in-file "doc/corner.html") - (produce-configuration-variables-doc-in-file "doc/variables.txt")) + (produce-conf-var-doc-in-file "doc/variables.txt") + (produce-conf-var-doc-html-in-file "doc/variables.html")) Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Fri Mar 18 17:28:07 2011 @@ -505,6 +505,11 @@ (when (xlib:window-p window) , at body))) +(defun get-first-window () + (typecase *current-child* + (xlib:window *current-child*) + (frame (first (frame-child *current-child*))))) + @@ -782,16 +787,17 @@ -(defun hide-all-children (root) +(defun hide-all-children (root &optional except) "Hide all root children" - (when (frame-p root) + (when (and (frame-p root) (not (child-equal-p root except))) (dolist (child (frame-child root)) - (hide-all child)))) + (hide-all child except)))) -(defun hide-all (root) +(defun hide-all (root &optional except) "Hide root and all its children" - (hide-child root) - (hide-all-children root)) + (unless (child-equal-p root except) + (hide-child root)) + (hide-all-children root except)) @@ -879,11 +885,12 @@ (defun leave-frame () "Leave the selected frame - ie make its parent the root frame" - (hide-all *current-root*) - (awhen (find-parent-frame *current-root*) - (when (frame-p it) - (setf *current-root* it))) - (show-all-children)) + (unless (child-equal-p *current-root* *root-frame*) + (hide-all *current-root* (get-first-window)) + (awhen (find-parent-frame *current-root*) + (when (frame-p it) + (setf *current-root* it))) + (show-all-children))) ;;; Other actions (select-next-child, select-next-brother...) are in Modified: clfswm/src/my-html.lisp ============================================================================== --- clfswm/src/my-html.lisp (original) +++ clfswm/src/my-html.lisp Fri Mar 18 17:28:07 2011 @@ -30,6 +30,7 @@ (defpackage :my-html (:use :common-lisp :tools) (:export :insert-html-doctype + :escape-html :produce-html :with-html :produce-html-string)) @@ -42,6 +43,18 @@ \"http://www.w3.org/TR/html4/transitional.dtd\">") +(defun escape-html (string &optional (replace '((">" ">") ("<" "<")))) + (if replace + (aif (search (caar replace) string) + (escape-html (concatenate 'string (subseq string 0 it) + (cadar replace) + (subseq string (+ it (length (caar replace))))) + replace) + (escape-html string (cdr replace))) + string)) + + + (defun produce-html (tree &optional (level 0) (stream *standard-output*)) (cond ((listp tree) Modified: clfswm/src/tools.lisp ============================================================================== --- clfswm/src/tools.lisp (original) +++ clfswm/src/tools.lisp Fri Mar 18 17:28:07 2011 @@ -156,7 +156,8 @@ (declare (ignore key)) (pushnew (configvar-group val) all-groups :test #'equal)) *config-var-table*) - all-groups)) + (sort all-groups (lambda (x y) + (string< (string x) (string y)))))) From pbrochard at common-lisp.net Sat Mar 19 20:35:09 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 19 Mar 2011 16:35:09 -0400 Subject: [clfswm-cvs] r436 - in clfswm: . contrib src Message-ID: Author: pbrochard Date: Sat Mar 19 16:35:08 2011 New Revision: 436 Log: Fix never-managed-windows in contrib/osd.lisp Modified: clfswm/TODO clfswm/contrib/osd.lisp clfswm/src/clfswm-internal.lisp clfswm/src/version.lisp Modified: clfswm/TODO ============================================================================== --- clfswm/TODO (original) +++ clfswm/TODO Sat Mar 19 16:35:08 2011 @@ -16,7 +16,7 @@ MAYBE ===== -- cd/pwd a la shell to navigate through frames. +- cd/pwd/find a la shell to navigate through frames. - Zoom: Concept: Modified: clfswm/contrib/osd.lisp ============================================================================== --- clfswm/contrib/osd.lisp (original) +++ clfswm/contrib/osd.lisp Sat Mar 19 16:35:08 2011 @@ -75,7 +75,7 @@ (let* ((modifiers (state->modifiers state)) (keysym (keysym->keysym-name (xlib:keycode->keysym *display* code 0)))) (when (frame-p *current-child*) - (push (list #'equal #'is-osd-window-p t) *never-managed-window-list*)) + (push (list #'is-osd-window-p nil) *never-managed-window-list*)) (raise-window *osd-window*) (rotatef (xlib:gcontext-foreground *osd-gc*) (xlib:gcontext-background *osd-gc*)) (xlib:draw-rectangle *osd-window* *osd-gc* Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Sat Mar 19 16:35:08 2011 @@ -508,7 +508,8 @@ (defun get-first-window () (typecase *current-child* (xlib:window *current-child*) - (frame (first (frame-child *current-child*))))) + (frame (or (first (frame-child *current-child*)) + *current-child*)))) Modified: clfswm/src/version.lisp ============================================================================== --- clfswm/src/version.lisp (original) +++ clfswm/src/version.lisp Sat Mar 19 16:35:08 2011 @@ -33,4 +33,4 @@ (in-package :version) -(defparameter *version* #.(concatenate 'string "Version: 11.03 built " (date-string))) +(defparameter *version* #.(concatenate 'string "Version: 1103 built " (date-string))) From pbrochard at common-lisp.net Sun Mar 20 21:46:39 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 20 Mar 2011 17:46:39 -0400 Subject: [clfswm-cvs] r437 - in clfswm: . src Message-ID: Author: pbrochard Date: Sun Mar 20 17:46:39 2011 New Revision: 437 Log: src/clfswm-info.lisp (show-config-variable): call produce-conf-var-doc. Modified: clfswm/ChangeLog clfswm/src/clfswm-info.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Sun Mar 20 17:46:39 2011 @@ -1,3 +1,8 @@ +2011-03-20 Philippe Brochard + + * src/clfswm-info.lisp (show-config-variable): call + produce-conf-var-doc. + 2011-03-18 Philippe Brochard * src/clfswm-autodoc.lisp (produce-conf-var-doc-html): Produce a Modified: clfswm/src/clfswm-info.lisp ============================================================================== --- clfswm/src/clfswm-info.lisp (original) +++ clfswm/src/clfswm-info.lisp Sun Mar 20 17:46:39 2011 @@ -549,7 +549,7 @@ (info-mode (configuration-variable-colorize-line (split-string (append-newline-space (with-output-to-string (stream) - (produce-configuration-variables-doc stream result t nil))) + (produce-conf-var-doc stream result t nil))) #\Newline))) (rec)))) (rec)))) From pbrochard at common-lisp.net Mon Mar 21 20:16:27 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Mon, 21 Mar 2011 16:16:27 -0400 Subject: [clfswm-cvs] r438 - in clfswm: . src Message-ID: Author: pbrochard Date: Mon Mar 21 16:16:27 2011 New Revision: 438 Log: src/clfswm-internal.lisp (x-px->fl, y-px->fl): Takes care of border size. Modified: clfswm/ChangeLog clfswm/src/clfswm-internal.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Mon Mar 21 16:16:27 2011 @@ -1,3 +1,8 @@ +2011-03-21 Philippe Brochard + + * src/clfswm-internal.lisp (x-px->fl, y-px->fl): Takes care of + border size. + 2011-03-20 Philippe Brochard * src/clfswm-info.lisp (show-config-variable): call Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Mon Mar 21 16:16:27 2011 @@ -48,11 +48,11 @@ ;;; Pixel -> Float conversion (defun x-px->fl (x parent) "Convert pixel X coordinate to float" - (/ (- x (frame-rx parent)) (frame-rw parent))) + (/ (- x (frame-rx parent) *border-size*) (frame-rw parent))) (defun y-px->fl (y parent) "Convert pixel Y coordinate to float" - (/ (- y (frame-ry parent)) (frame-rh parent))) + (/ (- y (frame-ry parent) *border-size*) (frame-rh parent))) (defun w-px->fl (w parent) "Convert pixel Width coordinate to float"