heliwm(1) heliwm(1)
Version 1.x
NAME
Heliwm - Highly Essential, Light, Itsy-bitsy Window Manager for X11
SYNOPSIS
heliwm [ -d display ] [ -f filename ] [ -v ]
DESCRIPTION
Heliwm is one of the smallest window manager for X Window System. Its
design goal is minimum consumption of memory and CPU time for saving
natural resources, so it provides nothing more than basic window
operations such as window moving, resizing, iconifying, raising,
lowering and change of the keyboard focus. Window maximizing
operation and frame drawing are optional. No menus, gorgeous look,
virtual screens, etc. Heliwm is for people who want to contribute to
nature protection while using a window manager on X(1), or just don't
want to spend much of their computer resources on a window manager.
Most deficiencies you will find are due to the resource saving
strategy.
It depends on a keyboard for window manipulations, especially for
moving and resizing, which cannot be done without using one. The
idea, that the manipulations can be done without using a mouse, is
inherited from Robert Nation's fvwm(1) version 1.x. Thank you, Rob.
:-)
OPTIONS
-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).
COMPILE TIME OPTIONS
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, in order
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
character sets 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.
- 1 - Formatted: November 3, 2025
heliwm(1) heliwm(1)
Version 1.x
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 avoid
using them as much as possible. Alpha particle version doesn't
need this option, since it displays non-rectangular windows as
they are.
MAXIMIZE
Optional automatic window maximizing feature. Window maximizing
can be done manually with resizing operation, so if you don't
want to spend extra resources, compile heliwm without this
option.
CONFIGURATION
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 on the line. Keys and sub-keys are
case-sensitive. 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: t, f,
b, u, l, a. They correspond to colors of text, frame, border (of
icons and indicator window), upper-left shade of frame, lower-
right shade of frame, and band, respectively.
Text 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, so that it is in a good contrast with most part of your
screen, or you may find the band hard to see.
Border color is used to draw border lines around icons and the
indicator window.
Frame, upper-left and lower-right shade colors are used to draw
frame around client windows. If you want a pseudo 3D look,
specify a color darker than frame for lower-right shade, and a
color brighter than frame for upper-left shade, for example.
Alpha particle version ignores shade colors, since it doesn't
draw frames.
- 2 - Formatted: November 3, 2025
heliwm(1) heliwm(1)
Version 1.x
wS width
Specify frame width in integer. S is either f for frame, or b
for border of icons and the indicator window. Alpha particle
version ignores the former.
f font_name
Specify font to use for window and icon titles. They are written
in "text" color, specified with ct option.
C cursor_number
Specify cursor to use. Cursor number can be obtained from
/usr/include/X11/cursorfont.h. To preview cursor shapes, use
xfd(1) with -fn cursor option.
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 seven 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 keyboard focus to a window when it is raised.
2 Set keyboard focus to a window when the pointer is circulated
to it.
4 Set keyboard focus to a window when it is mapped (displayed).
8 Raise a window when the pointer is circulated to it.
16 Move the pointer to upper-left corner of a window, when it is
focused.
32 Set original window border width, which many programs set
with "-bw" option, to zero automatically, upon mapping the
window.
64 Redraw frame of active window only. Active window is a
window with the keyboard focus, if any, or one with the
circulation pointer. When there is no active window, all
- 3 - Formatted: November 3, 2025
heliwm(1) heliwm(1)
Version 1.x
window frames are redrawn. Specifying this option
significantly saves CPU load. This option is meaningless for
alpha particle version.
128 When a window is to be mapped without user-specified
location, place it interactively by moving a band for it. If
this option is not specified, the window will be placed at
where the application specifies.
"Circulated" here means when "next" (n sub-key) or "previous" (p
sub-key) window operations are executed.
OPERATIONS
Following operation sub-keys are available, with default key binding
in parenthesis:
m Trigger move operation (Alt+F8).
r Trigger resize operation (Alt+F7).
i Iconify/deiconify a window (Alt+F9).
n Move the pointer to next window (Alt+F5).
p Move the pointer to previous window (Alt+F6).
a Raise a window (Alt+F2).
l Lower a window (Alt+F3).
d Delete a window, if it defines WM_DELETE_WINDOW protocol (Alt+F4).
If it doesn't, it cannot be deleted by heliwm.
t Terminate heliwm (Control+Shift+F2).
x Maximize/unmaximize a window (Alt+F10). This is available only
when heliwm is compiled with MAXIMIZE compile time option.
Move and resize operations are triggered by pressing a key or a mouse
button with zero or more optional modifier keys, which are described
below. 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 the 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, and interactive
placement option (128 of "other_options"; see above) is specified, the
- 4 - Formatted: November 3, 2025
heliwm(1) heliwm(1)
Version 1.x
band shows up for placement of the 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.
Similarly, when the client has a minimum size set, it is impossible to
make the window smaller than that.
MODIFIERS
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.
MEMORY AND CPU TIME SAVING TIPS
Compile heliwm without FRAME option to make it alpha particle version.
Avoid wrapping windows as much as possible. When an obscured part is
exposed, it has to be redrawn, consuming extra CPU time. Users of
heliwm compiled with FRAME option are encouraged to use "redraw frame
of active window only" option. See description of option o in section
CONFIGURATION.
Use rxvt(1) instead of xterm(1) when possible.
Use text console instead of X(1) or other window systems whenever
possible. I developed heliwm mostly on a text console. :-)
FILES
/usr/lib/X11/heliwm/heliwmrc
System default run control file.
~/.heliwmrc
User run control file.
- 5 - Formatted: November 3, 2025
heliwm(1) heliwm(1)
Version 1.x
AUTHOR
Hidetoshi Ohtomo <hok@lab.rim.or.jp>
DISTRIBUTION SITE
http://www.cc.rim.or.jp/~hok/heliwm/
DESIGN
Following strategies were taken in order to make the program small
and/or lessen CPU load:
Window frame drawing, native language system support, shape extension
support and window maximizing operation are optional (see section
COMPILE TIME OPTIONS), to make it possible to minimize heliwm
according to individual needs.
No intelligent automatic icon placement. When a window is first
iconified, the icon is placed at where the window is, or a user must
determine where to place the icon, depending on the specified option.
Moving and resizing operations can't be done with a mouse, because
pointer movement tracking is quite heavy for CPU.
Configuration file is rather cryptographic (like sendmail.cf :-) and
its syntax is strict to minimize configuration module.
Simple frame decoration for FRAME option.
Upon startup, heliwm doesn't check if another window manager is
running.
BUGS
This window manager was named lithiwm at first, but it was soon
renamed.
If you find a bug or a way to make the program lighter and/or
improved, or there is a feature which you want me to add, please
contact me by sending an email to the address above. Note: please
make sure that you are using the latest version, available at the
distribution site (see section DISTRIBUTION SITE). You can check
version of yours by running heliwm with "-v" option.
LICENSE
Copyright (C) 2000, 2001 Hidetoshi Ohtomo.
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
- 6 - Formatted: November 3, 2025
heliwm(1) heliwm(1)
Version 1.x
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
The license can be obtained by writing to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA, or by accessing
http://www.gnu.org/copyleft/gpl.html.
CHEMISTRY
Exact atomic weight is not determined yet, partially because its
half-life, which some people call "mean time between changes," is
short. But values indicated by size(1) show that it is less than
others for sure. It has several isotopes, which are listed in Compile
Time Options section of this manual. Research is still under
progress.
SEE ALSO
X(1), fvwm(1), rxvt(1), xlsfonts(1), xmodmap(1), xfd(1), periodic
table of the elements
Linux Ecology HOWTO by Werner Heuser and Wade W. Hampton
http://www.mobilix.org/eco_linux.html
- 7 - Formatted: November 3, 2025