[P1] Replace GNOME with Cage + Chromium kiosk — save 650MB RAM #374

Closed
opened 2026-03-03 16:38:04 -05:00 by seb · 0 comments
Owner

Goal

Kill GNOME desktop, replace with minimal Wayland compositor + Chromium kiosk for all UI needs.

Architecture

Boot -> cage (Wayland compositor, ~20MB) -> Chromium kiosk (~130MB) -> Salty Face webapp

Total: ~150MB vs GNOME 800MB = 650MB saved for compute

Requirements

  • Install cage (single-window Wayland compositor)
  • Chromium in --kiosk mode, fullscreen, no address bar
  • Auto-start on boot (systemd user service)
  • Face UI served locally (localhost:8080 or similar)
  • Hardware video decode via NVDEC (HTML5 video)
  • WebRTC support for video calls
  • Touch input working through cage/Chromium
  • Fallback: SSH always available, can re-enable GNOME if needed
  • Boot to face UI in <15 seconds

Steps

  1. Install cage: apt install cage
  2. Install Chromium: snap install chromium
  3. Create systemd service: cage -- chromium --kiosk http://localhost:8080
  4. Disable gdm3: systemctl disable gdm3
  5. Test touch, video decode, WebRTC
  6. Profile memory savings

Depends on

  • #369 Display setup verified first

Replaces

  • GNOME desktop (currently using 800MB RAM)
## Goal Kill GNOME desktop, replace with minimal Wayland compositor + Chromium kiosk for all UI needs. ## Architecture ``` Boot -> cage (Wayland compositor, ~20MB) -> Chromium kiosk (~130MB) -> Salty Face webapp ``` Total: ~150MB vs GNOME 800MB = **650MB saved for compute** ## Requirements - Install cage (single-window Wayland compositor) - Chromium in --kiosk mode, fullscreen, no address bar - Auto-start on boot (systemd user service) - Face UI served locally (localhost:8080 or similar) - Hardware video decode via NVDEC (HTML5 video) - WebRTC support for video calls - Touch input working through cage/Chromium - Fallback: SSH always available, can re-enable GNOME if needed - Boot to face UI in <15 seconds ## Steps 1. Install cage: apt install cage 2. Install Chromium: snap install chromium 3. Create systemd service: cage -- chromium --kiosk http://localhost:8080 4. Disable gdm3: systemctl disable gdm3 5. Test touch, video decode, WebRTC 6. Profile memory savings ## Depends on - #369 Display setup verified first ## Replaces - GNOME desktop (currently using 800MB RAM)
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#374
No description provided.