[clfswm-cvs] r107 - in clfswm: . doc src

pbrochard at common-lisp.net pbrochard at common-lisp.net
Thu May 1 15:20:54 UTC 2008


Author: pbrochard
Date: Thu May  1 11:20:47 2008
New Revision: 107

Added:
   clfswm/src/menu-def.lisp
Modified:
   clfswm/ChangeLog
   clfswm/clfswm.asd
   clfswm/doc/keys.html
   clfswm/doc/keys.txt
   clfswm/doc/menu.html
   clfswm/doc/menu.txt
   clfswm/src/bindings-second-mode.lisp
   clfswm/src/clfswm-layout.lisp
   clfswm/src/clfswm-nw-hooks.lisp
   clfswm/src/clfswm.lisp
Log:
menu-def.lisp: New file

Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog	(original)
+++ clfswm/ChangeLog	Thu May  1 11:20:47 2008
@@ -1,3 +1,11 @@
+2008-05-01  Philippe Brochard  <pbrochard at common-lisp.net>
+
+	* src/menu-def.lisp: New file: move all menu definition in
+	menu-def.lisp.
+
+	* src/clfswm-layout.lisp (register-layout): Use a function instead
+	of a macro.
+
 2008-04-30  Philippe Brochard  <pbrochard at common-lisp.net>
 
 	* src/clfswm-autodoc.lisp (produce-menu-doc,

Modified: clfswm/clfswm.asd
==============================================================================
--- clfswm/clfswm.asd	(original)
+++ clfswm/clfswm.asd	Thu May  1 11:20:47 2008
@@ -39,23 +39,25 @@
 			 (:file "clfswm-second-mode"
 			  :depends-on ("package" "clfswm" "clfswm-internal"))
 			 (:file "clfswm-info"
-			  :depends-on ("package" "version" "xlib-util" "config" "clfswm-keys" "clfswm" "clfswm-internal"))
+			  :depends-on ("package" "version" "xlib-util" "config" "clfswm-keys" "clfswm" "clfswm-internal" "clfswm-autodoc"))
 			 (:file "clfswm-menu"
 			  :depends-on ("package" "clfswm-info"))
+			 (:file "menu-def"
+			  :depends-on ("clfswm-menu"))
 			 (:file "clfswm-util"
-			  :depends-on ("clfswm" "keysyms" "clfswm-info" "clfswm-second-mode" "clfswm-query" "clfswm-menu"))
+			  :depends-on ("clfswm" "keysyms" "clfswm-info" "clfswm-second-mode" "clfswm-query" "clfswm-menu" "clfswm-autodoc"))
 			 (:file "clfswm-query"
 			  :depends-on ("package" "config"))
 			 (:file "clfswm-layout"
-			  :depends-on ("package" "clfswm-internal" "clfswm-util" "clfswm-info"))
+			  :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"))
+			  :depends-on ("package" "clfswm-util" "clfswm-info" "clfswm-layout" "menu-def"))
 			 (:file "bindings"
 			  :depends-on ("clfswm" "clfswm-internal" "clfswm-util"))
 			 (:file "bindings-second-mode"
-			  :depends-on ("clfswm" "clfswm-util" "clfswm-query" "bindings" "clfswm-pack" "clfswm-menu"))))))
+			  :depends-on ("clfswm" "clfswm-util" "clfswm-query" "bindings" "clfswm-pack" "clfswm-menu" "menu-def"))))))
 
 
 

Modified: clfswm/doc/keys.html
==============================================================================
--- clfswm/doc/keys.html	(original)
+++ clfswm/doc/keys.html	Thu May  1 11:20:47 2008
@@ -1456,7 +1456,7 @@
           
         </td>
         <td align="center" nowrap>
-          Clfswm  motion
+          Motion
         </td>
         <td style="color:#0000ff" nowrap>
           Grab text

