GDM-Hintergrund ändern

4548
tourdetour

Ich verwende Archlinux (Antergos) mit installiertem GDM und Gnome. Gibt es eine Möglichkeit, den GDM-Hintergrund zu ändern?

Durch Festlegen des Hintergrunds für die Bildschirmsperre in Gnome-Einstellungen ändert sich der GDM-Hintergrund nur, wenn der Computer gesperrt ist, nicht bei der Anmeldung.

0

2 Antworten auf die Frage

1
tourdetour

GDM verwendet gresource, was bedeutet, dass wir den Hintergrund nicht direkt ändern können. Wir müssen die .geresource-Datei neu erstellen.

Der schnellste Weg dazu ist die Verwendung eines Dienstprogramms namens archibold .

Um es zu installieren:

curl -L -O http://archibold.io/sh/archibold chmod +x archibold sudo mv archibold /usr/bin/ 

Um es zu benutzen :

sudo archibold login-background background.png 

Ersetzen Sie einfach background.png durch den Pfad Ihres neuen Hintergrunds. Sie müssen dann GDM neu starten (zum Beispiel durch einen Neustart).

Kam hier zu sagen, dass Archibold veraltet ist. Hängt derzeit am Boot von F27. Zach vor 6 Jahren 0
1
Zach

Ich habe diese Lösung hier gefunden und ein Skript geschrieben, um sie zu automatisieren. Woo!

Erstellen Sie aus dieser Paste eine XML-Datei , die aufgerufen wird, ~/chgdm-bg-tmp/theme/gnome-shell-theme.gresource.xmlwenn Sie eine Fehlermeldung erhalten Could not find file gnome-shell-theme.gresource.xml.

Edit: das ist kaputt gegangen, als ich von gnome-shell 3.16 auf 3.26 aufgerüstet habe. Der Grund war, dass es Ressourcen gibt, die nicht mehr verwendet werden. Der Befehl glib-compile-resources schlägt daher fehl. Wenn Sie einen Fehler haben, schlage ich vor, die Zeile zu entfernen: <file>more-results.svg</file>und dann sollte sie gut kompiliert werden.

#!/bin/bash  if [ -z "$1" ]; then echo "Usage: ./chgdm-bg <path/to/picture.png> [y/n]" exit 1 fi  echo MAKE SURE YOUR PICTURE IS THE SAME RESOLUTION AS YOUR SCREEN. echo If you dont you will likely regret it. sleep 3  if [ ! -f $1 ]; then echo Error: could not find file $1 exit 1 fi  PIC=$1 WORKDIR=$/chgdm-bg-tmp DATE=$(date +"%Y-%m-%d_%T")  if [ ! -d $WORKDIR ]; then mkdir -p $WORKDIR/theme fi  cd "$/theme" mkdir -p backups  IFS='/' read -r -a array <<< "$PIC" cp $PIC . PIC=$ echo "Target picture: $" chmod 777 $PIC  SHARE=/usr/share/gnome-shell/ GRESOURCE=gnome-shell-theme.gresource CSS=gnome-shell.css XMLRES=gnome-shell-theme.gresource.xml  if [ -f $$ ]; then echo Backing up $$... cp $$ "backups/$.bak.$" cp $$ $GRESOURCE printf "Unpacking binary resource..." for r in `gresource list $GRESOURCE`; do printf "." gresource extract $GRESOURCE $r >$WORKDIR/$ done echo WORKDIR="$/theme/"   if [ -f $ ]; then echo Backing up $... cp "$" "backups/$.bak.$" if [ -f "tmp" ]; then rm -f tmp fi touch tmp awk -v var="$PIC" '/gresource prefix="\/org\/gnome\/shell\/theme">/ { print; printf " <file>"; printf var; print "<\/file>"; next }1' $XMLRES > tmp && mv tmp $XMLRES #sed -n -i "/\ \ \ \ <file>$PIC<\/file>/d" $XMLRES #sed -n -i "/gresource prefix=\"\/org\/gnome\/shell\/theme\">/a \ \ \ \ <file>$PIC<\/file>" $XMLRES else echo Error: could not find file $ exit 1 fi  if [ -f $CSS ]; then echo Backing up $CSS... cp $CSS "backups/$.bak.$" sed -i 's/#lockDialogGroup/#lockDialogGroup-old/' $CSS printf "#lockDialogGroup {\n background: #2e3436 url($);\n background-repeat: no-repeat;\n background-size: cover; }\n" >> $CSS else echo Error: could not find file $CSS exit 1 fi  echo Compiling binary resources... glib-compile-resources $XMLRES echo Copying binary resources over to $... sudo cp $GRESOURCE "$$" sudo cp $CSS "$$"  if [ -z $2 ]; then echo "Restart now? (y/n)" read ans fi  if [ "$2" = "y" ] || [ "$ans" = "y" ]; then echo Restarting... for i in ; do echo $((6-i)) sleep 1 done #/usr/bin/gnome-session-quit --no-prompt #sudo pkill -u $USER sudo shutdown -r now else echo Restart to load your changes. fi else echo Error: could not find file $$ exit 1 fi