Setting Up Automatic Login and Kiosk Mode on a Linux Mini PC (September 2026)

I set up my first Linux mini PC as a kitchen dashboard a few years ago, and the hardest part was not the hardware. It was convincing the OS to skip the login screen and boot straight into a single browser window, then keep that window alive forever. This guide walks through the exact workflow I now use on every Linux mini PC kiosk I deploy in 2026, covering user creation, display-manager configuration, browser flags, and the small annoyances that always break a fresh setup.

By the end of this article you will know how to turn any small-form-factor Linux box into a locked-down, single-purpose machine that boots into one application and stays there, no mouse, no desktop, no distractions.

What Is Linux Kiosk Mode and Why Use It on a Mini PC?

Linux kiosk mode is a configuration where the operating system boots directly into a single application, usually a web browser, and locks the user inside that application. The user cannot reach the desktop, switch programs, or log out without elevated credentials. Everything outside the kiosk app is hidden or disabled.

On a Linux mini PC this setup shines because the hardware is small, fanless, and cheap to run 24/7. I have mini PCs bolted behind lobby displays, on factory floors, and inside retail menu boards. The same pattern also works for Home Assistant dashboards, museum interactives, conference room schedulers, and airport arrival boards.

The most common use cases I see requested in forums are digital signage, information displays, and interactive kiosks. Each one wants the same thing: turn on, show the page, never ask a question.

Before You Start: Prepare Your Linux Mini PC

You will need a working Linux installation on the mini PC, a user with sudo rights, and either a directly attached display or remote access for testing. Any modern distro from Ubuntu, Debian, Fedora, or Linux Mint works, but the exact files you edit depend on the display manager.

Find your display manager before you change anything. Run cat /etc/X11/default-display-manager and note the result. You will usually see /usr/sbin/gdm3, /usr/sbin/lightdm, or /usr/sbin/sddm. This single command tells you which set of instructions to follow in step 2.

Update the system before configuring anything, because an out-of-date desktop session can behave differently after a restart. A quick sudo apt update && sudo apt upgrade on Debian-based systems or sudo dnf upgrade -y on Fedora is enough.

Step 1: Create a Dedicated Kiosk User Account

Always run the kiosk as its own user, never as root or as your everyday admin account. A separate account limits blast radius if the browser is compromised and lets you tailor permissions cleanly.

Create the account with a home directory but no password. A passwordless account is the simplest way to enable automatic login without leaving an empty password prompt on the screen.

Run the following commands. Replace kiosk with whatever username you prefer.

  • sudo useradd -m -s /bin/bash kiosk creates the user and home directory.

  • sudo passwd -d kiosk removes the password so automatic login can succeed.

  • sudo usermod -aG audio,video,netdev kiosk grants the hardware groups a browser typically needs.

I also recommend giving the kiosk user a friendly Comment field, like “Digital Signage Display”, so anyone logging in later knows what the account is for.

Step 2: Enable Automatic Login for the Kiosk User

Automatic login tells the display manager to skip the greeter and log a specific user straight into a desktop session. Each display manager has its own file. I keep the three most common ones in this section so you can pick the one that matches your system.

GDM (GNOME Display Manager)

Open /etc/gdm3/custom.conf with sudo and find the [daemon] section. Add or uncomment the two lines below, replacing kiosk with your username.

  • AutomaticLoginEnable=true

  • AutomaticLogin=kiosk

Save the file and reboot. GDM will now skip the greeter entirely. If you want a delay before login, you can use TimedLoginEnable=true and TimedLogin=kiosk instead, with a TimedLoginDelay in seconds.

LightDM

LightDM uses a directory of *.conf snippets, which keeps overrides clean and easy to revert. Create a new file with sudo.

Run sudo nano /etc/lightdm/lightdm.conf.d/50-kiosk.conf and paste the following contents.

  • [SeatDefaults]

  • autologin-user=kiosk

  • autologin-user-timeout=0

  • user-session=gnome (or xfce, ubuntu, etc., matching your installed session)

The timeout of zero means login happens immediately. You also need to add the kiosk user to the nopasswdlogin group on some distros so LightDM does not refuse the autologin request.

SDDM (KDE)

SDDM reads configuration from /etc/sddm.conf.d/. Create a file there named kiosk.conf and add these lines.

  • [Autologin]

  • User=kiosk

  • Session=plasma.desktop

  • Relogin=false