Modified: clfswm/doc/keys.txt
==============================================================================
--- clfswm/doc/keys.txt	(original)
+++ clfswm/doc/keys.txt	Thu May  1 11:20:47 2008
@@ -152,5 +152,5 @@
                      2               Leave the info mode
                      4               Move one line up
                      5               Move one line down
-                     Clfswm::motion   Grab text
+                     Motion          Grab text
 

Modified: clfswm/doc/menu.html
==============================================================================
--- clfswm/doc/menu.html	(original)
+++ clfswm/doc/menu.html	Thu May  1 11:20:47 2008
@@ -43,13 +43,13 @@
       a: <a href="#FRAME-ADDING-MENU">< Adding frame menu ></a>
     </p>
     <p>
-      l: < Frame layout menu >
+      l: <a href="#FRAME-LAYOUT-MENU">< Frame layout menu ></a>
     </p>
     <p>
-      o: < Frame layout menu (Set only once) >
+      o: <a href="#FRAME-LAYOUT-ONCE-MENU">< Frame layout menu (Only once) ></a>
     </p>
     <p>
-      n: < Frame new window hook menu >
+      n: <a href="#FRAME-NW-HOOK-MENU">< Frame new window hook menu ></a>
     </p>
     <p>
       m: <a href="#FRAME-MOVEMENT-MENU">< Frame movement menu ></a>
@@ -81,6 +81,78 @@
     </p>
     <hr>
     <h3>
+      <a name="FRAME-LAYOUT-MENU"></a><a href="#FRAME-MENU">Frame-Layout-Menu</a>
+    </h3>
+    <p>
+      a: Maximize windows in there frame - leave frame to there size (no layout)
+    </p>
+    <p>
+      b: Tile child in its frame
+    </p>
+    <p>
+      c: Tile Left: main child on left and others on right
+    </p>
+    <p>
+      d: Tile Right: main child on right and others on left
+    </p>
+    <p>
+      e: Tile Top: main child on top and others on bottom
+    </p>
+    <p>
+      f: Tile Bottom: main child on bottom and others on top
+    </p>
+    <p>
+      g: Tile Space: tile child in its frame leaving spaces between them
+    </p>
+    <hr>
+    <h3>
+      <a name="FRAME-LAYOUT-ONCE-MENU"></a><a href="#FRAME-MENU">Frame-Layout-Once-Menu</a>
+    </h3>
+    <p>
+      a: Maximize windows in there frame - leave frame to there size (no layout)
+    </p>
+    <p>
+      b: Tile child in its frame
+    </p>
+    <p>
+      c: Tile Left: main child on left and others on right
+    </p>
+    <p>
+      d: Tile Right: main child on right and others on left
+    </p>
+    <p>
+      e: Tile Top: main child on top and others on bottom
+    </p>
+    <p>
+      f: Tile Bottom: main child on bottom and others on top
+    </p>
+    <p>
+      g: Tile Space: tile child in its frame leaving spaces between them
+    </p>
+    <hr>
+    <h3>
+      <a name="FRAME-NW-HOOK-MENU"></a><a href="#FRAME-MENU">Frame-Nw-Hook-Menu</a>
+    </h3>
+    <p>
+      a: Open the next window in the current frame
+    </p>
+    <p>
+      b: Open the next window in the current root
+    </p>
+    <p>
+      c: Open the next window in a new frame in the current root
+    </p>
+    <p>
+      d: Open the next window in a new frame in the root frame
+    </p>
+    <p>
+      e: Open the next window in a new frame in the parent frame
+    </p>
+    <p>
+      f: Open the next window in the current frame and leave the focus on the current child
+    </p>
+    <hr>
+    <h3>
       <a name="FRAME-MOVEMENT-MENU"></a><a href="#FRAME-MENU">Frame-Movement-Menu</a>
     </h3>
     <p>

Modified: clfswm/doc/menu.txt
==============================================================================
--- clfswm/doc/menu.txt	(original)
+++ clfswm/doc/menu.txt	Thu May  1 11:20:47 2008
@@ -12,7 +12,7 @@
 Frame-Menu
 a: < Adding frame menu >
 l: < Frame layout menu >
