HowTo: randomize LightDM / XFCE v4.x login screen wallpaper images.
For fans of the lightweight and highly configurable linux desktop environment XFCE, with it's default Greeter managed by LightDM, it's a frustrating fact of reality that there is no built in way to randomize the login screen image. This simple perl script and directory layout will provide that service using a cron job. The process will copy a random image file from a directory that contains a pool of images into a 'publish' directory; as background.jpg
. XFCE then uses that image as the background for the login screen once configured.
Overview:
The basic premise of this procedure will be:
- populate some directory with images you want to use for login backgrounds.
- setup a cron job to run a script to copy a random image from the source directory into a
publish
directory - XFCE will use that image as the login screen background image.
TL;DR:
An example project for configuring randomized login screens for XFC can be found here
Single vs Multi User system and encrypted home
directories:
- Single-user systems that do not use encrypted home directories you can use a directory within your home directory (i.e.
/home/karl/Repositories/LoginWallpaper-XFCE-Variety
). - Multi-user systems that use a program like variety will need to use a user-group level directory location. (i.e.
/opt/LoginWallpaper-XFCE-Variety
) - Single-user and Multi-user system that use encrypted home directories will need to use a user-group level directory location (i.e.
/opt/LoginWallpaper-XFCE-Variety
)
Generic setup
Examples will assume a multi-user system with encrypted home directories.
clone the example project to an appropriate directory:
# a global directory space
cd /opt
#
# clone the project
sudo git clone git@github.com:karlredman/LoginWallpaper-XFCE-Variety.git
#
# set permissions on the project directory
sudo chown -R root:users LoginWallpaper-XFCE-Variety
add images to the image directory Variety
- Add whatever
jpg
images you deem worthy / safe to be on a login screen. For this example the images you add will go into/opt/LoginWallpaper-XFCE-Variety/Variety/
. - Do verify that your images belong to
users
group -change as necessary
run the project script to seed the publish
directory
(i.e. /opt/LoginWallpaper-XFCE-Variety/Greeter/background.jpg
)
- seed the file
cp $(/opt/LoginWallpaper-XFCE-Variety/mbin/print_random_file.pl /opt/LoginWallpaper-XFCE-Variety/Variety) /opt/LoginWallpaper-XFCE-Variety/Greeter/background.jpg
- verify the file exists -troubleshoot...
ls /opt/LoginWallpaper-XFCE-Variety/background.jpb
Configure LightDM Greeter via the GUI interface
- start the greeter config app using one of these methods:
- via the GUI menu for
LightDM GTK Greeter settings
- name may vary based on linux desktop distribution
- via command line
- via the GUI menu for
sudo lightdm-gtk-greeter-settings
Select
Background->Image
-
Set
Image
to<path>/background.jpg
- i.e.
/opt/LoginWallpaper-XFCE-Variety/Greeter/background.jpg
- the name
background.jpg
is required
- i.e.
Save the setting and exit the app
test and debug
If you are having issues try to run the command manually.
add cron job
- open cron in your default editor:
cron -e
- add the job (example)
# change to wallpaper every 10 min
*/10 * * * * cp $(/opt/LoginWallpaper-XFCE-Variety/mbin/print_random_file.pl /opt/LoginWallpaper-XFCE-Variety/Variety) /opt/LoginWallpaper-XFCE-Variety/Greeter/background.jpg
Using Variety
as the image source:
Variety is a wallpaper background manager that is available for several linux distributions and is compatible with several desktop managers. One of the options variety
offers is the ability to manage your login greeter image.
- open variety preferences and navigate to
customize
tab - select
Login Screen Support
checkbox - specify the image directory (i.e. /opt/LoginWallpaper-XFCE-Variety/Variety)
Top comments (0)