claude 6be8c6fe27
All checks were successful
check / check (push) Successful in 1m35s
Fixa GTK-grab-låsningen: en popover åt gången, grab-fria fönsterlistor
Rotorsak till att alla klick slutade fungera (även i settings):
grabbing-popovers i snabb följd + ikon-ombyggen som rev en öppen
popovers förälder gav 'Tried to map a grabbing popup with a non-top
most parent' i mängder och en fastnad pekar-grab på Wayland.

- refresh_items skjuts upp medan en popover är öppen (räknare i Ctx)
  och körs när den stängts — föräldern rivs aldrig under en öppen popup.
- Bara en popover åt gången; ny popup stänger den gamla först.
- Fönsterlistan grabbar aldrig (autohide av): stängs på pointer-leave
  (400 ms hover-läge / 700 ms klick-läge) + watchdog om pekaren aldrig
  når listan. Därmed kan man öppna nästa grupps lista direkt utan att
  första klicket bara stänger den förra.
- Listan öppnas riktad bort från dockans kant och radernas
  hover-effekter armeras efter 250 ms, så raden under pekaren vid
  öppning inte triggas av misstag.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-30 00:48:04 +02:00

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 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%