RustyHAMA-Port für Linux (hauptsächlich Raspberry Pi)
  • Rust 93.9%
  • Slint 5%
  • Shell 1.1%
Find a file
Daniel Spittank 36fd7cc24f
Some checks failed
CI / verify (push) Failing after 2s
feat: add native Linux client
2026-08-10 23:17:13 +02:00
.forgejo/workflows feat: add native Linux client 2026-08-10 23:17:13 +02:00
contracts feat: add native Linux client 2026-08-10 23:17:13 +02:00
docs feat: add native Linux client 2026-08-10 23:17:13 +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 feat: add native Linux client 2026-08-10 23:17:13 +02:00
ui feat: add native Linux client 2026-08-10 23:17:13 +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 feat: add native Linux client 2026-08-10 23:17:13 +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 feat: add native Linux client 2026-08-10 23:17:13 +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.

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.