Ubuntu 12.04 „Precise Pangolin“
Ubuntu 10.04 „Lucid Lynx“
Dieser Artikel bezieht sich auf WMII ab Version 3.5. Den Wiki-Artikel zur Version 3.0 findet man im Archiv.
wmii (window manager improved 2) ist ein leichtgewichtiger Fenstermanager für das X-Window-System. Er unterstützt sowohl das konventionelle Fenstermanagement, als auch Tiled und Tabbed, basierend auf Layouts. Anstelle mehrerer Arbeitsflächen kommt das Tag-Prinzip zum Einsatz. Abgesehen davon implementiert er einen auf Sockets basierenden Dateiserver, welcher zur Konfiguration und Interaktion mit wmii benutzt wird. Die Idee hinter diesem dateibasierenden Ansatz kommt vom Plan9-Betriebssystem und lässt sich in der Programmierumgebung Acme wiederfinden. wmii besteht aus dem eigentlichen Fenstermanager und mehreren Hilfsprogrammen, wie wmibar, wmifs, wmimenu, wmikeys, wmiplumb, wmir und wmiwarp.
Da wmii komplett tastaturgesteuert ist, kann es am Anfang kompliziert sein. Hier eine Übersicht der grundlegenden Funktionen:
Grundlegende Tastenkürzel | |
Alt + P | Programm öffnen (es öffnet sich in der Statusleiste eine Zeile mit allen installierten Programmen, wenn man nun "fire" eintippt, werden alle Programme angezeigt, die mit "fire" beginnen (z.B. Firefox) |
Alt + ⇧ + C | Programm schließen |
Alt + S | Standardmäßig teilt der wmii die Fenster horizontal auf. Diese Taste zeigt ein Fenster groß an, andere Fenster werden in einem kleinen Streifen angezeigt. |
Alt + M | Die kleinen Streifen der anderen Fenster werden ausgeblendet, um noch mehr Anzeigeraum zur Verfügung zu stellen. |
Alt + D | Standardeinstellung: Der Bildschirm wird horizontal geteilt und jedes Programm bekommt gleich viel Platz zugewiesen |
Alt + J | Nächstes Fenster |
Alt + K | Vorheriges Fenster |
Alt + ⇧ + 1 ... Alt + ⇧ + 9 | Fenster auf Desktop 1 - 9 schieben |
Alt + 1 ... Alt + 9 | Auf Desktop 1 - 9 wechseln |
Alt + A | wmii-Menü aufrufen |
Esc | Ein Menü verlassen |
⏎ | Etwas auswählen |
Wer mit dem geteilten Fenster nicht zurecht kommt bzw. Programme wie GIMP (mehrere Fenster, was durch das Teilen schlecht aussehen würde) nutzt, dem helfen folgende Tastenkombinationen:
Tastenkombinationen | |
Alt + ⇧ + | Fenster aus-/einkoppeln |
Alt + | Zwischen ein- und ausgekoppelter Ebene auswählen. Wenn man mit der Maus über ein aktives Fenster einer Ebene fährt, wird diese automatisch ausgewählt. |
Alt + ![]() | Fenster verschieben |
Alt + ![]() | Fenstergröße ändern |
Die Konfigurationsdateien befinden sich alle in ~/.wmii-3.5. Wenn dieser Ordner noch nicht existiert, kann er per
cp -r /etc/X11/wmii-3.5/* /home/$USER/.wmii-3.5 chown -R $USER:users /home/$USER/.wmii-3.5
oder für ältere Ubuntu Versionen:
cp -r /etc/wmii-3.5/* /home/$USER/.wmii-3.5 chown -R $USER:users /home/$USER/.wmii-3.5
kopiert [3] werden.
Alternativ, wenn man die wmii-Einstellungen für jeden Benutzer gleich haben möchte, reicht es auch, die /etc/*/wmiirc zu konfigurieren. Wenn jedoch schon eine wmiirc im Homeverzeichnis existiert, wird dieser der Vorzug gegeben.
Erklärung der Dateien:
wmiirc - Die Tastatur-Kürzel und wesentliche Einstellungen werden hier definiert, seit Version 3.5 ebenfalls die Einstellungen zur Statusleiste
welcome - Willkommenstext mit kleiner Einführung
quit - ist zum Herunterfahren da
Die Datei dient komplett der Konfiguration. Dazu öffnet man sie [2] und speichert die Änderung wieder ab. Um gesetzte Konfigurationen im laufendem Betrieb zu laden, drückt man Alt + A und wählt wmiirc aus. Wenn man einen Fehler in der wmiirc-Datei gemacht hat, wird sie nicht geladen. Vor Version 3.5 ist da mitunter der gesamte Xserver abgestürzt.
Am besten immer mal eine Sicherheitskopie machen, da wmii nicht sagt, wo genau die Fehler gemacht wurden.
Am Anfang der Datei werden einige Tasten auf Variablennamen gelegt:
alternative Tastennamen | |
Variable | Taste |
$MODKEY | Alt |
$UP | K |
$DOWN | J |
$LEFT | H |
$RIGHT | L |
Neu in 3.5 ist, dass man die Tasten, welche verwendet werden sollen, nicht mehr vordefinieren muss. Um nun ein neues Kommando zu belegen, sucht man nach der Zeile
# Key Bindings
wo man anschließend im folgenden Format Tastaturbelegungen und Aktionen definieren kann.
Key taste1-taste2-$ALTERNATIVER_tastenname.... Kommandozeilenbefehl (z.B. ein Programmname)
Es ist darauf zu achten, dass keine Tastenbelegung doppelt vorkommt, um Fehler auszuschließen. Desweiteren ist die Groß-/Kleinschreibung wichtig (z.B. Print
); und es müssen Tabs anstelle von Leerzeichen verwendet werden (
Tab ⇆ ).
[TAB]Key[Leerzeichen]Taste-Taste.. [TAB][TAB]Befehl
Da es noch keine Funktion für Bildschirmfotos gibt, muss dies erst eingestellt werden. Im Gentoo-Wiki findet man dazu eine gute Anleitung.
Zuerst benötigt man das Programm ImageMagick, welches evtl. mithilfe der Paketverwaltung [1] installiert werden muss. Danach erstellt man die Datei screenshot in einem Verzeichnis, das im Terminal [3]
echo $PATH
angezeigt wird (z.B. /usr/local/bin/screenshot) und fügt folgenden Text ein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #!/bin/sh DIR="${HOME}/screenshots" DATE="$(date +%Y%m%d@%H%M%S)" NAME="${DIR}/screenshot-${DATE}.png" LOG="${DIR}/screenshots.log" # Testen, ob das Verzeichnis zum Speichern der Screenshots existiert, andernfalls wird es erstellt if [ ! -d "${DIR}" ]; then mkdir "${DIR}"; fi # Screenshot von einem Fenster if [ "$1" = "win" ]; then import "${NAME}"; fi # Screenshot des gesamten Bildschirms if [ "$1" = "scr" ]; then import -window root "${NAME}"; fi # Screenshot von einem Bereich if [ "$1" = "area" ]; then import "${NAME}"; fi # Hänge den Dateinamen an die Logdatei an echo "${NAME}" >> "${LOG}" |
Die Orte in den Variablen DIR
, DATE
, NAME
, LOG
am Anfang können natürlich verändert werden.
Anschließend fügt man, wie bereits beschrieben, eine Tastenkombination für Druck und Alt + Druck ein.
Key Print screenshot scr Key $MODKEY-Print screenshot win
Nach einem erneuten Laden der Konfiguration kann man mit der Taste
Druck ein Bildschirmfoto erstellen oder mit
Alt +
Druck einen bestimmten Bereich auswählen, von dem ein Bildschirmfoto gemacht werden soll. Standardmäßig werden die Bildschirmfotos dann im Homeverzeichnis unter screenshots gespeichert, wie oben in der Variablen DIR
angegeben.
Das Aussehen wird am Anfang der Datei über folgende Variablen gesetzt:
WMII_FOCUSCOLORS
WMII_NORMCOLORS
WMII_FONT
Die Farben werden im Hexadezimalsystem notiert. Die Farben müssen dann in folgendem Format angegeben werden:
WMII_FOCUSCOLORS='#HEXVAL #HEXVAL #HEXVAL'
Dieser Abschnitt braucht nur gelesen zu werden, wenn man sich bereits mit Befehlen auskennt, da hierauf nicht näher eingegangen wird.
Um die Statusleiste (die Leiste ganz unten, in der u.a. die Zeit angezeigt wird) zu ändern, sucht man sich den Abschnitt nach
# Status Bar Info
der ungefähr so aussehen sollte:
status() { echo -n $(uptime | sed 's/.*://; s/,//g') '|' $(date) }
Wenn man sich ein bisschen mit Shell-Programmierung auskennt, sollte es nicht schwer sein, hier etwas zu ändern.
Möchte man die Batterieanzeige für einen Laptop in der Statusleiste einbinden, sollte man zuerst im Terminal [3] überprüfen, ob das acpi-Modul aktiviert ist.
acpi
Wenn der Ladestand des Akkus ausgegeben wird, funktioniert es.
Folgende Befehle können dann eingebaut werden:
echo $(acpi -b | sed 's/%.*//' | sed 's/.*,//') '%' ## gibt Ladestand in % aus echo $(acpi -b | sed 's/ remaining.*//' | sed 's/.*,//') ## gibt die verbleibende Laufzeit aus
In der Praxis sieht das dann ungefähr so aus:
status() { echo -n $(uptime | sed 's/.*://; s/,//g') '|' $(date) '|' $(acpi -b | sed 's/%.*//' | sed 's/.*,//') '% ' $(acpi -b | sed 's/ remaining.*//' | sed 's/.*,//') }
Um einen Fenstermanager wie WMII komfortabel im Alltag gebrauchen zu können, sind ein paar Schritte notwendig.
Um Dienste beim Systemstart auszuführen, gibt es mehrere Möglichkeiten. Einfach ist es, die Datei /usr/share/xsessions/wmii.desktop mit einem Editor mit Rootrechten zu öffnen und die Zeile "exec" folgendermaßen zu modifizieren:
Exec=/home/USERNAME/wmii_start.sh
Somit wird diese Datei verlinkt, die nun nur noch angelegt werden muss (dies kann ohne Rootrechte geschehen), mit folgendem Inhalt:
#!/bin/bash exec /usr/bin/wmii & Befehl 1 & Befehl 2 & Befehl 3
Wichtig: Nach jedem Befehl muss ein "&" sich am Ende der Zeile befinden, mit Ausnahme der letzten! Eine Beispieldatei mit empfehlenswerten Startprozessen für Ubuntu 10.04:
#!/bin/bash exec /usr/bin/wmii & exec /usr/bin/nm-applet & exec /usr/bin/gnome-settings-daemon & exec /usr/bin/gnome-power-manager & exec /usr/bin/xscreensaver & exec /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 & exec update-notifier --startup-delay=60
wmii: der Windowmanager selbst
nm-applet: essentiell für eine funktionierende Internetverbindung
gnome-settings-daemon: Dieser Prozess ist dafür verantwortlich, dass das GTK-Thema dargestellt wird, anstatt des "Standard"-Looks, außerdem sorgt der Dienst dafür, dass die GNOME-Tastaturkürzel funktionieren und Notifications angezeigt werden.
gnome-power-manager: Besonders auf Laptops empfehlenswert, regelt die Bildschirmhelligkeit, Standby-Zeiten etc.
xscreensaver: Bildschirmschoner; alternativ können natürlich auch die Startbefehle anderer Bildschirmschoner eingefügt werden. (Anm.: In diesem Fall muss das Paket "xscreensaver" installiert werden)
Authentication-Agent: Bspw. Nautilus benötigt diesen Dienst, um verschlüsselte Laufwerke zu entschlüsseln
Update-Notifier: Sucht nach Updates für Ubuntu
WIMP ist tot - Window-Manager WMII - Artikel LinuxUser 01/2006
First Steps with Awesome Window Manager - Beschreibung des Einrichtens der Autostarts bei alternativen Fenstermanagern, Blogbeitrag 07/2008