Blame


1 f7481580 2022-02-21 op # calm window manager
2 f7481580 2022-02-21 op
3 f7481580 2022-02-21 op The calm window manager, cwm for short, is my favourite window manager.
4 f7481580 2022-02-21 op It's *the* window manager that convinced me that using a floating window
5 f7481580 2022-02-21 op manager was actually worth it.
6 f7481580 2022-02-21 op
7 f7481580 2022-02-21 op My configuration is unusually long.
8 f7481580 2022-02-21 op
9 f7481580 2022-02-21 op First I have a list of applications for the built-in menu:
10 f7481580 2022-02-21 op
11 f7481580 2022-02-21 op command emacsclient "emacsclient -c"
12 f7481580 2022-02-21 op command firefox firefox
13 f7481580 2022-02-21 op command gimp gimp
14 f7481580 2022-02-21 op command godot godot
15 f7481580 2022-02-21 op command inkscape inkscape
16 f7481580 2022-02-21 op command iridium iridium
17 f7481580 2022-02-21 op command keepassxc keepassxc
18 f7481580 2022-02-21 op command lock xlock
19 f7481580 2022-02-21 op command term xterm
20 f7481580 2022-02-21 op command xterm.jp xterm.jp
21 f7481580 2022-02-21 op
22 9742dc33 2022-03-02 op I found these color by random I guess, but they're fine
23 f7481580 2022-02-21 op
24 f7481580 2022-02-21 op color activeborder "#0abeff"
25 f7481580 2022-02-21 op color inactiveborder "#777"
26 f7481580 2022-02-21 op
27 f7481580 2022-02-21 op set a decently-sized border around every window
28 f7481580 2022-02-21 op
29 f7481580 2022-02-21 op borderwidth 2
30 f7481580 2022-02-21 op
31 f7481580 2022-02-21 op I don't understand how cwm is meant to be used by deafult since I'm used
32 f7481580 2022-02-21 op to window managers with "tags" (or "workspaces"). Fortunately I can
33 f7481580 2022-02-21 op enable "sticky" mode on cwm to simulate workspaces
34 f7481580 2022-02-21 op
35 f7481580 2022-02-21 op sticky yes
36 f7481580 2022-02-21 op
37 f7481580 2022-02-21 op I also prefer to "snap" windows close to the edges
38 f7481580 2022-02-21 op
39 f7481580 2022-02-21 op snapdist 5
40 f7481580 2022-02-21 op
41 f7481580 2022-02-21 op with cwm I usually use tint2 as bar, either at the top or at the bottom.
42 f7481580 2022-02-21 op cwm doesn't account the space for it automatically like other window
43 f7481580 2022-02-21 op manager, we have to do that manually
44 f7481580 2022-02-21 op
45 f7481580 2022-02-21 op gap 0 30 0 0
46 f7481580 2022-02-21 op
47 f7481580 2022-02-21 op I don't want to give focus to some applications via alt-tab
48 f7481580 2022-02-21 op
49 f7481580 2022-02-21 op ignore sshmenu
50 f7481580 2022-02-21 op ignore stalonetray
51 f7481580 2022-02-21 op ignore stats
52 f7481580 2022-02-21 op ignore termbar
53 f7481580 2022-02-21 op ignore xclock
54 f7481580 2022-02-21 op ignore xconsole
55 f7481580 2022-02-21 op ignore Catclock
56 f7481580 2022-02-21 op ignore "Speedbar 1.0"
57 f7481580 2022-02-21 op
58 f7481580 2022-02-21 op autogroup does what it seems: it automatically moves some windows in a
59 f7481580 2022-02-21 op specific group (aka workspace.) The group 0 is sticky across all groups
60 f7481580 2022-02-21 op
61 f7481580 2022-02-21 op autogroup 0 XClock
62 f7481580 2022-02-21 op autogroup 0 Catclock
63 f7481580 2022-02-21 op autogroup 0 XConsole
64 f7481580 2022-02-21 op autogroup 0 sshmenu,Xmessage
65 f7481580 2022-02-21 op autogroup 0 stalonetray
66 f7481580 2022-02-21 op autogroup 0 stats
67 f7481580 2022-02-21 op autogroup 0 termbar
68 f7481580 2022-02-21 op autogroup 2 Firefox
69 f7481580 2022-02-21 op autogroup 3 Gajim
70 f7481580 2022-02-21 op autogroup 3 TelegramDesktop
71 f7481580 2022-02-21 op
72 f7481580 2022-02-21 op Most cwm keybindings use `alt' which conflicts with emacs. So I unbind
73 f7481580 2022-02-21 op everything and re-bind most of the keys on the mod4 (super) key
74 f7481580 2022-02-21 op
75 f7481580 2022-02-21 op unbind-key all
76 f7481580 2022-02-21 op
77 f7481580 2022-02-21 op bind-key 4-Tab group-last
78 f7481580 2022-02-21 op bind-mouse C-3 menu-exec-wm
79 f7481580 2022-02-21 op bind-key C4-slash menu-window
80 f7481580 2022-02-21 op
81 f7481580 2022-02-21 op eat up multimedia keys so they don't get seen by some programs (like
82 f7481580 2022-02-21 op emacs or sam)
83 f7481580 2022-02-21 op
84 f7481580 2022-02-21 op bind-key XF86AudioLowerVolume true
85 f7481580 2022-02-21 op bind-key XF86AudioRaiseVolume true
86 f7481580 2022-02-21 op
87 f7481580 2022-02-21 op control the playback
88 f7481580 2022-02-21 op
89 f7481580 2022-02-21 op bind-key XF86AudioPrev "amused prev"
90 f7481580 2022-02-21 op bind-key XF86AudioNext "amused next"
91 f7481580 2022-02-21 op bind-key XF86AudioPlay "amused toggle"
92 6ae067c1 2022-03-02 op bind-key XF86AudioStop "amused stop"
93 f7481580 2022-02-21 op
94 616e27e6 2022-07-29 op "gamemode" swiches the keyboard from my custom dvp-eu to an us querty
95 616e27e6 2022-07-29 op and vice-versa, and the mouse buttons too. it's useful when playing
96 616e27e6 2022-07-29 op some games, hence the name, or when in need to share the keyboard with
97 616e27e6 2022-07-29 op someone else.
98 616e27e6 2022-07-29 op
99 616e27e6 2022-07-29 op bind-key 4-F5 "gamemode"
100 616e27e6 2022-07-29 op
101 f7481580 2022-02-21 op I don't have a dedicated key for screenshot on this machine, but
102 f7481580 2022-02-21 op Scroll_Lock is not too awkward to press
103 f7481580 2022-02-21 op
104 468b1dd4 2022-03-02 op bind-key 4-Scroll_Lock "sshot -c"
105 468b1dd4 2022-03-02 op bind-key 4S-Scroll_Lock "sshot -cs"
106 f7481580 2022-02-21 op
107 f7481580 2022-02-21 op manage the notifications
108 f7481580 2022-02-21 op
109 f7481580 2022-02-21 op bind-key 4-space "dunstctl close"
110 f7481580 2022-02-21 op bind-key 4S-space "dunstctl history-pop"
111 f7481580 2022-02-21 op bind-key 4-n "dunstctl context"
112 f7481580 2022-02-21 op
113 f7481580 2022-02-21 op basics window movements
114 f7481580 2022-02-21 op
115 f7481580 2022-02-21 op bind-key 4-h window-move-left
116 f7481580 2022-02-21 op bind-key 4-j window-move-down
117 f7481580 2022-02-21 op bind-key 4-k window-move-up
118 f7481580 2022-02-21 op bind-key 4-l window-move-right
119 f7481580 2022-02-21 op
120 f7481580 2022-02-21 op bind-key S4-h window-move-left-big
121 f7481580 2022-02-21 op bind-key S4-j window-move-down-big
122 f7481580 2022-02-21 op bind-key S4-k window-move-up-big
123 f7481580 2022-02-21 op bind-key S4-l window-move-right-big
124 f7481580 2022-02-21 op
125 f7481580 2022-02-21 op bind-key C4-h window-resize-left
126 f7481580 2022-02-21 op bind-key C4-j window-resize-down
127 f7481580 2022-02-21 op bind-key C4-k window-resize-up
128 f7481580 2022-02-21 op bind-key C4-l window-resize-right
129 f7481580 2022-02-21 op
130 f7481580 2022-02-21 op bind-key CS4-h window-resize-left-big
131 f7481580 2022-02-21 op bind-key CS4-j window-resize-down-big
132 f7481580 2022-02-21 op bind-key CS4-k window-resize-up-big
133 f7481580 2022-02-21 op bind-key CS4-l window-resize-right-big
134 f7481580 2022-02-21 op
135 f7481580 2022-02-21 op bind-key 4-greater window-raise
136 f7481580 2022-02-21 op bind-key 4-less window-lower
137 f7481580 2022-02-21 op
138 f7481580 2022-02-21 op bind-key 4-Return window-hide
139 f7481580 2022-02-21 op bind-key C4-x window-close
140 f7481580 2022-02-21 op bind-key C4-c window-close
141 f7481580 2022-02-21 op
142 f7481580 2022-02-21 op bind-key 4-slash menu
143 f7481580 2022-02-21 op bind-key 4-at jgmenu_run
144 f7481580 2022-02-21 op
145 f7481580 2022-02-21 op bind-key CM-Return xterm # kitty
146 f7481580 2022-02-21 op bind-key C4-Return "emacsclient -c"
147 f7481580 2022-02-21 op bind-key CS4-Return "env SHELL=rc 9term"
148 f7481580 2022-02-21 op
149 f7481580 2022-02-21 op bind-key M-Tab window-cycle
150 f7481580 2022-02-21 op bind-key MS-Tab window-rcycle
151 f7481580 2022-02-21 op
152 f7481580 2022-02-21 op bind-key 4-f window-maximize
153 f7481580 2022-02-21 op bind-key C4S-v window-vmaximize
154 f7481580 2022-02-21 op bind-key C4S-w window-hmaximize
155 f7481580 2022-02-21 op
156 f7481580 2022-02-21 op htile 0
157 f7481580 2022-02-21 op vtile 0
158 f7481580 2022-02-21 op bind-key 4-w window-htile
159 f7481580 2022-02-21 op bind-key 4-v window-vtile
160 f7481580 2022-02-21 op
161 f7481580 2022-02-21 op bind-key C4S-q quit
162 f7481580 2022-02-21 op
163 f7481580 2022-02-21 op I'm using a custom keyboard layout based on the dvorak-programmer.
164 f7481580 2022-02-21 op Thus, the upper row is not numbers, but symbols!
165 f7481580 2022-02-21 op
166 f7481580 2022-02-21 op # & { [ ( = + ) ] }
167 f7481580 2022-02-21 op bind-key 4-ampersand group-only-1
168 f7481580 2022-02-21 op bind-key 4-braceleft group-only-2
169 f7481580 2022-02-21 op bind-key 4-bracketleft group-only-3
170 f7481580 2022-02-21 op bind-key 4-parenleft group-only-4
171 f7481580 2022-02-21 op bind-key 4-equal group-only-5
172 f7481580 2022-02-21 op bind-key 4-plus group-only-6
173 f7481580 2022-02-21 op bind-key 4-parenright group-only-7
174 f7481580 2022-02-21 op bind-key 4-bracketright group-only-8
175 f7481580 2022-02-21 op bind-key 4-braceright group-only-9
176 f7481580 2022-02-21 op
177 f7481580 2022-02-21 op move with shift
178 f7481580 2022-02-21 op
179 f7481580 2022-02-21 op bind-key S4-ampersand window-movetogroup-1
180 f7481580 2022-02-21 op bind-key S4-braceleft window-movetogroup-2
181 f7481580 2022-02-21 op bind-key S4-bracketleft window-movetogroup-3
182 f7481580 2022-02-21 op bind-key S4-parenleft window-movetogroup-4
183 f7481580 2022-02-21 op bind-key S4-equal window-movetogroup-5
184 f7481580 2022-02-21 op bind-key S4-plus window-movetogroup-6
185 f7481580 2022-02-21 op bind-key S4-parenright window-movetogroup-7
186 f7481580 2022-02-21 op bind-key S4-bracketright window-movetogroup-8
187 f7481580 2022-02-21 op bind-key S4-braceright window-movetogroup-9
188 f7481580 2022-02-21 op bind-key S4-exclam window-movetogroup-0
189 f7481580 2022-02-21 op
190 f7481580 2022-02-21 op use ctrl to toggle visibility
191 f7481580 2022-02-21 op
192 f7481580 2022-02-21 op bind-key C4-ampersand group-toggle-1
193 f7481580 2022-02-21 op bind-key C4-braceleft group-toggle-2
194 f7481580 2022-02-21 op bind-key C4-bracketleft group-toggle-3
195 f7481580 2022-02-21 op bind-key C4-parenleft group-toggle-4
196 f7481580 2022-02-21 op bind-key C4-equal group-toggle-5
197 f7481580 2022-02-21 op bind-key C4-plus group-toggle-6
198 f7481580 2022-02-21 op bind-key C4-parenright group-toggle-7
199 f7481580 2022-02-21 op bind-key C4-bracketright group-toggle-8
200 f7481580 2022-02-21 op bind-key C4-braceright group-toggle-9
201 f7481580 2022-02-21 op
202 f7481580 2022-02-21 op mouse bindings
203 f7481580 2022-02-21 op
204 f7481580 2022-02-21 op bind-mouse 4-1 window-move
205 f7481580 2022-02-21 op bind-mouse 4-3 window-resize