-o: < Frame layout menu (Set only once) >
+o: < Frame layout menu (Only once) >
 n: < Frame new window hook menu >
 m: < Frame movement menu >
 w: < Managed window type menu >
@@ -25,6 +25,32 @@
 a: Add a default frame
 p: Add a placed frame
 
+Frame-Layout-Menu
+a: Maximize windows in there frame - leave frame to there size (no layout)
+b: Tile child in its frame
+c: Tile Left: main child on left and others on right
+d: Tile Right: main child on right and others on left
+e: Tile Top: main child on top and others on bottom
+f: Tile Bottom: main child on bottom and others on top
+g: Tile Space: tile child in its frame leaving spaces between them
+
+Frame-Layout-Once-Menu
+a: Maximize windows in there frame - leave frame to there size (no layout)
+b: Tile child in its frame
+c: Tile Left: main child on left and others on right
+d: Tile Right: main child on right and others on left
+e: Tile Top: main child on top and others on bottom
+f: Tile Bottom: main child on bottom and others on top
+g: Tile Space: tile child in its frame leaving spaces between them
+
+Frame-Nw-Hook-Menu
+a: Open the next window in the current frame
+b: Open the next window in the current root
+c: Open the next window in a new frame in the current root
+d: Open the next window in a new frame in the root frame
+e: Open the next window in a new frame in the parent frame
+f: Open the next window in the current frame and leave the focus on the current child
+
 Frame-Movement-Menu
 p: < Frame pack menu >
 f: < Frame fill menu >

