Openbox - Feh zur Verwaltung ihrer Hintergrundbilder verwenden

von Darrel Johnston (djohnston)


Feh ist ein auf imlib2 basierter Bildbetrachter. Es kann auch dazu verwendet werden, um Ihren Desktop Hintergrund zu verwalten. Es wird nicht sehr oft zu diesem Zweck verwendet, da die meisten Desktop-Umgebungen ihre eigene Hintergrundverwaltung haben. Zwei Ausnahmen sind Fluxbox und Openbox.

Im Remaster von Openbox der PCLinuxOS Gemeinschaft wählte Melodie die Verwendung vom Dateimanager PCManFM, um das Hintergrundbild zu verwalten. Jedoch, wenn Sie im Verzeichnis ~/.config/openbox nachschauen, sehen Sie die autostart.sh-Datei die jedes mal ausgeführt wird, wenn Sie sich bei einer Openbox-Sitzung anmelden. In der Datei befinden sich ein paar kommentierte Zeilen für die Verwendung von Feh um Hintergründe anzuzeigen. Werfen Sie einen Blick auf diesen Abschnitt der Datei.

# a random desktop background. There can be one only, it
# works with the same command line. I insist : uncomment ONE LINE ONLY !
# tip : take the second one if you have several wallpapers and want a different
# one at each session.
# feh --bg-scale "$(find ~/.local/wallpapers -type f)" &
# feh --bg-scale "$(find ~/.local/wallpapers -type f |sort -R |tail -1)" &

Lassen Sie uns untersuchen, was jede der beiden Optionen bewirkt. Das erste Beispiel ist das einfachere. Sie verwendet den Befehl find, um eine Datei im Verzeichnis ~/.local/wallpapers zu finden (~ = ihr home-Verzeichnis). Der resultierende Wert der Zeichenfolge wird von feh gelesen. Der Parameter –bg-scale weist feh an, das Bild auf die Größe des Desktops zu skalieren. Mögliche Parameter sind:

--bg-center
Zentrieren Sie die Datei im Hintergrund. Wenn es zu klein ist, wird es von einem schwarzen Rahmen umgeben werden

--bg-fill
Wie--bg-scale, aber behält das Seitenverhältnis bei dadurch wird das Bild soweit vergrößert, bis es passt. Ein horizontaler oder vertikaler Teil des Bildes wird abgeschnitten

--bg-max
Wie--bg-fill, skaliert aber das Bild auf die maximale Größe, sodass an einem Bildschirmrand ein schwarzer Streifen erscheint.

--bg-scale
Passt die Datei in den Hintergrund ein, ohne zu wiederholen, zu Beschneiden oder Ränder zu verwenden. Jedoch wird auch das Seitenverhältnis nicht beibehalten.

--bg-tile
Kachelt (auch wiederholt) das Bild wenn es für den Bildschirm zu klein ist.

Beachten Sie, wenn sich mehr als eine Datei im Verzeichnis ~/.local/wallpapers befindet, so werden Sie eine Fehlermeldung erhalten: “feh ERROR: Couldn’t load image in order to set bg”.

Die zweite Option verwendet auch den Befehl find um eine Datei im Verzeichnis ~/.local/wallpapers zu finden. Aber diese Option ist für mehr als nur ein Hintergrundbild. Die Liste der Dateien wird an den Befehl sort übergeben, und der Parameter -R sortiert die Liste in einer zufälligen Reihenfolge. Die zufällig sortierte Liste wird dann an den Befehl tail übergeben, welcher die letzte Datei in der sortierten Liste findet. Der Wert der Zeichenfolge der daraus resultierenden Datei wird von feh gelesen, das Bild auf die Größe des Desktop skaliert. Mit dieser Option erhalten sie jedes Mal einen zufällig ausgewählten Hintergrund wenn Sie sich in einer Openbox Sitzung anmelden.

Angenommen, Sie möchten das Hintergrundbild alle paar Minuten oder Stunden wechseln. Um die Hintergründe zufällig zu wechseln, erstellen Sie ein Skript mit dem Code der unten dargestellt ist (z. B. wallpaper.sh). Machen Sie das Skript ausführbar (chmod +x wallpaper.sh) und rufen es über ~/.xsession auf. Sie können den Quellcode auch direkt in ~/.xsession eintragen anstatt ihn in einer separaten Datei abzulegen. Ändern Sie die Verzögerung "15 m" nach Ihren Wünschen (sehen Sie unter man sleep für weitere Optionen).

#!/bin/sh
while true; do
            feh --bg-scale "$(find ~/.local/wallpapers -type f |sort -R |tail -1)" &
            sleep 15m
done

Eine weitere Möglichkeit für die Ausführung ist unten dargestellt.

#!/bin/sh
while true; do
            find ~/.wallpaper -type f -name '*.jpg' -o -name '*.png' -print0 |
                    shuf -n1 -z | xargs -0 feh --bg-scale
            sleep 15m
done

Nachdem feh zum ersten Mal ausgeführt wurde, wird die versteckte Datei .fehbg in Ihrem home-Verzeichnis angelegt. Wenn Sie jedes Mal das selbe Hintergundbild verwenden möchten wenn Sie sich einloggen, so können Sie die Zeile sh ~/.fehbg & zur Datei ~/.config/openbox/autostart.sh hinzufügen.

Beachten Sie, dass wenn Sie feh für die Verwaltung Ihrer Hintergrundbilder in der Openbox-Edition verwenden möchten, müssen Sie die Zeile /usr/bin/pcmanfm --desktop & die in der Datei ~/.xsession vorkommt kommentieren. Die meisten Anweisungen, die ich gesehen habe besagen das die Datei ~/.xinitrc bearbeitet werden soll. Das Kommentieren der Zeile pcmanfm in der Datei ~/.xinitrc bewirkte bei mir nichts. Beachten Sie ebenfalls, dass ich die Openbox Version Bonsai-2010.11 verwende.