-- Leo's gemini proxy

-- Connecting to perso.pw:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;

My Stumpwm config on OpenBSD


Author: Solène

Date: 06 June 2016

Tags: window-manager lisp


NILI 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)))))


(defun get-latence()

(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-last-update* (get-universal-time))

(defvar *latence* "nil")



(set-module-dir "~/dev/stumpwm-contrib/")

(stumpwm:run-shell-command "setxkbmap fr")

(stumpwm:run-shell-command "feh --bg-fill red_damask-wallpaper-1920x1080.jpg")


(defvar color1 "#886666")

(defvar color2 "#222222")


(setf

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:set-focus-color "#7799CC")

(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:toggle-mode-line (stumpwm:current-screen) (stumpwm:current-head))


(set-prefix-key (kbd "M-a"))


(define-key *root-map* (kbd "c") "exec urxvtc")

(define-key *root-map* (kbd "RET") "move-window down")

(define-key *root-map* (kbd "z") "fullscreen")


(define-key *top-map* (kbd "M-&") "gselect 1")

(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-l") "exec slock")

(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")


(define-key *top-map* (kbd "s-s") "exec /home/solene/dev/screen_up.sh")


(define-key *top-map* (kbd "s-Left") "gprev")

(define-key *top-map* (kbd "s-Right") "gnext")


(define-key *top-map* (kbd "M-ISO_Left_Tab")"other")

(define-key *top-map* (kbd "M-TAB") "fnext")

(define-key *top-map* (kbd "M-twosuperior") "next-in-frame")


(load-module "battery-portable")

(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/)



-- Response ended

-- Page fetched on Fri Apr 26 02:56:35 2024