Desktophintergrund
Viele einfach gehaltene Fenstermanager wie Openbox, Awesome oder Ratpoison sind oft nicht darauf ausgerichtet, Hintergrundbilder zu verwalten. Man kann dort allerdings zum Beispiel auf den Bildbetrachter „feh“ zurückgreifen. Jedoch könnten dafür auch „display“ aus dem ImageMagick-Paket, „xsetbg“, „Nitrogen“ oder „Bambus“ verwendet werden.
feh
feh ist ein kleiner, schneller befehlszeilenbasierter Bildbetrachter, mittels dem es unter anderem auch möglich ist, das Hintergrundbild des X-Servers anzupassen. Zuerst muss feh natürlich installiert werden.
pacman -S feh
feh bietet viele Optionen, die in der Manpage beschrieben werden. Im einfachsten Fall setzt man ein Hintergrundbild mit dem folgenden Befehl:
feh --bg-center <path>/<image>.png
Der Hintergrund geht jedoch mit Beenden der Session verloren. Um ihn dauerhaft einzurichten wird die Datei ~/.xinitrc um den folgenden Eintrag ergänzt. Der Eintrag sollte vor dem Aufruf des Fenstermanagers stehen:
feh --bg-center /pfad/zur/bilddatei &
Bambus
Bambus ist ein kleines und schlankes GUI, um Hintergrundbilder mit Feh, Esetroot, Hsetroot, Habak, u.Ä. zu zeichnen. Hierzu installiert man eines dieser Pakete mit Pacman. Bambus selbst ist im AUR verfügbar. Im Forum gibt es zudem einen Thread zu dem Program.
Installation
yaourt -S bambus
Verwendung
Gestartet wird mit diesem Befehl:
bambus
Um das Hintergrunbild wiederherzustellen, gibt man diesen Befehl in z.b. die autostart.sh Datei ein:
bambus -restore &
Will man ein beliebiges Wallpaper zeichnen gibt es diesen Befehl;
bambus -any &
Wenn man die Wallpaper nach der Reihe abarbeiten will, hilft dieser Befehl weiter:
bambus -each &
Wallpapers werden per Drag & Drop in das Bambus Fenster hineingezogen. Diese werden auch beim nächsten Start wieder angezeigt. Bambus speichert dies in der .bambus.conf Datei.
Will man Befehle in die Extensionbox von der TextBox (Dort wo man die Befehle eingibt) hinzufügen, muss man nur die .bambus.conf öffnen und einen beliebigen Befehl eingeben:
command_extension=Esetroot -s
Nitrogen
Wenn man es etwas komfortabler – aber dennoch schlank – haben will, kann man auch Nitrogen verwenden um ein Hintergrundbild zu setzen. Nitrogen zeigt alle Bilder in einem festgelegten Verzeichnis als Vorschau an und man kann eines auswählen.
Zuerst muss Nitrogen installiert werden.
pacman -Syu nitrogen
Gestartet wird es mittels „nitrogen“ und der Angabe des Verzeichnisses, aus dem die Bilder geladen werden sollen.
nitrogen /pfad/zum/bilderverzeichnis
Beim Neustart geht der Hintergrund allerdings wieder verloren. Damit der zuletzt aktive Hintergrund beim nächsten Start des Fenstermanagers wieder geladen wird, muss man in der Nitrogen-Oberfläche ein Häkchen bei „Save“ machen und folgendes in die ~/.xinitrc eintragen, auch hier sollte man darauf achten, dass der Aufruf vor dem Start des Fenstermanagers steht.
nitrogen --restore &
zufällige hintergrundbilder mit dual-display
für zufällige bilder auf verschiedenen Displays muss nitrogen augetrickst werden. einfach wp_left.jpg und wp_right.jpg in der gui konfigurieren und statt nitrogen direkt zu starten, dieses script (im hintergrund mit &) aufrufen:
#!/bin/sh cd ~/admin/resource/wallpaper rm wp_left.jpg myfile=`find "./random" -type f -print0 \ | sort --zero-terminated --random-sort \ | sed 's/\d000.*//g'` ln -s "$myfile" wp_left.jpg rm wp_right.jpg myfile=`find "./random" -type f -print0 \ | sort --zero-terminated --random-sort \ | sed 's/\d000.*//g'` ln -s "$myfile" wp_right.jpg nitrogen --restore
display (Imagemagick)
„display“ ist Teil des ImageMagick-Paketes, dieses Paket bietet neben diesem Programm noch eine Reihe weiterer sinnvoller Tools.
pacman -Syu imagemagick
Statisches Wallpaper
Ein statisches Wallpaper kann direkt mit „display“ gesetzt werden. Dazu verwendet man einfach den folgenden Befehl.
display -window root wallpaper.png
Damit das Hintergrundbild nach dem Neustart wieder vorhanden ist, muss man den Aufruf in die Autostart-Datei des Fenstermanagers setzen. Selbstverständlich kann man den Eintrag aber auch in die .xinitrc schreiben:
display -window root .wallpaper.png &
Zufalls-Wallpaper
Möchte man bei jedem X-Start durch ein anderes Wallpaper ein wenig Abwechslung bekommen, dazu aber keine zusätzlichen Programme verwenden, so ist dies zum Beispiel mit folgendem einfachen Script möglich.
#!/bin/bash BASEPATH="/pfad/zum/wallpaperverzeichnis" IMAGE=$(ls ${BASEPATH} | sort -R | head -n1) WALLPAPER="${BASEPATH}/${IMAGE}" display -window root "${WALLPAPER}"
Die Variable „BASEPATH“ definiert hierbei das Verzeichnis, in dem die Hintergrundbilder liegen, und muss natürlich entsprechend angepasst werden. Dieses Script speichert man nun beispielsweise unter „~/.scripts/wallpaper“ ab, und macht es ausführbar. Wenn einem jetzt die Lust, nach einem anderen Wallpaper steht, führt man das Script aus, und kann sich von einem neuen Wallpaper überraschen lassen – vorausgesetzt in BASEPATH befinden sich auch welche …
Dieses Script, bzw. den Aufruf des Scripts, kann man nun statt des direkten „display“-Aufrufs in die autostart.sh von Openbox schreiben. Statt beim X-Start kann man sich das Script auch als Cronjob einstellen. Hier ist allerdings zu beachten, dass dem Script-Eintrag in der Crontab, oder dem Display-Aufruf im Script das gewünschte Display vorangestellt wird. Das aktuelle Display kann mittels
echo $DISPLAY
ausgegeben werden. Nun schreibt man vor den Aufruf einfach „DISPLAY=xxx“, wobei man xxx durch das ersetzt, was das „echo $DISPLAY“ ausgegeben hat. Ein Cronjob, der das Wallpaper alle zwei Stunden ändert, sieht dann zum Beispiel so aus:
0 */2 * * * DISPLAY=:0.0 /pfad/zum/script
Esetroot (eterm)
Das Programm „Esetroot“, das Teil des „eterm“-Paketes ist, kann ebenfalls verwendet werden, das Wallpaper zu setzen. Dazu ist es entweder als Standalone-Version aus dem AUR zu installieren, oder man installiert das Paket „eterm“.
pacman -Syu eterm
Danach ist das Wallpaper mittels …
Esetroot -c /pfad/zum/wallpaper.jpg # Entweder zentriert, oder … Esetroot -s /pfad/zum/wallpaper.jpg # … auf Bildschirmgröße gestreckt
… einstellbar. Wenn das Wallpaper dauerhaft eingestellt werden soll, muss der Aufruf in die Autostart-Datei des Fenstermanager integriert werden.
Ohne Zusatzprogramme
Wem einfache oder einfarbige Hintergründe reichen, der kann auch xsetroot
aus dem Paket xorg-xsetroot benutzen, das bei einer normalen X-Installation als Abhängigkeit automatisch mitinstalliert wird.
xsetroot -cursor_name left_ptr -solid "#2e3436"
Dies stellt einen grauen Hintergrund mit dem normalen Cursor dar. Setzt man den Cursor nicht, erhält man ein X
als Cursor. Mittels des folgenden Befehls erhält man eine Liste mit allen Verfügbaren Cursor-Symbolen.
awk 'NR==30,EOF {print $2}' /usr/include/X11/cursorfont.h | cut -d_ -f2-9
xsetroot
unterstützt X_Bitmaps als einziges grafisches Objekt für den Hintergrund.
xsetroot
Wem einfache oder einfarbige Hintergründe ausreichen, der kann auch xsetroot
benutzen. Dies ist im Paket xort-xsetroot enthalten, und wird während einer normalen X-Installation automatisch als Abhängigkeit mitinstalliert.
xsetroot -cursor_name left_ptr -solid "#2e3436"
Dies stellt einen grauen Hintergrund ein, und setzt den Cursor auf den Standardcursor. Setzt man den Cursor nicht, erhält man ein X
als Desktopcursor. Mittels folgenden Befehls kann man sich eine Liste aller verfügbaren Cursor-Symbole anzeigen lassen.
awk 'NR==30,EOF {print $2}' /usr/include/X11/cursorfont.h | cut -d_ -f2-9
xsetroot
unterstützt als einziges Grafikformat X-Bitmaps. Das sind in C geschriebene, zweifarbig schwarz-weiße Grafiken.
xsetroot -cursor_name left_ptr -bitmap meinbild.xbm
Die Eingabe von lediglich xsetroot
stellt ein einfarbig schwarzes Hintergrundbild mit X
-Cursor ein.