Content-type: text/html Man page of sithwm

sithwm

Section: (1)
Updated: February 13, 2006
Index Return to Main Contents
 

NAME

sithwm - Minimalist Window Manager for X  

SYNOPSIS

sithwm [ -m<modifiers> ] 'sithwm command' ...  

DESCRIPTION

sithwm is a minimalist window manager based on evilwm, extended to feature seamless virtual desktop and an application menu.

sithwm has a comfortable mix of explicit and implicit focus. The current window border is black, with other windows left gray.

You can use the mouse to manipulate windows by holding down the Windows(TM) key and clicking a button anywhere in the client window. The default controls are:

Button 1
Move window.
Button 2 or 3
Resize window.

Most keyboard controls are used by holding down the Windows(TM) key, then pressing a key. Available functions are:

Return
Pop the application menu.
Escape
Delete current window. Hold Shift as well to force a kill.
Insert
Lower current window.
S, X, E, D
Move window left, down, up or right (16 pixels). Holding Shift resizes the window instead.
W, R, Z, C
Move window to top-left, top-right, bottom-left or bottom-right of screen.
H, Shift-H
Move backward, forward in window size and position history.
B, Shift-B
Move backward, forward in view position history, this history is usually just 2 positions long so this really just toggles.
I
Show information about current window, raise it and so on.
A
Maximize current window.
Tab
Cycle through windows on screen, with a pop-up display, holding Shift reverses the direction.
Caps Lock
Works the same way as tab, only that it will only cycle trough the windows on the current view. The Tab keys can be made to work this way too putting 'xact next,local' in your .sithwmrc.
Q
or
Caps Lock (without the Windows(TM) key)
Circulate the three topmost windows on the current view, holding Shift will circulate through all windows on the current view.
G
Warp mouse to next screen.
F
Fix or unfix current window.
1--9
Switch view. Holding Shift will throw the current window to the other view instead.
Left,
Pan the view. Holding Shift will throw the current window to the other view instead.

To make sithwm exit, you have to kill the process.  

OPTIONS

-m<modifiers>
override the default keyboard modifiers used to grab keys for window manager functionality, modifiers are used for keyboard controls, mouse button controls and cycling windows (default: the Windows(TM) key).

sithwm command

Perform a command, these are identical to commands in the .sithwmrc file, command on the command line must be a single argument, thus the command must be appropriately quoted if it contain spaces, which it usually would.

 

COMMANDS

fn font-name
specify a font to use when resizing or displaying window titles.
c<x> color
Set the color, values for <x> are
b - Background for menues and popups (white).
c - Caption background (yellow).
d - Used for drag frames, setting this will cause undefined behavior.
e - Non-focused border (gray).
f - Focused border (black).
g - Highlight in menu (yellow).
h - Highlight in popup view (yellow).
i - Text and foreground (black).

bw border-width
width of window borders in pixels.

popup =<width>{xX}<height>+<xoffset>+<yoffset> <stack-width> <time-in>
Set the position, stack width and time in of the popup, defaults are: "=320x320+30+30 256 0"

Setting <width> to 0 will disable the map part of the popup.

<stack-width> is the width of the stack part of the popup window (the part containing the scrolling list of windows), specified in pixels. It is added to the <width> parameter to give the total width of the popup.

<time-in> is the time that elapses from the Tab or pan keys are pressed to the popup appears in 64ths of a second.

pt1 <timeout>
Set the timeout for the captions, in 64ths of a second, default is 450.

pt2 <timeout>
Set the timeout for the popup, in 64ths of a second, default is 450.

pt3 <timeout>
Set the timeout for the menu, in 64ths of a second, default is 450.

snap num
enable snap-to-border support. num gives the proximity in pixels to snap to. Zero means no snap, default is 32.

swindow num
If num is 0 - dont snap to windows, if 1 also snap to windows, default is 0.

app name/class

match an application by instance name and class (for help in finding these, use the xprop tool to extract the WM_CLASS property). Subsequent geometry and sticky command will apply to this match.
geometry geometry

apply a geometry (using a standard X geometry string) to applications matching the last app.

sticky

specify that application is to start with a sticky client window.

nosoliddrag

draw a window outline while moving or resizing.

lock lock-command
Sets command to perform on idle timeout, defaults to not lock, I suggest using "xlock -mode blank", to remain in concord with the philosophy of sithwm.

xaction action,sithwm-function-modifiers min_size
Specify modifiers to apply to x-events actions also set the minimum size of windows the function shall apply to. Actions are:
"enter" - the mouse enters a window.
"new" - a new window pops up.
"deleted" - action taken on the window that get selected when the active window gets killed.
This command can also be used to modify the behaviour of other functions, simply put the function there in place of the action and list the modifiers, these modifiers will be forced on for all invocations of that functions. This has perhaps questionable value, but can at least be used to force 'local' behaviour for all 'next' functions. For symmetry there should have been a command to force modifiers off, there isn't.

See below for a description of modifiers.

menu
"name"
Define a sub menu.
cmd
"name" "shell_command"
Define a menu command.
end

End the definition of a sub menu.

Menus can be nested to any depth, and "cmd" definitions can be placed at any level, including the top level.

key
Modifier[,Modifier...] keycode function[,modifier...] parameters...

Bind functions to keys, see below for a definitions of functions and modifiers.

