other versions
- wheezy-backports 0.6.2-1~bpo70+1
- jessie 0.6.2-1
- jessie-backports 0.7.0-1~bpo8+1
- testing 0.7.0-1
- unstable 0.7.0-1
| HERBSTLUFTWM-TUTORI(7) | HERBSTLUFTWM-TUTORI(7) |
NAME¶
herbstluftwm-tutorial - A tutorial introduction to herbstluftwmDESCRIPTION¶
This tutorial explains how to create a basic herbstluftwm setup and introduces the major herbstluftwm features. This tutorial neither covers all features nor specifies the mentioned features entirely; see herbstluftwm(1) for a compact and more complete description.•
Basic installation
•
Usage of the client
•
The tiling method
•
Tags (or workspaces...)
•
Multi-Monitor handling
BASIC INSTALLATION¶
This describes two alternate installation methods. In any case, you also have to install the dependencies. Beside the standard libraries (GLib, XLib) which are found on nearly any system, you should install dzen2 (as current as possible) which is needed by the default panel.sh.Via the package manager¶
You always should prefer installing herbstluftwm via your package manager on your system. It should be called herbstluftwm.mkdir -p ~/.config/herbstluftwm cp /etc/xdg/herbstluftwm/autostart ~/.config/herbstluftwm/
Directly from git¶
If there is no package for your platform or if you want to use the current git version, then you can pull directly from the main repository:git clone git://git.cs.fau.de/hlwm herbstluftwm cd herbstluftwm make # build the binaries # install files mkdir -p ~/bin # you also have to put $HOME/bin to your path, e.g. by: echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc # or to your zshrc, etc... ln -s `pwd`/herbstluftwm ~/bin/ ln -s `pwd`/herbstclient ~/bin/ # copy the configuration mkdir -p ~/.config/herbstluftwm/ cp share/autostart ~/.config/herbstluftwm/ cp share/panel.sh ~/.config/herbstluftwm/
•If you are using bash, then source the
bash completion file in your ~/.bashrc
source path-to/herbstluftwm/share/herbstclient-completion
•If you are using zsh, then copy the
share/_herbstclient file to the appropriate zsh-completion directory.
git pull make
CONFIGURE HERBSTLUFTWM AS YOUR WINDOW MANAGER¶
As usual you can define herbstluftwm as your window manager by either selecting herbstluftwm in your login manager or by starting it in your ~/.xinitrc, mostly by writing to your xinitrc (or .xsession on some systems):# start herbstluftwm in locked mode (it will be unlocked at the end of your # autostart) exec herbstluftwm --locked
FIRST START¶
After starting herbstluftwm, the screen is surrounded by a green frame initially, which indicates that there is only one large frame. A frame is a container where actual windows can be placed or which can be split into two frames.USING THE CLIENT¶
The only way to communicate to herbstluftwm is by using the client application called herbstclient. Its usual syntax is: herbstclient COMMAND [ARGUMENTS]. This calls a certain COMMAND within your running herbstluftwm instance. This causes some effect (which depends on the given COMMAND and ARGUMENTS), produces some output which is printed by herbstclient and lets herbstclient exit with a exit-code (e.g. 0 for success) like many other UNIX tools: shell COMMANDS,
╲ COMMAND, ARGUMENTS
╲ ARGUMENTS ╭────────────╮
╲ │ │
V │ V
herbstclient herbstluftwm
╱ ^ │
╱ output, │ │
╱ exit-code ╰────────────╯
V output,
shell/terminal exit-code
$ # lines prefixed with $ describes what to type, other lines describe the $ # typical output $ # Type: her<tab>c<tab> ve<tab> $ herbstclient version herbstluftwm 0.4.1 (built on Aug 30 2012) $ herbstclient set window_border_active_color red $ # now the window border turned red
# Mod=Mod1 # use alt as the main modifier Mod=Mod4 # use Super as the main modifier
# the following line is identical to directly calling: # ~/.config/herbstluftwm/autostart herbstclient reload
1.Try some new settings in the command
line
2.Add them to the autostart file
3.Press Mod-Shift-r which calls the reload
command or directly execute the autostart file from your shell to get the
error messages if something went wrong.
TILING¶
Initially there is one frame. Each frame has one of the two following possible types: 1.It serves as a container for windows, i.e.
it can hold zero up to arbitrarily many windows. Launch several more terminals
to see what happens: If there are multiple windows in one frame, they are
aligned below each other. To change this layout algorithm, press Mod-space to
cycle all the available layouting algorithms for the focused frame.
2.A frame also can be split into two
subframes, which can be aligned next to or below each other. Press Mod-o to
split to an horizontal alignment. To navigate to the fresh frame right of the
old one press Mod-l. Press Mod-u to split vertically. The intuitive navigation
is:
To undo splitting, you can remove a frame via Mod-r. To shift some window from
one frame to one of its neighbours, use the same keyboard shortcut while
holding the Shift key pressed. It is not possible to resize single windows,
only to resize frames. The according keyboard shortcut is the same while
holding Control pressed. All in all it is:
⎧ h (or ←) ⎫ ⎧ left
⎪ j (or ↓) ⎪ means ⎪ down
Mod + ⎨ k (or ↑) ⎬ ═══════> focus ⎨ up
⎩ l (or →) ⎭ ⎩ right
⎧ h (or ←) ⎫ ⎧ left
⎧ ⎫ ⎪ j (or ↓) ⎪ means ⎧ focus frame ⎫ ⎪ down
Mod + ⎨ Shift ⎬ + ⎨ k (or ↑) ⎬ ═════> ⎨ move window ⎬ ⎨ up
⎩ Control ⎭ ⎩ l (or →) ⎭ ⎩ resize frame ⎭ ⎩ right
$ herbstclient layout ╾─┐ horizontal 50% selection=1 ├─┐ vertical 70% selection=0 │ ├─╼ vertical: 0x1400009 │ └─╼ vertical: └─╼ max: 0x1a00009 [FOCUS]
$ herbstclient dump
(split horizontal:0.500000:1
(split vertical:0.700000:0
(clients vertical:0 0x1400009)
(clients vertical:0))
(clients max:0 0x1a00009))
$ layout=$(herbstclient dump)
$ herbstclient load "$layout" # mind the quotes!
TAGS (OR WORKSPACES OR VIRTUAL DESKTOPS OR ....)¶
A tag consists of a name and a frame layout with clients on it. With the default autostart, there are nine tags named 1 to 9. You can switch to the ith tag using Mod-i, e.g. Mod-4 to switch to tag 4 or with the command use 4. A window can be move to tag i via Mod-Shift-i, i.e. with the move command.MONITORS¶
The notion of a monitor in herbstluftwm is treated much more abstract and general than in other window managers: A monitor just is a rectangular part of your screen which shows exactly one tag on it.$ herbstclient list_monitors 0: 1440x900+0+0 with tag "1" [FOCUS]
1.Enable it, such that it shows a part of
your screen. You can use xrandr, xinerama or any other tool you like.
2.Register it in herbstluftwm: Lets assume
your new monitor has the resolution 1024x768 and is right of your main screen,
then you can activate it via:
Alternatively, if xinerama works for your setup, simply run:
$ herbstclient set_monitors 1440x900+0+0 1024x768+1440+0
$ herbstclient detect_monitors
| 2014-05-03 | herbstluftwm 0.6.2 |