1 .\" Copyright (c) 2009-2012 Marco Peereboom <marco@peereboom.us>
2 .\" Copyright (c) 2009 Darrin Chandler <dwchandler@stilyagin.com>
3 .\" Copyright (c) 2011-2014 Reginald Kennedy <rk@rejii.com>
4 .\" Copyright (c) 2011-2012 Lawrence Teo <lteo@lteo.net>
5 .\" Copyright (c) 2011-2012 Tiago Cunha <tcunha@gmx.com>
6 .\" Copyright (c) 2012 David Hill <dhill@mindcry.org>
8 .\" Permission to use, copy, modify, and distribute this software for any
9 .\" purpose with or without fee is hereby granted, provided that the above
10 .\" copyright notice and this permission notice appear in all copies.
12 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
13 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
14 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
15 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20 .Dd $Mdocdate: February 15 2012 $
25 .Nd window manager for X11
30 is a minimalistic window manager that tries to stay out of the way so that
31 valuable screen real estate can be used for much more important stuff.
32 It has sane defaults and does not require one to learn a language to do any
34 It was written by hackers for hackers and it strives to be small, compact and
39 starts up, it reads settings from its configuration file,
42 .Sx CONFIGURATION FILES
45 The following notation is used throughout this page:
47 .Bl -tag -width Ds -offset indent -compact
61 is very simple in its use.
62 Most of the actions are initiated via key or mouse bindings.
65 section below for defaults and customizations.
66 .Sh CONFIGURATION FILES
68 first tries to open the user specific file,
69 .Pa ~/.spectrwm.conf .
70 If that file is unavailable,
71 it then tries to open the global configuration file
72 .Pa /etc/spectrwm.conf .
74 The format of the file is
76 .Dl Ar keyword Li = Ar setting
82 Enabling or disabling an option is done by using 1 or 0 respectively.
84 Colors need to be specified per the
88 Comments begin with a #.
91 is desired in an option, then it must be escaped with a backslash, i.e. \e#
93 The file supports the following keywords:
96 Launch an application in a specified workspace at start-of-day.
98 .Li ws Ns Bo Ar idx Bc : Ns Ar application ,
99 e.g. ws[2]:xterm launches an
103 External script that populates additional information in the status bar,
104 such as battery life.
106 Place the statusbar at the bottom of each region instead of the top.
107 .It Ic bar_border Ns Bq Ar x
108 Border color of the status bar(s) in screen
110 .It Ic bar_border_unfocus Ns Bq Ar x
111 Border color of the status bar(s) on unfocused region(s) in screen
113 .It Ic bar_border_width
114 Set status bar border thickness in pixels.
115 Disable border by setting to 0.
116 .It Ic bar_color Ns Bq Ar x
117 Background color of the status bar(s) in screen
123 .It Ic bar_enabled_ws Ns Bq Ar x
130 Font used in the status bar.
131 Either Xft or X Logical Font Description (XLFD) may be used to specify fonts.
132 Fallback fonts may be specified by separating each font with a comma.
133 If all entries are in XLFD syntax, font set will be used.
134 If at least one entry is Xft, Xft will be used.
135 Note that if Xft is in use, only the first font that successfully loads will
136 be used regardless of missing glyphs.
137 The default is to use font set.
140 does not support Xft fonts.
143 .Bd -literal -offset indent
144 bar_font = Terminus:style=Regular:pixelsize=14:antialias=true
146 bar_font = -*-profont-medium-*-*-*-11-*-*-*-*-*-*-*,Terminus:pixelsize=14,\
147 -*-clean-medium-*-*-*-12-*-*-*-*-*-*-*
151 .Bd -literal -offset indent
152 bar_font = -*-terminus-medium-*-*-*-14-*-*-*-*-*-*-*
154 bar_font = -*-profont-medium-*-*-*-11-*-*-*-*-*-*-*,\
155 -*-terminus-medium-*-*-*-14-*-*-*-*-*-*-*,\
156 -*-clean-medium-*-*-*-12-*-*-*-*-*-*-*
159 To list the available fonts in your system see
166 application can help with the XLFD setting.
167 .It Ic bar_font_color Ns Bq Ar x
168 Color of the font in status bar in screen
171 Set the bar format string, overriding
176 The format is passed through
179 It may contain the following character sequences:
180 .Bl -column "Character sequence" "Replaced with" -offset indent
181 .It Sy "Character sequence" Ta Sy "Replaced with"
182 .It Li "+<" Ta "Pad with a space"
183 .It Li "+A" Ta "Output of the external script"
184 .It Li "+C" Ta "Window class (from WM_CLASS)"
185 .It Li "+D" Ta "Workspace name"
186 .It Li "+F" Ta "Floating indicator"
187 .It Li "+I" Ta "Workspace index"
188 .It Li "+M" Ta "Number of iconic (minimized) windows in workspace"
189 .It Li "+N" Ta "Screen number"
190 .It Li "+P" Ta "Window class and instance separated by a colon"
191 .It Li "+S" Ta "Stacking algorithm"
192 .It Li "+T" Ta "Window instance (from WM_CLASS)"
193 .It Li "+U" Ta "Urgency hint"
194 .It Li "+V" Ta "Program version"
195 .It Li "+W" Ta "Window name (from _NET_WM_NAME/WM_NAME)"
196 .It Li "++" Ta "A literal" Ql +
199 All character sequences may limit its output to a specific length, for
201 Any characters that don't match the specification are copied as-is.
203 Justify the status bar text.
210 Note that if the output is not left justified, it may not be properly
211 aligned in some circumstances, due to the white-spaces in the default
215 option for more details.
216 .It Ic bind Ns Bq Ar x
217 Bind key combo to action
223 Set window border thickness in pixels.
224 Disable all borders by setting to 0.
225 .It Ic boundary_width
226 Set region containment boundary width in pixels.
227 This is how far a window must be dragged/resized beyond the region edge
228 before it is allowed outside the region.
229 This has no effect when manipulating the window with key bindings.
230 Disable the window containment effect by setting to 0.
232 Enable or disable displaying the clock in the status bar.
233 Disable by setting to 0
234 so a custom clock could be used in the
237 .It Ic iconic_enabled
238 Display the number of iconic (minimized) windows in the status bar.
239 Enable by setting to 1.
241 Border color of the currently focused window.
243 .It Ic color_focus_maximized
244 Border color of the currently focused, maximized window.
245 Defaults to the value of
248 Border color of unfocused windows, default is rgb:88/88/88.
249 .It Ic color_unfocus_maximized
250 Border color of unfocused, maximized windows.
251 Defaults to the value of
254 Some applications have dialogue windows that are too small to be useful.
255 This ratio is the screen size to what they will be resized.
256 For example, 0.6 is 60% of the physical screen size.
257 .It Ic disable_border
258 Remove border when bar is disabled and there is only one window on the
261 Window to put focus when the focused window is closed.
271 are relative to the window that is closed.
272 .It Ic focus_close_wrap
273 Whether to allow the focus to jump to the last window when the first window
274 is closed or vice versa.
275 Disable by setting to 0.
277 Window to put focus when no window has been focused.
284 Window focus behavior with respect to the mouse cursor.
287 .Bl -tag -width "default" -offset indent -compact
289 Set window focus on border crossings caused by cursor motion and
292 Set window focus on all cursor border crossings, including workspace switches
293 and changes to layout.
295 Set window focus on window interaction only.
297 .It Ic java_workaround
298 Workaround a Java GUI rendering issue on non-reparenting window managers by
299 impersonating the LG3D window manager, written by Sun.
301 .It Ic keyboard_mapping
302 Clear all key bindings and load new key bindings from the specified file.
303 This allows you to load pre-defined key bindings for your keyboard layout.
305 .Sx KEYBOARD MAPPING FILES
306 section below for a list of keyboard mapping files that have been provided
307 for several keyboard layouts.
309 Select layout to use at start-of-day.
310 Defined in the format
311 .Li ws Ns Bo Ar idx Bc : Ns Ar master_grow : Ns Ar master_add : Ns Ar stack_inc : Ns Ar always_raise : Ns Ar stack_mode ,
312 e.g. ws[2]:-4:0:1:0:horizontal sets worskspace 2 to the horizontal stack
313 mode, shrinks the master area by 4 ticks and adds one window to the
314 stack, while maintaining default floating window behavior.
334 for more information.
335 Note that the stacking options are complicated and have side-effects.
336 One should familiarize oneself with these commands before experimenting
341 This setting is not retained at restart.
344 Mod1 is generally the ALT key and Mod4 is the windows key on a PC.
346 Set the name of a workspace at start-of-day.
347 Defined in the format
348 .Li ws Ns Bo Ar idx Bc : Ns Ar name ,
349 e.g. ws[1]:Console sets the name of workspace 1 to
351 .It Ic program Ns Bq Ar p
352 Define new action to spawn a program
357 .It Ic quirk Ns Bq Ar c Ns Li : Ns Ar i Ns Li : Ns Ar n
358 Add "quirk" for windows with class
368 Allocates a custom region, removing any autodetected regions which occupy the
369 same space on the screen.
370 Defined in the format
371 .Li screen Ns Bo Ar idx Ns Bc : Ns Ar width Ns x Ns Ar height Ns + Ns Ar x Ns + Ns Ar y ,
372 e.g. screen[1]:800x1200+0+0.
374 To make a region span multiple monitors, create a region big enough to cover
375 them all, e.g. screen[1]:2048x768+0+0 makes the region span two monitors with
376 1024x768 resolution sitting one next to the other.
377 .It Ic region_padding
378 Pixel width of empty space within region borders.
379 Disable by setting to 0.
380 .It Ic spawn_position
381 Position in stack to place newly spawned windows.
392 are relative to the focused window.
394 Enable or disable displaying the current stacking algorithm in the status
397 Set a preferred minimum width for the terminal.
398 If this value is greater than 0,
400 will attempt to adjust the font sizes in the terminal to keep the terminal
401 width above this number as the window is resized.
404 is currently supported.
407 binary must not be setuid or setgid, which it is by default on most systems.
408 Users may need to set program[term] (see the
410 section) to use an alternate copy of the
412 binary without the setgid bit set.
414 Pixel width of empty space between tiled windows.
415 Negative values cause overlap.
416 Set this to the opposite of
418 to collapse the border between tiles.
419 Disable by setting to 0.
420 .It Ic urgent_collapse
421 Enables hiding of placeholders in the urgency hint indicator for workspaces that
422 do not have any urgent windows.
423 Enable by setting to 1.
424 .It Ic urgent_enabled
425 Enable or disable the urgency hint indicator in the status bar.
426 Note that many terminal emulators require an explicit setting for the bell
427 character to trigger urgency on the window.
430 for example, one needs to add the following line to
432 .Bd -literal -offset indent
433 xterm.bellIsUrgent: true
435 .It Ic verbose_layout
436 Enable or disable displaying the current master window count and stack column/row
437 count in the status bar.
438 Enable by setting to 1.
445 for more information.
446 .It Ic window_class_enabled
447 Enable or disable displaying the window class name (from WM_CLASS) in the
449 Enable by setting to 1.
450 .It Ic window_instance_enabled
451 Enable or disable displaying the window instance name (from WM_CLASS) in the
453 Enable by setting to 1.
454 .It Ic window_name_enabled
455 Enable or disable displaying the window display name (from _NET_WM_NAME/WM_NAME)
457 Enable by setting to 1.
459 To prevent excessively large window names from pushing the remaining text off
460 the bar, it's limited to 64 characters, by default.
463 option for more details.
465 Centers the mouse pointer on the focused window when using key bindings to
466 change focus, switch workspaces, change regions, etc.
467 Enable by setting to 1.
468 .It Ic workspace_limit
469 Set the total number of workspaces available.
470 Minimum is 1, maximum is 22, default is 10.
474 allows you to define custom actions to launch programs of your choice and
475 then bind them the same as with built-in actions.
480 Custom programs in the configuration file are specified as follows:
482 .Dl program Ns Bo Ar action Bc = Ar progpath Op Ar arg Op Ar arg ...
485 is any identifier that does not conflict with a built-in action or keyword,
487 is the desired program, and
489 is zero or more arguments to the program.
491 Remember that when using
493 in your program call, it must be escaped with a backslash, i.e. \e#
495 The following argument variables will be substituted for values at the time the program
498 .Bl -tag -width "$bar_font_color" -offset indent -compact
502 .It Cm $bar_font_color
504 .It Cm $color_unfocus
510 .It Cm $workspace_index
514 .Bd -literal -offset indent
515 program[ff] = /usr/local/bin/firefox http://spectrwm.org/
516 bind[ff] = MOD+Shift+b # Now M-S-b launches firefox
519 To cancel the previous, unbind it:
520 .Bd -literal -offset indent
525 .Bl -tag -width "screenshot_wind" -offset indent -compact
529 dmenu_run $dmenu_bottom \-fn $bar_font \-nb $bar_color \-nf $bar_font_color \-sb
530 $bar_border \-sf $bar_color
534 initscreen.sh # optional
535 .It Cm screenshot_all
536 screenshot.sh full # optional
537 .It Cm screenshot_wind
538 screenshot.sh window # optional
541 Note that optional default programs will not be validated unless overridden.
542 If a default program fails validation, you can resolve the exception
543 by installing the program, modifying the program call or disabling the program
544 by freeing the respective key binding.
546 For example, to override
548 .Bd -literal -offset indent
549 program[lock] = xscreensaver\-command \-lock
554 and prevent it from being validated:
555 .Bd -literal -offset indent
556 bind[] = MOD+Shift+Delete
560 provides many functions (or actions) accessed via key or mouse bindings.
562 The current mouse bindings are described below:
564 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
572 Resize window while maintaining it centered
575 The default key bindings are described below:
577 .Bl -tag -width "M-j, M-<TAB>XXXXXX" -offset indent -compact
578 .It Cm M-S- Ns Aq Cm Return
586 .It Cm M- Ns Aq Cm Space
590 .It Cm M-S- Ns Aq Cm Space
604 .It Cm M- Ns Aq Cm Return
613 .Cm M-S- Ns Aq Cm TAB
632 .It Cm M- Ns Aq Ar 1-9,0,F1-F12
634 .It Cm M-S- Ns Aq Ar 1-9,0,F1-F12
635 .Pf mvws_ Ns Aq Ar 1-22
636 .It Cm M- Ns Aq Ar Keypad 1-9
638 .It Cm M-S- Ns Aq Ar Keypad 1-9
640 .It Cm M- Ns Aq Cm Right
642 .It Cm M- Ns Aq Cm Left
644 .It Cm M- Ns Aq Cm Up
646 .It Cm M- Ns Aq Cm Down
650 .It Cm M-S- Ns Aq Cm Left
652 .It Cm M-S- Ns Aq Cm Up
654 .It Cm M-S- Ns Aq Cm Right
656 .It Cm M-S- Ns Aq Cm Left
666 .It Cm M-S- Ns Aq Cm Delete
704 The action names and descriptions are listed below:
706 .Bl -tag -width "M-j, M-<TAB>XXXX" -offset indent -compact
726 Swap the master and stacking areas.
734 Add windows to master area.
736 Remove windows from master area.
738 Add columns/rows to stacking area.
740 Remove columns/rows from stacking area.
742 Move current window to master area.
744 Focus next window in workspace.
746 Focus previous window in workspace.
748 Focus on main window in workspace.
750 Focus on next window with the urgency hint flag set.
751 The workspace is switched if needed.
753 Swap with next window in workspace.
755 Swap with previous window in workspace.
757 Toggle overall visibility of status bars.
759 Toggle status bar on current workspace.
761 Delete current window in workspace.
763 Destroy current window in workspace.
770 .Ic workspace_limit .
772 Move current window to workspace
777 .Ic workspace_limit .
785 Move current window to region
791 Switch to next workspace with a window in it.
793 Switch to previous workspace with a window in it.
795 Switch to next workspace.
797 Switch to previous workspace.
799 Switch to next workspace with the current window.
801 Switch to previous workspace with the current window.
803 Switch to last visited workspace.
805 Switch to next region.
807 Switch to previous region.
808 .It Cm screenshot_all
809 Take screenshot of entire screen (if enabled)
813 .It Cm screenshot_wind
814 Take screenshot of selected window (if enabled)
819 Toggle version in status bar.
821 Toggle focused window between tiled and floating.
828 Reinitialize physical screens
833 Minimize (unmap) currently focused window.
835 Restore (map) window returned by
838 .It Cm maximize_toggle
839 Toggle maximization of focused window.
841 When set tiled windows are allowed to obscure floating windows.
843 Fake a middle mouse button click (mouse button 2).
845 Shrink the width of a floating window.
847 Grow the width of a floating window.
849 Shrink the height of a floating window.
851 Grow the height of a floating window.
853 Move a floating window a step to the left.
855 Move a floating window a step to the right.
857 Move a floating window a step upwards.
859 Move a floating window a step downwards.
860 .It Cm name_workspace
861 Name the current workspace.
862 .It Cm search_workspace
863 Search for a workspace.
865 Search the windows in the current workspace.
868 Custom bindings in the configuration file are specified as follows:
870 .Dl bind Ns Bo Ar action Bc = Ar keys
873 is one of the actions listed above (or empty to unbind) and
875 is in the form of zero or more modifier keys
876 (MOD, Mod1, Shift, etc.) and one or more normal keys
877 (b, Space, etc.), separated by
881 .Bd -literal -offset indent
882 bind[reset] = Mod4+q # bind Windows-key + q to reset
883 bind[] = Mod1+q # unbind Alt + q
886 To use the currently defined
888 specify MOD as the modifier key.
890 Multiple key combinations may be bound to the same action.
892 To bind non-latin characters such as \[oa] or \[*p] you must enter the xkb
893 character name instead of the character itself.
896 focus the window and press the specific key and in the terminal output read
898 In the following example for \[oa]:
899 .Bd -literal -offset indent
900 KeyPress event, serial 41, synthetic NO, window 0x2600001,
901 root 0x15a, subw 0x0, time 106213808, (11,5), root:(359,823),
902 state 0x0, keycode 24 (keysym 0xe5, aring), same_screen YES,
903 XLookupString gives 2 bytes: (c3 a5) "\[oa]"
904 XmbLookupString gives 2 bytes: (c3 a5) "\[oa]"
905 XFilterEvent returns: False
908 The xkb name is aring.
912 .Bd -literal -offset indent
913 bind[program] = MOD+aring
915 .Sh KEYBOARD MAPPING FILES
916 Keyboard mapping files for several keyboard layouts are listed
918 These files can be used with the
920 setting to load pre-defined key bindings for the specified
923 .Bl -tag -width "spectrwm_XX.confXXX" -offset indent -compact
924 .It Cm spectrwm_cz.conf
925 Czech Republic keyboard layout
926 .It Cm spectrwm_es.conf
927 Spanish keyboard layout
928 .It Cm spectrwm_fr.conf
929 French keyboard layout
930 .It Cm spectrwm_fr_ch.conf
931 Swiss French keyboard layout
932 .It Cm spectrwm_se.conf
933 Swedish keyboard layout
934 .It Cm spectrwm_us.conf
935 United States keyboard layout
939 provides "quirks" which handle windows that must be treated specially
940 in a tiling window manager, such as some dialogs and fullscreen apps.
942 The default quirks are described below:
944 .Bl -tag -width "OpenOffice.org N.M:VCLSalFrame<TAB>XXX" -offset indent \
946 .It Firefox\-bin:firefox\-bin
953 FLOAT + FULLSCREEN + FOCUSPREV
954 .It OpenOffice.org 2.4:VCLSalFrame
956 .It OpenOffice.org 3.1:VCLSalFrame
964 .It xine:xine Video Fullscreen Window
974 The quirks themselves are described below:
976 .Bl -tag -width "XTERM_FONTADJ<TAB>XXX" -offset indent -compact
978 This window should not be tiled, but allowed to float freely.
980 Adjusts size on transient windows that are too small using
983 .Sx CONFIGURATION FILES ) .
985 Allow window to position itself, uncentered.
991 Remove border to allow window to use full region size.
993 On exit force focus on previously focused application not previous
994 application in the stack.
996 Don't change focus to the window when it first appears on the screen.
1001 .It FOCUSONMAP_SINGLE
1002 When the window first appears on the screen, change focus to the window
1003 if there are no other windows on the workspace with the same WM_CLASS
1004 class/instance value.
1010 When an application requests focus on the window via a _NET_ACTIVE_WINDOW
1011 client message (source indication of 1), comply with the request.
1012 Note that a source indication of 0 (unspecified) or 2 (pager) are always
1015 Ignore the PID when determining the initial workspace for a new window.
1016 Especially useful for terminal windows that share a process.
1018 Ignore the spawn workspace when determining the initial workspace for a
1021 Force a new window to appear on workspace
1025 Custom quirks in the configuration file are specified as follows:
1027 .Dl quirk Ns Bo Ar class Ns Bo : Ns Ar instance Ns Bo : Ns Ar name Bc Bc Bc = Ar quirk Op + Ar quirk ...
1033 (optional) are patterns used to determine which window(s) the quirk(s) apply
1036 is one of the quirks from the list above.
1038 Note that patterns are interpreted as POSIX Extended Regular Expressions.
1039 Any ':', '[' or ']' must be escaped with '\\'.
1042 for more information on POSIX Extended Regular Expressions.
1045 .Bd -literal -offset indent
1046 quirk[MPlayer] = FLOAT + FULLSCREEN + FOCUSPREV # Float all windows having a \
1048 quirk[.*] = FLOAT # Float all windows by default.
1049 quirk[.*:.*:.*] = FLOAT # Same as above.
1050 quirk[Firefox:Navigator] = FLOAT # Float all Firefox browser windows.
1051 quirk[::Console] = FLOAT # Float windows with WM_CLASS not set and a \
1052 window name of 'Console'.
1053 quirk[\\[0-9\\].*:.*:\\[\\[\\:alnum\\:\\]\\]*] = FLOAT # Float windows with WM_CLASS \
1054 class beginning with a number, any WM_CLASS instance and a \
1055 _NET_WM_NAME/WM_NAME either blank or containing alphanumeric characters without spaces.
1056 quirk[pcb:pcb] = NONE # remove existing quirk
1066 and then clicking on the desired window.
1067 In the following example the main window of Firefox was clicked:
1068 .Bd -literal -offset indent
1069 $ xprop | grep \-E "^(WM_CLASS|_NET_WM_NAME|WM_NAME)"
1070 WM_CLASS(STRING) = "Navigator", "Firefox"
1071 WM_NAME(STRING) = "spectrwm - ConformalOpenSource"
1072 _NET_WM_NAME(UTF8_STRING) = "spectrwm - ConformalOpenSource"
1077 displays WM_CLASS as:
1078 .Bd -literal -offset indent
1079 WM_CLASS(STRING) = "<instance>", "<class>"
1082 In the example above the quirk entry would be:
1083 .Bd -literal -offset indent
1084 quirk[Firefox:Navigator] = FLOAT
1088 also automatically assigns quirks to windows based on the value
1089 of the window's _NET_WM_WINDOW_TYPE property as follows:
1091 .Bl -tag -width "_NET_WM_WINDOW_TYPE_TOOLBAR<TAB>XXX" -offset indent -compact
1092 .It _NET_WM_WINDOW_TYPE_DOCK
1094 .It _NET_WM_WINDOW_TYPE_TOOLBAR
1096 .It _NET_WM_WINDOW_TYPE_UTILITY
1098 .It _NET_WM_WINDOW_TYPE_SPLASH
1100 .It _NET_WM_WINDOW_TYPE_DIALOG
1104 In all other cases, no automatic quirks are assigned to the window.
1105 Quirks specified in the configuration file override the automatic quirks.
1108 partially implements the Extended Window Manager Hints (EWMH) specification.
1109 This enables controlling windows as well as
1111 itself from external scripts and programs.
1114 responding to certain ClientMessage events.
1115 From the terminal these events
1116 can be conveniently sent using tools such as
1121 actual format of these ClientMessage events, see the EWMH specification.
1123 The id of the currently focused window is stored in the _NET_ACTIVE_WINDOW
1124 property of the root window.
1125 This can be used for example to retrieve the
1126 title of the currently active window with
1130 .Bd -literal -offset indent
1131 $ WINDOWID=`xprop \-root _NET_ACTIVE_WINDOW | grep \-o "0x.*"`
1132 $ xprop \-id $WINDOWID _NET_WM_NAME | grep \-o "\\".*\\""
1135 A window can be focused by sending a _NET_ACTIVE_WINDOW client message
1140 (assuming 0x4a0000b is the id of the window to be focused):
1141 .Bd -literal -offset indent
1142 $ wmctrl \-i \-a 0x4a0000b
1145 Windows can be closed by sending a _NET_CLOSE_WINDOW client message
1150 (assuming 0x4a0000b is the id of the window to be closed):
1151 .Bd -literal -offset indent
1152 $ wmctrl \-i \-c 0x4a0000b
1155 Windows can be floated and un-floated by adding or removing the
1156 _NET_WM_STATE_ABOVE atom from the _NET_WM_STATE property of the window.
1157 This can be achieved by sending a _NET_WM_STATE client message to the
1159 For example, the following toggles the floating state of
1162 to send the message (assuming 0x4a0000b is the id of the window to be
1163 floated or un-floated):
1164 .Bd -literal -offset indent
1165 $ wmctrl \-i \-r 0x4a0000b \-b toggle,_NET_WM_STATE_ABOVE
1168 Windows can also be iconified and un-iconified by substituting
1169 _NET_WM_STATE_HIDDEN for _NET_WM_STATE_ABOVE in the previous example:
1170 .Bd -literal -offset indent
1171 $ wmctrl \-i \-r 0x4a0000b \-b toggle,_NET_WM_STATE_HIDDEN
1174 Floating windows can also be resized and moved by sending a
1175 _NET_MOVERESIZE_WINDOW client message to the root window.
1179 to send the message (assuming 0x4a0000b is the id of
1180 the window to be resize/moved):
1181 .Bd -literal -offset indent
1182 $ wmctrl \-i \-r 0x4a0000b \-e 0,100,50,640,480
1185 This moves the window to (100,50) and resizes it to 640x480.
1187 Any _NET_MOVERESIZE_WINDOW events received for stacked windows are ignored.
1191 a HUP signal will restart it.
1193 .Bl -tag -width "/etc/spectrwm.confXXX" -compact
1194 .It Pa ~/.spectrwm.conf
1196 user specific settings.
1197 .It Pa /etc/spectrwm.conf
1203 was inspired by xmonad & dwm.
1209 .Bl -tag -width "Ryan Thomas McBride Aq mcbride@countersiege.com " -offset \
1211 .It Cm Marco Peereboom Aq marco@peereboom.us
1212 .It Cm Ryan Thomas McBride Aq mcbride@countersiege.com
1213 .It Cm Darrin Chandler Aq dwchandler@stilyagin.com
1214 .It Cm Pierre-Yves Ritschard Aq pyr@spootnik.org
1215 .It Cm Tuukka Kataja Aq stuge@xor.fi
1216 .It Cm Jason L. Wright Aq jason@thought.net
1217 .It Cm Reginald Kennedy Aq rk@rejii.com
1218 .It Cm Lawrence Teo Aq lteo@lteo.net
1219 .It Cm Tiago Cunha Aq tcunha@gmx.com
1220 .It Cm David Hill Aq dhill@mindcry.org