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

waydock

Dockan (pins, grupper, indikatorer) Inställningar (per skärm, live)
dock settings

Samma dock, sex olika configar — bara JSON-filen ändrades mellan bilderna:

galleri

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…

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

Description
docker par transparent centrerad "ö" av appar
Readme 6.8 MiB
2026-08-30 15:38:15 +02:00
Languages
Rust 98.6%
Shell 1.4%