This is a step‑by‑step guide for changing the user avatar and enabling a dark theme on the Qubes OS 4.3 login screen (LightDM). It also explains why the lock screen behaves differently and what is (and isn’t) possible there.
If you see any errors in this guide, please inform me so I can make the necessary corrections.
[details="(IMG) Example"]
[/details]
Qubes OS 4.3 uses LightDM as the display manager for the initial login screen. That’s where you can:
When you lock your session, however, Qubes uses XScreenSaver, which works differently and has separate limitations (covered below).
All changes in this guide happen in dom0.
/etc in dom0 — mistakes can affect your ability to log in.LightDM’s GTK greeter supports a default user image. You can point it to any PNG (or similar) image available in dom0.
# In dom0
sudo cp /usr/share/icons/hicolor/96x96/apps/qubes-logo-icon.png \
/usr/share/pixmaps/my-user.png
sudo chmod 644 /usr/share/pixmaps/my-user.png
You can replace the source path with any image you’ve placed in dom0, but putting the final file under /usr/share/pixmaps/ is a simple, standard choice.
If your profile picture is in an AppVM or DispVM (for example, disp1234), you can copy it into dom0 with qvm-run --pass-io.
Warning: Only do this for images you fully trust. Importing files into dom0 can weaken your overall security if those files are malicious or come from untrusted sources.
~/Downloads/ProfilePicture.jpg.qvm-run --pass-io disp1234 'cat /home/user/Downloads/ProfilePicture.jpg' \
> /usr/share/pixmaps/ProfilePicture.jpg
sudo chmod 644 /usr/share/pixmaps/ProfilePicture.jpg
/usr/share/pixmaps/ProfilePicture.jpg as your avatar path in the LightDM config (next section).Again, before copying anything into dom0, be sure you trust the file and the VM it comes from. Dom0 is supposed to stay as clean and secure as possible.
sudo nano /etc/lightdm/lightdm-gtk-greeter.conf
[greeter] section. If it doesn’t exist, create it. Then add or edit (pick the filename you used above):[greeter]
default-user-image=/usr/share/pixmaps/ProfilePicture.jpg
or, if you used the earlier example:
[greeter]
default-user-image=/usr/share/pixmaps/my-user.png
Make sure there is only one default-user-image= line in the [greeter] section.
Save and exit (Ctrl+O, Enter, Ctrl+X in nano).
Reboot (simplest and safest) so LightDM reloads the config:
sudo reboot
After reboot, your initial login screen should show the new avatar instead of the default icon.
You can tell the LightDM GTK greeter to use a dark GTK theme, and you can control the background image by changing your desktop wallpaper in System Settings.
sudo nano /etc/lightdm/lightdm-gtk-greeter.conf
[greeter], add or update this line (adjust theme name if you like):[greeter]
theme-name=Adwaita-dark
Notes:
- theme-name: The GTK theme. Common dark options in Xfce/Qubes include Adwaita-dark, Greybird-dark, or others you’ve installed.
theme-name= line, either:Comment it out with # and add your own line.
Save and exit, then reboot:
sudo reboot
After reboot, the login window (the LightDM greeter) should use the dark GTK theme.
The login screen background typically follows the system’s desktop background configuration. To change it through the graphical settings:
Your new desktop wallpaper should now be reflected on the login screen background as well.
A key point that often causes confusion:
Consequences:
Not in any simple, supported way. To do that you would need to:
xscreensaver package for Qubes dom0.This is well outside normal configuration and would be unsupported and fragile across updates. Practically speaking, you should treat:
ls -l /usr/share/pixmaps/ProfilePicture.jpg
ls -l /usr/share/pixmaps/my-user.png
sudo chmod 644 /usr/share/pixmaps/ProfilePicture.jpg
Check that default-user-image= is under [greeter] and not misspelled.
Login screen is not using the dark theme
Adwaita-dark).theme-name= lines; keep just one.Reboot fully; don’t rely on just logging out.
Background didn’t change on the login screen
Verify that your desktop wallpaper has changed via:
Log out and back in, or reboot, so the display manager can pick up the change.