Introduction
CLFSWM is a 100% Common Lisp X11 window manager (based on
Tinywm and
Stumpwm.
Many thanks to them).
It can be driven only with the keyboard or with the mouse.
Description
Note: You can find more documentation on the CLFSWM Trac.
A display contains a root frame and its children. A child 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!).
CLFSWM is highly dynamic. By default there is only one frame (the root frame). Other
frames are created/deleted on the fly. A window can be in more than
one frame, so it can have multiple views of the same windows.
Using CLFSWM is like walking through 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 through this tree:
- Alt-Tab: circulate through children of the current child.
- Alt-Left/Right: circulate through 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).
So, there is no more need for a pager: you are in the pager!
See this explanations or
the tutorial below to have an overview of the CLFSWM mechanism.
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
doc/keys.txt or
doc/keys.html.
A lot of functions to manage CLFSWM can be found in the second mode
menu. See the files doc/menu.txt or
doc/menu.html for an overview.
A frame can be placed anywhere in its parent frame. And can have
different layouts to automatically manage its children (tile, tile
to left, to bottom, no layout...).
Some actions can be performed by clicking on screen corners.
For example a left click on the bottom right corner give you an OS X
Exposé like. A left click on the top right corner show/hide a virtual
keyboard . And a right click on the top left corner show/hide a
terminal (like a quake console)...
See doc/corner.txt or doc/corner.html for a summary.
Download
- clfswm-bin-0906.tar.gz (4M) A binary release based on
clisp.
Just untar it somewhere and run the clfswm script from an X console alone without another window manager.
ChangeLog
See here for the old 0801 version.
CLFSWM Trac
You can follow the CLFSWM development and find more documentation or tips on the CLFSWM Trac.
Animations as tutorial
- tree-organisation.ogv (8.9M): This video shows the tree organisation of CLFSWM and how frames
can be manipulated. This is not really shown on the video, but each frame can have multiple windows inside with a
different layout.
- layout-example.ogv (13M): Different windows organisation in different frames.
This video shows also the bind or jump behaviour.
- managed-windows.ogv (16M): This video shows how windows can be managed by
a frame according to there types (normal, transient...).
- new-window-hook.ogv (6.4M): This video shows how CLFSWM can automatically handle
new created windows.
- tabbed-links.ogv (13M): This video shows a layout example to add tabs to the
links browser.
- live-hack.ogv (21M): This video shows how it's simple to define custom menus
and add functionality to CLFSWM. Here: starting the Gimp in its own organized frames.
- rox-filer-example.ogv (9.6M): This video shows a way to use
the ROX Filer with CLFSWM.
- present-windows.ogv (7.3M): How clfswm presents windows when you click on bottom corners.
It's an (Mac OS X) Exposé like (indeed less eye candy).
You can present windows on the current root (ie: in the current workspace for more conventional windows managers).
Or present windows in the root frame (ie: present all windows in all frames).
- raise-lower.ogv (3.4M): How clfswm can raise/lower a child in its frame.
- hide-unhide.ogv (7M): How clfswm can hide/unhide a child in its frame.
One can also choose to unhide a child from another frame.
- gimp-layout.ogv (14M): A GIMP layout example.
- focus-policy.ogv (5.8M): This video shows how each frame can have a different focus policy.
- quick-hack.ogv (5.4M): This video shows a quick hack while clfswm is running.
The compilation is done on the fly: no need to stop, compile, restart! Even a reload is not needed!
Screenshots


License
CLFSWM is under the GNU General Public License - GPL license.
You can find more information in the files
COPYING.
or on the Free Software Foundation
site.
Mailing Lists
SVN or GIT
You can
browse our SVN repository or download the current development tree via
anonymous SVN, as described
here
There is also a GIT repository synchronized with the SVN repository
So, to fetch the CLFSWM code, you can do, at your convenience:
- svn checkout svn://common-lisp.net/project/clfswm/svn/clfswm/
or
- git clone git://repo.or.cz/clfswm.git