X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=scrotwm.1;h=8499bb4f7ba51d35247c5fe6527d9405db5b1651;hb=d2de668398d403b322f57578d0306807e263db16;hp=90d4d2006f13d70adbbf29a6614672e0749b8bf7;hpb=cbd90e50cdc4b29792a3b6a3d965d031afa9ac57;p=spectrwm.git diff --git a/scrotwm.1 b/scrotwm.1 index 90d4d20..8499bb4 100644 --- a/scrotwm.1 +++ b/scrotwm.1 @@ -122,10 +122,12 @@ 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[idx]:master_grow:master_add:stack_inc:layout, e.g. -ws[2]:-4:0:1:horizontal sets worskspace 2 to the horizontal stack mode and -shrinks the master area by 4 ticks and adds one window to the stack. -Possible layout 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 @@ -137,8 +139,9 @@ See .Pa master_add , .Pa master_del , .Pa stack_inc , +.Pa stack_del , and -.Pa stack_del +.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 @@ -606,10 +609,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 @@ -624,13 +702,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 ,