Galleri-montaget (sex configvarianter, live-omladdade i nästlad headless-session) + kompakt beskrivning av alla configområden i README och i configreferensens ingress (doc/usage.md). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3.9 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.
Skärmbilder
| Dockan (pins, grupper, indikatorer) | Inställningar (per skärm, live) |
|---|---|
![]() |
![]() |
Samma dock, sex olika configar — bara JSON-filen ändrades mellan bilderna:
Vad kan konfigureras?
- Placering: nere/uppe/vänster/höger; centrerad/vänster-/högerjusterad ö eller expanderad över hela kanten; tre marginaler (från kanten + start/slut, minusvärden ok) — med ritad illustration i settings som visar måtten
- Utseende: panelfärg + transparens, accentfärg, hörnradie, kant, skugga, ikonstorlek/-avstånd, hover-zoom, animationer, indikatorstil
- Beteende: klick (fokus/minimera/växla), mittklick, skroll (växla fönster eller starta stoppad app), gruppering, fönsterlista vid klick eller hover, peek/fokus vid hover i listan, tooltips, urgency-puls
- Menyer: välj exakt vilka val högerklicksmenyn ska ha (minimera/maximera/flytta till skärm/pinna/stäng)
- Per skärm: vilken inställning som helst kan överridas per skärm — egna pins, position, färger, filter för bara-den-skärmens-fönster
- Autohide: dodge (göm vid fönsteröverlapp) eller göm alltid, med sensor vid kanten och animation
- Hotspots: hot corners/edges som kör kommandon eller Wayfire-IPC (t.ex. scale-översikten)
Allt via ~/.config/waydock/config.json (live-omladdning) eller
settings-GUI:t — högerklicka på tom dockyta → Inställningar…
- Config:
~/.config/waydock/config.json(skapas automatiskt första starten) - Djupare docs:
doc/plan.md,doc/architecture.md,doc/usage.md— samt wikin
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 och pushar — CI bygger och publicerar
All CI kör på byggnoden på brasse-linux01 (x64-runnern, label
linux-amd64) — waydock byggs bara för x86_64, aldrig på Pi5:ns
arm-runner. Push till master kör cargo check/clippy/test; en
vX.Y.Z-tagg bygger release-binären och laddar upp den till
släppsidan
(+ rullande latest).



