Arch mit Xmonad

In Nicht-Hyper-V-Umgebungen installiere ich oft einfach die gesamte Software (als Oneliner).

Beim Hyper-V hat das allerdings über die Jahre manches Mal zu nicht funktionsfähigen X-Oberflächen geführt.

Daher teile ich die Installation in 2 Phasen.

Phase 1: X-Server pur

Jetzt wollen wir also nur die nötigen X-Server / Xorg Tools bereitstellen und testen dann das Ganze mit dem eingebauten TWM (Tom’s - oder auch Tab - Window Manager).

# Minimalinstallation video/x-Server
sudo pacman -S xf86-video-fbdev xorg xorg-xinit xterm xorg-xclock

Das installiert alle Notwendige für die X-Server-Nutzung: xorg, xorg init-Tools, x-Libs, mesa, …

Tipp

Bei Tests und Spielereien mit X-Server und Window Managern sollte man niemals xterm vergessen!

Wir benötigen für das Starten des X-Servers (Tool: startx) eine Konfiguration:

cp /etc/X11/xinit/xinitrc ~/.xinitrc
startx          # Test X mit Standard-TWM siehe: letzte 5 Zeilen in .xinitrc

Die vorliegende Standard-Konfiguration beinhaltet am Ende den Start von twm und die Bereitstellung von xclock und xterm-inals.

...
twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login

Wenn der TWM läuft, dann können wir alles mit exit beenden und uns (ggf. nach reboot) den weiteren Installationen zuwenden.

Status Pakete: pacman -Q | wc -l ergeben jetzt knapp 300 Pakete.

Phase 2: WM Xmonad und Tools/Software

Nach der Basisinstallation trennen sich die Wege für viele Installationsanleitungen.

Ich entscheide mich für den Window Manager Xmonad (basiert auf Haskell) und einer recht vielseitigen Softwareausstattung. Für mich bedeutet Window Manager nicht Einschränkung oder Minimalismus bei der Softwareausstattung. Man könnte das folgende auch stark minimalisieren.

Für die Standardinstallation von Xmonad hier dessen Standard-Shortcuts aus der Haskell-Xmonad-Doku:

Xmonad - Standard Tastenkombinationen (Xmonad Doku)

Xmonad - Standard Tastenkombinationen (Xmonad Doku)

Insbesondere mit Xmonad (Webportal Xmonad) bekommt man eine größere Menge Software auf die Platte, da der WM Xmonad mit Haskell (Webportal Haskell) bereitgetstellt und übersetzt wird.

Wir benötigen also den kompletten GHC (Glasgow Haskell Compiler) und alle nötigen Build und Developer Tools.

pacman -S lxappearance \
   xmonad xmonad-contrib xmobar dmenu dzen2 rofi \
   trayer volumeicon network-manager-applet \
   nitrogen picom awesome-terminal-fonts xdotool xclip gsimplecal arandr \
   rxvt-unicode urxvt-perls firefox mc neovim neofetch xed \
   ranger ueberzug pcmanfm w3m imlib2 highlight poppler sxiv zsh \
   nemo nemo-fileroller nemo-image-converter nemo-preview nemo-terminal \
   alacritty qutebrowser pulseaudio pulseaudio-alsa alsa-utils \
   zathura zathura-pdf-poppler zathura-djvu fzf ripgrep \
   cowsay lolcat sl cmatrix fortune-mod figlet asciiquarium banner

Anm.: die erste Zeile ist hier kürzer, weil dort normalerweise auch die Tools aus Phase 1 aufgeführt sind.

Auszug aus Quittung für sudo pacman -S ... (430 Pakete nach Auflösung):

Gesamtgröße des Downloads:              379,95 MiB
Gesamtgröße der installierten Pakete:  1803,02 MiB

Und natürlich handelt es sich bei dieser Auswahl auch nur um eine beispielhafte Auflistung. Jeder kann hier installieren, wonach der Sinn steht.

Bestenfalls passen dann die Paketnamen noch genau zur Distro und man hat auch die nötigen Dotfiles inklusive Fonts und Co für die vollständige Schnellausstattung eines persönlichen Systems parat.

Hinweis

In einer Hyper-V-VM machen die Audio-Tools pulseaudio, pulseaudio-alsa und alsa-utils die Maschine nicht lauter ;-) Eine Hyper-V-VM hat ohne einen Erweiterten Sitzungsmodus (siehe RDP-Session) keine Sound-Unterstützung.

Und für VirtualBox VMs: pacman -S virtualbox-guest-utils

Gefolgt von: systemctl enable vboxservice.service

Xmonad (re)kompilieren / bereitstellen

Die Xmonad-Konfiguration und die lauffähige Xmonad-Software findet man in: ~/.xmonad.

Hinweis

Dafür benötigt man natürlich eine entsprechende Konfigurationsdatei ~/.xmonad/xmonad.hs.

Wir erstellen die nötige Xmonad-SW und Xmonad-Bibliotheken mit: xmonad --recompile

Wir checken den ~/.xmonad Ordner, der ungefähr so aussehen sollte:

ls -l ~/.xmonad
insgesamt 9016
-rw------- 1 joeb joeb      30 Nov 24 15:24 prompt-history
drwxrwxr-x 2 joeb joeb    4096 Nov 24 16:21 scripts
-rw-rw-r-- 1 joeb joeb       0 Nov 30 19:44 xmonad.errors
-rw-rw-r-- 1 joeb joeb    7279 Nov 24 15:15 xmonad.hi
-rw-rw-r-- 1 joeb joeb   64095 Nov 24 17:13 xmonad.hs
-rw-rw-r-- 1 joeb joeb  823696 Nov 30 19:44 xmonad.o
-rwxrwxr-x 1 joeb joeb 8266168 Nov 30 19:44 xmonad-x86_64-linux
drwxrwxr-x 2 joeb joeb    4096 Nov 24 14:40 xpm

Hier findet sich auch die Konfigurationsdatei xmonad.hs (Haskell-Code).

Für das Standardpanel nutzt man Xmobar (Konfiguration: ~/.config/xmobar/..). Die komplette Darstellung aller Optionen und Konfigurationen sprengt diesen Rahmen.

Hinweis

Für meine Trainees stelle ich fertige Xmonad-Home-Dirs mit Konfigurationen zur Verfügung!

Deutsche Tastatur im WM

Auch in der Terminals unter Xmonad wollen wir Deutsche Tastatur:

# german keymap:
sudo localectl set-x11-keymap de pc105 nodeadkeys compose:rwin

Das sollte uns eine Xorg-Keyboard Konfiguration erzeugen:

/etc/X11/xorg.conf.d/00-keyboard.conf

Picom Special

Mit der Standardsoftware Picom (Paket: picom aus Arch-Repo) hat man klassische Fenstereffekte wie Opazität. Will man etwas mehr Action (z.B. runde Fensterecken, Fensteranimationen) kann man zu alternativen Picom-Entwicklerpaketen greifen.

Und hier kommt der AUR-Helper yay ins Spiel: yay picom-jonaburg-git

Das installiert eine andere Picom-Variante - die Standard-Picom Variante wird deinstalliert. Die Picom-Jonaburg Variante benötigt eine speziell angepasste ~/.config/picom/picom.conf.

…tbc…