mirror of
https://github.com/anotherhadi/nixy.git
synced 2026-08-21 10:45:49 +02:00
@@ -91,6 +91,7 @@
|
|||||||
nativeBuildInputs = [pkgs.makeWrapper];
|
nativeBuildInputs = [pkgs.makeWrapper];
|
||||||
postBuild = ''
|
postBuild = ''
|
||||||
wrapProgram $out/bin/helium \
|
wrapProgram $out/bin/helium \
|
||||||
|
--set-default GTK_USE_PORTAL 1 \
|
||||||
--run ${lib.escapeShellArg (toString patchScript)}
|
--run ${lib.escapeShellArg (toString patchScript)}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# Use yazi as the file picker for portal dialogs (browser "select file(s)" and
|
||||||
|
# "save download to..."). The backend is xdg-desktop-portal-termfilechooser,
|
||||||
|
# enabled system-wide in nixos/utils.nix (extraPortals + FileChooser routing).
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
wrapper = "${pkgs.xdg-desktop-portal-termfilechooser}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh";
|
||||||
|
# ghostty must run in the foreground instead of handing off to the
|
||||||
|
# single-instance daemon, otherwise the wrapper returns before you've picked
|
||||||
|
# anything and the portal reads an empty selection.
|
||||||
|
termcmd = "ghostty --gtk-single-instance=false --title=termfilechooser -e";
|
||||||
|
in {
|
||||||
|
xdg.configFile."xdg-desktop-portal-termfilechooser/config".text = ''
|
||||||
|
[filechooser]
|
||||||
|
cmd=${wrapper}
|
||||||
|
default_dir=$HOME
|
||||||
|
open_mode=suggested
|
||||||
|
save_mode=suggested
|
||||||
|
env=TERMCMD=${termcmd}
|
||||||
|
PATH=${config.home.profileDirectory}/bin:/run/current-system/sw/bin:/run/wrappers/bin
|
||||||
|
'';
|
||||||
|
}
|
||||||
@@ -38,6 +38,7 @@
|
|||||||
../../home/system/swaync
|
../../home/system/swaync
|
||||||
../../home/system/tofi
|
../../home/system/tofi
|
||||||
../../home/system/mime
|
../../home/system/mime
|
||||||
|
../../home/system/termfilechooser
|
||||||
../../home/system/udiskie
|
../../home/system/udiskie
|
||||||
../../home/system/clipboard
|
../../home/system/clipboard
|
||||||
../../home/system/hypridle
|
../../home/system/hypridle
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
../../home/system/swaync
|
../../home/system/swaync
|
||||||
../../home/system/tofi
|
../../home/system/tofi
|
||||||
../../home/system/mime
|
../../home/system/mime
|
||||||
|
../../home/system/termfilechooser
|
||||||
../../home/system/udiskie
|
../../home/system/udiskie
|
||||||
../../home/system/clipboard
|
../../home/system/clipboard
|
||||||
../../home/system/hypridle
|
../../home/system/hypridle
|
||||||
|
|||||||
+12
-5
@@ -119,13 +119,20 @@ in {
|
|||||||
xdgOpenUsePortal = true;
|
xdgOpenUsePortal = true;
|
||||||
config = {
|
config = {
|
||||||
common.default = ["gtk"];
|
common.default = ["gtk"];
|
||||||
hyprland.default = [
|
hyprland = {
|
||||||
"gtk"
|
default = [
|
||||||
"hyprland"
|
"gtk"
|
||||||
];
|
"hyprland"
|
||||||
|
];
|
||||||
|
# Pick files / choose download paths with yazi instead of the GTK dialog
|
||||||
|
"org.freedesktop.portal.FileChooser" = ["termfilechooser"];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
extraPortals = [
|
||||||
|
pkgs.xdg-desktop-portal-gtk
|
||||||
|
pkgs.xdg-desktop-portal-termfilechooser
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user