Title: My Stumpwm config on OpenBSD Author: Solène Date: 06 June 2016 Tags: window-manager lisp Description: I want to talk about _stumpwm_, a window manager written in Common LISP. I think one must at least like emacs to like stumpwm. Stumpwm is a tiling window manager one which you create "panes" on the screen like windows on Emacs. A single pane takes 100% of the screen, then you can split it into 2 panes vertically or horizontally and resize it, and you can split again and again. **There is no "automatic" tiling**. By default, if you have ONE pane, you will only have ONE window displayed, this is a bit different that others tiling wm I had tried. Also, virtual desktops are named groups, nothing special here, you can create/delete groups and rename it. Finally, stumpwm **is not minimalistic**. To install it, you need to get the sources of stumpwm, install a common lisp interpreter (sbcl, clisp, ecl etc...), install quicklisp (which is not in packages), install the quicklisp packages cl-ppcre and clx and then you can compile stumpwm, that will produce a huge binary which embedded a common lisp interpreter (that's a way to share common lisp executables, the interpreter can create an executable from itself and include the files you want to execute). I would like to make a package for OpenBSD but packaging quicklisp and its packages seems too difficult for me at the moment. Here is my config file in ~/.stumpwmrc. **Updated: 23th january 2018** (defun chomp(text) (subseq text 0 (- (length text) 1))) (defmacro cmd(command) `(progn `(:eval (chomp (stumpwm:run-shell-command ,,command t))))) (let ((now (get-universal-time))) (when (> (- now *latence-last-update* ) 30) (setf *latence-last-update* now) (when (probe-file "/tmp/latenceresult") (with-open-file (x "/tmp/latenceresult" :direction :input) (setf *latence* (read-line x)))))) *latence*) (defvar *latence* "nil") (stumpwm:run-shell-command "setxkbmap fr") (stumpwm:run-shell-command "feh --bg-fill red_damask-wallpaper-1920x1080.jpg") (defvar color2 "#222222") stumpwm:*mode-line-background-color* color2 stumpwm:*mode-line-foreground-color* color1 stumpwm:*mode-line-border-color* "#555555" stumpwm:*screen-mode-line-format* (list "%g | %v ^>^7 %B | " '(:eval (get-latence)) "ms %d ") stumpwm:*mode-line-border-width* 1 stumpwm:*mode-line-pad-x* 6 stumpwm:*mode-line-pad-y* 1 stumpwm:*mode-line-timeout* 5 stumpwm:*mouse-focus-policy* :click ;;stumpwm:*group-format* "%n·%t stumpwm:*group-format* "%n" stumpwm:*time-modeline-string* "%H:%M" stumpwm:*window-format* "^b^(:fg \"#7799AA\")<%25t>" stumpwm:*window-border-style* :tight stumpwm:*normal-border-width* 1 ) (stumpwm:grename "Alpha") (stumpwm:gnewbg "Beta") (stumpwm:gnewbg "Tau") (stumpwm:gnewbg "Pi") (stumpwm:gnewbg "Zeta") (stumpwm:gnewbg "Teta") (stumpwm:gnewbg "Phi") (stumpwm:gnewbg "Rho") (stumpwm:current-head)) (define-key *root-map* (kbd "RET") "move-window down") (define-key *root-map* (kbd "z") "fullscreen") (define-key *top-map* (kbd "M-eacute") "gselect 2") (define-key *top-map* (kbd "M-\"") "gselect 3") (define-key *top-map* (kbd "M-quoteright") "gselect 4") (define-key *top-map* (kbd "M-(") "gselect 5") (define-key *top-map* (kbd "M--") "gselect 6") (define-key *top-map* (kbd "M-egrave") "gselect 7") (define-key *top-map* (kbd "M-underscore") "gselect 8") (define-key *top-map* (kbd "s-t") "exec urxvtc") (define-key *top-map* (kbd "M-S-RET") "exec urxvtc") (define-key *top-map* (kbd "M-C") "exec urxvtc") /home/solene/dev/screen_up.sh") (define-key *top-map* (kbd "s-Right") "gnext") (define-key *top-map* (kbd "M-TAB") "fnext") (define-key *top-map* (kbd "M-twosuperior") "next-in-frame") (load-module "stumptray") I use a function to get latency from a script that is started every 20 seconds to display the network latency or nil if I don't have internet access. I use rxvt-unicode daemon (urxvtd) as a terminal emulator, so the terminal command is urxvtc (for client), it's lighter and faster to load. I also use a weird "alt+tab" combination: - Alt+tab switch between panes - Alt+² (the key above tab) circles windows in the current pane - Alt+Shift+Tab switch to the previous windows selected [StumpWM website](https://stumpwm.github.io/) |