- Rust 93.9%
- Slint 5%
- Shell 1.1%
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| contracts | ||
| docs | ||
| licenses | ||
| packaging | ||
| scripts | ||
| src | ||
| ui | ||
| .gitignore | ||
| AGENTS.md | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| config.example.toml | ||
| LICENSE | ||
| README.md | ||
| THIRD_PARTY_NOTICES.md | ||
RustyHAMA Linux
RustyHAMA Linux is the resource-conscious Linux companion for the RustyHAMA Home Assistant integration. It uses the same protocol, pairing model, effective dashboard configuration, provider proxies and local privacy guarantees as the Android client, while supporting desktop Linux and direct Raspberry Pi KMS/DRM.
Supported targets
| Target | UI backend | Support level |
|---|---|---|
| x86_64 Linux | Winit (X11/Wayland) | Full client |
| Raspberry Pi 3/4 and Zero 2 W (AArch64/ARMv7) | Slint LinuxKMS software renderer | Full client |
| Raspberry Pi Zero W v1.1 (ARMv6, 512 MB) | Slint LinuxKMS software renderer | Best-effort screensaver-only |
When no touchscreen is detected, display_mode = "auto" deliberately exposes
only the screensaver. This is a local restriction and cannot be changed from
Home Assistant. Set display_mode = "dashboard" locally to use mouse/keyboard
interaction on a conventional computer.
Build
The minimum Rust version is 1.85.
cargo build --release
cargo test
For a compositor-free Raspberry Pi image:
sudo apt install build-essential pkg-config libudev-dev libinput-dev \
libxkbcommon-dev libgbm-dev libdrm-dev libasound2-dev ffmpeg alsa-utils \
brightness-udev
cargo build --release --no-default-features --features ui-kms
Do not compile on a Pi Zero W. Use the ARMv6 release artifact and the lightweight installation profile instead.
Pair and run
Pairing uses an individual, revocable device credential. Obtain a short-lived code from the RustyHAMA integration, then run:
rustyhama-linux probe-certificate --url https://homeassistant.example
rustyhama-linux pair --url https://homeassistant.example \
--code CODE --certificate-pin 'sha256/PIN'
rustyhama-linux run
Use --connect-host ADDRESS when the certificate hostname and the local route
differ. --unsafe-certificate is an explicit local recovery mode; Home Assistant
cannot enable it. Configuration and credentials are stored atomically with
owner-only permissions.
Useful commands:
rustyhama-linux doctor
rustyhama-linux privacy camera lock
rustyhama-linux privacy voice lock
rustyhama-linux run --display-mode screensaver
See docs/configuration.md and docs/architecture.md for deployment details.
License
Copyright (C) 2026 RustyHAMA contributors.
RustyHAMA Linux is licensed under GPL-3.0-only. See LICENSE. Dependency and upstream-source notices are recorded in THIRD_PARTY_NOTICES.md.