qc
value
Qualify caption; if value is zero disable captions, if 1 (the default) enable them.

 

Functions

The functions are:

sh
Name command
       Run shell command in subprocess.

menu
start_pos
       Pop the application menu, start_pos, if zero or larger is the
        level to start the menu at. A start_pos of -1 makes the menu
        start off where it left the last time.

pan
x y
       Pan the view in the virtual desktop, x/y is in quarter views.

next

       Next window (as in "Tab").

circulate
n size
       Circulate through the n topmost windows larger than size.
        size is measured in width+height.

hist
offs
       Circulate through window history, offs==-1 => previous.

view_hist
offs
       Circulate through view history, offs==-1 => previous.

kill

       Kill.

lower

       Lower current window.

resize
x y
       resize current window by adding x and y to the width and
        height respectively..

move
x y
       move current window.

drag
resize
       Initiate a drag action on current window, if the resize
        parameter is 1 perform a resize.

next_screen

       Warp to the next screen.

 

Function modifiers

The following are modifiers which can be used combined with the functions to modify their behaviour.

maxim

       Maximize/half/quad sequence

fix

       Fix or unfix current window.

raise

       Raise window to top and update position/size.

lower

       Lower window.

info

       Pop up info caption.

mouse

       move mouse to center of window.

abs

       Make moves absolute, or - for 'kill': Absolutely, seriously kill!!

view

       Apply moves etc, to view ie. physical screen values rather
        than pixels.

set_view

       Pan view to make the current window visible.

focus

       Set focus to window.

popup

       Use the popup window where applicable.

 

Keyboard modifiers

The keyboard modifiers are specified as: "std", "shift", "control", "alt", "mod1", "mod2", "mod3", "mod4", "mod5"

The "std" modifier does not correspond to any X modifier, but can be set by the -m<modifiers> option, and can be used in the configuration file so that default modifiers can be changed without having to change a lot of configuration file lines. The default value for "std" is "mod4" which corresponds to the Windows(TM) key on all keyboard I have come across.

Use the xev(1) utility from X to explore keyboard event names and modifiers.

 

FILES

On startup sithwm will search for commands in the following files
        /etc/X11/sithwm/menudefs.hook
        /usr/share/sithwm/default.sithwmrc
        $HOME/.sithwmrc

 

The Application Menu

Pops up when you push Windows(TM)-Return. There is no mouse control, navigate with the arrow keys, Home, End etc. Letters keys will take you to the next entry starting with that letter. Return will select the current entry.

Sithwm will maintain a menu configuration file on Debian systems. The menudefs file will be kept up to date as packages are installed or removed but you will need to restart sithwm to see the changes. For other systems there's some self-explanatory examples in the default.sitwmrc file.

 

STARTING SITHWM

If you use a session manager from GNOME or KDE or something like that, you'll have to read its documentation to see how to set which window manager it uses.

However if you're just using a standard X desktop, you can start sithwm by just changing your ~/.xinitrc file. Here's a pretty standard sample file:

-----CUT HERE-----
[ -f $HOME/.Xdefaults ] && xrdb $HOME/.Xdefaults
xmodmap -e 'clear Lock'
/usr/bin/sithwm &
exec xclock -digital -padding 2 -g -0+0
-----CUT HERE-----
Note that in this case 'xclock' is the magic process (the one that if you kill it, your session dies). You could change it around and have sithwm be your magic process if you prefer, but note that that would make you vulnerable to crashes in sithwm and make it harder to switch WM live. xmodemap will clear the useless lock feature from the Caps Lock key.

Personally I use a different method, my .xinitrc:

-----CUT HERE-----
#!/bin/sh
until xsetroot -solid '#36444f';do sleep 1;done
xmodmap -e 'clear Lock'
xrdb $HOME/.Xdefault
if xsetroot -display :0.1 -solid '#36444f'
then
  AUXDIS=:0.1
else
  AUXDIS=:0
fi
export AUXDIS
exec sithwm
exec xterm -display $AUXDIS -C
-----CUT HERE-----
And then I start X with this script, rather than xinit.
-----CUT HERE-----
#!/bin/sh
DISPLAY=:0
export DISPLAY
NO=0
while ls /tmp/.X${NO}-lock
do
  let NO++
done
DISPLAY=:${NO}
nohup X $DISPLAY -noreset -v -s 1 -ar1 300 -ar2 30 $XARGS &

nohup sh $HOME/.xinitrc &

sleep 20
-----CUT HERE-----
This script tries to find a free server number in case there's already servers running. It then starts a server with that number and starts .xinitrc. The until-loop around xsetroot in .xinitrc will wait until the X server is operative before it starts. The sleep holds on to the console for a while just for luck.

 

BUGS

You tell me...  

AUTHOR

olr, <dartholr@darkside.no>
based on: evilwm, written by Ciaran Anscomb <sithwm@6809.org.uk>.
based on: aewm, written by Decklin Foster <fosterd@hartwick.edu>.
based on: 9wm, written by David Hogan <dhog@cs.su.oz.au>.  

SEE ALSO

xprop(1)


 

Index

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
COMMANDS
Functions
Function modifiers
Keyboard modifiers
FILES
The Application Menu
STARTING SITHWM
BUGS
AUTHOR
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 09:47:27 GMT, January 05, 2008