Added query-mode-complete-suggest and helpers.
[clfswm.git] / README
blobfae781aed1811ef1f47d53e8e2b7713f4d6ed0a8
1         CLFSWM[0] - A(nother) Common Lisp FullScreen Window Manager
3  CLFSWM is a 100% Common Lisp X11 window manager (based on [1]Tinywm
4  and [2]Stumpwm. Many thanks to them).
5  It can be driven only with the keyboard or with the mouse.
7  A display contains a root frame and its children. A child can be a
8  window or another frame. The root frame or its children can be the
9  current root. The current root is fullscreen maximized (no
10  decorations, no buttons, no menus: nothing, just the application
11  fullscreen!).
13  CLFSWM is highly dynamic. By default there is only one frame. Other
14  frames are created/deleted on the fly. A window can be in more than
15  one frame, so it can have multiple views of the same windows.
17  Using CLFSWM is like walking through a tree of frames and windows.
18  Enter in a child to make it the current root and make it fullscreen
19  maximized. Leave it to make its parent the current root.
21  Here is the default key binding to navigate through this tree:
23   * Alt-Tab: circulate through children of the current child.
24   * Alt-Left/Right: circulate through brother children (ie: this is like
25       workspaces for a more conventional window manager)
26   * Alt-Up: select the first child of the current frame.
27   * Alt-Down: select the parent of the current child.
28   * Alt-Enter: Make the current selected child the current root (ie
29       maximize it)
30   * Alt+Shift-Enter: Make the parent of the current root the current
31       root (ie unmaximize the current root).
33  There is no more need for a pager: you are in the pager!
35  For its binding, CLFSWM has two modes:
36  A main mode with minimal keys and mouse grabbing to avoid conflicts
37  with others applications.
38  And a second mode with more keys and mouse actions.
39  For details of its usage, have a look at the files doc/keys.txt or
40  doc/keys.html
41  A lot of functions to manage CLFSWM can be found in the second mode
42  menu. See the file menu-def.lisp for an overview.
44  A frame can be placed anywhere in its parent frame. And can have
45  different layouts to automatically manage its children (tile, tile
46  to left, to bottom, no layout...).
49 * Installation
51 Boot up a common lisp implementation. I develop it with sbcl, I test
52 it with cmucl regularly and I use it with clisp (you need the clx/xlib
53 package).
55 To use CLFSWM, load the load.lisp file. It loads the ASDF package,
56 build the system and start the main loop.
58 Another way is to do something like this:
59 $ cd /in/the/directory/of/clfswm/
60 $ clisp/cmucl/sbcl/...                  # start a lisp
61   > (load "asdf.lisp")                  ; asdf for clisp or cmucl
62 or> (require :asdf)                     ; asdf for sbcl
63   > (require :clx)                      ; clx for cmucl
64   > (asdf:oos 'asdf:load-op :clfswm)    ; compile and load the system
65   > (in-package :clfswm)                ; go in the clfswm package
66   > (clfswm:main)                       ; start the main loop
69 * Tweaking
71 To change the default keybinding, have a look at the bindings*.lisp
72 files and at the config.lisp file for global variables.
74 All variables can be overwritten in a user configuration file:
75 $XDG_CONFIG_HOME/clfswm/clfswmrc or $HOME/.clfswmrc or /etc/clfswmrc.
76 It's a standard lisp file loaded at start up. There is an example in
77 the clfswm source (see dot-clfswmrc).
79 There is a lot of hooks in CLFSWM to tweak its behaviour. For example,
80 if you want to add some frames at start up you can write your own
81 init-hook (see dot-clfswmrc).
84 * Lisp implementation note
86 If you are using clisp/new-clx, be sure to use the last version (at
87 least 2.43). Older versions are a little bit bogus.
88 If you are using clisp/mit-clx or an other clx than clisp/new-clx, you
89 may find a speed up with the compress notify event. See the variable
90 *have-to-compress-notify* in the configuration file.
94 * License
96  CLFSWM is under the GNU General Public License - GPL license.
97  You can find more information in the files COPYING. or on the
98  [3]Free Software Foundation site.
101 Philippe Brochard <pbrochard [at] common-lisp [dot] net>.
103 Références
105       http://common-lisp.net/project/clfswm/
106       http://trac.common-lisp.net/clfswm/
107    1. http://incise.org/index.cgi/TinyWM
108    2. http://www.nongnu.org/stumpwm/
109    3. http://www.gnu.org/