82 lines
1.8 KiB
Markdown
82 lines
1.8 KiB
Markdown
# matchbox‑wm
|
||
|
||
matchbox‑wm is a minimal, single‑window X11 window manager originally designed for embedded systems, kiosks, and low‑resource devices. Unlike traditional window managers, it enforces a strict one‑window‑only model, making it ideal for fullscreen kiosk applications such as Chromium dashboards.
|
||
|
||
**Key characteristics:**
|
||
|
||
* Single‑window design: Only one application window is shown at a time, always fullscreen.
|
||
|
||
* No desktop components: No panels, menus, compositors, notifications, or session daemons.
|
||
|
||
* Deterministic behavior: Eliminates window management complexity, ideal for locked‑down 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 kiosk mode.
|
||
|
||
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 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 sessions:
|
||
|
||
``` bash
|
||
sudo systemctl stop getty@tty1
|
||
```
|