Files
linux/docs/display-managers/matchbox‑wm.md

85 lines
1.9 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# matchboxwm
matchboxwm is a minimal, singlewindow X11 window manager originally designed for embedded systems, kiosks, and lowresource devices. Unlike traditional window managers, it enforces a strict onewindowonly model, making it ideal for fullscreen kiosk applications such as Chromium dashboards.
**Key characteristics:**
* Singlewindow design: Only one application window is shown at a time, always fullscreen.
* Extremely lightweight: Uses roughly 12MB of RAM, suitable for lowmemory environments.
* No desktop components: No panels, menus, compositors, notifications, or session daemons.
* Deterministic behavior: Eliminates window management complexity, ideal for lockeddown kiosk workflows.
* Runs on Xorg: Works as a tiny layer on top of the X11 display server.
* Perfect for kiosks: Commonly paired with Chromium in kiosk mode for dashboards and appliances.
## Install
``` bash
apt update
apt install matchbox-window-manager xorg
```
## Setup
Example to start matchbox-window-manager, auto login user xxx and start chromium.
1. Auto login
``` bash
mkdir -p /etc/systemd/system/getty@tty1.service.d
```
``` bash
#/etc/systemd/system/getty@tty1.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin xxx --noclear %I $TERM
```
``` bash
sudo systemctl daemon-reload
```
2. Setup user to startx
``` bash
# /home/xxx/.bash_profile
if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
startx
fi
```
3. Setup setup scripts
``` bash
# /home/xxx/.xinitrc
eval $(dbus-launch --exit-with-session)
export SSL_CERT_DIR=/etc/ssl/certs
export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
matchbox-window-manager &
chromium \
--kiosk \
--noerrdialogs \
--disable-infobars \
https://yoursite
```
``` bash
chmod +x /home/xxx/.xinitrc
```
## misc
Stop auto tty session and kill session:
``` bash
sudo systemctl stop getty@tty1
```