Commit Diff


commit - c1e9083b6447b0fd31a699a230946f873c926e31
commit + f7481580f5647dd0ba96aa597f6dcf6876e0243e
blob - /dev/null
blob + c57857e2da6c09213148057c83b5d67db39248a6 (mode 644)
--- /dev/null
+++ cwmrc.lp
@@ -0,0 +1,197 @@
+# calm window manager
+
+The calm window manager, cwm for short, is my favourite window manager.
+It's *the* window manager that convinced me that using a floating window
+manager was actually worth it.
+
+My configuration is unusually long.
+
+First I have a list of applications for the built-in menu:
+
+	command emacsclient	"emacsclient -c"
+	command firefox		firefox
+	command gimp		gimp
+	command godot		godot
+	command inkscape	inkscape
+	command iridium		iridium
+	command keepassxc	keepassxc
+	command lock		xlock
+	command term		xterm
+	command xterm.jp	xterm.jp
+
+I found this color by random I guess, but they're fine
+
+	color activeborder "#0abeff"
+	color inactiveborder "#777"
+
+set a decently-sized border around every window
+
+	borderwidth 2
+
+I don't understand how cwm is meant to be used by deafult since I'm used
+to window managers with "tags" (or "workspaces").  Fortunately I can
+enable "sticky" mode on cwm to simulate workspaces
+
+	sticky yes
+
+I also prefer to "snap" windows close to the edges
+
+	snapdist 5
+
+with cwm I usually use tint2 as bar, either at the top or at the bottom.
+cwm doesn't account the space for it automatically like other window
+manager, we have to do that manually
+
+	gap 0 30 0 0
+
+I don't want to give focus to some applications via alt-tab
+
+	ignore sshmenu
+	ignore stalonetray
+	ignore stats
+	ignore termbar
+	ignore xclock
+	ignore xconsole
+	ignore Catclock
+	ignore "Speedbar 1.0"
+
+autogroup does what it seems: it automatically moves some windows in a
+specific group (aka workspace.)  The group 0 is sticky across all groups
+
+	autogroup 0 XClock
+	autogroup 0 Catclock
+	autogroup 0 XConsole
+	autogroup 0 sshmenu,Xmessage
+	autogroup 0 stalonetray
+	autogroup 0 stats
+	autogroup 0 termbar
+	autogroup 2 Firefox
+	autogroup 3 Gajim
+	autogroup 3 TelegramDesktop
+
+Most cwm keybindings use `alt' which conflicts with emacs.  So I unbind
+everything and re-bind most of the keys on the mod4 (super) key
+
+	unbind-key all
+
+	bind-key 4-Tab group-last
+	bind-mouse C-3 menu-exec-wm
+	bind-key C4-slash menu-window
+	
+eat up multimedia keys so they don't get seen by some programs (like
+emacs or sam)
+
+	bind-key XF86AudioLowerVolume true
+	bind-key XF86AudioRaiseVolume true
+
+control the playback
+
+	bind-key XF86AudioPrev "amused prev"
+	bind-key XF86AudioNext "amused next"
+	bind-key XF86AudioPlay "amused toggle"
+
+I don't have a dedicated key for screenshot on this machine, but
+Scroll_Lock is not too awkward to press
+
+	bind-key 4-Scroll_Lock	sshot
+	bind-key 4S-Scroll_Lock	"sshot -s"
+
+manage the notifications
+
+	bind-key 4-space "dunstctl close"
+	bind-key 4S-space "dunstctl history-pop"
+	bind-key 4-n "dunstctl context"
+
+basics window movements
+
+	bind-key 4-h window-move-left
+	bind-key 4-j window-move-down
+	bind-key 4-k window-move-up
+	bind-key 4-l window-move-right
+
+	bind-key S4-h window-move-left-big
+	bind-key S4-j window-move-down-big
+	bind-key S4-k window-move-up-big
+	bind-key S4-l window-move-right-big
+
+	bind-key C4-h window-resize-left
+	bind-key C4-j window-resize-down
+	bind-key C4-k window-resize-up
+	bind-key C4-l window-resize-right
+
+	bind-key CS4-h window-resize-left-big
+	bind-key CS4-j window-resize-down-big
+	bind-key CS4-k window-resize-up-big
+	bind-key CS4-l window-resize-right-big
+
+	bind-key 4-greater window-raise
+	bind-key 4-less    window-lower
+
+	bind-key 4-Return window-hide
+	bind-key C4-x window-close
+	bind-key C4-c window-close
+
+	bind-key 4-slash menu
+	bind-key 4-at jgmenu_run
+
+	bind-key CM-Return xterm # kitty
+	bind-key C4-Return "emacsclient -c"
+	bind-key CS4-Return "env SHELL=rc 9term"
+
+	bind-key M-Tab window-cycle
+	bind-key MS-Tab window-rcycle
+
+	bind-key 4-f window-maximize
+	bind-key C4S-v window-vmaximize
+	bind-key C4S-w window-hmaximize
+
+	htile 0
+	vtile 0
+	bind-key 4-w window-htile
+	bind-key 4-v window-vtile
+
+	bind-key C4S-q quit
+
+I'm using a custom keyboard layout based on the dvorak-programmer.
+Thus, the upper row is not numbers, but symbols!
+
+	# & { [ ( = + ) ] }
+	bind-key 4-ampersand            group-only-1
+	bind-key 4-braceleft            group-only-2
+	bind-key 4-bracketleft          group-only-3
+	bind-key 4-parenleft            group-only-4
+	bind-key 4-equal                group-only-5
+	bind-key 4-plus                 group-only-6
+	bind-key 4-parenright           group-only-7
+	bind-key 4-bracketright         group-only-8
+	bind-key 4-braceright           group-only-9
+
+move with shift
+
+	bind-key S4-ampersand           window-movetogroup-1
+	bind-key S4-braceleft           window-movetogroup-2
+	bind-key S4-bracketleft         window-movetogroup-3
+	bind-key S4-parenleft           window-movetogroup-4
+	bind-key S4-equal               window-movetogroup-5
+	bind-key S4-plus                window-movetogroup-6
+	bind-key S4-parenright          window-movetogroup-7
+	bind-key S4-bracketright        window-movetogroup-8
+	bind-key S4-braceright          window-movetogroup-9
+	bind-key S4-exclam              window-movetogroup-0
+
+use ctrl to toggle visibility
+
+	bind-key C4-ampersand            group-toggle-1
+	bind-key C4-braceleft            group-toggle-2
+	bind-key C4-bracketleft          group-toggle-3
+	bind-key C4-parenleft            group-toggle-4
+	bind-key C4-equal                group-toggle-5
+	bind-key C4-plus                 group-toggle-6
+	bind-key C4-parenright           group-toggle-7
+	bind-key C4-bracketright         group-toggle-8
+	bind-key C4-braceright           group-toggle-9
+
+mouse bindings
+
+	bind-mouse 4-1  window-move
+	bind-mouse 4-3  window-resize
blob - 46f507eb3843476e19ecc1c3cd96fbe86d6474b9
blob + b0289dd28a773e281b2a92c63b2f789dccb7b2c1
--- gen
+++ gen
@@ -49,6 +49,7 @@ pair .kshrc		kshrc.lp
 pair lib/profile	rc.lp
 pair .sqliterc		sqliterc.lp
 pair .psqlrc		psqlrc.lp
+pair .cwmrc		cwmrc.lp
 
 pair bin/acmerc		bin/acmerc.lp	+x
 pair bin/browser	bin/browser.lp	+x