Don’t Let Desktop Environments Ruin User Experience
You’ve likely seen advertising displays at airports or queue number machines at hospitals suddenly showing… Windows update windows or the Ubuntu taskbar. Not only is this unprofessional, but it also invites curious users to exit the browser to access the Terminal or change the wallpaper. This is exactly where Kiosk Mode comes in.
In reality, installing a full distribution like Ubuntu Desktop with GNOME just to run a website is a massive waste of resources. After years of deploying embedded systems, I’ve found that the more you remove unnecessary components, the fewer glitches occur. Openbox – a Window Manager weighing only a few MBs – is the top choice for creating a minimalist environment that forces the computer to run only one specific application.
Comparing Kiosk Mode Setup Methods
There are several ways to lock a computer into a single application. Each method suits a specific hardware configuration level.
1. Leveraging Existing Desktop Environments (GNOME/KDE)
This is the easiest but also the heaviest method. A standard Ubuntu Desktop consumes about 800MB – 1GB of RAM right at startup. The system has to carry dozens of background services like software updates, Bluetooth management, or file managers – all completely useless for an information kiosk.
2. Running Applications Directly on X11 (No Window Manager)
This is the most extreme approach: start the X Server and call the browser directly. It’s incredibly lightweight but causes issues with pop-up windows or error messages. Without a window manager, applications often fail to center themselves or go full screen reliably.
3. The Balanced Solution: Openbox Window Manager
Openbox consumes only about 15-20MB of RAM while providing enough basic window management capabilities. It allows you to handle shortcuts, automatically open apps in full screen, and control mouse behavior flexibly. This is the gold standard for Kiosk machines running on Raspberry Pi or old office PCs.
Why Choose Openbox?
- Impressive Performance: Runs smoothly even on early Pentium 4 chips or the first-generation Raspberry Pi Zero.
- Text-based Configuration: All settings are stored in XML files and Bash scripts, making it extremely easy to mass-replicate across other machines.
- High Stability: Almost never crashes. Once configured, the system can run continuously for years without needing a reboot.
Practical Implementation Steps
For best results, you should start with a minimalist Linux distribution like Ubuntu Server or Debian Netinstall (without a GUI).
Step 1: Install Core Packages
We need Xorg for display, Openbox for window management, and Chromium as the primary browser.
sudo apt update
sudo apt install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox chromium-browser unclutter
Don’t forget the unclutter package. This small tool automatically hides the mouse cursor after a few seconds of inactivity, keeping the kiosk interface cleaner.
Step 2: Configure Autostart Script
Openbox uses an autostart file to decide what runs when the machine powers on. Create the configuration directory:
mkdir -p ~/.config/openbox
nano ~/.config/openbox/autostart
Paste the following content into the file to optimize the display and launch the browser:
# Disable screen sleep and power saving
xset s off
xset s noblank
xset -dpms
# Hide mouse after 5 seconds
unclutter -idle 5 &
# Run Chromium in Kiosk mode, bypassing errors and toolbars
chromium-browser --kiosk --noerrdialogs --disable-infobars https://itfromzero.com &
Step 3: Passwordless Auto-login
A kiosk station cannot expect staff to enter a password every time there is a power outage. For systems using systemd, run the command:
sudo systemctl edit getty@tty1
Add the following code block (replace your_username with the actual username):
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin your_username --noclear %I $TERM
Finally, to launch the interface automatically upon console login, add this line to the end of your ~/.bashrc file:
if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
startx
fi
Common Troubleshooting Tips for Kiosk Machines
The most annoying error is the “Chromium didn’t shut down correctly” message after an abrupt power cut. To eliminate it, add these two lines to the beginning of the autostart file before calling Chromium:
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' ~/.config/chromium/Default/Preferences
Additionally, if you want to completely lock down the machine, open the ~/.config/openbox/rc.xml file and delete all <keybind> tags. Users will then be unable to use Alt+Tab or Alt+F4 to exit.
Conclusion
Building a kiosk isn’t hard; the hard part is making it run stably for years. Combining minimalist Linux with Openbox is a professional solution that saves on hardware costs while ensuring security. Test it in a virtual machine before deploying to clients to check graphics driver compatibility!

