awesome – Ein Tiling-Fenstermanager
Konfiguration
Sobald man mit der Steuerung von awesome zurecht kommt, kann man sich mit den vielen Konfigurationsmöglichkeiten beschäftigen. Man konfiguriert awesome über das Lua-Skript rc.lua
. Programmierkenntnisse in Lua sind für kleinere Änderungen nicht nötig.
Die Konfigurationsdatei rc.lua befindet sich im Ordner /etc/xdg/awesome. Damit die Einstellungen nur für den aktuellen Nutzer geändert werden, sollte der Inhalt dieses Ordners zuerst nach ~/.config/awesome kopiert werden.
Die Datei rc.lua wird beim Start von awesome ausgeführt. Im Laufe des Skripts werden die Layouts, Tags, das Menü,das Panel und alle Tastenkombinationen definiert. Die Datei ist gut kommentiert, was das Bearbeiten erleichtert. Kommentare beginnen in Lua mit --
.
Tags
In der Standardkonfiguration werden die Tags mit den Ziffern 1 bis 9 benannt. Man kann die Tags beliebig umbenennen. In der Konfigurationsdatei werden die Tags so definiert:
-- {{{ Tags -- Define a tag table which hold all screen tags. tags = {} for s = 1, screen.count() do -- Each screen has its own tag table. tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s, layouts[1]) end
Man kann statt den Zahlen auch Wörter verwenden, die man in Anführungszeichen setzen muss:
tags[s] = awful.tag({ "www", "chat", "mail", 4, 5, 6, 7, 8, 9 }, s, layouts[1])
So kann man die Tags beliebig umbenennen. Um die Änderungen zu übernehmen, muss awesome neugestartet werden: Dies kann über das Menü oder mit der Tastenkombinationen Mod4 + Strg + R geschehen. Aber Achtung: Wenn ein Fehler in der Datei rc.lua
ist, startet awesome nicht mehr richtig. Es gibt eine Möglichkeit, die Konfiguration auf Fehler zu überprüfen:
awesome -k
Dies bietet allerdings keine Garantie, dass wirklich kein Fehler vorhanden ist. Syntaxfehler kann man so aber immerhin verhindern.
Layouts
Alle verfügbaren Layouts werden in rc.lua in der Variable layouts
gespeichert:
layouts = { awful.layout.suit.floating, awful.layout.suit.tile, ... }
Um das Standardlayout zu ändern, muss folgende Zeile bearbeitet werden. Die Namen der Tags sind dabei egal.
tags[s] = awful.tag({ "www", "chat", "mail", "work", 5, 6, 7, 8, 9 }, s, layouts[1])
Die Ziffer bei layouts[1]
bezeichnet die Position des Layouts in der Liste, beginnend bei 1. Der Standard ist hier also Floating. Damit Tiling verwendet wird, muss die Ziffer z.B. auf 2 geändert werden.
Es ist auch möglich, für jeden Tag ein eigenes Layout zu bestimmen, oder sogar, auf jedem Bildschirm die Tags unterschiedlich zu konfigurieren. Wie dies geht, wird im FAQ beschrieben.
Rules
awesome ermöglicht es, Regeln für Programmfenster zu erstellen und einem Programm immer die gleichen Eigenschaften zuzuweisen. So kann man z.B. erreichen, dass der Browser stets den Tag www bekommt.
In der Konfigurationsdatei steht fast am Ende:
-- {{{ Rules awful.rules.rules = { ... { rule = { class = "MPlayer" }, properties = { floating = true } }, ...
Hier wird bestimmt, dass MPlayer im Floating-Modus startet. Durch Hinzufügen folgender Regel startet Firefox immer auf Tag 1. Auch wenn dieser www heißt, wird er dennoch mit der Nummer 1 angesprochen.
{ rule = { class = "Firefox" }, properties = { tag = tags[1][1] } },
Bei tags[1][1]
steht die erste Ziffer für den Bildschirm, also Bildschirm 1, die zweite für den Tag, also Tag 1. Möchte man, dass Firefox auf Tag 3 auf dem zweiten Bildschirm startet, müsste es tags[2][3]
heißen.
Nun stellt sich noch die Frage, wie man an den Klassennamen für eine Regel kommt. Dies ist mit dem Programm xprop aus dem Paket x11-utils
möglich:
xprop WM_CLASS
Nach dem Klick auf ein Fenster wird der Klassenname ausgegeben. Für xterm sieht die Ausgabe so aus:
WM_CLASS(STRING) = "xterm", "UXTerm"
Der Klassenname ist der zweite Name, hier also UXTerm
. Der erste Name, hier xterm
, kann mit der Variable instance
abgefragt werden. Wichtig ist, dass die neuen Regeln zwischen den äußeren Klammern stehen.
awful.rules.rules = { -- Hier müssen alle neuen Regeln hin } -- Und nicht hier
Weitere Informationen über die Regeln findet man in der Referenz von awesome.