1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <title>~/scrotwm.1.html</title>
5 <meta name="Generator" content="Vim/7.2">
6 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
8 <body text="#ffffff" bgcolor="#000000"><font face="monospace">
9 <font color="#ff40ff">SCROTWM(1) OpenBSD Reference Manual SCROTWM(1)</font><br>
11 <font color="#ffff00">NAME</font><br>
12 scrotwm - window manager for X11<br>
14 <font color="#ffff00">SYNOPSIS</font><br>
15 scrotwm<br>
17 <font color="#ffff00">DESCRIPTION</font><br>
18 scrotwm is a minimalistic window manager that tries to stay out of the<br>
19 way so that valuable screen real estate can be used for much more impor-<br>
20 tant stuff. It has sane defaults and does not require one to learn a<br>
21 language to do any configuration. It was written by hackers for hackers<br>
22 and it strives to be small, compact and fast.<br>
24 When scrotwm starts up, it reads settings from its configuration file,<br>
25 scrotwm.conf. See the CONFIGURATION FILES section below.<br>
27 The following notation is used throughout this page:<br>
29 M Meta<br>
30 S Shift<br>
31 <Name> Named key<br>
32 M1 Mouse button 1<br>
33 M3 Mouse button 3<br>
35 scrotwm is very simple in its use. Most of the actions are initiated via<br>
36 key or mouse bindings. See the BINDINGS section below for defaults and<br>
37 customizations.<br>
39 <font color="#ffff00">CONFIGURATION FILES</font><br>
40 scrotwm first tries to open the user specific file, ~/.scrotwm.conf. If<br>
41 that file is unavailable, it then tries to open the global configuration<br>
42 file /etc/scrotwm.conf.<br>
44 The format of the file is <keyword> = <setting>. For example:<br>
46 color_focus = red<br>
48 Enabling or disabling an option is done by using 1 or 0 respectively.<br>
50 The file supports the following keywords:<br>
52 color_focus Border color of the currently focussed win-<br>
53 dow.<br>
54 color_unfocus Border color of unfocussed windows.<br>
55 bar_enabled Enable or disable status bar.<br>
56 bar_border[x] Color of the status bar border in screen x.<br>
57 bar_color[x] Color of the status bar window in screen x.<br>
58 bar_font_color[x] Color of the font in status bar in screen<br>
59 x.<br>
60 bar_font Status bar font.<br>
61 bar_action External script that populates additional<br>
62 information in the status bar, such as bat-<br>
63 tery life.<br>
64 bar_delay Update frequency, in seconds, of external<br>
65 script that populates the status bar.<br>
66 clock_enabled Enable or disable displaying the clock in<br>
67 the status bar. Disable by setting to 0 so<br>
68 a custom clock could be used in the bar_ac-<br>
69 tion script.<br>
70 dialog_ratio Some applications have dialogue windows<br>
71 that are too small to be useful. This ra-<br>
72 tio is the screen size to what they will be<br>
73 resized. For example, 0.6 is 60% of the<br>
74 physical screen size.<br>
75 region Allocates a custom region, removing any au-<br>
76 todetected regions which occupy the same<br>
77 space on the screen. Defined in the format<br>
78 screen[<idx>]:WIDTHxHEIGHT+X+Y, e.g.<br>
79 screen[1]:800x1200+0+0.<br>
80 term_width Set a preferred minimum width for the ter-<br>
81 minal If this value is greater than 0,<br>
82 scrotwm will attempt to adjust the font<br>
83 sizes in the terminal to keep the terminal<br>
84 width above this number as the window is<br>
85 resized. Only <font color="#ff40ff">xterm(1)</font> is currently sup-<br>
86 ported. The <font color="#ff40ff">xterm(1)</font> binary must not be<br>
87 setuid or setgid, which it is by default on<br>
88 most systems. Users may need to set pro-<br>
89 gram[term] (see the PROGRAMS section) to<br>
90 use an alternate copy of the <font color="#ff40ff">xterm(1)</font> bina-<br>
91 ry without the setgid bit set.<br>
92 title_class_enabled Enable or disable displaying the window<br>
93 class in the status bar. Enable by setting<br>
94 to 1<br>
95 title_name_enabled Enable or disable displaying the window ti-<br>
96 tle in the status bar. Enable by setting<br>
97 to 1<br>
98 modkey Change mod key. Mod1 is generally the ALT<br>
99 key and Mod4 is the windows key on a PC.<br>
100 program[p] Define new action to spawn a program p.<br>
101 See the PROGRAMS section below.<br>
102 bind[x] Bind key combo to action x. See the<br>
103 BINDINGS section below.<br>
104 quirk[c:n] Add "quirk" for windows with class c and<br>
105 name n. See the QUIRKS section below.<br>
107 Colors need to be specified per the <font color="#ff40ff">XQueryColor(3)</font> specification and<br>
108 fonts need to be specified per the <font color="#ff40ff">XQueryFont(3)</font> specification.<br>
110 <font color="#ffff00">PROGRAMS</font><br>
111 scrotwm allows you to define custom actions to launch programs of your<br>
112 choice and then bind them the same as with built-in actions. See the<br>
113 BINDINGS section below.<br>
115 The default programs are described below:<br>
117 term xterm<br>
118 screenshot_all screenshot.sh full<br>
119 screenshot_wind screenshot.sh window<br>
120 lock xlock<br>
121 initscr initscreen.sh<br>
122 menu dmenu_run -fn $bar_font -nb $bar_color -nf<br>
123 $bar_font_color -sb $bar_border -sf $bar_color<br>
125 Custom programs in the configuration file are specified as follows:<br>
127 program[<name>] = <progpath> [<arg> [... <arg>]]<br>
129 <name> is any identifier that does not conflict with a built-in action or<br>
130 keyword, <progpath> is the desired program, and <arg> is zero or more ar-<br>
131 guments to the program.<br>
133 The following variables represent settable values in scrotwm (see the<br>
134 CONFIGURATION FILES section above), and may be used in the <arg> fields<br>
135 and will be substituted for values at the time the program is spawned:<br>
137 $bar_border<br>
138 $bar_color<br>
139 $bar_font<br>
140 $bar_font_color<br>
141 $color_focus<br>
142 $color_unfocus<br>
144 Example:<br>
146 program[ff] = /usr/local/bin/firefox <a href="http://scrotwm.org/">http://scrotwm.org/</a><br>
147 bind[ff] = Mod+f # Now Mod+F launched firefox<br>
149 To undo the previous:<br>
151 bind[] = Mod+f<br>
152 program[ff] =<br>
154 <font color="#ffff00">BINDINGS</font><br>
155 scrotwm provides many functions (or actions) accessed via key or mouse<br>
156 bindings.<br>
158 The current mouse bindings are described below:<br>
160 M1 Focus window<br>
161 M-M1 Move window<br>
162 M-M3 Resize window<br>
163 M-S-M3 Resize window while maintaining it centered<br>
165 The default key bindings are described below:<br>
167 M-S-<Return> term<br>
168 M-p menu<br>
169 M-S-q quit<br>
170 M-q restart scrotwm<br>
171 M-<Space> cycle_layout<br>
172 M-S-<Space> reset_layout<br>
173 M-h master_shrink<br>
174 M-l master_grow<br>
175 M-, master_add<br>
176 M-. master_del<br>
177 M-S-, stack_inc<br>
178 M-S-. stack_del<br>
179 M-<Return> swap_main<br>
180 M-j, M-<TAB> focus_next<br>
181 M-k, M-S-<TAB> focus_prev<br>
182 M-m focus_main<br>
183 M-S-j swap_next<br>
184 M-S-k swap_prev<br>
185 M-b bar_toggle<br>
186 M-x wind_del<br>
187 M-S-x wind_kill<br>
188 M-<n> ws_n<br>
189 M-S-<n> mvws_n<br>
190 M-<Right> ws_next<br>
191 M-<Left> ws_prev<br>
192 M-S-<Right> screen_next<br>
193 M-S-<Left> screen_prev<br>
194 M-s screenshot_all<br>
195 M-S-s screenshot_wind<br>
196 M-S-v version<br>
197 M-t float_toggle<br>
198 M-S <Delete> lock<br>
199 M-S-i initscr<br>
201 The action names and descriptions are listed below:<br>
203 term Spawn a new terminal (see PROGRAMS above)<br>
204 menu Menu (see PROGRAMS above)<br>
205 quit Quit scrotwm<br>
206 restart Restart scrotwm<br>
207 cycle_layout Cycle layout<br>
208 reset_layout Reset layout<br>
209 master_shrink Shrink master area<br>
210 master_grow Grow master area<br>
211 master_add Add windows to master area<br>
212 master_del Remove windows from master area<br>
213 stack_inc Add columns/rows to stacking area<br>
214 stack_del Remove columns/rows from stacking area<br>
215 swap_main Move current window to master area<br>
216 focus_next Focus next window in workspace<br>
217 focus_prev Focus previous window in workspace<br>
218 focus_main Focus on main window in workspace<br>
219 swap_next Swap with next window in workspace<br>
220 swap_prev Swap with previous window in workspace<br>
221 bar_toggle Toggle status bar in all workspaces<br>
222 wind_del Delete current window in workspace<br>
223 wind_kill Destroy current window in workspace<br>
224 ws_n Switch to workspace n, where n is 1 through 10<br>
225 mvws_n Move current window to workspace n, where n is 1<br>
226 through 10<br>
227 ws_next Switch to next workspace with a window in it<br>
228 ws_prev Switch to previous workspace with a window in it<br>
229 screen_next Move pointer to next region<br>
230 screen_prev Move pointer to previous region<br>
231 screenshot_all Take screenshot of entire screen (if enabled) (see<br>
232 PROGRAMS above)<br>
233 screenshot_wind Take screenshot of selected window (if enabled)<br>
234 (see PROGRAMS above)<br>
235 version Toggle version in status bar<br>
236 float_toggle Toggle focused window between tiled and floating<br>
237 lock Lock screen (see PROGRAMS above)<br>
238 initscr Reinitialize physical screens (see PROGRAMS above)<br>
240 Custom bindings in the configuration file are specified as follows:<br>
242 bind[<action>] = <keys><br>
244 <action> is one of the actions listed above (or empty) and <keys> is in<br>
245 the form of zero or more modifier keys (MOD, Mod1, Shift, etc.) and one<br>
246 or more normal keys (b, space, etc.), separated by "+". For example:<br>
248 bind[reset] = Mod4+q # bind Windows-key + q to reset<br>
249 bind[] = Mod1+q # unbind Alt + q<br>
251 Multiple key combinations may be bound to the same action.<br>
253 <font color="#ffff00">QUIRKS</font><br>
254 scrotwm provides "quirks" which handle windows that must be treated spe-<br>
255 cially in a tiling window manager, such as some dialogs and fullscreen<br>
256 apps.<br>
258 The default quirks are described below:<br>
260 Firefox-bin:firefox-bin TRANSSZ<br>
261 Firefox:Dialog FLOAT<br>
262 Gimp:gimp FLOAT + ANYWHERE<br>
263 MPlayer:xv FLOAT + FULLSCREEN<br>
264 OpenOffice.org 2.4:VCLSalFrame FLOAT<br>
265 OpenOffice.org 3.1:VCLSalFrame FLOAT<br>
266 pcb:pcb FLOAT<br>
267 xine:Xine Window FLOAT + ANYWHERE<br>
268 xine:xine Panel FLOAT + ANYWHERE<br>
269 xine:xine Video Fullscreen Window FULLSCREEN + FLOAT<br>
270 Xitk:Xitk Combo FLOAT + ANYWHERE<br>
271 Xitk:Xine Window FLOAT + ANYWHERE<br>
272 XTerm:xterm XTERM_FONTADJ<br>
274 The quirks themselves are described below:<br>
276 FLOAT This window should not be tiled, but allowed<br>
277 to float freely.<br>
278 TRANSSZ Adjusts size on transient windows that are<br>
279 too small using dialog_ratio (see<br>
280 CONFIGURATION FILES).<br>
281 ANYWHERE Allow window to position itself, uncentered.<br>
282 XTERM_FONTADJ Adjust xterm fonts when resizing.<br>
283 FULLSCREEN Remove border to allow window to use full<br>
284 screen size.<br>
286 Custom quirks in the configuration file are specified as follows:<br>
288 quirk[<class>:<name>] = <quirk> [+ <quirk> ...]<br>
290 <class> and <name> specify the window to which the quirk(s) apply, and<br>
291 <quirk> is one of the quirks from the list above. For example:<br>
293 quirk[MPlayer:xv] = FLOAT + FULLSCREEN # let mplayer play<br>
294 quirk[pcb:pcb] = NONE # remove existing quirk<br>
296 You can obtain <class> and <name> by running <font color="#ff40ff">xprop(1)</font> and then clicking<br>
297 on the desired window. In the following example the main window of Fire-<br>
298 fox was clicked:<br>
300 $ xprop | grep WM_CLASS<br>
301 WM_CLASS(STRING) = "Navigator", "Firefox"<br>
303 <font color="#ffff00">FILES</font><br>
304 ~/.scrotwm.conf scrotwm user specific settings.<br>
305 /etc/scrotwm.conf scrotwm global settings.<br>
307 <font color="#ffff00">HISTORY</font><br>
308 scrotwm was inspired by xmonad & dwm.<br>
310 <font color="#ffff00">AUTHORS</font><br>
311 scrotwm was written by Marco Peereboom <marco@peereboom.us>, Ryan Thomas<br>
312 McBride <mcbride@countersiege.com> and Darrin Chandler<br>
313 <dwchandler@stilyagin.com>.<br>
315 <font color="#ffff00">BUGS</font><br>
316 Currently the menu, invoked with M-p, depends on dmenu.<br>
318 OpenBSD 4.6 September 13, 2009 5<br>