For a while, I was daily driving Fedora Linux on a Microsoft Surface Go Tablet/Laptop hybrid. The hardware with Linux is a brilliant experience, but I needed some bigger screen real estate and more RAM for my work, so I had to invest in a real laptop to replace it.

I began to feel bad about the Surface Go 2 gathering dust. I figured it has enough power to host a few services and podman containers in Linux for my modest home server requirements ( Plex, PiHole, File Server, SSH Jumpbox etc. ), and it could hide in plain sight while functioning as a digital photo frame on my desk.

The Hardware

Behind the Microsoft Surface Go 2 tablet, I tucked a powered USB-C hub connected to Ethernet and a 10TB external HDD.

I already have Fedora Linux installed on the device, so I set up my fstab to auto mount the hard drive, configured a few Podman containers, set up some autossh tunnels and various other things that I do with my home Linux server. It all works great, and the 8GB of RAM in the device is sufficient to run everything at once.

GNOME Kiosk Mode

The exciting part is how I created a digital photo frame. When the machine boots up, it gets to work behind the scenes, but the screen will begin showing a nice photo slideshow without needing any user interaction.

I used the GNOME Kiosk tool to launch the GNOME Image Viewer ( Eye of Gnome ) in single-application mode. When a user account logs in to a graphical session with “GNOME Kiosk” selected as the desktop environment, GNOME displays only a full-screen window of a single application.

I set up GNOME Kiosk on a dedicated user account called “frame”, configured to log in automatically at boot time.

To make the new user

sudo useradd frame

To install GNOME Kiosk in Fedora:

sudo dnf install gnome-kiosk gnome-kiosk-script-session

As the “frame” user, we need to make a few files to configure GNOME Kiosk. First, create the directory .local/bin in the “frame” home directory

mkdir -p ~/.local/bin

Then we create a file in this directory called gnome-kiosk-script. The file will contain a script, in this case, the single command we need to launch a fullscreen image slideshow in the Eye of GNOME image viewer. The contents of the script will be:

eog --fullscreen -w --slide-show /home/frame/Pictures/

Put some photos in the /home/frame/Pictures directory.

To test this works, we can go to the GNOME login screen, select the Kiosk session from the cogwheel button menu and log in.

Once this is confirmed to be working, we can set up automatic passwordless login to the “frame” user by editing /etc/gdm/custom.conf and adding the following lines:

[daemon]
AutomaticLoginEnable=True
AutomaticLogin=frame

I hope this helps someone or inspires some creative use of Linux on spare gadgets.