X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=scrotwm.1;h=fe77be16c8cb848da9c6f3de7b5e52f52e6d3de6;hb=ec9086aab15788df4d9bd05531ee10d3f9d260d4;hp=25762dab85c97d0c819e31cde4c7f48170d9d0f2;hpb=e466d899cfdd58ccc2bf6164b1ea0f3d2b1749f5;p=spectrwm.git diff --git a/scrotwm.1 b/scrotwm.1 index 25762da..fe77be1 100644 --- a/scrotwm.1 +++ b/scrotwm.1 @@ -1,5 +1,3 @@ -.\" $scrotwm$ -.\" .\" Copyright (c) 2009 Marco Peereboom .\" Copyright (c) 2009 Darrin Chandler .\" @@ -15,7 +13,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate$ +.Dd $Mdocdate: November 11 2011 $ .Dt SCROTWM 1 .Os .Sh NAME @@ -79,6 +77,10 @@ Enabling or disabling an option is done by using 1 or 0 respectively. The file supports the following keywords: .Pp .Bl -tag -width "title_class_enabledXXX" -offset indent -compact +.It Cm autorun +Launch an application in a specified workspace at start-of-day. +Defined in the format ws[]:application, e.g. ws[2]:xterm launches an +xterm in workspace 2. .It Cm color_focus Border color of the currently focussed window. .It Cm color_unfocus @@ -87,10 +89,10 @@ Border color of unfocussed windows. Enable or disable status bar. .It Cm bar_border Ns Bq Ar x Color of the status bar border in screen +.Ar x . .It Cm bar_border_width Set status bar border thickness in pixels. -Disable border by setting to 0 -.Ar x . +Disable border by setting to 0. .It Cm bar_color Ns Bq Ar x Color of the status bar window in screen .Ar x . @@ -111,18 +113,60 @@ Enable or disable displaying the current stacking algorithm in the status bar. .It Cm clock_enabled Enable or disable displaying the clock in the status bar. Disable by setting to 0 -so a custom clock could be used in the bar_action script. +so a custom clock could be used in the +.Pa bar_action +script. .It Cm dialog_ratio Some applications have dialogue windows that are too small to be useful. This ratio is the screen size to what they will be resized. For example, 0.6 is 60% of the physical screen size. +.It Cm keyboard_mapping +Clear all key bindings and load new key bindings from the specified file. +This allows you to load pre-defined key bindings for your keyboard layout. +See the +.Sx KEYBOARD MAPPING FILES +section below for a list of keyboard mapping files that have been provided +for several keyboard layouts. +.It Cm layout +Select layout to use at start-of-day. +Defined in the format +ws[idx]:master_grow:master_add:stack_inc:layout:always_raise:stack_mode, e.g. +ws[2]:-4:0:1:0:horizontal sets worskspace 2 to the horizontal stack mode and +shrinks the master area by 4 ticks and adds one window to the stack, while +maintaining default floating window behavior. +Possible stack_mode values are +.Pa vertical , +.Pa horizontal +and +.Pa fullscreen . +.Pp +See +.Pa master_grow , +.Pa master_shrink , +.Pa master_add , +.Pa master_del , +.Pa stack_inc , +.Pa stack_dec , +and +.Pa always_raise +for more information. +Note that the stacking options are complicated and have side-effects. +One should familiarize oneself with these commands before experimenting with the +.Pa layout +option. +.Pp +This setting is not retained at restart. .It Cm region Allocates a custom region, removing any autodetected regions which occupy the same space on the screen. Defined in the format screen[]:WIDTHxHEIGHT+X+Y, e.g.\& screen[1]:800x1200+0+0. +.Pp +To make a screen span multiple monitors, create a region big enough to cover +them all, e.g. screen[1]:2048x768+0+0 makes the screen span two monitors with +1024x768 resolution sitting one next to the other. .It Cm term_width -Set a preferred minimum width for the terminal +Set a preferred minimum width for the terminal. If this value is greater than 0, .Nm will attempt to adjust the font sizes in the terminal to keep the terminal @@ -140,24 +184,38 @@ section) to use an alternate copy of the binary without the setgid bit set. .It Cm title_class_enabled Enable or disable displaying the window class in the status bar. -Enable by setting to 1 +Enable by setting to 1. .It Cm title_name_enabled Enable or disable displaying the window title in the status bar. -Enable by setting to 1 +Enable by setting to 1. +.It Cm urgent_enabled +Enable or disable the urgency hint. +Note that many terminal emulators require this to be enabled for it to +propagate. +In xterm, for example, one needs to add the following line +.Pa xterm.urgentOnBell: true +to +.Pa .Xdefaults . .It Cm window_name_enabled Enable or disable displaying the window name in the status bar. -Enable by setting to 1 +Enable by setting to 1. +.It Cm verbose_layout +Enable or disable displaying the current master and stack values in the status +bar. +Enable by setting to 1. .It Cm modkey Change mod key. Mod1 is generally the ALT key and Mod4 is the windows key on a PC. .It Cm focus_mode -Using a value of follow_cursor will make the window manager focus the window +Using a value of +.Pa follow_cursor +will make the window manager focus the window under the mouse when switching workspaces and creating windows. .It Cm disable_border Remove border when bar is disabled and there is only one window on the screen. .It Cm border_width Set window border thickness in pixels. -Disable all borders by setting to 0 +Disable all borders by setting to 0. .It Cm program Ns Bq Ar p Define new action to spawn a program .Ar p . @@ -191,10 +249,11 @@ To list the available fonts in your system see or .Xr xlsfonts 1 manpages. -The +The .Xr xfontsel 1 application can help you to show the X Logical Font Description ("XLFD") used -as setting in the keyword bar_font. +as setting in the keyword +.Pa bar_font . .Sh PROGRAMS .Nm allows you to define custom actions to launch programs of your choice and then @@ -260,7 +319,6 @@ To undo the previous: bind[] = Mod+f program[ff] = .Ed -.Pp .Sh BINDINGS .Nm provides many functions (or actions) accessed via key or mouse bindings. @@ -289,7 +347,6 @@ menu quit .It Cm M-q restart -.Nm .It Cm M- Ns Aq Cm Space cycle_layout .It Cm M-S- Ns Aq Cm Space @@ -305,7 +362,7 @@ master_del .It Cm M-S-, stack_inc .It Cm M-S-. -stack_del +stack_dec .It Cm M- Ns Aq Cm Return swap_main .It Xo @@ -331,9 +388,9 @@ wind_del .It Cm M-S-x wind_kill .It Cm M- Ns Aq Ar n -.Ns ws_ Ns Ar n +.Pf ws_ Ar n .It Cm M-S- Ns Aq Ar n -.Ns mvws_ Ns Ar n +.Pf mvws_ Ar n .It Cm M- Ns Aq Cm Right ws_next .It Cm M- Ns Aq Cm Left @@ -360,6 +417,26 @@ initscr iconify .It Cm M-S-w uniconify +.It Cm M-S-r +always_raise +.It Cm M-v +button2 +.It Cm M-- +width_shrink +.It Cm M-= +width_grow +.It Cm M-S- +height_shrink +.It Cm M-S-= +height_grow +.It Cm M-[ +move_left +.It Cm M-] +move_right +.It Cm M-S-[ +move_up +.It Cm M-S-] +move_down .El .Pp The action names and descriptions are listed below: @@ -369,102 +446,122 @@ The action names and descriptions are listed below: Spawn a new terminal (see .Sx PROGRAMS -above) +above). .It Cm menu Menu (see .Sx PROGRAMS -above) +above). .It Cm quit Quit -.Nm +.Nm . .It Cm restart Restart -.Nm +.Nm . .It Cm cycle_layout -Cycle layout +Cycle layout. .It Cm reset_layout -Reset layout +Reset layout. .It Cm master_shrink -Shrink master area +Shrink master area. .It Cm master_grow -Grow master area +Grow master area. .It Cm master_add -Add windows to master area +Add windows to master area. .It Cm master_del -Remove windows from master area +Remove windows from master area. .It Cm stack_inc -Add columns/rows to stacking area -.It Cm stack_del -Remove columns/rows from stacking area +Add columns/rows to stacking area. +.It Cm stack_dec +Remove columns/rows from stacking area. .It Cm swap_main -Move current window to master area +Move current window to master area. .It Cm focus_next -Focus next window in workspace +Focus next window in workspace. .It Cm focus_prev -Focus previous window in workspace +Focus previous window in workspace. .It Cm focus_main -Focus on main window in workspace +Focus on main window in workspace. .It Cm swap_next -Swap with next window in workspace +Swap with next window in workspace. .It Cm swap_prev -Swap with previous window in workspace +Swap with previous window in workspace. .It Cm bar_toggle -Toggle status bar in all workspaces +Toggle status bar in all workspaces. .It Cm wind_del -Delete current window in workspace +Delete current window in workspace. .It Cm wind_kill -Destroy current window in workspace +Destroy current window in workspace. .It Cm ws_ Ns Ar n Switch to workspace .Ar n , where .Ar n -is 1 through 10 +is 1 through 10. .It Cm mvws_ Ns Ar n Move current window to workspace .Ar n , where .Ar n -is 1 through 10 +is 1 through 10. .It Cm ws_next -Switch to next workspace with a window in it +Switch to next workspace with a window in it. .It Cm ws_prev -Switch to previous workspace with a window in it +Switch to previous workspace with a window in it. .It Cm ws_prior -Switch to last visited workspace +Switch to last visited workspace. .It Cm screen_next -Move pointer to next region +Move pointer to next region. .It Cm screen_prev -Move pointer to previous region +Move pointer to previous region. .It Cm screenshot_all Take screenshot of entire screen (if enabled) (see .Sx PROGRAMS -above) +above). .It Cm screenshot_wind Take screenshot of selected window (if enabled) (see .Sx PROGRAMS -above) +above). .It Cm version -Toggle version in status bar +Toggle version in status bar. .It Cm float_toggle -Toggle focused window between tiled and floating +Toggle focused window between tiled and floating. .It Cm lock Lock screen (see .Sx PROGRAMS -above) +above). .It Cm initscr Reinitialize physical screens (see .Sx PROGRAMS -above) +above). .It Cm iconify Minimize (unmap) currently focused window. .It Cm uniconify Maximize (map) window returned by dmenu selection. +.It Cm always_raise +When set tiled windows are allowed to obscure floating windows. +.It Cm button2 +Fake a middle mouse button click (mouse button 2). +.It Cm width_shrink +Shrink the width of a floating window. +.It Cm width_grow +Grow the width of a floating window. +.It Cm height_shrink +Shrink the height of a floating window. +.It Cm height_grow +Grow the height of a floating window. +.It Cm move_left +Move a floating window a step to the left. +.It Cm move_right +Move a floating window a step to the right. +.It Cm move_up +Move a floating window a step upwards. +.It Cm move_down +Move a floating window a step downwards. .El .Pp Custom bindings in the configuration file are specified as follows: @@ -484,6 +581,24 @@ bind[] = Mod1+q # unbind Alt + q .Ed .Pp Multiple key combinations may be bound to the same action. +.Sh KEYBOARD MAPPING FILES +Keyboard mapping files for several keyboard layouts are listed +below. +These files can be used with the +.Pa keyboard_mapping +setting to load pre-defined key bindings for the specified +keyboard layout. +.Pp +.Bl -tag -width "scrotwm_XX.confXXX" -offset indent -compact +.It Cm scrotwm_cz.conf +Czech Republic keyboard layout +.It Cm scrotwm_es.conf +Spanish keyboard layout +.It Cm scrotwm_fr.conf +French keyboard layout +.It Cm scrotwm_us.conf +United States keyboard layout +.El .Sh QUIRKS .Nm provides "quirks" which handle windows that must be treated specially @@ -572,10 +687,106 @@ In the example above the quirk entry would be: .Bd -literal -offset indent quirk[Firefox:Navigator] = FLOAT .Ed +.Pp +.Nm +also automatically assigns quirks to windows based on the value +of the window's _NET_WM_WINDOW_TYPE property as follows: +.Pp +.Bl -tag -width "_NET_WM_WINDOW_TYPE_TOOLBARXXX" -offset indent -compact +.It _NET_WM_WINDOW_TYPE_DOCK +FLOAT + ANYWHERE +.It _NET_WM_WINDOW_TYPE_TOOLBAR +FLOAT + ANYWHERE +.It _NET_WM_WINDOW_TYPE_UTILITY +FLOAT + ANYWHERE +.It _NET_WM_WINDOW_TYPE_SPLASH +FLOAT +.It _NET_WM_WINDOW_TYPE_DIALOG +FLOAT +.El +.Pp +In all other cases, no automatic quirks are assigned to the window. +Quirks specified in the configuration file override the automatic quirks. +.Sh EWMH +.Nm +partially implements the Extended Window Manager Hints (EWMH) specification. +This enables controlling windows as well as +.Nm +itself from external scripts and programs. +This is achieved by +.Nm +responding to certain ClientMessage events. +From the terminal these events +can be conveniently sent using tools such as +.Xr wmctrl 1 +and +.Xr xdotool 1 . +For the +actual format of these ClientMessage events, see the EWMH specification. +.Pp +The id of the currently focused window is stored in the _NET_ACTIVE_WINDOW +property of the root window. +This can be used for example to retrieve the +title of the currently active window with +.Xr xprop 1 +and +.Xr grep 1 : +.Bd -literal -offset indent +$ WINDOWID=`xprop \-root _NET_ACTIVE_WINDOW | grep \-o "0x.*"` +$ xprop \-id $WINDOWID WM_NAME | grep \-o "\\".*\\"" +.Ed +.Pp +A window can be focused by sending a _NET_ACTIVE_WINDOW client message +to the root window. +For example, using +.Xr wmctrl 1 +to send the message +(assuming 0x4a0000b is the id of the window to be focused): +.Bd -literal -offset indent +$ wmctrl \-i \-a 0x4a0000b +.Ed +.Pp +Windows can be closed by sending a _NET_CLOSE_WINDOW client message +to the root window. +For example, using +.Xr wmctrl 1 +to send the message +(assuming 0x4a0000b is the id of the window to be closed): +.Bd -literal -offset indent +$ wmctrl \-i \-c 0x4a0000b +.Ed +.Pp +Windows can be floated and un-floated by adding or removing the +_NET_WM_STATE_ABOVE atom from the _NET_WM_STATE property of the window. +This can be achieved by sending a _NET_WM_STATE client message to the +root window. +For example, the following toggles the floating state of +a window using +.Xr wmctrl 1 +to send the message (assuming 0x4a0000b is the id of the window floated +or un-floated): +.Bd -literal -offset indent +$ wmctrl \-i \-r 0x4a0000b \-b toggle,_NET_WM_STATE_ABOVE +.Ed +.Pp +Floating windows can also be resized and moved by sending a +_NET_MOVERESIZE_WINDOW client message to the root window. +For example, +using +.Xr wmctrl 1 +to send the message (assuming 0x4a0000b is the id of +the window to be resize/moved): +.Bd -literal -offset indent +$ wmctrl \-i \-r 0x4a0000b \-e 0,100,50,640,480 +.Ed +.Pp +This moves the window to (100,50) and resizes it to 640x480. +.Pp +Any _NET_MOVERESIZE_WINDOW events received for stacked windows are ignored. .Sh SIGNALS Sending .Nm -a HUP signal will retstart it. +a HUP signal will restart it. .Sh FILES .Bl -tag -width "/etc/scrotwm.confXXX" -compact .It Pa ~/.scrotwm.conf @@ -590,13 +801,17 @@ global settings. was inspired by xmonad & dwm. .Sh AUTHORS .An -nosplit -.Pp .Nm -was written by -.An Marco Peereboom Aq marco@peereboom.us , -.An Ryan Thomas McBride Aq mcbride@countersiege.com -and -.An Darrin Chandler Aq dwchandler@stilyagin.com . +was written by: +.Pp +.Bl -tag -width "Ryan Thomas McBride Aq mcbride@countersiege.com " -offset indent -compact +.It Cm Marco Peereboom Aq marco@peereboom.us +.It Cm Ryan Thomas McBride Aq mcbride@countersiege.com +.It Cm Darrin Chandler Aq dwchandler@stilyagin.com +.It Cm Pierre-Yves Ritschard Aq pyr@spootnik.org +.It Cm Tuukka Kataja Aq stuge@xor.fi +.It Cm Jason L. Wright Aq jason@thought.net +.El .Sh BUGS Currently the menu, invoked with .Cm M-p ,