From pbrochard at common-lisp.net Fri May 6 20:13:20 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Fri, 06 May 2011 16:13:20 -0400 Subject: [clfswm-cvs] r450 - in clfswm: . src Message-ID: Author: pbrochard Date: Fri May 6 16:13:19 2011 New Revision: 450 Log: src/clfswm-circulate-mode.lisp (select-brother-generic-spatial-move+right/left/up/down): New function to select a brother from another in a spatial move. Modified: clfswm/ChangeLog clfswm/src/bindings.lisp clfswm/src/clfswm-circulate-mode.lisp clfswm/src/clfswm-internal.lisp clfswm/src/clfswm-util.lisp clfswm/src/config.lisp clfswm/src/tools.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Fri May 6 16:13:19 2011 @@ -1,3 +1,9 @@ +2011-05-06 Philippe Brochard + + * src/clfswm-circulate-mode.lisp + (select-brother-generic-spatial-move+right/left/up/down): New + function to select a brother from another in a spatial move. + 2011-04-19 Philippe Brochard * src/clfswm-pack.lisp (move-frame-constrained) Modified: clfswm/src/bindings.lisp ============================================================================== --- clfswm/src/bindings.lisp (original) +++ clfswm/src/bindings.lisp Fri May 6 16:13:19 2011 @@ -47,6 +47,10 @@ (define-main-key ("Left" :mod-1) 'select-previous-brother) (define-main-key ("Down" :mod-1) 'select-previous-level) (define-main-key ("Up" :mod-1) 'select-next-level) + (define-main-key ("Left" :control :mod-1) 'select-brother-spatial-move-left) + (define-main-key ("Right" :control :mod-1) 'select-brother-spatial-move-right) + (define-main-key ("Up" :control :mod-1) 'select-brother-spatial-move-up) + (define-main-key ("Down" :control :mod-1) 'select-brother-spatial-move-down) (define-main-key ("Tab" :mod-1) 'select-next-child) (define-main-key ("Tab" :mod-1 :shift) 'select-previous-child) (define-main-key ("Tab" :mod-1 :control) 'select-next-subchild) Modified: clfswm/src/clfswm-circulate-mode.lisp ============================================================================== --- clfswm/src/clfswm-circulate-mode.lisp (original) +++ clfswm/src/clfswm-circulate-mode.lisp Fri May 6 16:13:19 2011 @@ -62,7 +62,8 @@ *circulate-orig* (frame-child *current-child*))) (defun reset-circulate-brother () - (setf *circulate-parent* (find-parent-frame *current-child*)) + (setf *circulate-parent* (find-parent-frame *current-child*) + *circulate-hit* 0) (when (frame-p *circulate-parent*) (setf *circulate-orig* (frame-child *circulate-parent*)))) @@ -70,13 +71,14 @@ (defun reorder-child (direction) (no-focus) - (with-slots (child) *current-child* + (with-slots (child selected-pos) *current-child* (unless *circulate-orig* (reset-circulate-child)) (let ((len (length *circulate-orig*))) (when (plusp len) (let ((elem (nth (mod (incf *circulate-hit* direction) len) *circulate-orig*))) - (setf child (cons elem (child-remove elem *circulate-orig*))))) + (setf child (cons elem (child-remove elem *circulate-orig*)) + selected-pos 0))) (show-all-children) (draw-circulate-mode-window)))) @@ -93,6 +95,7 @@ (when (frame-p *circulate-parent*) (let ((elem (nth (mod (incf *circulate-hit* direction) len) *circulate-orig*))) (setf (frame-child *circulate-parent*) (cons elem (child-remove elem *circulate-orig*)) + (frame-selected-pos *circulate-parent*) 0 *current-child* (frame-selected-child *circulate-parent*)))) (when frame-is-root? (setf *current-root* *current-child*)))) @@ -105,10 +108,12 @@ (let ((selected-child (frame-selected-child *current-child*))) (when (frame-p selected-child) (no-focus) - (with-slots (child) selected-child + (with-slots (child selected-pos) selected-child (let ((elem (first (last child)))) - (setf child (cons elem (child-remove elem child))) - (show-all-children) + (when elem + (setf child (cons elem (child-remove elem child)) + selected-pos 0)) + (show-all-children) (draw-circulate-mode-window))))))) @@ -306,3 +311,71 @@ (defun select-previous-brother-simple () "Select the previous brother frame (do not enter in circulate mode)" (reorder-brother-simple #'anti-rotate-list)) + + + +;;; Spatial move functions +(defun select-brother-generic-spatial-move (fun-found) + "Select the nearest brother of the current child based on the fun-found function" + (let ((is-root? (child-equal-p *current-child* *current-root*))) + (when is-root? + (leave-frame) + (sleep *spatial-move-delay-before*)) + (no-focus) + (select-current-frame nil) + (let ((parent-frame (find-parent-frame *current-child*))) + (when (frame-p parent-frame) + (with-slots (child selected-pos) parent-frame + (let ((found nil) + (found-dist nil)) + (dolist (c child) + (let ((dist (funcall fun-found *current-child* c))) + (when (and dist + (not (child-equal-p *current-child* c)) + (or (not found) + (and found-dist (< dist found-dist)))) + (setf found c + found-dist dist)))) + (when found + (setf *current-child* found + selected-pos 0 + child (cons found (child-remove found child))))))) + (show-all-children t) + (when is-root? + (sleep *spatial-move-delay-after*) + (enter-frame))))) + + + +(defun select-brother-spatial-move-right () + "Select spatially the nearest brother of the current child in the right direction" + (select-brother-generic-spatial-move #'(lambda (current child) + (when (> (child-x2 child) (child-x2 current)) + (distance (child-x2 current) (middle-child-y current) + (child-x child) (middle-child-y child)))))) + + + +(defun select-brother-spatial-move-left () + "Select spatially the nearest brother of the current child in the left direction" + (select-brother-generic-spatial-move #'(lambda (current child) + (when (< (child-x child) (child-x current)) + (distance (child-x current) (middle-child-y current) + (child-x2 child) (middle-child-y child)))))) + + +(defun select-brother-spatial-move-down () + "Select spatially the nearest brother of the current child in the down direction" + (select-brother-generic-spatial-move #'(lambda (current child) + (when (> (child-y2 child) (child-y2 current)) + (distance (middle-child-x current) (child-y2 current) + (middle-child-x child) (child-y child)))))) + + +(defun select-brother-spatial-move-up () + "Select spatially the nearest brother of the current child in the up direction" + (select-brother-generic-spatial-move #'(lambda (current child) + (when (< (child-y child) (child-y current)) + (distance (middle-child-x current) (child-y current) + (middle-child-x child) (child-y2 child)))))) + Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Fri May 6 16:13:19 2011 @@ -252,6 +252,46 @@ (defmethod child-height ((child frame)) (frame-rh child)) +(defgeneric child-x2 (child)) +(defmethod child-x2 ((child xlib:window)) + (+ (xlib:drawable-x child) (xlib:drawable-width child))) +(defmethod child-x2 ((child frame)) + (+ (frame-rx child) (frame-rw child))) + +(defgeneric child-y2 (child)) +(defmethod child-y2 ((child xlib:window)) + (+ (xlib:drawable-y child) (xlib:drawable-height child))) +(defmethod child-y2 ((child frame)) + (+ (frame-ry child) (frame-rh child))) + + + +(defgeneric child-center (child)) + +(defmethod child-center ((child xlib:window)) + (values (+ (xlib:drawable-x child) (/ (xlib:drawable-width child) 2)) + (+ (xlib:drawable-y child) (/ (xlib:drawable-height child) 2)))) + +(defmethod child-center ((child frame)) + (values (+ (frame-rx child) (/ (frame-rw child) 2)) + (+ (frame-ry child) (/ (frame-rh child) 2)))) + +(defun child-distance (child1 child2) + (multiple-value-bind (x1 y1) (child-center child1) + (multiple-value-bind (x2 y2) (child-center child2) + (values (+ (abs (- x2 x1)) (abs (- y2 y1))) + (- x2 x1) + (- y2 y1))))) + +(defun middle-child-x (child) + (+ (child-x child) (/ (child-width child) 2))) + +(defun middle-child-y (child) + (+ (child-y child) (/ (child-height child) 2))) + + + + @@ -404,6 +444,7 @@ h (h-px->fl prh parent)) (xlib:display-finish-output *display*)))) +(warn "fixe-real-size: adjust border here") (defun fixe-real-size (frame parent) "Fixe real (pixel) coordinates in float coordinates" (when (frame-p frame) Modified: clfswm/src/clfswm-util.lisp ============================================================================== --- clfswm/src/clfswm-util.lisp (original) +++ clfswm/src/clfswm-util.lisp Fri May 6 16:13:19 2011 @@ -1565,4 +1565,3 @@ (show-all-children t)) (funcall run-fn)))) - Modified: clfswm/src/config.lisp ============================================================================== --- clfswm/src/config.lisp (original) +++ clfswm/src/config.lisp Fri May 6 16:13:19 2011 @@ -56,6 +56,12 @@ (defconfig *snap-size* 20 nil "Snap size (in pixels) when move or resize frame is constrained") +(defconfig *spatial-move-delay-before* 0.2 nil + "Delay to wait before doing a spatial move") + +(defconfig *spatial-move-delay-after* 0.5 nil + "Delay to wait after doing a spatial move") + ;;; CONFIG - Screen size (defun get-fullscreen-size () Modified: clfswm/src/tools.lisp ============================================================================== --- clfswm/src/tools.lisp (original) +++ clfswm/src/tools.lisp Fri May 6 16:13:19 2011 @@ -54,6 +54,7 @@ :dbg :dbgnl :dbgc + :distance :with-all-internal-symbols :export-all-functions :export-all-variables :export-all-functions-and-variables @@ -101,6 +102,7 @@ :exchange-one-in-list :rotate-list :anti-rotate-list + :n-rotate-list :append-formated-list :shuffle-list :parse-integer-in-list @@ -360,6 +362,9 @@ (force-output)) +(defun distance (x1 y1 x2 y2) + (+ (abs (- x2 x1)) (abs (- y2 y1)))) + ;;; Symbols tools (defmacro with-all-internal-symbols ((var package) &body body) @@ -861,6 +866,11 @@ (when list (append (last list) (butlast list)))) +(defun n-rotate-list (list n) + (if (> n 0) + (n-rotate-list (rotate-list list) (1- n)) + list)) + (defun append-formated-list (base-str lst From pbrochard at common-lisp.net Fri May 6 20:22:29 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Fri, 06 May 2011 16:22:29 -0400 Subject: [clfswm-cvs] r451 - in clfswm: . src Message-ID: Author: pbrochard Date: Fri May 6 16:22:29 2011 New Revision: 451 Log: src/clfswm-layout.lisp (update-layout-managed-children): Fix a bug by using the parent frame instead of the current child. Modified: clfswm/ChangeLog clfswm/src/clfswm-layout.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Fri May 6 16:22:29 2011 @@ -1,5 +1,8 @@ 2011-05-06 Philippe Brochard + * src/clfswm-layout.lisp (update-layout-managed-children): Fix a + bug by using the parent frame instead of the current child. + * src/clfswm-circulate-mode.lisp (select-brother-generic-spatial-move+right/left/up/down): New function to select a brother from another in a spatial move. Modified: clfswm/src/clfswm-layout.lisp ============================================================================== --- clfswm/src/clfswm-layout.lisp (original) +++ clfswm/src/clfswm-layout.lisp Fri May 6 16:22:29 2011 @@ -220,8 +220,8 @@ (defun tile-layout-ask-keep-position () (when (frame-p *current-child*) (if (query-yes-or-no "Keep frame children positions?") - (setf (frame-data-slot *current-child* :tile-layout-keep-positiion) :yes) - (remove-frame-data-slot *current-child* :tile-layout-keep-positiion)))) + (setf (frame-data-slot *current-child* :tile-layout-keep-position) :yes) + (remove-frame-data-slot *current-child* :tile-layout-keep-position)))) (defun set-layout-managed-children () @@ -243,7 +243,7 @@ managed-children)) (defun update-layout-managed-children (child parent) - (if (eql (frame-data-slot *current-child* :tile-layout-keep-positiion) :yes) + (if (eql (frame-data-slot parent :tile-layout-keep-position) :yes) (update-layout-managed-children-keep-position child parent) (get-managed-child parent))) From pbrochard at common-lisp.net Fri May 6 20:46:09 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Fri, 06 May 2011 16:46:09 -0400 Subject: [clfswm-cvs] r452 - in clfswm: . src Message-ID: Author: pbrochard Date: Fri May 6 16:46:09 2011 New Revision: 452 Log: src/clfswm-internal.lisp (fixe-real-size): Takes care of border size. Modified: clfswm/ChangeLog clfswm/src/clfswm-internal.lisp clfswm/src/clfswm-layout.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Fri May 6 16:46:09 2011 @@ -1,5 +1,8 @@ 2011-05-06 Philippe Brochard + * src/clfswm-internal.lisp (fixe-real-size): Takes care of border + size. + * src/clfswm-layout.lisp (update-layout-managed-children): Fix a bug by using the parent frame instead of the current child. Modified: clfswm/src/clfswm-internal.lisp ============================================================================== --- clfswm/src/clfswm-internal.lisp (original) +++ clfswm/src/clfswm-internal.lisp Fri May 6 16:46:09 2011 @@ -289,6 +289,39 @@ (defun middle-child-y (child) (+ (child-y child) (/ (child-height child) 2))) +(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))) + + +(declaim (inline anti-adj-border-xy anti-adj-border-wh)) +(defgeneric anti-adj-border-xy (value child)) +(defgeneric anti-adj-border-wh (value child)) + +(defmethod anti-adj-border-xy (v (child xlib:window)) + (- v (xlib:drawable-border-width child))) + +(defmethod anti-adj-border-xy (v (child frame)) + (- v (xlib:drawable-border-width (frame-window child)))) + +(defmethod anti-adj-border-wh (v (child xlib:window)) + (+ v (* (xlib:drawable-border-width child) 2))) + +(defmethod anti-adj-border-wh (v (child frame)) + (+ v (* (xlib:drawable-border-width (frame-window child)) 2))) + @@ -444,15 +477,14 @@ h (h-px->fl prh parent)) (xlib:display-finish-output *display*)))) -(warn "fixe-real-size: adjust border here") (defun fixe-real-size (frame parent) "Fixe real (pixel) coordinates in float coordinates" (when (frame-p frame) (with-slots (x y w h rx ry rw rh) frame (setf x (x-px->fl rx parent) y (y-px->fl ry parent) - w (w-px->fl rw parent) - h (h-px->fl rh parent))))) + w (w-px->fl (anti-adj-border-wh rw parent) parent) + h (h-px->fl (anti-adj-border-wh rh parent) parent))))) (defun fixe-real-size-current-child () "Fixe real (pixel) coordinates in float coordinates for children in the current child" Modified: clfswm/src/clfswm-layout.lisp ============================================================================== --- clfswm/src/clfswm-layout.lisp (original) +++ clfswm/src/clfswm-layout.lisp Fri May 6 16:46:09 2011 @@ -126,39 +126,6 @@ '(("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))) - - -(declaim (inline anti-adj-border-xy anti-adj-border-wh)) -(defgeneric anti-adj-border-xy (value child)) -(defgeneric anti-adj-border-wh (value child)) - -(defmethod anti-adj-border-xy (v (child xlib:window)) - (- v (xlib:drawable-border-width child))) - -(defmethod anti-adj-border-xy (v (child frame)) - (- v (xlib:drawable-border-width (frame-window child)))) - -(defmethod anti-adj-border-wh (v (child xlib:window)) - (+ v (* (xlib:drawable-border-width child) 2))) - -(defmethod anti-adj-border-wh (v (child frame)) - (+ v (* (xlib:drawable-border-width (frame-window child)) 2))) - ;;; No layout (defgeneric no-layout (child parent) From pbrochard at common-lisp.net Fri May 6 21:01:07 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Fri, 06 May 2011 17:01:07 -0400 Subject: [clfswm-cvs] r453 - in clfswm: . src Message-ID: Author: pbrochard Date: Fri May 6 17:01:07 2011 New Revision: 453 Log: src/clfswm-layout.lisp (tile-left|right|top|bottom-layout): Ask to keep children positions or not. Modified: clfswm/ChangeLog clfswm/src/clfswm-layout.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Fri May 6 17:01:07 2011 @@ -1,5 +1,8 @@ 2011-05-06 Philippe Brochard + * src/clfswm-layout.lisp (tile-left|right|top|bottom-layout): Ask + to keep children positions or not. + * src/clfswm-internal.lisp (fixe-real-size): Takes care of border size. Modified: clfswm/src/clfswm-layout.lisp ============================================================================== --- clfswm/src/clfswm-layout.lisp (original) +++ clfswm/src/clfswm-layout.lisp Fri May 6 17:01:07 2011 @@ -359,7 +359,7 @@ (defun tile-left-layout (child parent) "Tile Left: main child on left and others on right" (with-slots (rx ry rw rh) parent - (let* ((managed-children (get-managed-child parent)) + (let* ((managed-children (update-layout-managed-children child parent)) (pos (child-position child managed-children)) (len (max (1- (length managed-children)) 1)) (dy (/ rh len)) @@ -380,6 +380,7 @@ (defun set-tile-left-layout () "Tile Left: main child on left and others on right" (layout-ask-size "Tile size in percent (%)" :tile-size) + (set-layout-managed-children) (set-layout #'tile-left-layout)) @@ -388,7 +389,7 @@ (defun tile-right-layout (child parent) "Tile Right: main child on right and others on left" (with-slots (rx ry rw rh) parent - (let* ((managed-children (get-managed-child parent)) + (let* ((managed-children (update-layout-managed-children child parent)) (pos (child-position child managed-children)) (len (max (1- (length managed-children)) 1)) (dy (/ rh len)) @@ -409,6 +410,7 @@ (defun set-tile-right-layout () "Tile Right: main child on right and others on left" (layout-ask-size "Tile size in percent (%)" :tile-size) + (set-layout-managed-children) (set-layout #'tile-right-layout)) @@ -420,7 +422,7 @@ (defun tile-top-layout (child parent) "Tile Top: main child on top and others on bottom" (with-slots (rx ry rw rh) parent - (let* ((managed-children (get-managed-child parent)) + (let* ((managed-children (update-layout-managed-children child parent)) (pos (child-position child managed-children)) (len (max (1- (length managed-children)) 1)) (dx (/ rw len)) @@ -441,6 +443,7 @@ (defun set-tile-top-layout () "Tile Top: main child on top and others on bottom" (layout-ask-size "Tile size in percent (%)" :tile-size) + (set-layout-managed-children) (set-layout #'tile-top-layout)) @@ -450,7 +453,7 @@ (defun tile-bottom-layout (child parent) "Tile Bottom: main child on bottom and others on top" (with-slots (rx ry rw rh) parent - (let* ((managed-children (get-managed-child parent)) + (let* ((managed-children (update-layout-managed-children child parent)) (pos (child-position child managed-children)) (len (max (1- (length managed-children)) 1)) (dx (/ rw len)) @@ -472,6 +475,7 @@ (defun set-tile-bottom-layout () "Tile Bottom: main child on bottom and others on top" (layout-ask-size "Tile size in percent (%)" :tile-size) + (set-layout-managed-children) (set-layout #'tile-bottom-layout)) @@ -496,7 +500,7 @@ (defun tile-left-space-layout (child parent) "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)) + (let* ((managed-children (update-layout-managed-children child parent)) (pos (child-position child managed-children)) (len (max (1- (length managed-children)) 1)) (dy (/ rh len)) @@ -524,6 +528,7 @@ "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 (in pixels)" :tile-left-space) + (set-layout-managed-children) (set-layout #'tile-left-space-layout)) (register-layout-sub-menu 'frame-tile-space-layout-menu "Tile with some space on one side menu" From pbrochard at common-lisp.net Fri May 6 21:04:05 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Fri, 06 May 2011 17:04:05 -0400 Subject: [clfswm-cvs] r454 - in clfswm: . src Message-ID: Author: pbrochard Date: Fri May 6 17:04:05 2011 New Revision: 454 Log: src/bindings-second-mode.lisp (set-default-second-keys): select-brother-spatial-move-* binding update. Modified: clfswm/ChangeLog clfswm/src/bindings-second-mode.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Fri May 6 17:04:05 2011 @@ -1,5 +1,8 @@ 2011-05-06 Philippe Brochard + * src/bindings-second-mode.lisp (set-default-second-keys): + select-brother-spatial-move-* binding update. + * src/clfswm-layout.lisp (tile-left|right|top|bottom-layout): Ask to keep children positions or not. Modified: clfswm/src/bindings-second-mode.lisp ============================================================================== --- clfswm/src/bindings-second-mode.lisp (original) +++ clfswm/src/bindings-second-mode.lisp Fri May 6 17:04:05 2011 @@ -105,6 +105,10 @@ (define-second-key ("Left" :mod-1) 'select-previous-brother) (define-second-key ("Down" :mod-1) 'select-previous-level) (define-second-key ("Up" :mod-1) 'select-next-level) + (define-second-key ("Left" :control :mod-1) 'select-brother-spatial-move-left) + (define-second-key ("Right" :control :mod-1) 'select-brother-spatial-move-right) + (define-second-key ("Up" :control :mod-1) 'select-brother-spatial-move-up) + (define-second-key ("Down" :control :mod-1) 'select-brother-spatial-move-down) (define-second-key ("Right") 'speed-mouse-right) (define-second-key ("Left") 'speed-mouse-left) From pbrochard at common-lisp.net Fri May 6 21:09:39 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Fri, 06 May 2011 17:09:39 -0400 Subject: [clfswm-cvs] r455 - in clfswm: doc src Message-ID: Author: pbrochard Date: Fri May 6 17:09:38 2011 New Revision: 455 Log: Documentation update Modified: clfswm/doc/keys.html clfswm/doc/keys.txt clfswm/doc/menu.html clfswm/doc/menu.txt clfswm/doc/variables.html clfswm/doc/variables.txt clfswm/src/config.lisp Modified: clfswm/doc/keys.html ============================================================================== --- clfswm/doc/keys.html (original) +++ clfswm/doc/keys.html Fri May 6 17:09:38 2011 @@ -98,24 +98,24 @@ - Mod-1 + Mod-1 Control - Tab + Left - Select the next child + Select spatially the nearest brother of the current child in the left direction - Mod-1 Shift + Mod-1 Control - Tab + Right - Select the previous child + Select spatially the nearest brother of the current child in the right direction @@ -123,21 +123,54 @@ Mod-1 Control + Up + + + Select spatially the nearest brother of the current child in the up direction + + + + + Mod-1 Control + + + Down + + + Select spatially the nearest brother of the current child in the down direction + + + + + Mod-1 + + Tab - Select the next subchild + Select the next child - Shift + Mod-1 Shift Tab - Store the current child and switch to the previous one + Select the previous child + + + + + Mod-1 Control + + + Tab + + + Select the next subchild @@ -547,6 +580,28 @@ + Mod-1 Shift + + + 1 + + + Move (constrained by other frames) and focus the current child - Create a new frame on the root window + + + + + Mod-1 Shift + + + 3 + + + Resize (constrained by other frames) and focus the current child - Create a new frame on the root window + + + + Mod-1 Control @@ -873,6 +928,50 @@ + Mod-1 Control + + + Left + + + Select spatially the nearest brother of the current child in the left direction + + + + + Mod-1 Control + + + Right + + + Select spatially the nearest brother of the current child in the right direction + + + + + Mod-1 Control + + + Up + + + Select spatially the nearest brother of the current child in the up direction + + + + + Mod-1 Control + + + Down + + + Select spatially the nearest brother of the current child in the down direction + + + + @@ -983,7 +1082,7 @@ - Shift + Tab @@ -1509,6 +1608,28 @@ + Mod-1 Shift + + + 1 + + + Move (constrained by other frames) and focus the current child - Create a new frame on the root window + + + + + Mod-1 Shift + + + 3 + + + Resize (constrained by other frames) and focus the current child - Create a new frame on the root window + + + + Mod-1 Control Modified: clfswm/doc/keys.txt ============================================================================== --- clfswm/doc/keys.txt (original) +++ clfswm/doc/keys.txt Fri May 6 17:09:38 2011 @@ -12,10 +12,13 @@ Mod-1 Left Select the previous brother Mod-1 Down Select the previous level in frame Mod-1 Up Select the next level in frame + Mod-1 Control Left Select spatially the nearest brother of the current child in the left direction + Mod-1 Control Right Select spatially the nearest brother of the current child in the right direction + Mod-1 Control Up Select spatially the nearest brother of the current child in the up direction + Mod-1 Control Down Select spatially the nearest brother of the current child in the down direction Mod-1 Tab Select the next child Mod-1 Shift Tab Select the previous child Mod-1 Control Tab Select the next subchild - Shift Tab Store the current child and switch to the previous one Mod-1 Return Enter in the selected frame - ie make it the root frame Mod-1 Shift Return Leave the selected frame - ie make its parent the root frame Mod-5 Return Maximize/Unmaximize the current frame in its parent frame @@ -58,6 +61,8 @@ Or do actions on corners Mod-1 1 Move and focus the current child - Create a new frame on the root window Mod-1 3 Resize and focus the current child - Create a new frame on the root window + Mod-1 Shift 1 Move (constrained by other frames) and focus the current child - Create a new frame on the root window + Mod-1 Shift 3 Resize (constrained by other frames) and focus the current child - Create a new frame on the root window Mod-1 Control 1 Move the child under the mouse cursor to another frame 4 Select the next level in frame 5 Select the previous level in frame @@ -91,6 +96,10 @@ Mod-1 Left Select the previous brother Mod-1 Down Select the previous level in frame Mod-1 Up Select the next level in frame + Mod-1 Control Left Select spatially the nearest brother of the current child in the left direction + Mod-1 Control Right Select spatially the nearest brother of the current child in the right direction + Mod-1 Control Up Select spatially the nearest brother of the current child in the up direction + Mod-1 Control Down Select spatially the nearest brother of the current child in the down direction Right Speed move mouse to right Left Speed move mouse to left Down Speed move mouse to down @@ -101,7 +110,7 @@ Mod-1 Tab Select the next child Mod-1 Shift Tab Select the previous child Mod-1 Control Tab Select the next subchild - Shift Tab Store the current child and switch to the previous one + Tab Store the current child and switch to the previous one Mod-1 Return Enter in the selected frame - ie make it the root frame Mod-1 Shift Return Leave the selected frame - ie make its parent the root frame Mod-5 Return Maximize/Unmaximize the current frame in its parent frame @@ -154,6 +163,8 @@ Or do corners actions Mod-1 1 Move and focus the current child - Create a new frame on the root window Mod-1 3 Resize and focus the current child - Create a new frame on the root window + Mod-1 Shift 1 Move (constrained by other frames) and focus the current child - Create a new frame on the root window + Mod-1 Shift 3 Resize (constrained by other frames) and focus the current child - Create a new frame on the root window Mod-1 Control 1 Move the child under the mouse cursor to another frame 4 Select the next level in frame 5 Select the previous level in frame Modified: clfswm/doc/menu.html ============================================================================== --- clfswm/doc/menu.html (original) +++ clfswm/doc/menu.html Fri May 6 17:09:38 2011 @@ -267,64 +267,67 @@ f: Cinelerra - Video Editor

- g: Freevo - Home theatre + g: dvd::rip - DVD Ripper and Encoder - Backup and compression utility for DVDs

- h: Camelot - Gmerlin webcam application + h: Freevo - Home theatre

- i: Gmerlin KBD - Configure the Gmerlin keyboard daemon + i: Camelot - Gmerlin webcam application

- j: Gmerlin player - Multiformat mediaplayer + j: Gmerlin KBD - Configure the Gmerlin keyboard daemon

- k: Gmerlin plugin configurator - Configure gmerlin plugins + k: Gmerlin player - Multiformat mediaplayer

- l: Gmerlin transcoder - Gmerlin multimedia transcoder + l: Gmerlin recorder - Audio/video recorder

- m: Gmerlin visualizer - Run visualization plugins + m: Gmerlin transcoder - Gmerlin multimedia transcoder

- n: Gnome Music Player Client - A gnome frontend for the mpd daemon + n: Gmerlin visualizer - Run visualization plugins

- o: Sound Recorder - Record sound clips + o: Gnome Music Player Client - A gnome frontend for the mpd daemon

- p: Volume Control - Change sound volume and sound events + p: Sound Recorder - Record sound clips

- q: Grip - CD player/ripper + q: Volume Control - Change sound volume and sound events

- r: gtk-recordMyDesktop - Frontend for recordMyDesktop + r: Grip - CD player/ripper

- s: Hydrogen Drum Machine - Create drum sequences + s: gtk-recordMyDesktop - Frontend for recordMyDesktop

- t: Dragon Player + t: Hydrogen Drum Machine - Create drum sequences

- u: JuK + u: Dragon Player

- v: K3b - Disk writing program + v: JuK

- w: Kdenlive - Nonlinear video editor for KDE + w: K3b - Disk writing program

- x: KMix + x: Kdenlive - Nonlinear video editor for KDE

- y: KsCD + y: KMix

- z: Mixxx - A digital DJ interface + z: KsCD +

+

+ |: Mixxx - A digital DJ interface

|: MPlayer Media Player - Play movies and songs @@ -342,6 +345,12 @@ |: qt-recordMyDesktop - Frontend for recordMyDesktop

+ |: SMPlayer - A great MPlayer front-end +

+

+ |: Enqueue in SMPlayer +

+

|: Sonata - An elegant GTK+ MPD client

@@ -373,28 +382,31 @@ b: Audacity - Record and edit audio files

- c: Sound Recorder - Record sound clips + c: Gmerlin plugin configurator - Configure gmerlin plugins +

+

+ d: Sound Recorder - Record sound clips

- d: Hydrogen Drum Machine - Create drum sequences + e: Hydrogen Drum Machine - Create drum sequences

- e: KMix + f: KMix

- f: Mixxx - A digital DJ interface + g: Mixxx - A digital DJ interface

- g: MPlayer Media Player - Play movies and songs + h: MPlayer Media Player - Play movies and songs

- h: QjackCtl - QjackCtl is a JACK Audio Connection Kit Qt GUI Interface + i: QjackCtl - QjackCtl is a JACK Audio Connection Kit Qt GUI Interface

- i: Audio CD Extractor - Copy music from your CDs + j: Audio CD Extractor - Copy music from your CDs

- j: Mixer - Audio mixer for the Xfce Desktop Environment + k: Mixer - Audio mixer for the Xfce Desktop Environment


@@ -404,13 +416,22 @@ a: Ardour - Multitrack hard disk recorder

- b: MPlayer Media Player - Play movies and songs + b: dvd::rip - DVD Ripper and Encoder - Backup and compression utility for DVDs +

+

+ c: MPlayer Media Player - Play movies and songs

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

- d: Movie Player - Play movies and songs + e: SMPlayer - A great MPlayer front-end +

+

+ f: Enqueue in SMPlayer +

+

+ g: Movie Player - Play movies and songs


@@ -591,6 +612,9 @@

|: wxMaxima - Perform symbolic and numeric calculations using Maxima

+

+ |: Xcas Computer Algebra System - The swiss knife for mathematics +


Game @@ -623,55 +647,58 @@ i: Einstein - Einstein puzzle

- j: Flobopuyo - A remake of the famous PuyoPuyo + j: Extreme Tux Racer - Open source racing game featuring Tux the Linux Penguin. +

+

+ k: Flobopuyo - A remake of the famous PuyoPuyo

- k: Foobillard - A 3D billiards game using OpenGL + l: Foobillard - A 3D billiards game using OpenGL

- l: Frasse - Frasse and the Peas of Kejick adventure game + m: Frasse - Frasse and the Peas of Kejick adventure game

- m: Frogatto - Old-school 2D platformer + n: Frogatto - Old-school 2D platformer

- n: gbrainy - Play games that challenge your logic, verbal, calculation and memory abilities + o: gbrainy - Play games that challenge your logic, verbal, calculation and memory abilities

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

- p: glChess + q: glChess

- q: GLTron - Lightcycle game with a nice 3D perspective. + r: GLTron - Lightcycle game with a nice 3D perspective.

- r: Hedgewars - Worms style game + s: Hedgewars - Worms style game

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

- t: KGoldrunner - A game of action and puzzle-solving + u: KGoldrunner - A game of action and puzzle-solving

- u: AMOR + v: AMOR

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

- w: Bomber + x: Bomber

- x: Bovo + y: Bovo

- y: Granatier + z: Granatier

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

|: Kapman - Eat pills escaping ghosts @@ -836,6 +863,9 @@ |: SuperTux 2 - Play a classic 2D platform game

+ |: Supertuxkart - A kart racing game +

+

|: Trackballs - Simple game similar to the classical game Marble Madness

@@ -1341,6 +1371,9 @@ |: File Manager - Configure the Thunar file manager

+ |: Panel tint2 - Customize the panel settings +

+

|: Startup Disk Creator - Create a startup disk using a CD or disc image

@@ -1432,16 +1465,16 @@ l: GParted - Create, reorganize, and delete partitions

- m: Dolphin + m: Htop - Show System Processes

- n: K3b - Disk writing program + n: Dolphin

- o: KDiskFree + o: K3b - Disk writing program

- p: Konqueror + p: KDiskFree

q: Konqueror @@ -1453,25 +1486,28 @@ s: Konqueror

- t: KInfoCenter + t: Konqueror +

+

+ u: KInfoCenter

- u: File Manager - Super User Mode + v: File Manager - Super User Mode

- v: Konsole + w: Konsole

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

- x: Krfb + y: Krfb

- y: Krusader - root-mode + z: Krusader - root-mode

- z: System Monitor + |: System Monitor

|: KSystemLog @@ -1532,82 +1568,85 @@ Utility

- a: Terminal - Terminal Emulator + a: SAGE - SAGE NOTEBOOK

- b: Bulk Rename - Rename Multiple Files + b: Terminal - Terminal Emulator

- c: Open Folder with Thunar - Open the specified folders in Thunar + c: Bulk Rename - Rename Multiple Files

- d: Thunar File Manager - Browse the filesystem with the file manager + d: Open Folder with Thunar - Open the specified folders in Thunar

- e: Circle and Ruler - Geometry program + e: Thunar File Manager - Browse the filesystem with the file manager

- f: dosbox Emulator - An emulator to run old DOS games + f: Circle and Ruler - Geometry program

- g: File Manager - Configure the Thunar file manager + g: dosbox Emulator - An emulator to run old DOS games

- h: Terminal Emulator + h: File Manager - Configure the Thunar file manager

- i: gEDA Attribute Editor - Manipulate component attributes with gattrib + i: Terminal Emulator

- j: gEDA Schematic Editor - Create and edit electrical schematics and symbols with gschem + j: gEDA Attribute Editor - Manipulate component attributes with gattrib

- k: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password + k: gEDA Schematic Editor - Create and edit electrical schematics and symbols with gschem

- l: Orage Globaltime - Show clocks from different countries + l: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password

- m: About GNOME - Learn more about GNOME + m: Orage Globaltime - Show clocks from different countries

- n: Panel + n: About GNOME - Learn more about GNOME

- o: Theme Installer - Installs themes packages for various parts of the desktop + o: Panel

- p: Image Viewer + p: Theme Installer - Installs themes packages for various parts of the desktop

- q: GSpiceUI - A GUI to various freely available Spice electronic circuit simulators + q: Image Viewer

- r: Character Map - Insert special characters into documents + r: GSpiceUI - A GUI to various freely available Spice electronic circuit simulators

- s: gVim - GTK2 enhanced vim text editor + s: Character Map - Insert special characters into documents

- t: HP Device Manager - View device status, ink levels and perform maintenance. + t: gVim - GTK2 enhanced vim text editor

- u: K3DSurf - Visualize and manipulate Mathematical models in three, four, five, and six dimensions + u: HP Device Manager - View device status, ink levels and perform maintenance.

- v: Help - Get help with GNOME + v: K3DSurf - Visualize and manipulate Mathematical models in three, four, five, and six dimensions

- w: Home + w: Help - Get help with GNOME

- x: KCharSelect + x: Home

- y: KFloppy + y: KCharSelect

- z: KJots + z: KFloppy +

+

+ |: KJots

|: Akonaditray @@ -2702,57 +2741,57 @@ f: < Frame fill menu >

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

c: Center the current frame

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

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

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

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

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


Frame-Pack-Menu

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

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

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

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


Frame-Fill-Menu

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

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

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

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

a: Fill the current frame in all directions @@ -2768,16 +2807,16 @@ Frame-Resize-Menu

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

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

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

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

a: Resize down the current frame @@ -2862,7 +2901,7 @@ s: Show all frames info windows

- i: Hide all frames info windows + a: Hide all frames info windows

h: Hide the current frame window @@ -2876,6 +2915,9 @@

x: Create a new frame for each window in frame

+

+ i: Absorb all frames subchildren in frame (explode frame opposite) +


Window-Menu @@ -3385,37 +3427,46 @@ c: Configure CREATE-FRAME-ON-ROOT

- d: Configure HIDE-UNMANAGED-WINDOW + d: Configure SPATIAL-MOVE-DELAY-AFTER +

+

+ e: Configure SPATIAL-MOVE-DELAY-BEFORE +

+

+ f: Configure SNAP-SIZE +

+

+ g: Configure HIDE-UNMANAGED-WINDOW

- e: Configure NEVER-MANAGED-WINDOW-LIST + h: Configure NEVER-MANAGED-WINDOW-LIST

- f: Configure DEFAULT-MODIFIERS + i: Configure DEFAULT-MODIFIERS

- g: Configure DEFAULT-FOCUS-POLICY + j: Configure DEFAULT-FOCUS-POLICY

- h: Configure DEFAULT-MANAGED-TYPE + k: Configure DEFAULT-MANAGED-TYPE

- i: Configure DEFAULT-FRAME-DATA + l: Configure DEFAULT-FRAME-DATA

- j: Configure DEFAULT-FONT-STRING + m: Configure DEFAULT-FONT-STRING

- k: Configure LOOP-TIMEOUT + n: Configure LOOP-TIMEOUT

- l: Configure BORDER-SIZE + o: Configure BORDER-SIZE

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

- n: Configure HAVE-TO-COMPRESS-NOTIFY + q: Configure HAVE-TO-COMPRESS-NOTIFY


Modified: clfswm/doc/menu.txt ============================================================================== --- clfswm/doc/menu.txt (original) +++ clfswm/doc/menu.txt Fri May 6 17:09:38 2011 @@ -89,31 +89,34 @@ d: Beep Media Player - Play music e: Brasero - Create and copy CDs and DVDs f: Cinelerra - Video Editor -g: Freevo - Home theatre -h: Camelot - Gmerlin webcam application -i: Gmerlin KBD - Configure the Gmerlin keyboard daemon -j: Gmerlin player - Multiformat mediaplayer -k: Gmerlin plugin configurator - Configure gmerlin plugins -l: Gmerlin transcoder - Gmerlin multimedia transcoder -m: Gmerlin visualizer - Run visualization plugins -n: Gnome Music Player Client - A gnome frontend for the mpd daemon -o: Sound Recorder - Record sound clips -p: Volume Control - Change sound volume and sound events -q: Grip - CD player/ripper -r: gtk-recordMyDesktop - Frontend for recordMyDesktop -s: Hydrogen Drum Machine - Create drum sequences -t: Dragon Player -u: JuK -v: K3b - Disk writing program -w: Kdenlive - Nonlinear video editor for KDE -x: KMix -y: KsCD -z: Mixxx - A digital DJ interface +g: dvd::rip - DVD Ripper and Encoder - Backup and compression utility for DVDs +h: Freevo - Home theatre +i: Camelot - Gmerlin webcam application +j: Gmerlin KBD - Configure the Gmerlin keyboard daemon +k: Gmerlin player - Multiformat mediaplayer +l: Gmerlin recorder - Audio/video recorder +m: Gmerlin transcoder - Gmerlin multimedia transcoder +n: Gmerlin visualizer - Run visualization plugins +o: Gnome Music Player Client - A gnome frontend for the mpd daemon +p: Sound Recorder - Record sound clips +q: Volume Control - Change sound volume and sound events +r: Grip - CD player/ripper +s: gtk-recordMyDesktop - Frontend for recordMyDesktop +t: Hydrogen Drum Machine - Create drum sequences +u: Dragon Player +v: JuK +w: K3b - Disk writing program +x: Kdenlive - Nonlinear video editor for KDE +y: KMix +z: KsCD +|: Mixxx - A digital DJ interface |: MPlayer Media Player - Play movies and songs |: Open Movie Editor - Video Editor |: OpenShot Video Editor - Create and edit videos and movies |: QjackCtl - QjackCtl is a JACK Audio Connection Kit Qt GUI Interface |: qt-recordMyDesktop - Frontend for recordMyDesktop +|: SMPlayer - A great MPlayer front-end +|: Enqueue in SMPlayer |: Sonata - An elegant GTK+ MPD client |: Audio CD Extractor - Copy music from your CDs |: Movie Player - Play movies and songs @@ -125,20 +128,24 @@ Audio a: Ardour - Multitrack hard disk recorder b: Audacity - Record and edit audio files -c: Sound Recorder - Record sound clips -d: Hydrogen Drum Machine - Create drum sequences -e: KMix -f: Mixxx - A digital DJ interface -g: MPlayer Media Player - Play movies and songs -h: QjackCtl - QjackCtl is a JACK Audio Connection Kit Qt GUI Interface -i: Audio CD Extractor - Copy music from your CDs -j: Mixer - Audio mixer for the Xfce Desktop Environment +c: Gmerlin plugin configurator - Configure gmerlin plugins +d: Sound Recorder - Record sound clips +e: Hydrogen Drum Machine - Create drum sequences +f: KMix +g: Mixxx - A digital DJ interface +h: MPlayer Media Player - Play movies and songs +i: QjackCtl - QjackCtl is a JACK Audio Connection Kit Qt GUI Interface +j: Audio CD Extractor - Copy music from your CDs +k: Mixer - Audio mixer for the Xfce Desktop Environment Video 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 +b: dvd::rip - DVD Ripper and Encoder - Backup and compression utility for DVDs +c: MPlayer Media Player - Play movies and songs +d: OpenShot Video Editor - Create and edit videos and movies +e: SMPlayer - A great MPlayer front-end +f: Enqueue in SMPlayer +g: Movie Player - Play movies and songs Development a: CMake - Cross-platform buildsystem @@ -200,6 +207,7 @@ |: Oregano electrical engineering tool - Schematic capture and simulation of electronic circuits |: QtOctave - GUI for GNU Octave |: wxMaxima - Perform symbolic and numeric calculations using Maxima +|: Xcas Computer Algebra System - The swiss knife for mathematics Game a: 0 A.D. Editor @@ -211,23 +219,24 @@ 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: 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 +j: Extreme Tux Racer - Open source racing game featuring Tux the Linux Penguin. +k: Flobopuyo - A remake of the famous PuyoPuyo +l: Foobillard - A 3D billiards game using OpenGL +m: Frasse - Frasse and the Peas of Kejick adventure game +n: Frogatto - Old-school 2D platformer +o: gbrainy - Play games that challenge your logic, verbal, calculation and memory abilities +p: GGoban - Play go and review game records +q: glChess +r: GLTron - Lightcycle game with a nice 3D perspective. +s: Hedgewars - Worms style game +t: Hex-a-Hop - Hexagonal Tile-based Puzzle Game +u: KGoldrunner - A game of action and puzzle-solving +v: AMOR +w: Blinken - A memory enhancement game +x: Bomber +y: Bovo +z: Granatier +|: Kanagram - KDE Letter Order Game |: Kapman - Eat pills escaping ghosts |: KAtomic |: Naval Battle @@ -282,6 +291,7 @@ |: SolarWolf |: Spring - An open source RTS with similar gameplay to TA |: SuperTux 2 - Play a classic 2D platform game +|: Supertuxkart - A kart racing game |: Trackballs - Simple game similar to the classical game Marble Madness |: Battle for Wesnoth - A fantasy turn-based strategy game |: Battle for Wesnoth Map Editor - A map editor for Battle for Wesnoth maps @@ -453,6 +463,7 @@ |: Qt Config - Configure Qt behavior, styles, fonts |: Startup Applications - Choose what applications to start when you log in |: File Manager - Configure the Thunar file manager +|: Panel tint2 - Customize the panel settings |: 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 @@ -484,20 +495,21 @@ 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 +m: Htop - Show System Processes +n: Dolphin +o: K3b - Disk writing program +p: KDiskFree 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 +t: Konqueror +u: KInfoCenter +v: File Manager - Super User Mode +w: Konsole +x: KRandRTray - A panel applet for resizing and reorientating X screens. +y: Krfb +z: Krusader - root-mode +|: System Monitor |: KSystemLog |: KUser |: KWalletManager @@ -518,32 +530,33 @@ |: XNC - Graphical File manager, X Northern Captain Utility -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: 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 +a: SAGE - SAGE NOTEBOOK +b: Terminal - Terminal Emulator +c: Bulk Rename - Rename Multiple Files +d: Open Folder with Thunar - Open the specified folders in Thunar +e: Thunar File Manager - Browse the filesystem with the file manager +f: Circle and Ruler - Geometry program +g: dosbox Emulator - An emulator to run old DOS games +h: File Manager - Configure the Thunar file manager +i: Terminal Emulator +j: gEDA Attribute Editor - Manipulate component attributes with gattrib +k: gEDA Schematic Editor - Create and edit electrical schematics and symbols with gschem +l: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password +m: Orage Globaltime - Show clocks from different countries +n: About GNOME - Learn more about GNOME +o: Panel +p: Theme Installer - Installs themes packages for various parts of the desktop +q: Image Viewer +r: GSpiceUI - A GUI to various freely available Spice electronic circuit simulators +s: Character Map - Insert special characters into documents +t: gVim - GTK2 enhanced vim text editor +u: HP Device Manager - View device status, ink levels and perform maintenance. +v: K3DSurf - Visualize and manipulate Mathematical models in three, four, five, and six dimensions +w: Help - Get help with GNOME +x: Home +y: KCharSelect +z: KFloppy +|: KJots |: Akonaditray |: Ark |: KDE Groupware Wizard @@ -918,34 +931,34 @@ Frame-Movement-Menu p: < Frame pack menu > f: < Frame fill menu > -z: < Frame resize menu > +r: < Frame resize menu > c: Center the current frame -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 +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 Frame-Pack-Menu -u: Pack the current frame up -d: Pack the current frame down -l: Pack the current frame left -r: Pack the current frame right +Up: Pack the current frame up +Down: Pack the current frame down +Left: Pack the current frame left +Right: Pack the current frame right Frame-Fill-Menu -u: Fill the current frame up -d: Fill the current frame down -l: Fill the current frame left -r: Fill the current frame right +Up: Fill the current frame up +Down: Fill the current frame down +Left: Fill the current frame left +Right: 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 -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 +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 a: Resize down the current frame m: Resize down the current frame to its minimal size @@ -976,11 +989,12 @@ Frame-Miscellaneous-Menu s: Show all frames info windows -i: Hide all frames info windows +a: Hide all frames info windows h: Hide the current frame window w: Show the current frame window u: Renumber the current frame x: Create a new frame for each window in frame +i: Absorb all frames subchildren in frame (explode frame opposite) Window-Menu i: Display information on the current window @@ -1165,17 +1179,20 @@ 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 +d: Configure SPATIAL-MOVE-DELAY-AFTER +e: Configure SPATIAL-MOVE-DELAY-BEFORE +f: Configure SNAP-SIZE +g: Configure HIDE-UNMANAGED-WINDOW +h: Configure NEVER-MANAGED-WINDOW-LIST +i: Configure DEFAULT-MODIFIERS +j: Configure DEFAULT-FOCUS-POLICY +k: Configure DEFAULT-MANAGED-TYPE +l: Configure DEFAULT-FRAME-DATA +m: Configure DEFAULT-FONT-STRING +n: Configure LOOP-TIMEOUT +o: Configure BORDER-SIZE +p: Configure SHOW-ROOT-FRAME-P +q: Configure HAVE-TO-COMPRESS-NOTIFY Clfswm-Menu r: Reset clfswm Modified: clfswm/doc/variables.html ============================================================================== --- clfswm/doc/variables.html (original) +++ clfswm/doc/variables.html Fri May 6 17:09:38 2011 @@ -803,6 +803,30 @@         Hide or not unmanaged windows when a child is deselected.
+    *snap-size* + + + = 20
+
+         Snap size (in pixels) when move or resize frame is constrained
+ + +    *spatial-move-delay-before* + + + = 0.2
+
+         Delay to display the current child before doing a spatial move
+ + +    *spatial-move-delay-after* + + + = 0.5
+
+         Delay to display the new child after doing a spatial move
+ +    *create-frame-on-root* Modified: clfswm/doc/variables.txt ============================================================================== --- clfswm/doc/variables.txt (original) +++ clfswm/doc/variables.txt Fri May 6 17:09:38 2011 @@ -231,6 +231,12 @@ A list of (list match-function handle-function) *HIDE-UNMANAGED-WINDOW* = T Hide or not unmanaged windows when a child is deselected. + *SNAP-SIZE* = 20 + Snap size (in pixels) when move or resize frame is constrained + *SPATIAL-MOVE-DELAY-BEFORE* = 0.2 + Delay to display the current child before doing a spatial move + *SPATIAL-MOVE-DELAY-AFTER* = 0.5 + Delay to display the new child after doing a spatial move *CREATE-FRAME-ON-ROOT* = NIL Create frame on root. Set this variable to true if you want to allow to create a new frame Modified: clfswm/src/config.lisp ============================================================================== --- clfswm/src/config.lisp (original) +++ clfswm/src/config.lisp Fri May 6 17:09:38 2011 @@ -57,10 +57,10 @@ "Snap size (in pixels) when move or resize frame is constrained") (defconfig *spatial-move-delay-before* 0.2 nil - "Delay to wait before doing a spatial move") + "Delay to display the current child before doing a spatial move") (defconfig *spatial-move-delay-after* 0.5 nil - "Delay to wait after doing a spatial move") + "Delay to display the new child after doing a spatial move") ;;; CONFIG - Screen size From pbrochard at common-lisp.net Sat May 7 08:02:36 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 07 May 2011 04:02:36 -0400 Subject: [clfswm-cvs] r456 - in clfswm: . src Message-ID: Author: pbrochard Date: Sat May 7 04:02:35 2011 New Revision: 456 Log: src/clfswm-layout.lisp (update-layout-managed-children-position): New function. Modified: clfswm/ChangeLog clfswm/src/bindings-second-mode.lisp clfswm/src/clfswm-layout.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Sat May 7 04:02:35 2011 @@ -1,3 +1,8 @@ +2011-05-07 Philippe Brochard + + * src/clfswm-layout.lisp (update-layout-managed-children-position): + New function. + 2011-05-06 Philippe Brochard * src/bindings-second-mode.lisp (set-default-second-keys): Modified: clfswm/src/bindings-second-mode.lisp ============================================================================== --- clfswm/src/bindings-second-mode.lisp (original) +++ clfswm/src/bindings-second-mode.lisp Sat May 7 04:02:35 2011 @@ -92,6 +92,7 @@ (define-second-key ("p") 'open-frame-pack-menu) (define-second-key ("l") 'open-frame-fill-menu) (define-second-key ("r") 'open-frame-resize-menu) + (define-second-key ("x") 'update-layout-managed-children-position) ;;(define-second-key (#\g :control) 'stop-all-pending-actions) (define-second-key ("i") 'identify-key) (define-second-key ("colon") 'eval-from-query-string) Modified: clfswm/src/clfswm-layout.lisp ============================================================================== --- clfswm/src/clfswm-layout.lisp (original) +++ clfswm/src/clfswm-layout.lisp Sat May 7 04:02:35 2011 @@ -191,11 +191,23 @@ (remove-frame-data-slot *current-child* :tile-layout-keep-position)))) -(defun set-layout-managed-children () - (when (frame-p *current-child*) - (setf (frame-data-slot *current-child* :layout-managed-children) - (copy-list (get-managed-child *current-child*))) - (tile-layout-ask-keep-position))) + +(labels ((set-managed () + (setf (frame-data-slot *current-child* :layout-managed-children) + (copy-list (get-managed-child *current-child*))))) + (defun set-layout-managed-children () + (when (frame-p *current-child*) + (set-managed) + (tile-layout-ask-keep-position))) + + + (defun update-layout-managed-children-position () + "Update layout managed children position" + (when (frame-p *current-child*) + (set-managed) + (leave-second-mode)))) + + (defun update-layout-managed-children-keep-position (child parent) (let ((managed-children (frame-data-slot parent :layout-managed-children)) From pbrochard at common-lisp.net Sat May 7 08:04:35 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 07 May 2011 04:04:35 -0400 Subject: [clfswm-cvs] r457 - in clfswm: . src Message-ID: Author: pbrochard Date: Sat May 7 04:04:34 2011 New Revision: 457 Log: TODO update Modified: clfswm/TODO clfswm/src/bindings-second-mode.lisp clfswm/src/clfswm-util.lisp Modified: clfswm/TODO ============================================================================== --- clfswm/TODO (original) +++ clfswm/TODO Sat May 7 04:04:34 2011 @@ -7,7 +7,7 @@ =============== Should handle these soon. --> Nothing here yet. +Stop all pending actions FOR THE NEXT RELEASE Modified: clfswm/src/bindings-second-mode.lisp ============================================================================== --- clfswm/src/bindings-second-mode.lisp (original) +++ clfswm/src/bindings-second-mode.lisp Sat May 7 04:04:34 2011 @@ -93,7 +93,7 @@ (define-second-key ("l") 'open-frame-fill-menu) (define-second-key ("r") 'open-frame-resize-menu) (define-second-key ("x") 'update-layout-managed-children-position) - ;;(define-second-key (#\g :control) 'stop-all-pending-actions) + (define-second-key (#\g :control) 'stop-all-pending-actions) (define-second-key ("i") 'identify-key) (define-second-key ("colon") 'eval-from-query-string) (define-second-key ("exclam") 'run-program-from-query-string) Modified: clfswm/src/clfswm-util.lisp ============================================================================== --- clfswm/src/clfswm-util.lisp (original) +++ clfswm/src/clfswm-util.lisp Sat May 7 04:04:34 2011 @@ -71,6 +71,12 @@ (char= (char rep 0) #\Y)))) +;;(error "stop-all-pending-actions: TODO") +(defun stop-all-pending-actions () + "Stop all pending actions" + ()) + ;;(error "TODO")) + (defun rename-current-child () From pbrochard at common-lisp.net Sat May 7 19:35:07 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sat, 07 May 2011 15:35:07 -0400 Subject: [clfswm-cvs] r458 - in clfswm: . src Message-ID: Author: pbrochard Date: Sat May 7 15:35:07 2011 New Revision: 458 Log: src/clfswm-nw-hooks.lisp (make-permanent-nw-hook-frame): New function. Prevent to add or delete a new window hook for this frame. Modified: clfswm/ChangeLog clfswm/TODO clfswm/src/bindings-second-mode.lisp clfswm/src/clfswm-nw-hooks.lisp clfswm/src/clfswm-util.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Sat May 7 15:35:07 2011 @@ -1,5 +1,9 @@ 2011-05-07 Philippe Brochard + * src/clfswm-nw-hooks.lisp (make-permanent-nw-hook-frame): New + function. Prevent to add or delete a new window hook for this + frame. + * src/clfswm-layout.lisp (update-layout-managed-children-position): New function. Modified: clfswm/TODO ============================================================================== --- clfswm/TODO (original) +++ clfswm/TODO Sat May 7 15:35:07 2011 @@ -7,7 +7,7 @@ =============== Should handle these soon. -Stop all pending actions +-> Nothing here yet. FOR THE NEXT RELEASE Modified: clfswm/src/bindings-second-mode.lisp ============================================================================== --- clfswm/src/bindings-second-mode.lisp (original) +++ clfswm/src/bindings-second-mode.lisp Sat May 7 15:35:07 2011 @@ -68,6 +68,13 @@ (set-layout-once #'tile-layout) (leave-second-mode)) + +(defun stop-all-pending-actions () + "Stop all pending actions" + (clear-all-nw-hooks) + (leave-second-mode)) + + ;;; default shell programs (defmacro define-shell (key name docstring cmd) "Define a second key to start a shell command" @@ -93,13 +100,12 @@ (define-second-key ("l") 'open-frame-fill-menu) (define-second-key ("r") 'open-frame-resize-menu) (define-second-key ("x") 'update-layout-managed-children-position) - (define-second-key (#\g :control) 'stop-all-pending-actions) + (define-second-key ("g" :control) 'stop-all-pending-actions) (define-second-key ("i") 'identify-key) (define-second-key ("colon") 'eval-from-query-string) (define-second-key ("exclam") 'run-program-from-query-string) (define-second-key ("Return") 'leave-second-mode) (define-second-key ("Escape") 'leave-second-mode) - (define-second-key ("g" :control) 'leave-second-mode) (define-second-key ("t") 'tile-current-frame) (define-second-key ("Home" :mod-1 :control :shift) 'exit-clfswm) (define-second-key ("Right" :mod-1) 'select-next-brother) @@ -131,10 +137,10 @@ (define-second-key ("Home" :mod-1) 'switch-to-root-frame) (define-second-key ("Home" :mod-1 :shift) 'switch-and-select-root-frame) (define-second-key ("Menu") 'toggle-show-root-frame) - (define-second-key (#\b :mod-1) 'banish-pointer) - (define-second-key (#\o) 'set-open-in-new-frame-in-parent-frame-nw-hook) - (define-second-key (#\o :control) 'set-open-in-new-frame-in-root-frame-nw-hook) - (define-second-key (#\a) 'add-default-frame) + (define-second-key ("b" :mod-1) 'banish-pointer) + (define-second-key ("o") 'set-open-in-new-frame-in-parent-frame-nw-hook) + (define-second-key ("o" :control) 'set-open-in-new-frame-in-root-frame-nw-hook) + (define-second-key ("a") 'add-default-frame) ;; Escape (define-second-key ("Escape" :control) 'ask-close/kill-current-window) ;; Selection @@ -145,12 +151,12 @@ (define-second-key ("v" :control :shift) 'paste-selection-no-clear) (define-second-key ("Delete" :control) 'remove-current-child) (define-second-key ("Delete") 'delete-current-child) - (define-shell (#\c) b-start-xterm "start an xterm" "cd $HOME && exec xterm") - (define-shell (#\e) b-start-emacs "start emacs" "cd $HOME && exec emacs") - (define-shell (#\e :control) b-start-emacsremote + (define-shell ("c") b-start-xterm "start an xterm" "cd $HOME && exec xterm") + (define-shell ("e") b-start-emacs "start emacs" "cd $HOME && exec emacs") + (define-shell ("e" :control) b-start-emacsremote "start an emacs for another user" "exec xterm -e emacsremote") - (define-shell (#\h) b-start-xclock "start an xclock" "exec xclock -d") + (define-shell ("h") b-start-xclock "start an xclock" "exec xclock -d") (define-second-key ("F10" :mod-1) 'fast-layout-switch) (define-second-key ("F10" :shift :control) 'toggle-show-root-frame) (define-second-key ("F10") 'expose-windows-current-child-mode) Modified: clfswm/src/clfswm-nw-hooks.lisp ============================================================================== --- clfswm/src/clfswm-nw-hooks.lisp (original) +++ clfswm/src/clfswm-nw-hooks.lisp Sat May 7 15:35:07 2011 @@ -38,6 +38,7 @@ (defparameter *nw-hook-current-key* (char-code #\a)) +(defparameter *permanent-nw-hook-frames* nil) (defun set-nw-hook (hook) @@ -45,8 +46,9 @@ (let ((frame (if (xlib:window-p *current-child*) (find-parent-frame *current-child*) *current-child*))) - (setf (frame-nw-hook frame) hook) - (leave-second-mode))) + (unless (child-member frame *permanent-nw-hook-frames*) + (setf (frame-nw-hook frame) hook) + (leave-second-mode)))) (defun register-nw-hook (hook) (add-menu-key 'frame-nw-hook-menu (code-char *nw-hook-current-key*) hook) @@ -60,13 +62,15 @@ (defun leave-if-not-frame (child) "Leave the child if it's not a frame" - (when (xlib:window-p child) + (unless (frame-p child) (leave-frame) (select-previous-level))) (defun clear-nw-hook (frame) "Clear the frame new window hook" - (setf (frame-nw-hook frame) nil)) + (unless (child-member frame *permanent-nw-hook-frames*) + (setf (frame-nw-hook frame) nil))) + (defun clear-all-nw-hooks () "Clear all new window hooks for all frames" @@ -74,6 +78,11 @@ (clear-nw-hook frame))) +(defun make-permanent-nw-hook-frame (frame) + "Prevent to add or delete a new window hook for this frame" + (when (frame-p frame) + (push frame *permanent-nw-hook-frames*))) + ;;; Default frame new window hook (defun default-frame-nw-hook (frame window) @@ -238,7 +247,7 @@ ;;; Absorb window. -;;; The frame absorb the new window if it match the absorb-nw-test +;;; The frame absorb the new window if it match the nw-absorb-test ;;; frame data slot. (defun absorb-window-nw-hook (frame window) (let ((absorb-nw-test (frame-data-slot frame :nw-absorb-test))) @@ -256,7 +265,7 @@ nil) (defun set-absorb-window-nw-hook () - "Open the window in this frame if it match absorb-nw-test" + "Open the window in this frame if it match nw-absorb-test" (set-nw-hook #'absorb-window-nw-hook)) (register-nw-hook 'set-absorb-window-nw-hook) Modified: clfswm/src/clfswm-util.lisp ============================================================================== --- clfswm/src/clfswm-util.lisp (original) +++ clfswm/src/clfswm-util.lisp Sat May 7 15:35:07 2011 @@ -71,13 +71,6 @@ (char= (char rep 0) #\Y)))) -;;(error "stop-all-pending-actions: TODO") -(defun stop-all-pending-actions () - "Stop all pending actions" - ()) - ;;(error "TODO")) - - (defun rename-current-child () "Rename the current child" From pbrochard at common-lisp.net Sun May 8 19:25:10 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 08 May 2011 15:25:10 -0400 Subject: [clfswm-cvs] r459 - in clfswm: . doc Message-ID: Author: pbrochard Date: Sun May 8 15:25:09 2011 New Revision: 459 Log: Documentation update Modified: clfswm/doc/keys.html clfswm/doc/keys.txt clfswm/doc/menu.html clfswm/doc/menu.txt clfswm/load.lisp Modified: clfswm/doc/keys.html ============================================================================== --- clfswm/doc/keys.html (original) +++ clfswm/doc/keys.html Sun May 8 15:25:09 2011 @@ -799,10 +799,21 @@ - I + X - Identify a key + Update layout managed children position + + + + + Control + + + G + + + Stop all pending actions @@ -810,10 +821,10 @@ - Colon + I - Eval a lisp form from the query input + Identify a key @@ -821,10 +832,10 @@ - Exclam + Colon - Run a program from the query input + Eval a lisp form from the query input @@ -832,10 +843,10 @@ - Return + Exclam - Leave second mode + Run a program from the query input @@ -843,7 +854,7 @@ - Escape + Return Leave second mode @@ -851,10 +862,10 @@ - Control + - G + Escape Leave second mode @@ -1184,7 +1195,7 @@ Mod-1 - B + B Move the pointer to the lower right corner of the screen @@ -1195,7 +1206,7 @@ - O + O Open the next window in a new frame in the parent frame @@ -1206,7 +1217,7 @@ Control - O + O Open the next window in a new frame in the root frame @@ -1217,7 +1228,7 @@ - A + A Add a default frame in the current frame @@ -1316,7 +1327,7 @@ - C + C start an xterm @@ -1327,7 +1338,7 @@ - E + E start emacs @@ -1338,7 +1349,7 @@ Control - E + E start an emacs for another user @@ -1349,7 +1360,7 @@ - H + H start an xclock Modified: clfswm/doc/keys.txt ============================================================================== --- clfswm/doc/keys.txt (original) +++ clfswm/doc/keys.txt Sun May 8 15:25:09 2011 @@ -84,12 +84,13 @@ P Open the frame pack menu L Open the frame fill menu R Open the frame resize menu + X Update layout managed children position + Control G Stop all pending actions I Identify a key Colon Eval a lisp form from the query input Exclam Run a program from the query input Return Leave second mode Escape Leave second mode - Control G Leave second mode T Tile the current frame Mod-1 Control Shift Home Exit clfswm Mod-1 Right Select the next brother Modified: clfswm/doc/menu.html ============================================================================== --- clfswm/doc/menu.html (original) +++ clfswm/doc/menu.html Sun May 8 15:25:09 2011 @@ -2728,7 +2728,7 @@ h: Open the next window in a numbered frame

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


Modified: clfswm/doc/menu.txt ============================================================================== --- clfswm/doc/menu.txt (original) +++ clfswm/doc/menu.txt Sun May 8 15:25:09 2011 @@ -926,7 +926,7 @@ f: Open the next window in the current frame and leave the focus on the current child 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 +i: Open the window in this frame if it match nw-absorb-test Frame-Movement-Menu p: < Frame pack menu > Modified: clfswm/load.lisp ============================================================================== --- clfswm/load.lisp (original) +++ clfswm/load.lisp Sun May 8 15:25:09 2011 @@ -58,7 +58,7 @@ (in-package :clfswm) (ignore-errors - (main :read-conf-file-p t)) + (main :read-conf-file-p t)) ;;;;;; Uncomment lines above to save the default documentation. From pbrochard at common-lisp.net Mon May 9 20:59:23 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Mon, 09 May 2011 16:59:23 -0400 Subject: [clfswm-cvs] r460 - in clfswm: . contrib Message-ID: Author: pbrochard Date: Mon May 9 16:59:22 2011 New Revision: 460 Log: contrib/osd.lisp (funcall-button-from-code): Display osd documention for buttons and fix some redefining warnings. Modified: clfswm/ChangeLog clfswm/contrib/osd.lisp Modified: clfswm/ChangeLog ============================================================================== --- clfswm/ChangeLog (original) +++ clfswm/ChangeLog Mon May 9 16:59:22 2011 @@ -1,3 +1,8 @@ +2011-05-09 Philippe Brochard + + * contrib/osd.lisp (funcall-button-from-code): Display osd + documention for buttons and fix some redefining warnings. + 2011-05-07 Philippe Brochard * src/clfswm-nw-hooks.lisp (make-permanent-nw-hook-frame): New Modified: clfswm/contrib/osd.lisp ============================================================================== --- clfswm/contrib/osd.lisp (original) +++ clfswm/contrib/osd.lisp Mon May 9 16:59:22 2011 @@ -54,8 +54,9 @@ (defun is-osd-window-p (win) (xlib:window-equal win *osd-window*)) + #-DISPLAY-OSD -(defun display-doc (function code state) +(defun display-doc (function code state &optional button-p) (unless *osd-window* (setf *osd-window* (xlib:create-window :parent *root* :x 0 :y (- (xlib:drawable-height *root*) 25) @@ -83,15 +84,16 @@ t) (rotatef (xlib:gcontext-foreground *osd-gc*) (xlib:gcontext-background *osd-gc*)) (xlib:draw-glyphs *osd-window* *osd-gc* 20 15 - (format nil "~A~A" - (if keysym - (format nil "~:(~{~A+~}~A~)" modifiers keysym) - "Menu") - (aif (documentation (first function) 'function) - (format nil ": ~A" it) ""))) + (format nil "~A~A" + (cond (button-p (format nil "~:(~{~A+~}Button-~A~)" modifiers code)) + (keysym (format nil "~:(~{~A+~}~A~)" modifiers keysym)) + (t "Menu")) + (aif (documentation (first function) 'function) + (format nil ": ~A" (substitute #\Space #\Newline it)) ""))) (xlib:display-finish-output *display*))) +(fmakunbound 'funcall-key-from-code) (defun funcall-key-from-code (hash-table-key code state &rest args) (let ((function (find-key-from-code hash-table-key code state))) (when function @@ -99,6 +101,24 @@ (apply (first function) (append args (second function))) t))) + +(fmakunbound 'funcall-button-from-code) +(defun funcall-button-from-code (hash-table-key code state window root-x root-y + &optional (action *fun-press*) args) + (let ((state (modifiers->state (set-difference (state->modifiers state) + '(:button-1 :button-2 :button-3 :button-4 :button-5))))) + (multiple-value-bind (function foundp) + (gethash (list code state) hash-table-key) + (if (and foundp (funcall action function)) + (progn + (unless (equal code 'motion) + (display-doc function code state t)) + (apply (funcall action function) `(,window ,root-x ,root-y ,@(append args (third function)))) + t) + nil)))) + + +(fmakunbound 'get-fullscreen-size) ;;; CONFIG - Screen size (defun get-fullscreen-size () "Return the size of root child (values rx ry rw rh) @@ -106,6 +126,7 @@ (values -2 -2 (+ (xlib:screen-width *screen*) 2) (- (xlib:screen-height *screen*) 25))) +(fmakunbound 'open-menu-do-action) ;;; Display menu functions (defun open-menu-do-action (action menu parent) (typecase action @@ -116,16 +137,18 @@ (display-doc (list action) 0 0) (funcall action))))) - +(fmakunbound 'bottom-left-placement) (defun bottom-left-placement (&optional (width 0) (height 0)) (declare (ignore width)) (values 0 (- (xlib:screen-height *screen*) height 26))) +(fmakunbound 'bottom-middle-placement) (defun bottom-middle-placement (&optional (width 0) (height 0)) (values (truncate (/ (- (xlib:screen-width *screen*) width) 2)) (- (xlib:screen-height *screen*) height 26))) +(fmakunbound 'bottom-right-placement) (defun bottom-right-placement (&optional (width 0) (height 0)) (values (- (xlib:screen-width *screen*) width 1) (- (xlib:screen-height *screen*) height 26)))