The Pi 4 is the daily driver of the two: an 8 GB aarch64 board running Arch Linux ARM (Manjaro flavour) on a 64 GB SD. It does triple duty — small i3 desktop on a 7" DSI touchscreen, audio appliance via PipeWire + MPD + ncmpcpp + cava, and (post-2026-05-19) the smart-home + media role taken over from the RPI3.
Hardware
- Raspberry Pi 4B, 8 GB RAM, aarch64
- 64 GB micro-SD root + 11 GB zram swap
- 466 GB Samsung T5 portable SSD at
/mnt/media(migrated from the RPI3) - Official Pi 7" DSI touchscreen, RPI wired keyboard, USB optical mouse
- Sonoff Zigbee 3.0 USB Dongle Plus V2 (CC2652P / CP210x bridge) on
/dev/ttyUSB0— the Zigbee coordinator radio
OS / kernel
- Arch Linux ARM, kernel
6.6.33-2-MANJARO-RPI4 systemd-networkd+iwd+dhcpcdover Wi-Fi- mDNS via
systemd-resolved: reachable atrpi.local
Desktop / userland
- i3-wm + polybar + picom + nitrogen + rofi + i3lock (configs live in
~rpi/.config/type-dots/as a GNU-stow tree; X must be started as therpiuser, not root, or the wallpaper + polybar fail to load) - Alacritty, Emacs 30, Chromium
- Audio stack: PipeWire + MPD 0.24 + Mopidy + ncmpcpp + cava + Icecast
Services
sshd(port 22),minidlna(port 8200, library at/mnt/media)docker→ compose stack at/srv/homeassistant/:- Home Assistant Container on
http://rpi.local:8123 - Eclipse Mosquitto MQTT broker on
:1883 - Zigbee2MQTT frontend on
http://rpi.local:8080, driving the Aqara curtain via the Sonoff dongle
- Home Assistant Container on
rtorrentunder systemd (tmux-wrapped, attach withtmux a -t rtorrent), watch dir/mnt/media/torrents/watch/
Mac-synced sleep
A Hammerspoon hs.caffeinate.watcher on the Mac SSHes to the Pi on system
sleep / wake events and calls /usr/local/bin/rpi-display {on,off}, which
toggles the DSI panel’s DRM DPMS node plus the 7" Touch Display backlight
(/sys/class/backlight/10-0045/bl_power) and the framebuffer blank. The
touchscreen wakes locally on tap; the network blank only fires on Mac state
changes.