I3

2026-05-20

Manjaro Raspberry Pi 4

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 + dhcpcd over Wi-Fi
  • mDNS via systemd-resolved: reachable at rpi.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 the rpi user, 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
  • rtorrent under systemd (tmux-wrapped, attach with tmux 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.

Read more >