Files
waydock/README.md
claude bc2fa65558
Some checks failed
check / check (push) Failing after 52s
waydock v0.1: panel, pins, fönstergrupper, menyer, settings-GUI, live-config
M0–M5 ur doc/plan.md: layer-shell-dock per skärm med transparent
#222222-ö, pins + körande appar (gruppering, badges, indikatorer),
klick/skroll/mittklick, konfigurerbar högerklicksmeny, tomyta-meny,
settings-GUI som redigerar JSON-configen live, filewatcher,
Wayfire-IPC-stubbar (scale, flytta-till-skärm), CI + release-flöde.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-29 23:24:29 +02:00

2.1 KiB

waydock

Modern, resurssnål och genomkonfigurerbar dock för Wayfire — transparent Plasma 6-känsla, byggd i Rust/GTK4 som en enda binär. Pinnade appar, körande fönster med gruppering, per-skärm-kontext, konfigurerbara menyer, settings-GUI och live-omladdning av JSON-configen.

Beroenden (Arch/Garuda)

sudo pacman -S --needed gtk4 gtk4-layer-shell
rustup default stable   # Rust ≥ 1.85

Kör kräver en wlroots-compositor med zwlr_foreign_toplevel_manager_v1 (Wayfire, Sway, …). Wayfire IPC-funktionerna (översikt, dodge) kräver ipc-pluginen i wayfire.ini.

Bygga & köra

git clone https://gitea.brasse-pc.eu/brasse/waydock.git
cd waydock
cargo build --release          # binär: target/release/waydock
./target/release/waydock       # eller: cargo run

I VS Code: Ctrl+Shift+B kör build-tasken (lägger binären i build/).

Loggning: waydock --log debug eller env WAYDOCK_LOG=debug, --log-file ~/.cache/waydock.log för fil.

Installera (release-binär)

curl -fsSL https://gitea.brasse-pc.eu/brasse/waydock/raw/branch/master/install.sh | sh

Hur det funkar (kort)

En GTK4-process ritar ett layer-shell-fönster per skärm. En egen Wayland-anslutning lyssnar på zwlr_foreign_toplevel_manager_v1 för fönsterlistan (aktivera/minimera/stäng går samma väg). .desktop-filer och ikoner slås upp via gio/ikontemat. All styling genereras som CSS från JSON-configen; en filewatcher gör att ändringar (för hand eller via settings-GUI:t) slår igenom direkt. Wayfire IPC används för scale/expo-toggle och fönstergeometri till intelligent autohide.

Släpp

./release.sh v0.1.0   # taggar, bygger x64, skapar Gitea-release + latest

CI på Gitea (Pi5) kör cargo check/clippy/test vid varje push.