[clfswm-cvs] r111 - in clfswm: . src

pbrochard at common-lisp.net pbrochard at common-lisp.net
Fri May 2 21:49:00 UTC 2008


Author: pbrochard
Date: Fri May  2 17:49:00 2008
New Revision: 111

Modified:
   clfswm/ChangeLog
   clfswm/README
   clfswm/TODO
   clfswm/src/tools.lisp
   clfswm/src/xlib-util.lisp
Log:
-m

Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog	(original)
+++ clfswm/ChangeLog	Fri May  2 17:49:00 2008
@@ -1,5 +1,8 @@
 2008-05-02  Philippe Brochard  <pbrochard at common-lisp.net>
 
+	* src/tools.lisp (getenv): Implemented for ECL.
+	(urun-prog): Implemented for ECL.
+
 	* src/clfswm-util.lisp (identify-key): Use a double buffer to
 	display text.
 

Modified: clfswm/README
==============================================================================
--- clfswm/README	(original)
+++ clfswm/README	Fri May  2 17:49:00 2008
@@ -4,25 +4,45 @@
  and [2]Stumpwm. Many thanks to them).
  It can be driven only with the keyboard or with the mouse.
 
- A display is divided in workspaces, groups and windows. Windows are
- packed together in groups.
- By default a group is fullscreen maximized (no decorations, no buttons,
- no menus: nothing, just the application fullscreen!).
- When not maximized, a group of windows can be moved, resized, tiled,
- packed or filled to others groups edges.
+ A display contain a root frame and its children. A children can be a
+ window or another frame. The root frame or its children can be the
+ current root. The current root is fullscreen maximized (no
+ decorations, no buttons, no menus: nothing, just the application
+ fullscreen!).
+ Using CLFSWM is like walking throw a tree of frames and windows.
+ Enter in a child to make it the current root and make it fullscreen
+ maximized. Leave it to make its parent the current root.
+
+ Here is the default key binding to navigate throw this tree:
+
+  * Alt-Tab: circulate throw children of the current child.
+  * Alt-Left/Right: circulate throw brother children (ie: this is like
+      workspaces for a more conventional window manager)
+  * Alt-Up: select the first child of the current frame.
+  * Alt-Down: select the parent of the current child.
+  * Alt-Enter: Make the current selected child the current root (ie
+      maximize it) 
+  Alt+Shift-Enter: Make the parent of the current root the current
+      root (ie unmaximize the current root).
 
- For its binding, CLFSWM has two modes.
- A main mode with minimal keys and no mouse grabbing to avoid conflict
+ There is no more need for a pager: you are in the pager!
+
+ For its binding, CLFSWM has two modes:
+ A main mode with minimal keys and mouse grabbing to avoid conflicts
  with others applications.
  And a second mode with more keys and mouse actions.
  For details of its usage, have a look at the files keys.txt or 
  keys.html
 
+ A frame can be placed anywhere in its parent frame. And can have
+ differents layouts to automatically manage its children (tile, tile
+ to left, to bottom, no layout...).
+
 
 * Installation
 
