add matchbox‑wm

This commit is contained in:
2025-12-16 22:32:51 +00:00
parent 05de46433b
commit 2cb4fb5e21
3 changed files with 93 additions and 5 deletions

View File

@@ -1,6 +1,6 @@
# Linux
- [Distros](#distros)
- [Distro](#distro)
- [Graphical Environment](#graphical-environment)
- [Display Managers](#display-managers)
- [cli - utils](#cli---utils)
@@ -11,6 +11,8 @@
- [Archiving and Compression](#archiving-and-compression)
- [tar](#tar)
- [Users, Groups, and File permissions](#users-groups-and-file-permissions)
- [loginctl](#loginctl)
- [terminate-user](#terminate-user)
- [Network Configuration](#network-configuration)
- [hostname / hostnamectl](#hostname--hostnamectl)
- [static ip](#static-ip)
@@ -28,7 +30,7 @@
- [CLI Diagnostics and System Topology](#cli-diagnostics-and-system-topology)
- [lspci](#lspci)
## Distros
## Distro
- [Debian](./docs/distros/debian.md)
- [Fedora](./docs/distros/fedora.md)
@@ -38,9 +40,12 @@
### Display Managers
🎛️ A display manager is the graphical login screen you see when you boot your system.
A display manager is a graphical login manager that:
Main job: It handles user sessions — letting you log in, choose a user, select a desktop environment, and start the graphical session.
- starts the Xorg or Wayland display server
- shows a login screen (greeter)
- authenticates the user
- launches the users session (desktop environment or window manager)
Examples:
@@ -48,6 +53,7 @@ Examples:
- [GDM (GNOME Display Manager)](./docs/desktop-environments/gnome.md)
- [SDDM](./docs/display-managers/sddm.md) - Used by [KDE](./docs/desktop-environments/kde.md)
- LXDM (used by LXDE)
- [matchbox-window-manager](./docs/display-managers/matchboxwm.md)
#### cli - utils
@@ -144,6 +150,18 @@ usermod -a -G GROUPNAME USERNAME
```
### loginctl
*command belongs to systemdlogind.*
#### terminate-user
terminate-user <username> Terminates all processes and sessions belonging to the specified user. This works on any system using systemd — including headless servers with no graphical environment. On headless systems, it closes SSH/TTY sessions and kills all userowned processes. On graphical systems, it also terminates Xorg/Wayland sessions and window managers.
``` bash
loginctl terminate-user <username>
```
### Network Configuration
#### hostname / hostnamectl

View File

@@ -18,4 +18,4 @@ GDM (GNOME Display Manager) is the default graphical login manager for the GNOME
**🧭 Usage and Configuration:**
Default in Ubuntu, Fedora, and other GNOME-based distributions.
Configurable via /etc/gdm/custom.conf for settings like autologin, Wayland enablement, and session defaults.
Configurable via /etc/gdm/custom.conf for settings like auto login, Wayland enablement, and session defaults.

View File

@@ -0,0 +1,70 @@
# 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 user
Example to start matchbox-window-manager with chromium on user xxx 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
```
``` bash
# /home/xxx/.bash_profile
if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
startx
fi
```
``` 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
```