Desktophintergrund

Aus wiki.archlinux.de
(Weitergeleitet von Hintergrundbild anpassen)

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 &

xwallpaper

xwallpaper ist eine alternative zu feh, das im Grunde genommen keinen großen Unterschied zu feh hat. Es besitzt ähnliche Befehle, die jedoch das gleiche Bewirken, jedoch ist xwallpaper um einiges kleiner als feh. Auf der offiziellen wiki-Seite kann man die Befehle von xwallpaper und feh vergleichen.

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. Ein Bambus PKGBUILD ist im AUR-Archiv auf GitHub verfügbar. Im Forum gibt es zudem einen Thread zu dem Programm.

Installation

trizen -S bambus

Verwendung

Gestartet wird mit diesem Befehl:

bambus

Um das Hintergrundbild 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 ausgetrickst 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.

xsetroot

Wem einfache oder einfarbige Hintergründe ausreichen, der kann auch xsetroot benutzen. Dies ist im Paket xorg-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.