Desktophintergrund

Aus wiki.archlinux.de
Version vom 9. Januar 2009, 15:43 Uhr von Boenki (Diskussion | Beiträge) (weitere Fenstermanager)

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“ oder „Nitrogen“ 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 -Sy 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 &

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 -Sy 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 &

display (Imagemagick)

„display“ ist Teil des ImageMagick-Paketes, dieses Paket bietet neben diesem Programm noch eine Reihe weiterer sinnvoller Tools.

pacman -Sy 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