[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