Modified: clfswm/src/bindings-second-mode.lisp
==============================================================================
--- clfswm/src/bindings-second-mode.lisp	(original)
+++ clfswm/src/bindings-second-mode.lisp	Thu May  1 11:20:47 2008
@@ -36,148 +36,6 @@
 
 (define-second-key ("F1" :mod-1) 'help-on-second-mode)
 
-;;;;;;;;;;;;;;;;;
-;;;; Menu entry
-;;;;;;;;;;;;;;;;;
-
-;;; Here is a small example of menu manipulation:
-
-;;(add-menu-key 'main "a" 'help-on-second-mode)
-;;(add-menu-key 'main "c" 'help-on-clfswm)
-;;
-;;(add-sub-menu 'main "p" 'plop "A sub menu")
-;;
-;;(add-menu-key 'plop "a" 'help-on-clfswm)
-;;(add-menu-key 'plop "b" 'help-on-second-mode)
-;;(add-menu-key 'plop "d" 'help-on-second-mode)
-
-
-;;(del-menu-key 'main "p")
-;;(del-menu-value 'plop 'help-on-main-mode)
-;;(del-sub-menu 'main 'plop)
-
-;;(define-second-key ("a") 'open-menu)
-
-
-
-(defun frame-layout-menu ()
-  "< Frame layout menu >"
-  (info-mode-menu (keys-from-list *layout-list*)))
-
-(defun frame-layout-once-menu ()
-  "< Frame layout menu (Set only once) >"
-  (info-mode-menu (keys-from-list (loop :for l :in *layout-list*
-				     :collect (create-symbol (format nil "~A" l) "-ONCE")))))
-
-(defun frame-nw-hook-menu ()
-  "< Frame new window hook menu >"
-  (info-mode-menu (keys-from-list *nw-hook-list*)))
-
-
-
-(add-sub-menu 'main "f" 'frame-menu "Frame menu")
-(add-sub-menu 'main "w" 'window-menu "Window menu")
-(add-sub-menu 'main "s" 'selection-menu "Selection menu")
-(add-sub-menu 'main "n" 'action-by-name-menu "Action by name menu")
-(add-sub-menu 'main "u" 'action-by-number-menu "Action by number menu")
-(add-sub-menu 'main "y" 'utility-menu "Utility menu")
-
-
-
-(add-sub-menu 'frame-menu "a" 'frame-adding-menu "Adding frame menu")
-(add-menu-key 'frame-menu "l" 'frame-layout-menu)
-(add-menu-key 'frame-menu "o" 'frame-layout-once-menu)
-(add-menu-key 'frame-menu "n" 'frame-nw-hook-menu)
-(add-sub-menu 'frame-menu "m" 'frame-movement-menu "Frame movement menu")
-(add-sub-menu 'frame-menu "w" 'managed-window-menu "Managed window type menu")
-(add-sub-menu 'frame-menu "i" 'frame-info-menu "Frame info menu")
-(add-menu-key 'frame-menu "r" 'rename-current-child)
-(add-menu-key 'frame-menu "u" 'renumber-current-frame)
-(add-menu-key 'frame-menu "x" 'explode-current-frame)
-
-
-(add-menu-key 'frame-adding-menu "a" 'add-default-frame)
-(add-menu-key 'frame-adding-menu "p" 'add-placed-frame)
-
-
-(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-menu-key 'frame-movement-menu "c" 'center-current-frame)
-
-
-(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 'managed-window-menu "m" 'current-frame-manage-window-type)
-(add-menu-key 'managed-window-menu "a" 'current-frame-manage-all-window-type)
-(add-menu-key 'managed-window-menu "n" 'current-frame-manage-only-normal-window-type)
-(add-menu-key 'managed-window-menu "u" 'current-frame-manage-no-window-type)
-
-
-(add-menu-key 'frame-info-menu "s" 'show-all-frames-info)
-(add-menu-key 'frame-info-menu "h" 'hide-all-frames-info)
-
-
-(add-menu-key 'window-menu "i" 'display-current-window-info)
-(add-menu-key 'window-menu "f" 'force-window-in-frame)
-(add-menu-key 'window-menu "c" 'force-window-center-in-frame)
-(add-menu-key 'window-menu "m" 'manage-current-window)
-(add-menu-key 'window-menu "u" 'unmanage-current-window)
-(add-menu-key 'window-menu "a" 'adapt-current-frame-to-window-hints)
-(add-menu-key 'window-menu "w" 'adapt-current-frame-to-window-width-hint)
-(add-menu-key 'window-menu "h" 'adapt-current-frame-to-window-height-hint)
-
-
-
-(add-menu-key 'selection-menu "x" 'cut-current-child)
-(add-menu-key 'selection-menu "c" 'copy-current-child)
-(add-menu-key 'selection-menu "v" 'paste-selection)
-(add-menu-key 'selection-menu "p" 'paste-selection-no-clear)
-(add-menu-key 'selection-menu "Delete" 'remove-current-child)
-(add-menu-key 'selection-menu "z" 'clear-selection)
-
-
-
-(add-menu-key 'action-by-name-menu "f" 'focus-frame-by-name)
-(add-menu-key 'action-by-name-menu "o" 'open-frame-by-name)
-(add-menu-key 'action-by-name-menu "d" 'delete-frame-by-name)
-(add-menu-key 'action-by-name-menu "m" 'move-current-child-by-name)
-(add-menu-key 'action-by-name-menu "c" 'copy-current-child-by-name)
-
-(add-menu-key 'action-by-number-menu "f" 'focus-frame-by-number)
-(add-menu-key 'action-by-number-menu "o" 'open-frame-by-number)
-(add-menu-key 'action-by-number-menu "d" 'delete-frame-by-number)
-(add-menu-key 'action-by-number-menu "m" 'move-current-child-by-number)
-(add-menu-key 'action-by-number-menu "c" 'copy-current-child-by-number)
-
-
-(add-menu-key 'utility-menu "i" 'identify-key)
-(add-menu-key 'utility-menu "colon" 'eval-from-query-string)
-(add-menu-key 'utility-menu "exclam" 'run-program-from-query-string)
-
-
-
-
 (defun open-frame-menu ()
   "Open the frame menu"
   (open-menu (find-menu 'frame-menu)))

Modified: clfswm/src/clfswm-layout.lisp
==============================================================================
--- clfswm/src/clfswm-layout.lisp	(original)
+++ clfswm/src/clfswm-layout.lisp	Thu May  1 11:20:47 2008
@@ -39,6 +39,8 @@
 
 
 
+(defparameter *layout-current-key* (char-code #\a))
+
 
 ;;; Generic functions
 (defun set-layout (layout)
@@ -63,20 +65,19 @@
 
 
 
-(defmacro register-layout (layout)
-  `(progn
-     (setf *layout-list* (append *layout-list* (list ',layout)))
-     (defun ,(intern (format nil "~A-ONCE" layout)) ()
-       (set-layout-dont-leave #',(intern (subseq (format nil "~A" layout) 4)))
-       (show-all-children *current-root*)
-       (fixe-real-size-current-child)
-       (set-layout-dont-leave #'no-layout))))
-
+(defun register-layout (layout)
+  (let ((once-name (create-symbol (format nil "~A" layout) "-ONCE")))
+    (setf (symbol-function once-name)
+	  (lambda ()
+	    (set-layout-dont-leave (intern (subseq (format nil "~A" layout) 4)))
+	    (show-all-children *current-root*)
+	    (fixe-real-size-current-child)
+	    (set-layout-dont-leave #'no-layout)))
+    (setf (documentation once-name 'function) (documentation layout 'function))
+    (add-menu-key 'frame-layout-menu (code-char *layout-current-key*) layout)
+    (add-menu-key 'frame-layout-once-menu (code-char *layout-current-key*) once-name)
+    (incf *layout-current-key*)))
 
-(defun set-layout-once-documentation ()
-  (loop :for l :in *layout-list*
-     :do (setf (documentation (create-symbol (format nil "~A" l) "-ONCE") 'function)
-	       (documentation l 'function))))
 
 
 
@@ -114,7 +115,7 @@
   "Maximize windows in there frame - leave frame to there size (no layout)"
   (set-layout #'no-layout))
 
-(register-layout set-no-layout)
+(register-layout 'set-no-layout)
 
 
 
@@ -140,7 +141,7 @@
   "Tile child in its frame"
   (set-layout #'tile-layout))
 
-(register-layout set-tile-layout)
+(register-layout 'set-tile-layout)
 
 
 ;;; Tile Left
@@ -172,7 +173,7 @@
   (layout-ask-size "Tile size in percent (%)" :tile-size)
   (set-layout #'tile-left-layout))
 
-(register-layout set-tile-left-layout)
+(register-layout 'set-tile-left-layout)
 
 
 
@@ -206,7 +207,7 @@
   (set-layout #'tile-right-layout))
 
 
-(register-layout set-tile-right-layout)
+(register-layout 'set-tile-right-layout)
 
 
 
@@ -240,7 +241,7 @@
   (layout-ask-size "Tile size in percent (%)" :tile-size)
   (set-layout #'tile-top-layout))
 
-(register-layout set-tile-top-layout)
+(register-layout 'set-tile-top-layout)
 
 
 
@@ -275,7 +276,7 @@
   (set-layout #'tile-bottom-layout))
 
 
-(register-layout set-tile-bottom-layout)
+(register-layout 'set-tile-bottom-layout)
 
 
 
@@ -306,4 +307,4 @@
   (layout-ask-size "Space size in percent (%)" :tile-space-size 10)
   (set-layout #'tile-space-layout))
 
-(register-layout set-tile-space-layout)
+(register-layout 'set-tile-space-layout)

Modified: clfswm/src/clfswm-nw-hooks.lisp
==============================================================================
--- clfswm/src/clfswm-nw-hooks.lisp	(original)
+++ clfswm/src/clfswm-nw-hooks.lisp	Thu May  1 11:20:47 2008
@@ -37,6 +37,8 @@
 ;;;   3- Register your new hook with register-nw-hook.
 
 
+(defparameter *nw-hook-current-key* (char-code #\a))
+
 
 (defun set-nw-hook (hook)
   "Set the hook of the current child"
@@ -47,7 +49,9 @@
     (leave-second-mode)))
 
 (defun register-nw-hook (hook)
-  (setf *nw-hook-list* (append *nw-hook-list* (list hook))))
+  (setf *nw-hook-list* (append *nw-hook-list* (list hook)))
+  (add-menu-key 'frame-nw-hook-menu (code-char *nw-hook-current-key*) hook)
+  (incf *nw-hook-current-key*))
 
 
 (defun default-window-placement (frame window)

Modified: clfswm/src/clfswm.lisp
==============================================================================
--- clfswm/src/clfswm.lisp	(original)
+++ clfswm/src/clfswm.lisp	Thu May  1 11:20:47 2008
@@ -213,7 +213,6 @@
 							      :pointer-motion))
   ;;(intern-atoms *display*)
   (netwm-set-properties)
-  (set-layout-once-documentation)
   (xlib:display-force-output *display*)
   (setf *child-selection* nil)
   (setf *root-frame* (create-frame :name "Root" :number 0) ;; :layout #'tile-space-layout)

Added: clfswm/src/menu-def.lisp
==============================================================================
--- (empty file)
+++ clfswm/src/menu-def.lisp	Thu May  1 11:20:47 2008
@@ -0,0 +1,164 @@
+;;; --------------------------------------------------------------------------
+;;; CLFSWM - FullScreen Window Manager
+;;;
+;;; --------------------------------------------------------------------------
+;;; Documentation: Menu definitions
+;;;
+;;; Note: Mod-1 is the Alt or Meta key, Mod-2 is the Numlock key.
+;;; --------------------------------------------------------------------------
+;;;
+;;; (C) 2005 Philippe Brochard <hocwp at free.fr>
+;;;
+;;; 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.
+;;;
+;;; --------------------------------------------------------------------------
+
+(in-package :clfswm)
+
+;;; Here is a small example of menu manipulation:
+
+;;(add-menu-key 'main "a" 'help-on-second-mode)
+;;(add-menu-key 'main "c" 'help-on-clfswm)
+;;
+;;(add-sub-menu 'main "p" 'plop "A sub menu")
+;;
+;;(add-menu-key 'plop "a" 'help-on-clfswm)
+;;(add-menu-key 'plop "b" 'help-on-second-mode)
+;;(add-menu-key 'plop "d" 'help-on-second-mode)
+
+
+;;(del-menu-key 'main "p")
+;;(del-menu-value 'plop 'help-on-main-mode)
+;;(del-sub-menu 'main 'plop)
+
+;;(define-second-key ("a") 'open-menu)
+
+
+
+;;(defun frame-layout-menu ()
+;;  "< Frame layout menu >"
+;;  (info-mode-menu (keys-from-list *layout-list*)))
+;;
+;;(defun frame-layout-once-menu ()
+;;  "< Frame layout menu (Set only once) >"
+;;  (info-mode-menu (keys-from-list (loop :for l :in *layout-list*
+;;				     :collect (create-symbol (format nil "~A" l) "-ONCE")))))
+;;
+;;(defun frame-nw-hook-menu ()
+;;  "< Frame new window hook menu >"
+;;  (info-mode-menu (keys-from-list *nw-hook-list*)))
+
+
+
+(add-sub-menu 'main "f" 'frame-menu "Frame menu")
+(add-sub-menu 'main "w" 'window-menu "Window menu")
+(add-sub-menu 'main "s" 'selection-menu "Selection menu")
+(add-sub-menu 'main "n" 'action-by-name-menu "Action by name menu")
+(add-sub-menu 'main "u" 'action-by-number-menu "Action by number menu")
+(add-sub-menu 'main "y" 'utility-menu "Utility menu")
+
+
+
+(add-sub-menu 'frame-menu "a" 'frame-adding-menu "Adding frame menu")
+(add-sub-menu 'frame-menu "l" 'frame-layout-menu "Frame layout menu")
+(add-sub-menu 'frame-menu "o" 'frame-layout-once-menu "Frame layout menu (Only once)")
+(add-sub-menu 'frame-menu "n" 'frame-nw-hook-menu "Frame new window hook menu")
+(add-sub-menu 'frame-menu "m" 'frame-movement-menu "Frame movement menu")
+(add-sub-menu 'frame-menu "w" 'managed-window-menu "Managed window type menu")
+(add-sub-menu 'frame-menu "i" 'frame-info-menu "Frame info menu")
+(add-menu-key 'frame-menu "r" 'rename-current-child)
+(add-menu-key 'frame-menu "u" 'renumber-current-frame)
+(add-menu-key 'frame-menu "x" 'explode-current-frame)
+
+
+(add-menu-key 'frame-adding-menu "a" 'add-default-frame)
+(add-menu-key 'frame-adding-menu "p" 'add-placed-frame)
+
+
+(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-menu-key 'frame-movement-menu "c" 'center-current-frame)
+
+
+(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 'managed-window-menu "m" 'current-frame-manage-window-type)
+(add-menu-key 'managed-window-menu "a" 'current-frame-manage-all-window-type)
+(add-menu-key 'managed-window-menu "n" 'current-frame-manage-only-normal-window-type)
+(add-menu-key 'managed-window-menu "u" 'current-frame-manage-no-window-type)
+
+
+(add-menu-key 'frame-info-menu "s" 'show-all-frames-info)
+(add-menu-key 'frame-info-menu "h" 'hide-all-frames-info)
+
+
+(add-menu-key 'window-menu "i" 'display-current-window-info)
+(add-menu-key 'window-menu "f" 'force-window-in-frame)
+(add-menu-key 'window-menu "c" 'force-window-center-in-frame)
+(add-menu-key 'window-menu "m" 'manage-current-window)
+(add-menu-key 'window-menu "u" 'unmanage-current-window)
+(add-menu-key 'window-menu "a" 'adapt-current-frame-to-window-hints)
+(add-menu-key 'window-menu "w" 'adapt-current-frame-to-window-width-hint)
+(add-menu-key 'window-menu "h" 'adapt-current-frame-to-window-height-hint)
+
+
+
+(add-menu-key 'selection-menu "x" 'cut-current-child)
+(add-menu-key 'selection-menu "c" 'copy-current-child)
+(add-menu-key 'selection-menu "v" 'paste-selection)
+(add-menu-key 'selection-menu "p" 'paste-selection-no-clear)
+(add-menu-key 'selection-menu "Delete" 'remove-current-child)
+(add-menu-key 'selection-menu "z" 'clear-selection)
+
+
+
+(add-menu-key 'action-by-name-menu "f" 'focus-frame-by-name)
+(add-menu-key 'action-by-name-menu "o" 'open-frame-by-name)
+(add-menu-key 'action-by-name-menu "d" 'delete-frame-by-name)
+(add-menu-key 'action-by-name-menu "m" 'move-current-child-by-name)
+(add-menu-key 'action-by-name-menu "c" 'copy-current-child-by-name)
+
+(add-menu-key 'action-by-number-menu "f" 'focus-frame-by-number)
+(add-menu-key 'action-by-number-menu "o" 'open-frame-by-number)
+(add-menu-key 'action-by-number-menu "d" 'delete-frame-by-number)
+(add-menu-key 'action-by-number-menu "m" 'move-current-child-by-number)
+(add-menu-key 'action-by-number-menu "c" 'copy-current-child-by-number)
+
+
+(add-menu-key 'utility-menu "i" 'identify-key)
+(add-menu-key 'utility-menu "colon" 'eval-from-query-string)
+(add-menu-key 'utility-menu "exclam" 'run-program-from-query-string)
+



More information about the clfswm-cvs mailing list