X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=scrotwm.1;h=a8cfac6bc6a14ae1b03899c317510b4ab195410c;hb=623ccee72222f16ed35512484589d92232685815;hp=964032254b7ea7e1c24671f7152575688ffdc562;hpb=2a8d7bafe32519fac1ca81604a625199f21b3ad4;p=spectrwm.git diff --git a/scrotwm.1 b/scrotwm.1 index 9640322..a8cfac6 100644 --- a/scrotwm.1 +++ b/scrotwm.1 @@ -122,14 +122,33 @@ 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 layout select layout to use at start-of-day. -Defined in the format ws[]:, e.g. ws[2]:horizontal sets worskspace -2 to the horizontal stack mode. -This setting is not retained at restart. -Possible values are +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_del , +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. @@ -158,9 +177,20 @@ 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 +.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 +.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. @@ -374,6 +404,8 @@ initscr iconify .It Cm M-S-w uniconify +.It Cm M-S-r +toggle always_raised .El .Pp The action names and descriptions are listed below: @@ -479,6 +511,8 @@ above) 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. .El .Pp Custom bindings in the configuration file are specified as follows: @@ -586,10 +620,85 @@ 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 wmctrl and xdotool. 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 xprop(1) and 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 wmctrl 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 wmctrl 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 wmctrl 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 wmctrl 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. +.Pp .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 @@ -604,13 +713,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 ,