Reboot and SDDM will drop you straight into Plasma as the kiosk user. If your mini PC runs a lighter session like LXQt, change the Session= value to match.

AccountsService Alternative

On distros that use AccountsService, you can flip the same switch with one command: sudo chage -d 0 kiosk followed by editing /var/lib/AccountsService/users/kiosk and setting SystemAccount=false. This works on Ubuntu GNOME and several Fedora spins.

Step 3: Install Chromium or Firefox for Kiosk Display

Most kiosk deployments run a web app, so the browser is the heart of the system. Chromium and Firefox both have first-class kiosk support, and the choice usually comes down to which one ships in your distro’s repo and which flags you prefer.

Install Chromium on Debian and Ubuntu with sudo apt install chromium-browser. On Fedora, use sudo dnf install chromium. For Firefox, install firefox-esr on Debian-based systems or the regular firefox package on Fedora.

I default to Chromium because the --kiosk flag is rock-solid and behaves the same across ARM and x86 mini PCs. Firefox is a great alternative when you need wider codec support or want to keep a single Mozilla-based stack.

Step 4: Launch the Browser in Fullscreen Kiosk Mode

A bare launcher command is not enough. You need a wrapper script that restarts the browser if it crashes, sets a few safety flags, and runs at session start. This is the part most guides skip, and it is the part that saves you in production.

Chromium Launch Flags

Start Chromium with the flags below. Replace the URL with your real dashboard or signage page.

  • chromium --kiosk --noerrdialogs --disable-infobars --disable-session-crashed-bubble --disable-features=TranslateUI https://your-dashboard.local

  • Add --no-first-run to suppress the welcome tour.

  • Add --disable-pinch --overscroll-history-navigation=0 to keep touch users from navigating away.

The --kiosk flag forces fullscreen and hides most chrome. The remaining flags silence the dialogs that would otherwise pop up after a crash and ruin the “always on” feel.

Firefox Launch Flags

Firefox uses -kiosk for fullscreen. A typical launch line looks like firefox -kiosk -private-window https://your-dashboard.local. The private window flag prevents Firefox from restoring old tabs and avoids most “session restore” prompts after a restart.

Auto-Start With XDG Autostart

Place a .desktop file in ~/.config/autostart/ as the kiosk user. Name it kiosk-browser.desktop and use the contents below.

  • [Desktop Entry]

  • Type=Application

  • Name=Kiosk Browser

  • Exec=/home/kiosk/start-kiosk.sh

  • X-GNOME-Autostart-enabled=true

  • NoDisplay=false

  • Terminal=false

Wrapper Script With Auto-Restart

Create /home/kiosk/start-kiosk.sh with the body below. This loop is the single biggest reliability boost I have found, because browsers do eventually crash, and you want the kiosk to recover on its own.

  • #!/usr/bin/env bash

  • while true; do chromium --kiosk --noerrdialogs https://your-dashboard.local; sleep 5; done

  • Run chmod +x /home/kiosk/start-kiosk.sh so it is executable.

The five-second sleep prevents a tight crash loop if the page itself is down. If you want a hard reboot after repeated failures, wrap the loop in a counter and call sudo systemctl reboot on the third failure.

Fix Common Kiosk Pitfalls: Keyring Prompts, Screen Blanking, and Power

Every Linux kiosk I have deployed eventually surfaces the same handful of annoyances. None of them are fatal, but each one can keep the screen from being “always on”. Here is the fix list I apply to every build in 2026.

Disable the GNOME Keyring Prompt

