Table of Contents
heliwm - highly essential, light and itsy-bitsy window manager for
X11
heliwm [ -d display ] [ -f filename ] [ -v ]
heliwm
is a light window manager for X Window System. Its design goal is minimum
consumption of memory and CPU time, so it provides nothing more than basic
window operations such as window moving, resizing, iconifying, raising
and lowering. Window maximizing is optional. No menus, gorgeous look, virtual
screens, etc. heliwm is for people who don't want to spend much of their
computer resources for a window manager. Most deficiencies you will find
are due to the resource saving strategy.
It depends on a keyboard for window
manipulation, especially for moving and resizing, which cannot be done
without using one. The idea, that window manipulation can be done without
using a mouse, is inherited from Robert Nation's fvwm(1)
version 1.x. Thank
you, Robert. :-)
- -d display
- Specify X server to use.
- -f filename
- Specify
non-default configuration file to use.
- -v
- Print version number along with
compilation options (see below).
There are four compile
time options.
- FRAME
- If heliwm is compiled without this option, it is called
alpha particle version. It doesn't decorate client windows to save even
more resources.
- NLS
- Native Language System support. Set environmental variable
LANG to name of your locale (e.g., ja_JP for Japanese), to use characters
other than ASCII for window and icon titles. Ensure that f option in your
configuration file has a comma-separated list of required fonts. If you don't
know which fonts are required, run heliwm with fixed specified for the
f option and it will report missing character sets, if any. Use xlsfonts(1)
to look for fonts for each character set.
- SHAPE
- X non-rectangular window shape
extension support. Clients such as oclock(1)
and xeyes(1)
are written using
the extension, but can be run without it. Some non-rectangular windows generate
many X events upon exposure, and can be a burden to CPU, so compile heliwm
without this option, if you would.
- MAXIMIZE
- Optional automatic window maximizing
feature. Window maximizing can be done manually with resizing, so if you
don't want to spend extra resources, compile heliwm without this option.
System default configuration file is read at startup, when
you don't have your own as ~/.heliwmrc or specify one by -f option. If none
of them is available, default values are used.
Configuration file format
is quite strict, and all invalid lines are silently ignored. First of all,
a line must start with an option key, which is an alphabet letter. Some
of them require a sub-key, which must be the second character of the line.
Each word is separated by exactly one character, which may be a space
or a tab. Take a look at the default configuration file for an example.
Here is a list of available customization options:
- cS color_name
- Specify
color to use. S here is one of following sub-keys: f, b, o, i, a. They correspond
to foreground, background, border (outmost frame), innermost frame and
band, respectively.
Foreground color is used for window title text, and
band color is used for a move/resize band. You may need to choose a color
for the latter, which is in contrast with most part of your screen, or
you may find it hard to see.
Background, border and innermost frame colors
are used to draw a frame around a window. If you want a pseudo 3D look,
specify darker color for border and innermost frames than background, for
example. Alpha particle version doesn't recognize innermost frame color,
since it doesn't have a chance to draw the portion.
- wS width
- Specify frame
width in integer. S is either b for border or m for frame. Alpha particle
version doesn't recognize these options.
- f font_name
- Specify font to use for
window and icon titles. They are written in `foreground' color.
- kS modifier
key
- Specify window manipulation key. S here is one of operation sub-keys:
m, r, i, n, p, a, l, d, t, x. See section OPERATIONS for details. Modifier
is the sum of one or more integers representing modifier keys. See section
MODIFIERS for details. Key is one of the key names in /usr/include/X11/keysymdef.h,
with the prefix XK_ removed.
- bS modifier button
- Specify window manipulation
button. S and modifier are the same as those for key option. Button is mouse
button number: 1 through 5.
- o other_option
- Specify other options. There are
five of them, and a number is assigned to each. Pick up options you want
and add their numbers, or specify 0 if you want none of them.
- 1
- Set focus
to a window when it is raised.
- 2
- Set focus to a window when the pointer is
circulated and points it.
- 4
- Set focus to a window when a window is mapped.
- 8
- Raise a window when the pointer is circulated and points it.
- 16
- Warp pointer
to upper-left corner of a window, when it is focused.
"Circulated" here means
when `next' (n sub-key) or `previous' (p sub-key) window operations are executed.
Following operation sub-keys are available:
- m
- Trigger move operation.
- r
- Trigger resize operation.
- i
- Iconify/deiconify a window.
- n
- Move pointer to
next window.
- p
- Move pointer to previous window.
- a
- Raise a window.
- l
- Lower a window.
- d
- Delete a window, if it defines WM_DELETE_WINDOW protocol. If it doesn't,
it cannot be deleted by heliwm.
- t
- Terminate heliwm.
- x
- Maximize/unmaximize a
window. This is available only when MAXIMIZE compile time option is selected.
Move and resize operations are triggered by pressing a key or a mouse button,
as described above. The cursor changes, a band appears to show current
position and size of the window, and an indicator window appears at the
center of the screen. Use arrow keys (up, down, left and right), vi(1)
style (k, j, h and l) or emacs(1)
style (p, n, b and f) cursor movement
keys to move or resize a window. Holding down a shift key makes the change
smaller, while a control key makes it even smaller. Modifier 1 key, if
available, makes it larger. Press Enter key or a button to complete the
operation.
When a window is iconified for the first time, the band shows
up for placement of icon. Use the keys to move it to anywhere you want.
n operation moves the pointer to upper-left corner of next window in a
list of windows which heliwm manages. p operation moves the pointer to previous
one.
Maximizing a window makes it as large as possible within the size
of the screen. When a client has a maximum size set, heliwm admires it,
so it is impossible to make the window larger than the size.
Following
modifiers are available:
- 0
- Require no modifier to be pressed.
- 1
- Require a
shift key to be pressed.
- 2
- Require a control key to be pressed.
- 4
- Require a
modifier 1 key to be pressed.
- 8
- Require a modifier 2 key to be pressed.
For
example, if you want a modifier 1 key and a shift key to be pressed while
pressing a key, specify 5 as modifier. Run xmodmap(1)
to see what keys
are assigned to modifier 1 and 2.
Compile
heliwm without FRAME option to make it alpha particle version.
Avoid wrapping
windows as much as possible. Every time obscured part is exposed, it has
to be drawn, consuming extra CPU time.
Use rxvt(1)
instead of xterm(1)
when possible.
Use X(1)
only when necessary. :-)
Hidetoshi Ohtomo <hok@lab.rim.or.jp>
http://www.cc.rim.or.jp/~hok/heliwm/
- /usr/lib/X11/heliwm/heliwmrc
- System default run control file.
- ~/.heliwmrc
- User run control file.
Following
strategies were taken in order to make the program small and/or lessen
CPU load:
No automatic icon placement. When a window is first iconified,
user must determine where to place the icon.
Moving and resizing operations
can't be done with mouse. Tracking pointer movement is quite heavy task
for CPU.
This window manager was named lithiwm at first, but it was
soon renamed.
It may be hard to distinguish bugs from deficiencies due
to design.
If you find a bug or a way to make the program lighter, I would
like to be informed about it. Please contact me by sending an email to
the address above.
Copyright (C) 2000, 2001 Hidetoshi Ohtomo. All
rights reserved.
This program is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
This program is distributed in the hope
that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
The license can be found at
http://www.gnu.org/copyleft/gpl.html.
See AlsoX(1), fvwm(1), rxvt(1), xlsfonts(1), xmodmap(1), Linux Ecology
HOWTO by Werner Heuser and Wade W. Hampton, and Periodic Table of the Elements.