ubuntuusers.de

xmonad

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

xmonad-logo.png Xmonad 🇬🇧 ist ein in Haskell geschriebener Fenstermanager, der Tiling beherrscht. Laut eigenen Angaben ist xmonad einfach zu nutzen, flexibel und erweiterbar sowie besonders stabil.

Xmonad kann ohne eine Desktopumgebung genutzt werden. Es ist allerdings auch möglich, xmonad in GNOME, KDE, MATE, LXDE oder Xfce zu integrieren. Eine Kombination mit Unity ist jedoch nicht möglich.

Installation

Xmonad kann direkt aus den offiziellen Paketquellen installiert werden [1]:

  • xmonad (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install xmonad 

Oder mit apturl installieren, Link: apt://xmonad

Bedienung

Nach der Installation kann xmonad bei der grafischen Anmeldung als Desktop ausgewählt werden.

Nach dem Start von xmonad, sieht man zunächst einen leeren Bildschirm, da keine Anwendungen automatisch gestartet werden. Programme lassen sich entweder über dmenu ( Alt + P ), gmrun ( Alt + + P ) oder ein Terminal ( Alt + + ) starten[2]. Mit ( Alt + + Q ) kanndie aktuelle xmonad-Sitzung beendet werden. Dabei ist zu beachten, dass Alt der "mod key" ist, welcher über die Konfiguration beliebig gelegt werden kann. Häufig wird die - bzw. Windows -Taste gewählt, um keine Hotkeys von anderen Programmen zu überschreiben. Nach dem Starten eines Programms, positioniert xmonad das Fenster automatisch basierend auf dem aktuellen Layout in dem aktuellen Workspace. Die Workspaces können über Alt + 1 bis Alt + 9 gewechselt werden. Das Umschalten des Layouts erfolgt über Alt +          . Die voreingestellte Tastaturbelegung ist in der manpage von xmonad gelistet.

Xmonad hat eine eingebaute Xinerama-Unterstützung, sodass mehrere Bildschirme verwendet werden können. Dabei werden die einzelnen Bildschirme als getrennte Einheiten angesehen, die jeweils einen Workspace darstellen. So ist es bei zwei Bildschirmen beispielsweise möglich, auf dem ersten Bildschirm den Workspace 3 und auf dem zweiten Bildschirm den Workspace 8 anzuzeigen. Nun könnte unabhängig vom zweiten Bildschirm, auf dem ersten Bildschirm zu Workspace 2 gewechselt werden usw. Sollte ein Workspace gewählt werden, der bereits auf einem weiteren Bildschirm sichtbar ist, werden beide Workspaces getauscht.

Der Fokus zwischen den physikalischen Bildschirmen kann mit Alt + W (erster Bildschirm), Alt + E (zweiter Bildschirm) und Alt + R (dritter Bildschirm) gewechselt werden.

Alle Standard-Tastenkombination können auf dem xmonad cheat sheet 🇬🇧 eingesehen werden.

Konfiguration

Damit xmonad konfiguriert werden kann, muss zusätzlich das Paket libghc-xmonad-dev installiert werden. Es empfiehlt sich außerdem das Paket libghc-xmonad-contrib-dev zu installieren. Dieses beinhaltet die sogenannten "contrib" Module, welche zusätzliche Funktionen und Konfigurationsmöglichkeiten bereitstellen.

  • libghc-xmonad-dev

  • libghc-xmonad-contrib-dev

Befehl zum Installieren der Pakete:

sudo apt-get install libghc-xmonad-dev libghc-xmonad-contrib-dev 

Oder mit apturl installieren, Link: apt://libghc-xmonad-dev,libghc-xmonad-contrib-dev

Grundsätzlich findet die Konfiguration über die Haskelldatei ~/.xmonad/xmonad.hs statt. Diese Datei kann beliebigen Haskellcode beinhalten, wodurch sich theoretisch die Möglichkeit ergibt, fast jede beliebige Funktion in xmonad zu integrieren.

Auf der xmonad Website werden dazu ein Konfigurationsleitfaden 🇬🇧 und ein Konfigurationsarchiv 🇬🇧, welches viele Beispielkonfigurationen beinhaltet, bereitgestellt.

Zusätzliche Programme

Xmonad ist ein reiner Fenstermanager. Daher werden bestimmte Programme, die man als Nutzer aus kompletten Desktopumgebungen wie Unity, Gnome oder KDE gewohnt ist, nicht bereitgestellt. Diese können jedoch zusätzlich installiert und beim Starten von xmonad durch einen Eintrag in der Konfigurationsdatei mit gestartet werden.

Statusleiste

Xmonad kann mit verschiedenen Programmen zusammenarbeiten. Häufig finden xmobar oder dzen Verwendung. Im Folgenden wird die Installation und Konfiguration von xmobar 🇬🇧 beschrieben.

Installation

Xmobar kann ebenfalls direkt aus den Quellen installiert werden. [1]

  • xmobar

Befehl zum Installieren der Pakete:

sudo apt-get install xmobar 

Oder mit apturl installieren, Link: apt://xmobar

Konfiguration

Die Konfiguration erfolgt standardmäßig über die Datei ~/.xmobarrc. In dieser Datei werden sowohl das Aussehen und Verhalten der Statusleiste als auch die angezeigten Informationen festgelegt. Letzteres geschieht über das Laden von sogenannten System Monitor Plugins. Xmobar bringt bereits verschiedene Plugins, z.B. für die Anzeige von Wetterdaten, CPU Auslastung oder des Akkustatus mit. Zusätzlich können eigene Plugins entwickelt und eingebunden werden. Eine Beschreibung aller Plugins steht in der Dokumentation 🇬🇧 zur Verfügung. Dort ist auch eine Beispielkonfiguration 🇬🇧 verlinkt.

Damit xmobar beim Start von xmonad entsprechend gestartet wird und die richtigen Informationen angezeigt werden, muss die Konfiguration von xmonad angepasst werden. Es gibt verschiedene Wege dies zu erreichen. Ein einfachen aber dennoch flexibler Weg ist die Verwendung der "statusBar" Funktion innerhalb der "main" Funktion. Diese ist jedoch nur verfügbar, nachdem die xmonad Erweiterung xmonad-contrib installiert wurde.

In der gezeigten Konfiguration wird xmobar als Statusleiste definiert und über xmobarPP werden default Pretty Printing Werte gesetzt. Daraufhin wird die Tastenkombination Mod + b gesetzt, um zu steuern, ob die Statusleiste überdeckt werden soll oder nicht.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import XMonad
import XMonad.Hooks.DynamicLog
[...]

main :: IO ()
main = xmonad =<< statusBar myBar myPP toggleStrutsKey myConfig 

myBar = "xmobar"

myPP = xmobarPP

toogleStrutsKey (XConfig {XMonad.modMask = modMask}) = (modMask, xK_b)

myConfig = defaultConfig

[...]

System Tray

Xmonad kann mit verschiedenen System Tray Anwendungen genutzt werden. Hier wird beispielhaft die Installation und Konfiguration von stalonetray 🇬🇧 beschrieben.

Installation

Stalonetray kann direkt aus den Quellen installiert werden. [1]

  • stalonetray

Befehl zum Installieren der Pakete:

sudo apt-get install stalonetray 

Oder mit apturl installieren, Link: apt://stalonetray

Konfiguration

Damit stalonetray beim Start von xmonad mit startet, kann ein neuer Eintrag in der xmonad-session-rc angelegt werden. Diese liegt standardmäßig in ~/.xmonad/xmonad-session-rc.

1
2
3
[...]
stalonetray &
[...]

Die eigentliche Konfiguration erfolgt durch die Datei ~/.stalonetrayrc. Alle Einträge folgen dem einfachen Muster {Option} {Wert}.

Alle möglichen Optionen können auf der Man-Page oder in der Dokumentation 🇬🇧 nachgelesen werden.

Die Position von stalonetray auf dem Bildschirm wird absolut angegeben. Soll stalonetray auf oder neben einer Statusleiste platziert werden, sollte entsprechend darauf geachtet werden, dass die Positionen so angepasst werden, dass keine Informationen überdeckt werden.

Locking, Mounten von USB-Sticks etc.

Wie bereits erwähnt, stehen viele Funktionen, die von Desktopumgebungen mitgeliefert werden, unter xmonad nicht zur Verfügung, da es sich bei xmonad um einen reinen Fenstermanager handelt. Wird xmonad beispielsweise neben Unity installiert, kann für das Sperren des Bildschirms light-locker verwendet werden, um eine schöne Integration von xmonad zu erreichen. Außerdem kann Nautilus Funktionen wie das automatische Mounten von USB-Sticks übernehmen, da Nautilus bereits installiert sein sollte. Ansonsten lassen sich beide Programme direkt aus den Quellen installieren [1].

  • light-locker

  • nautilus

Befehl zum Installieren der Pakete:

sudo apt-get install light-locker nautilus 

Oder mit apturl installieren, Link: apt://light-locker,nautilus

Nun müssen nur die folgenden Einträge in der ~/.xmonad/xmonad-session-rc ergänzt werden.

1
2
3
4
[...]
light-locker &
nautilus --no-desktop &
[...]

Um den Bildschirm per Tastenkombination zu sperren, kann ein neues Keybinding definiert werden, welches den Befehl spawn "light-locker-command -l" ausführt.

Diese Revision wurde am 28. April 2021 22:53 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Desktop, Fenstermanager