From ad82940851c3ccd1de274e738ef8c0cd15bcea93 Mon Sep 17 00:00:00 2001 From: wo2w <189177184+wo2wz@users.noreply.github.com> Date: Sat, 14 Feb 2026 16:53:21 -0500 Subject: [PATCH] xdg-portal: use termfilechooser --- modules/nixos/programs/desktop/niri/default.nix | 1 + .../programs/desktop/niri/niri/default.nix | 6 +----- .../desktop/niri/niri/window-rules/default.nix | 10 ++++++---- .../programs/desktop/niri/termfilechooser.nix | 17 +++++++++++++++++ 4 files changed, 25 insertions(+), 9 deletions(-) create mode 100644 modules/nixos/programs/desktop/niri/termfilechooser.nix diff --git a/modules/nixos/programs/desktop/niri/default.nix b/modules/nixos/programs/desktop/niri/default.nix index 2dca81d..f09566e 100644 --- a/modules/nixos/programs/desktop/niri/default.nix +++ b/modules/nixos/programs/desktop/niri/default.nix @@ -9,6 +9,7 @@ ./hyprlock.nix ./mako.nix ./swaybg.nix + ./termfilechooser.nix ./tuigreet.nix ./yazi.nix ]; diff --git a/modules/nixos/programs/desktop/niri/niri/default.nix b/modules/nixos/programs/desktop/niri/niri/default.nix index 14f060a..0b5dd50 100644 --- a/modules/nixos/programs/desktop/niri/niri/default.nix +++ b/modules/nixos/programs/desktop/niri/niri/default.nix @@ -17,12 +17,8 @@ ]; xdg.portal = { - extraPortals = [ pkgs.kdePackages.xdg-desktop-portal-kde ]; config.niri = { - default = [ - "kde" - "gtk" - ]; + default = [ "gtk" ]; "org.freedesktop.impl.portal.ScreenCast" = "gnome"; "org.freedesktop.impl.portal.Secret" = "gnome-keyring"; }; diff --git a/modules/nixos/programs/desktop/niri/niri/window-rules/default.nix b/modules/nixos/programs/desktop/niri/niri/window-rules/default.nix index 2e7cb42..7177e49 100644 --- a/modules/nixos/programs/desktop/niri/niri/window-rules/default.nix +++ b/modules/nixos/programs/desktop/niri/niri/window-rules/default.nix @@ -3,10 +3,6 @@ { home-manager.users.wo2w.programs.niri.settings.window-rules = [ # block sensitive applications from capture - { - matches = [{ title = "^Bitwarden$"; }]; - block-out-from = "screen-capture"; - } { matches = [{ app-id = "^org.kde.polkit-kde-authentication-agent-1$"; }]; block-out-from = "screen-capture"; @@ -26,6 +22,12 @@ }; } + # open termfilechooser floating like a regular portal + { + matches = [{ title = "^termfilechooser$"; }]; + open-floating = true; + } + { matches = [{ app-id = "com.dec05eba.gpu_screen_recorder"; }]; open-floating = false; diff --git a/modules/nixos/programs/desktop/niri/termfilechooser.nix b/modules/nixos/programs/desktop/niri/termfilechooser.nix new file mode 100644 index 0000000..ecd95c9 --- /dev/null +++ b/modules/nixos/programs/desktop/niri/termfilechooser.nix @@ -0,0 +1,17 @@ +{ config, pkgs, lib, ... }: + +{ + xdg.portal = { + extraPortals = [ pkgs.xdg-desktop-portal-termfilechooser ]; + config.niri."org.freedesktop.impl.portal.FileChooser" = "termfilechooser"; + }; + + home-manager.users.wo2w.xdg.configFile."xdg-desktop-portal-termfilechooser/config".text = '' + [filechooser] + cmd=${pkgs.xdg-desktop-portal-termfilechooser}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh + default_dir=$HOME + env=TERMCMD='${lib.getExe pkgs.kitty} -T "termfilechooser"' + open_mode = suggested + save_mode = last + ''; +} \ No newline at end of file