StumpWM
Table of Contents
This is an excellent Window Manager! It has an info document ready in Emacs.
1 TMP
- mode-line add group information
- like
C-e
for opening a browser - rule based window
1.1 A better way to install stumpwm
- This seems a better way to install stumpwm
(ql:quickload "stumpwm")
But this require the .xinitrc to be
exec sbcl --load /path/to/startstump
with startstump
(require :stumpwm) (stumpwm:stumpwm)
1.2 Live Debugging
To debug it live, you might need this in .stumpwmrc:
(in-package :stumpwm) (require :swank) (swank-loader:init) (swank:create-server :port 4004 :style swank:*communication-style* :dont-close t)
The above wont work unless swank is installed:
(ql:quickload "swank")
The port is actually interesting. Here it is set to 4004, and the
slime in Emacs defaults to 4005, thus they wont mess up. The trick to
connect to stumpwm is to use slime-connect
and put 4004 for the port
prompt.
So acutally if you just want to live debug, just install swank and
(require 'swank) (swank:create-server)
Note lastly that to install using quickload, you need permission. So
sudo sbcl --load /usr/lib/quicklisp/setup
To test if it works, you should be able to switch to stumpwm namespace and operate the window, like this:
(in-package :stumpwm) (stumpwm:select-window-by-number 2)
2 Installation
In order to use ttf-fonts
module, the lisp clx-truetype
package needs to be installed.
Install the slime IDE for emacs, install quicklisp, then install it using quicklisp.
Follow the description in lisp wiki page.
3 General
Same as ratpoison:
C-t C-h
: show helpC-t !
: run shell commandC-t c
terminalC-t e
: open emacs!C-t ;
: type a commandC-t :
: evalC-t C-g
: abortC-t a
: display timeC-t t
: send C-tC-t m
: display last message
3.1 Get Help
C-t h k
: from key binding to command:describe-key
C-t h w
: from command to key binding:where-is
C-t h c
: describe commandC-t h f
: describe functionC-t h v
: describe variablemode-line
: start mode-line
4 Window
C-t n
C-t p
C-t <double-quote>
C-t w
list all windowsC-t k
kill current frame (K to force quit)C-t #
toggle mark of current window
5 Frame
C-t s
: hsplitC-t S
: vsplitC-t Q
: kill other frames, only retains this oneC-t r
: resize, can useC-n
,C-p
interactivelyC-t +
: balance frameC-t o
: next frameC-t -
: show desktop
Other commands
remove-split
- to remove the current frame
fclear
- clear the current frame, show the desktop
To resize frames interactively, C-t r
and then use the arrows.
6 Groups
Shortcuts:
C-t g c
: create:gnew
. Also available for float:gnew-float
C-t g n
: nextC-t g o
:gother
C-t g p
: previousC-t g <double-quote>
: interactively select groups:grouplist
C-t g k
: kill current group, move windows to next group:gkill
C-t g r
: rename current group:grename
C-t G
: display all groups and their windowsC-t g g
: show list of groupC-t g m
: move current window to group XC-t g <d>
: go to group <d>
7 Configuration
(stumpwm:define-key stumpwm:*root-map* (stumpwm:kbd "C-z") "echo Zzzzz...")