RustyHAMA-Port für Linux (hauptsächlich Raspberry Pi)
  • Rust 92.9%
  • Slint 6.5%
  • Shell 0.6%
Find a file
Daniel Spittank 1f29a3116c
All checks were successful
CI / verify (push) Successful in 12m11s
fix(ci): use Forgejo-compatible artifact upload
2026-10-05 12:35:10 +02:00
.forgejo/workflows fix(ci): use Forgejo-compatible artifact upload 2026-10-05 12:35:10 +02:00
contracts feat: add native Linux client 2026-08-10 23:17:13 +02:00
docs docs: document Android parity and validation boundary 2026-10-05 04:15:52 +02:00
licenses feat: add native Linux client 2026-08-10 23:17:13 +02:00
packaging feat: add native Linux client 2026-08-10 23:17:13 +02:00
scripts feat: add native Linux client 2026-08-10 23:17:13 +02:00
src fix(ci): align Rust version and Clippy with locked dependencies 2026-10-05 12:10:55 +02:00
ui feat: complete native dashboard feature parity 2026-10-05 04:15:48 +02:00
.gitignore feat: add native Linux client 2026-08-10 23:17:13 +02:00
AGENTS.md feat: add native Linux client 2026-08-10 23:17:13 +02:00
build.rs feat: add native Linux client 2026-08-10 23:17:13 +02:00
Cargo.lock feat: add native Linux client 2026-08-10 23:17:13 +02:00
Cargo.toml fix(ci): align Rust version and Clippy with locked dependencies 2026-10-05 12:10:55 +02:00
config.example.toml feat: add native Linux client 2026-08-10 23:17:13 +02:00
LICENSE feat: add native Linux client 2026-08-10 23:17:13 +02:00
README.md fix(ci): align Rust version and Clippy with locked dependencies 2026-10-05 12:10:55 +02:00
THIRD_PARTY_NOTICES.md feat: add native Linux client 2026-08-10 23:17:13 +02:00

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. Full dashboard/media parity requires RustyHAMA Integration 0.1.27 or newer.

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.95.

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. The exact Android-to-Linux implementation surface and current verification boundary are listed in docs/feature-parity.md.

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.