-Boot up a common lisp implementation. I develop it with sbcl, I've
-tested it with cmucl and I use it with clisp (you need the clx/xlib
+Boot up a common lisp implementation. I develop it with sbcl, I test
+it with cmucl regularly and I use it with clisp (you need the clx/xlib
 package).
 
 To use CLFSWM, load the load.lisp file. It loads the ASDF package,
@@ -45,17 +65,13 @@
 files and at the config.lisp file for global variables.
 
 All variables can be overwritten in a user configuration file:
-$HOME/.clfswmrc or /etc/clfswmrc or $XDG_CONFIG_HOME/clfswm/clfswmrc.
+$XDG_CONFIG_HOME/clfswm/clfswmrc or $HOME/.clfswmrc or /etc/clfswmrc.
 It's a standard lisp file loaded at startup. There is an example in
 the clfswm source (see dot-clfswmrc).
 
-If you want to add workspaces or groups at startup, tell this to
-clfswm in the init-display function in clfswm.lisp (there is already a
-default workspace and a default group created).
-
-In all cases, you can grep the source with 'CONFIG' and 'Alternative'
-keywords to find where you can simply customize clfswm.
-
+There is a lot of hooks in CLFSWM to tweak its behaviour. For example,
+if you want to add some frames at startup you can write your own
+init-hook (see dot-clfswmrc).
 
 
 * Lisp implementation note

Modified: clfswm/TODO
==============================================================================
--- clfswm/TODO	(original)
+++ clfswm/TODO	Fri May  2 17:49:00 2008
@@ -7,7 +7,6 @@
 ===============
 Should handle these soon.
 
-- Ensure-unique-number/name (new function) [Philippe]
 
 MAYBE
 =====
@@ -34,7 +33,7 @@
 
 - Remote access to the clfswm REPL [Philippe]
 
-- cd/pwd a la shell to navigate throu frames. [Philippe] 
+- cd/pwd a la shell to navigate throw frames. [Philippe] 
 
 - Hide/Unhide frame [Philippe]
 
@@ -47,3 +46,5 @@
 - A Gimp layout example [Philippe]
 
 - Hook to open next window in named/numbered frame [Philippe]
+
+- Ensure-unique-number/name (new function) [Philippe]

Modified: clfswm/src/tools.lisp
==============================================================================
--- clfswm/src/tools.lisp	(original)
+++ clfswm/src/tools.lisp	Fri May  2 17:49:00 2008
@@ -330,7 +330,8 @@
   #+lucid (lcl:environment-variable (string var))
   #+mcl (ccl::getenv var)
   #+sbcl (sb-posix:getenv (string var))
-  #-(or allegro clisp cmu gcl lispworks lucid mcl sbcl scl)
+  #+ecl (si:getenv (string var))
+  #-(or allegro clisp cmu gcl lispworks lucid mcl sbcl scl ecl)
   (error 'not-implemented :proc (list 'getenv var)))
 
 
@@ -349,7 +350,8 @@
   #+lispworks (setf (lw:environment-variable (string var)) (string val))
   #+lucid (setf (lcl:environment-variable (string var)) (string val))
   #+sbcl (sb-posix:putenv (format nil "~A=~A" (string var) (string val)))
-  #-(or allegro clisp cmu gcl lispworks lucid sbcl scl)
+  #+ecl (si:setenv (string var) (string val))
+  #-(or allegro clisp cmu gcl lispworks lucid sbcl scl ecl)
   (error 'not-implemented :proc (list '(setf getenv) var)))
 
 
@@ -403,7 +405,8 @@
                      opts)
   #+lucid (apply #'lcl:run-program prog :wait wait :arguments args opts)
   #+sbcl (apply #'sb-ext:run-program prog args :wait wait :output *standard-output* opts)
-  #-(or allegro clisp cmu gcl liquid lispworks lucid sbcl)
+  #+ecl (apply #'ext:run-program prog args opts)
+  #-(or allegro clisp cmu gcl liquid lispworks lucid sbcl ecl)
   (error 'not-implemented :proc (list 'run-prog prog opts)))
 
 

Modified: clfswm/src/xlib-util.lisp
==============================================================================
--- clfswm/src/xlib-util.lisp	(original)
+++ clfswm/src/xlib-util.lisp	Fri May  2 17:49:00 2008
@@ -332,15 +332,23 @@
 (let ((cursor-font nil)
       (cursor nil)
       (pointer-grabbed nil))
-  (labels ((free-grab-pointer ()
-	     (when cursor
-	       (xlib:free-cursor cursor)
-	       (setf cursor nil))
-	     (when cursor-font
-	       (xlib:close-font cursor-font)
-	       (setf cursor-font nil))))
-    (defun xgrab-init-pointer ()
-      (setf pointer-grabbed nil))
+;;  (labels ((free-grab-pointer ()
+;;	     (when cursor
+;;	       (xlib:free-cursor cursor)
+;;	       (setf cursor nil))
+;;	     (when cursor-font
+;;	       (xlib:close-font cursor-font)
+  ;;	       (setf cursor-font nil))))
+  (defun free-grab-pointer ()
+    (when cursor
+      (xlib:free-cursor cursor)
+      (setf cursor nil))
+    (when cursor-font
+      (xlib:close-font cursor-font)
+      (setf cursor-font nil)))
+
+  (defun xgrab-init-pointer ()
+    (setf pointer-grabbed nil))
 
     (defun xgrab-pointer-p ()
       pointer-grabbed)
@@ -369,7 +377,7 @@
       "Remove the grab on the cursor and restore the cursor shape."
       (setf pointer-grabbed nil)
       (xlib:ungrab-pointer *display*)
-      (free-grab-pointer))))
+      (free-grab-pointer)))
 
 
 (let ((keyboard-grabbed nil))



More information about the clfswm-cvs mailing list