Introduction
Introduction Statistics Contact Development Disclaimer Help
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/)
You are viewing proxied material from dataswamp.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.