Chromium and Firefox will sometimes pop up a keyring unlock dialog the first time they run, asking for a password that the kiosk user does not have. Empty the keyring permanently so the dialog never appears.

  • sudo rm -f /home/kiosk/.local/share/keyrings/*.keyring

  • Or set org.gnome.desktop.session idle-delay 0 via gsettings and disable keyring prompts with echo "" > /home/kiosk/.local/share/keyrings/login.keyring.

Stop Screen Blanking

Two layers control blanking: the X server and logind. Cover both. Run xset s off && xset -dpms && xset s noblank inside the wrapper script before launching the browser. Then edit /etc/systemd/logind.conf and set HandleLidSwitch=ignore, IdleAction=ignore, and ScreensaverConflictsWithDPMS=false.

Disable the Power Button

On a public-facing kiosk, a curious user pressing the power button should not log out the session. In logind.conf add HandlePowerKey=ignore and reload with sudo systemctl restart systemd-logind.

Hide the Mouse Cursor

Install unclutter with sudo apt install unclutter and add unclutter -idle 0 & to the wrapper script. The cursor disappears after a moment of inactivity and only returns when someone wiggles the mouse.

Lock It Down: Security Considerations for a Public-Facing Kiosk

Kiosks live in spaces you do not control, so treat them like any other public terminal. The browser is locked, but the OS underneath is still Linux, and a determined user can hit Ctrl-Alt-F2 to reach a TTY.

Disable virtual terminal switching with a line in /etc/X11/xorg.conf.d/10-kiosk.conf:

  • Section "ServerFlags"

  • Option "DontVTSwitch" "true"

  • Option "DontZap" "true"

  • EndSection

Restrict sudo for the kiosk user by adding kiosk ALL=(ALL) NOPASSWD: ALL to /etc/sudoers.d/kiosk only if the machine has no physical access. On a lobby display, leave sudo empty so the user cannot elevate.

Enable the firewall with sudo ufw default deny incoming && sudo ufw allow out. Remove any services you do not need, like SSH, Bluetooth, or a print server. Finally, enable automatic security updates with unattended-upgrades on Debian or dnf-automatic on Fedora.

Testing and Troubleshooting Your Kiosk Setup

Reboot the mini PC and watch the screen. If the kiosk does not come up correctly, plug in a keyboard and hold Ctrl-Alt-F2 to reach a TTY, log in as your admin user, and start debugging.

Check three log sources in order. journalctl -u gdm or journalctl -u lightdm shows display-manager failures. ~/.xsession-errors shows what the user session tried to run. journalctl -u display-manager -b is your friend when a service fails on boot.

If the browser keeps crashing, open it manually as the kiosk user and look at the console. Most of the time the page itself is sending the browser into a loop, often because of a session cookie expiring or a WebSocket reconnect storm.

For long-term reliability, wrap the launch script in a systemd user service so systemd restarts it on every failure. Create ~/.config/systemd/user/kiosk-browser.service with Restart=always and RestartSec=5, then enable it with systemctl --user enable kiosk-browser.service.

Frequently Asked Questions

How do I enable automatic login in Linux?

Edit your display manager’s config file. For GDM set AutomaticLoginEnable=true and AutomaticLogin=kiosk in /etc/gdm3/custom.conf. For LightDM add autologin-user=kiosk under [SeatDefaults] in /etc/lightdm/lightdm.conf.d/. For SDDM create /etc/sddm.conf.d/kiosk.conf with User=kiosk under [Autologin]. The kiosk user must have no password, which you set with sudo passwd -d kiosk.

Does Linux have a kiosk mode?

Linux does not have a single ‘kiosk mode’ button, but it has all the building blocks. You combine a passwordless user, automatic login in your display manager, an autostart entry, and a browser launched with u002du002dkiosk or -kiosk flags to create a locked-down single-app environment. GNOME also ships a dedicated gnome-kiosk-script-session that some distros use for the same purpose.

Can Windows 11 do kiosk mode?

Yes. Windows 11 Pro and Enterprise include Assigned Access, which locks a user account to a single Universal Windows app. It is similar in spirit to a Linux kiosk but requires volume licensing for the best features, like multiple-app kiosks and lockdown policies. Many small deployments still prefer Linux because the tooling is free and the hardware footprint is smaller.

Does Linux Mint have a kiosk mode?

Linux Mint uses LightDM by default, so the LightDM instructions in this guide apply directly. Create a passwordless user, drop a config file in /etc/lightdm/lightdm.conf.d/ with autologin-user, then add a wrapper script to that user’s ~/.config/autostart folder. Cinnamon, MATE, and Xfce editions all support the same flow.

Final Thoughts on Building a Linux Mini PC Kiosk

The whole workflow shrinks to four moves once you have done it twice: create a kiosk user, enable automatic login, install Chromium or Firefox with the right flags, and wrap the launch in a restart loop. Everything else, from keyring prompts to screen blanking, has a one-line fix.

Start small, test with the real display attached, and only then bolt the mini PC to the back of the screen. Once your Linux mini PC kiosk survives a clean reboot and a power-cycle test, it is ready for the lobby, the kitchen, or the factory floor in 2026.

Leave a Comment