skweez.net

Alles skweez?

1001111101100011011111001000011

27.09.2010

Desktopwallpaper bereits bei der Anmeldung anzeigen

von ritze.

Den Desktoprechner benutze lediglich ich als Benutzer. Daher möchte ich GDM ein wenig personalisieren, zum Beispiel soll mir GDM mein auf dem Desktop benutztes Hintergrundbild anzeigen und nicht jedes mal das langweilige Standardhintergrundbild. Dazu legt man als erstes ein kleines Skript mit den Namen .wallpaper.sh im Heimverzeichnis an:

#!/bin/bash
 
ln -s -f "$(gconftool-2 --get /desktop/gnome/background/picture_filename)" $HOME/.wallpaper
 
exit

Danach editiert man die bereits vorhandene Datei /etc/gdm/PostSession/Default.

#!/bin/sh
 
if [ ${USERNAME} = "max" ]; then
  su $USERNAME -c /home/$USERNAME/.wallpaper.sh
fi
 
exit 0

Somit wird erreicht, dass nach jeder Abmeldung des Benutzers max das eben angelegte Skript .wallpaper.sh im Heimverzeichnis ausgeführt wird. Durch dieses wird ein Link zum aktuell benutzten Hintergrundbild vom Benutzer max angelegt. Nun muss man nur noch GDM mitteilen, dass er .wallpaper als Hintergrundbild benutzen soll:

sudo -u gdm gconftool-2 --type str --set /desktop/gnome/background/picture_filename /home/max/.wallpaper

Natürlich sollte man den Benutzer max mit seinem eigenen Benutzername austauschen.

6 Kommentare:

27.09.2010
23:10

Antworten

Axel

Hi Ritze,

genial! Danach habe ich schon lange gesucht, aber noch nie an so ein Skripting gedacht.

Es gibt aber ein kleines “Problem”: die Hintergrundbilder für den Gdm Login müssen im Verzeichnis “/usr/share/backgrounds” liegen, sonst bleibt der Hintergrund leer. Zumindest ist das bei meinem Ubuntu 10.04 / 64 bit so.

Vielleicht kennst Du ja einen Workarround ?

Viele Grüsse
Axel

28.09.2010
08:12

Antworten

mks

Warum muss das Script nach jedem Abmelden ausgeführt werden? Würde es nicht reichen, den Link einmal anzulegen? Und warum setzt man dann den gconf-Eintrag auch noch? Ich hatte mal nur letzteres versucht und das klappte nicht… ??

Gruß Micha

28.09.2010
08:21

Antworten

Anonymous

Hm, das geht doch auch übers “Anmeldefenster” GUI unter Lokal und dann bei Hintergrund Bild auswählen?

28.09.2010
11:48

Antworten

Axel

So geht’s auch mit Hintergründen, die nicht in /usr/share/backgrounds liegen. Die BDUS Abfrage ist generell nötig, sonst geht’s auch mit Ritzes Vorschlag nicht zuverlässig.

# DBUS Socket Adresse erhalten, sonst klappt es nicht zuverlässig
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS= /proc/$(pgrep -u "$(whoami)" gnome-session)/environ | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//')

MYWALLPAPER="$(su ${USER} -c "gconftool-2 --get /desktop/gnome/background/picture_filename")"
cp "${MYWALLPAPER}" /usr/share/backgrounds/.wallpaper

28.09.2010
11:57

Antworten

Ritze

Hallo Axel,

Du kannst auch ein Link nach /usr/share/backgrounds setzen. Zum Beispiel: „sudo ln -s /home/max/.wallpaper /usr/share/backgrounds/wallpaper“ Und dann wallpaper als Hintergrund einbinden.

@Micha: Wenn man mal das Hintergrundbild als Benutzer auf dem Desktop ändert, bleibt das alte Wallpaper bei GDM weiterhin erhalten. Man muss also irgendwie erreichen, dass bei GDM jedes Mal das aktuelle Hintergrundbild benutzt wird.

@Anonymous: Ich verstehe nicht so recht, was du meinst.

Gruß Ritze

Etwas dazu sagen: