I am using Fedora linux. Most people in our household use Gnome3 but I use Xmonad (which is similar to awesome, but better). This is no problem, as I have Xscreensaver running.
When Xscreensaver is started and saving the screen and you move the mouse, there are two options below the password entry field: New Login
and OK
. The last is for accepting the password to unlock the screensaver. The other one starts GDM on a new VT.
All of this worked out of the box. I just installed Fedora, then Xmonad and Xscreensaver. And I’ve set the option to lock the screen if Xscreensaver saves the screen. Because otherwise you don’t have the option for a new login but just quit the screensaver on mousemovement.
Maybe this is similarly easy to configure in Arch linux. Or maybe you could just crib from Fedora (or from a Fedora forum or ask.fedoraproject.org).
I did not try if this works with Gnome-Screensaver somehow. But Xscreensaver anyway fits better to Xmonad.
(Tested on Ubuntu Gnome Shell 16.04+)
Two ways. If you want to know what exactly you are doing, follow Solution #1. If you want a single script to do all for you, follow Solution #2 (All it does it automate Solution #1)
Solution 1
Background Info: Gnome Login Background is not a parameter which you can change directly (weird!). It's present within Gnome Shell CSS file which is present in binary file. Hence, you have to extract binary file, modify it, and replace new binary with old file.
Step1: Extracting Gnome shell binary file
Run the following script extractgst.sh
to extract Gnome shell theme to ~/shell-theme
directory
#!/bin/sh
workdir=${HOME}/shell-theme
if [ ! -d ${workdir}/theme ]; then
mkdir -p ${workdir}/theme
fi
gst=/usr/share/gnome-shell/gnome-shell-theme.gresource
for r in `gresource list $gst`; do
gresource extract $gst $r >$workdir/${r#\/org\/gnome\/shell/}
done
Step2: Modifying it
- Copy your background image to this folder
~/shell-theme/theme
.
- Create file
~/shell-theme/theme/gnome-shell-theme.gresource.xml
with content
- Replace filename with your background image filename
Now, open the gnome-shell.css
file in the directory and change the #lockDialogGroup
definition as follows:
#lockDialogGroup {
background: #2e3436 url(filename);
background-size: [WIDTH]px [HEIGHT]px;
background-repeat: no-repeat;
}
Set filename to be the name of the background image and background-size to your resolution.
Step3: Create new Gnome shell theme binary and replacing existing
Inside theme directory, run
glib-compile-resources gnome-shell-theme.gresource.xml
You will get a binary file. Copy it to
/usr/share/gnome-shell
Now restart GDM using
service gdm restart
If it doesn't work or got stuck, restart your computer to see your new login wallpaper :))
Solution 2
Ok, as promised, there is a simpler way to automate all this. Simply save this script as login-background.sh
WORKDIR=~/tmp/gdm-login-background
GST=/usr/share/gnome-shell/gnome-shell-theme.gresource
GSTRES=$(basename $GST)
mkdir -p $WORKDIR
cd $WORKDIR
mkdir theme
for r in `gresource list $GST`; do
gresource extract $GST $r >$WORKDIR$(echo $r | sed -e 's/^\/org\/gnome\/shell\//\//g')
done
cd theme
cp "$IMAGE" ./
echo "
#lockDialogGroup {
background: #2e3436 url(resource:///org/gnome/shell/theme/$(basename $IMAGE));
background-size: cover;
background-repeat: no-repeat;
}" >>gnome-shell.css
echo '<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/shell/theme">' >"${GSTRES}.xml"
for r in `ls *.*`; do
echo " <file>$r</file>" >>"${GSTRES}.xml"
done
echo ' </gresource>
</gresources>' >>"${GSTRES}.xml"
glib-compile-resources "${GSTRES}.xml"
sudo mv "/usr/share/gnome-shell/$GSTRES" "/usr/share/gnome-shell/${GSTRES}.backup"
sudo mv "$GSTRES" /usr/share/gnome-shell/
rm -r $WORKDIR
if [ "$CREATED_TMP" = "1" ]; then
rm -r ~/tmp
fi
Run the script using
IMAGE=~/Bat.jpg sh login-background.sh
Now restart gdm using service gdm restart
or restart laptop for your new login background :))
References:
https://wiki.archlinux.org/index.php/GDM
https://bbs.archlinux.org/viewtopic.php?id=197036
Best Answer
The ArchWiki is a very good source of information. This is where I found the following:
You may end up with an Xauth error. If that happens, try
gksudo
instead ofsudo
. If the error persists, you can do this:This gives you the xauth cookie being used by your user. Copy the output, then run the following, replacing "" with the output of the previous command.
This logs you in as the gdm user, adds the cookie, permitting gdm to use your display, and launches gnome-appearance-properties.