Replacing the login and lock screens on a Raspberry Pi

My uConsole computer finally arrived after a 10-month delay. I started kicking the tires by installing fun software on it, and quickly realized it’d run better if it looked cool. Here’s how I did it.

Change the boot image

Raspberry Pi OS uses Plymouth to make show a boot splashscreen. By default, it displays the image file at /usr/share/plymouth/themes/pix/splash.png. I’m sure there’s a “better” way to do this, but I simply replaced that file with my own 1280x720 image (to match the screen’s native resolution):

$ cd /usr/share/plymouth/themes/pix
$ sudo cp splash.png splash.png-dist  # Keep a backup
$ sudo cp myimage.png splash.png
$ sudo plymouth-set-default-theme --rebuild-initrd pix

That last line rebuilds the initrd image so that the kernel will use the new image.

Photo of a uConsole with a Hackers movie-style boot screen with blue plasma flames and a yellow flame logo inside a red trapezoid.

Change the lock image

I use Wayland instead of X11, and that setup uses pi-greeter to show a lock screen. That requires editing /etc/lightdm/lightdm.conf. I copied my new user image to /usr/share/plymouth/themes/pix/smiley.png, which isn’t the right place to put it exactly, but has it living next to the splash.png I installed in the previous step. Then I backed up lightdm.conf and edit its default-user-image and wallpaper values like so:

--- pi-greeter.conf-dist        2026-06-22 18:52:53.702242786 -0700
+++ pi-greeter.conf     2026-06-22 18:55:06.519726407 -0700
[@@](https://micro.blog/@) -1,7 +1,7 [@@](https://micro.blog/@)
 [greeter]
-default-user-image=/usr/share/raspberrypi-artwork/clockworkpi.png
+default-user-image=/usr/share/plymouth/themes/pix/smiley.png
 desktop_bg=#000000
-wallpaper=/usr/share/rpd-wallpaper/RPiSystem_dark.png
+wallpaper=/usr/share/plymouth/themes/pix/splash.png
 wallpaper_mode=center
 gtk-icon-theme-name=PiXflat
 gtk-font-name=Nunito Sans 12

Note that usr/share/raspberrypi-artwork/clockworkpi.png doesn’t even exist by default, so the lock screen falls back to a boring silhouette of a person.

The same image, but showing a username/password prompt. The icon is a yellow smiley with a black patch over one eye.

Make the screen automatically lock

I’m teaching my coworkers not to trust leaving their laptops unlocked, and I have to practice what I preach. I want my screen to automatically lock if I ever forget to manually do it. That’s easy! Edit the ~/.config/labwc file like this:

--- autostart-dist      2026-06-22 19:12:18.204495749 -0700
+++ autostart   2026-06-22 19:12:12.708859097 -0700
[@@](https://micro.blog/@) -1 +1 [@@](https://micro.blog/@)
-swayidle -w timeout 600 'wlopm --off \*' resume 'wlopm --on \*' &
+swayidle -w timeout 300 'swaylock -f -p' timeout 600 'wlopm --off \*' resume 'wlopm --on \*' &

The extra timeout 300 'swaylock -f -p' locks the screen after a 5 minute idle timeout.

The same screen, but with a black password box in the middle of the display.

Ta-da!

And that’s it! Reboot and enjoy your cool graphics and slightly more secure setup.

Bonus rant: every time I accidentally launch Chrome and try to quit it and it blocks me with its stupid non-standard highjacking of what cmd-Q means, I’m tempted to defenestrate my laptop until I remember that I can fix that broken setting in its preferences.

I remember when I use to like Chrome and appreciated its design. Believe it or not, it was a pretty nice browser nearly 20 years ago.

Why yes, you can run Factory’s Droid on a Raspberry Pi. Not officially, sure. This isn’t part of our CI/CD pipeline and we’re not publishing packages for it the way we do for our supported platforms. Still, it works!

Photo of a uConsole handheld computer displaying the Droid text logo in a terminal window.

Uber’s tired of getting sued for breaking laws so they’re trying to change them. Vote no.

Honestly, getting me to take the side of ambulance chasers is quite the accomplishment. I’m impressed by their dedication to evil.

A sign claiming to protest trial lawyers getting paid, with a banner at the bottom saying that Uber is the top funder of the campaign.

Some tourists flagged me down outside the 4th and King Caltrain station to help with transit directions to Golden Gate Bridge. Their app had them walking up through the TL to catch a bus. I got them safely loaded onto a Muni to Powell to make that leg of it a lot easier. I hope. I wish they’d just taken my advice to get a cab or rideshare.

From the text of the agreement to end Trump’s War:

  1. Pending the final Deal, the Islamic Republic of Iran and the United States of America agree to maintain the status quo; the Islamic Republic of Iran will maintain the current status quo of its nuclear program, and the United States of America will not impose any new sanctions, and will not deploy any additional forces in the region.

This return to the status quo cost 7-10K killed and 50K injured and $113B to the US alone.

Please, can we stop winning now? We can’t afford any more of these stupid victories.

Welp, I’ve agreed to be a panelist in a Shark Tank-style event where CISOs judge startup ideas. This is incredibly far out of my daily routine and comfort zone, so I felt obligated to say yes and commit to it before I had a chance to let myself back out.

Finished reading: Accelerando by Charles Stross 📚

Alright, so this was not the best written book I’ve stumbled across. It was alright, but Strunk & White cried a few times along the way. But the world building and imagination and prediction accuracy? Fantastic. It’s not high art, but art nonetheless.

Anthropic’s leaning in to the whole nanny state thing.

(This is a real, actual screenshot.)

Screenshot of a chat with Opus 4.8:&10;&10;Question: "Do any lyrics in Madonna's "Papa Don't Preach" explicitly refer to an infant child, as opposed to an affectionate nickname for her lover?"&10;&10;Answer: "Request blocked by provider safety checks. Please modify your request and avoid high-risk cyber activity instructions."