feat(hyprland): float GTK portal file chooser; close #41
All checks were successful
Check / eval (push) Successful in 2m50s

Class xdg-desktop-portal-gtk (+ Nix .…-wrapped) from package desktop/
libexec. Polkit already V3 PASS on Latitude. NEXT only #20 remains.

V0: flake check --no-build green.
This commit is contained in:
2026-07-10 13:57:22 +01:00
parent 84c145467e
commit 44264428af
4 changed files with 30 additions and 29 deletions

View File

@@ -469,12 +469,12 @@ in
# Class regexes use `(?i)` and tolerate the XWayland
# `.…-wrapped` binary-name form.
#
# Conservative set (item 41): only dialogs we ship or can name from
# package strings / desktop files. SoftGL capture harness could not
# materialize polkit/pinentry windows (empty hyprctl clients) — classes
# below are from binary/app-id strings (hyprpolkitagent, pinentry-qt).
# Remaining: GTK file-chooser portal — class still unknown headlessly;
# HARDWARE-QUEUE for live hyprctl clients confirmation.
# Conservative float set (item 41 closed): only dialogs we ship or can
# name from package strings / desktop files. Classes: mixer,
# blueman, system-config-printer, calendar, hyprpolkitagent,
# pinentry-qt, and xdg-desktop-portal-gtk (desktop file + libexec
# name; .…-wrapped for the Nix wrapper). SoftGL could not materialize
# portal windows; polkit float confirmed on Latitude 2026-07-10.
windowrule = [
# Audio mixer (item 35): right-click the Waybar volume module.
"float 1, match:class ^(com\\.saivert\\.pwvucontrol|org\\.pulseaudio\\.pavucontrol|pavucontrol)$"
@@ -504,6 +504,11 @@ in
"float 1, match:class (?i)^(pinentry(-qt)?|org\\.gnupg\\.pinentry-qt)$"
"center 1, match:class (?i)^(pinentry(-qt)?|org\\.gnupg\\.pinentry-qt)$"
"workspace current, match:class (?i)^(pinentry(-qt)?|org\\.gnupg\\.pinentry-qt)$"
# GTK file-chooser portal (xdg-desktop-portal-gtk) — class is the
# binary/desktop name; Nix wrap = .xdg-desktop-portal-gtk-wrapped.
"float 1, match:class (?i)^(\\.?xdg-desktop-portal-gtk(-wrapped)?)$"
"center 1, match:class (?i)^(\\.?xdg-desktop-portal-gtk(-wrapped)?)$"
];
# Rendered from ./keybinds.nix (the cheatsheet reads the same list),