From 01deb843e4a6740219d27fabed0de3b8bf332aeb Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Wed, 27 Aug 2025 22:21:58 +0200 Subject: [PATCH] term file choose works again --- flake.lock | 134 +++++++++++++++++++++--------------------- home-modules/yazi.nix | 76 +++++------------------- 2 files changed, 81 insertions(+), 129 deletions(-) diff --git a/flake.lock b/flake.lock index 2ab3b71..a14e36f 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1752743471, - "narHash": "sha256-4izhj1j7J4mE8LgljCXSIUDculqOsxxhdoC81VhqizM=", + "lastModified": 1755632680, + "narHash": "sha256-EjaD8+d7AiAV2fGRN4NTMboWDwk8szDfwbzZ8DL1PhQ=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "e31b575d19e7cf8a8f4398e2f9cffe27a1332506", + "rev": "50637ed23e962f0db294d6b0ef534f37b144644b", "type": "github" }, "original": { @@ -51,11 +51,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -186,11 +186,11 @@ ] }, "locked": { - "lastModified": 1753592768, - "narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=", + "lastModified": 1756245065, + "narHash": "sha256-aAZNbGcWrVRZgWgkQbkabSGcDVRDMgON4BipMy69gvI=", "owner": "nix-community", "repo": "home-manager", - "rev": "fc3add429f21450359369af74c2375cb34a2d204", + "rev": "54b2879ce622d44415e727905925e21b8f833a98", "type": "github" }, "original": { @@ -216,11 +216,11 @@ ] }, "locked": { - "lastModified": 1749155331, - "narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=", + "lastModified": 1753964049, + "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80", + "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", "type": "github" }, "original": { @@ -245,11 +245,11 @@ ] }, "locked": { - "lastModified": 1752149140, - "narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=", + "lastModified": 1754305013, + "narHash": "sha256-u+M2f0Xf1lVHzIPQ7DsNCDkM1NYxykOSsRr4t3TbSM4=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "340494a38b5ec453dfc542c6226481f736cc8a9a", + "rev": "4c1d63a0f22135db123fc789f174b89544c6ec2d", "type": "github" }, "original": { @@ -274,11 +274,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1753634783, - "narHash": "sha256-Rl/voNjvcQH6E1vi4wNt5AY6CWaYkqfnkpm9GxrqKGg=", + "lastModified": 1756069181, + "narHash": "sha256-FPur4yuDwzM9uHhPFJW6KD3Xys5fz0xmRmZqFfWQD3Y=", "ref": "refs/heads/main", - "rev": "c63d0003a1e5155248695f19778f815a8ad34c67", - "revCount": 6317, + "rev": "0ed880f3f7dc2c746bf3590eee266c010d737558", + "revCount": 6393, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -306,11 +306,11 @@ ] }, "locked": { - "lastModified": 1753028264, - "narHash": "sha256-GbfsRZWW5uBAOeddLkmrYV2XmAbI0etVUTBXFH5thcw=", + "lastModified": 1756311938, + "narHash": "sha256-XiNmc8kdOd4adzif9PABKOH3u4Nv+zadIRfH3XrJFy0=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "14f9a444793d6dd78c29033acf9c3c974ded708d", + "rev": "ee66b49fda3423df8bfd6206d9101a81de9c1832", "type": "github" }, "original": { @@ -399,11 +399,11 @@ ] }, "locked": { - "lastModified": 1750371812, - "narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=", + "lastModified": 1753819801, + "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", "owner": "hyprwm", "repo": "hyprland-qtutils", - "rev": "b13c7481e37856f322177010bdf75fccacd1adc8", + "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", "type": "github" }, "original": { @@ -428,11 +428,11 @@ ] }, "locked": { - "lastModified": 1750371198, - "narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=", + "lastModified": 1753622892, + "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b", + "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809", "type": "github" }, "original": { @@ -449,11 +449,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1753590784, - "narHash": "sha256-Q30DFlPwD1ZK52TD4wSnqDO5gk9Kvifr923siI8AdVQ=", + "lastModified": 1754887838, + "narHash": "sha256-npC+H+Wl60EdrV75sjqm+bbbLbKgCCGn4ALSM0B2OWA=", "owner": "KZDKM", "repo": "Hyprspace", - "rev": "a847f1d6a7326395d17fe9b6b4ab63a10eb152eb", + "rev": "2b61fd2115262243b03aa9afe8dfd8a78e71636c", "type": "github" }, "original": { @@ -474,11 +474,11 @@ ] }, "locked": { - "lastModified": 1752252310, - "narHash": "sha256-06i1pIh6wb+sDeDmWlzuPwIdaFMxLlj1J9I5B9XqSeo=", + "lastModified": 1755416120, + "narHash": "sha256-PosTxeL39YrLvCX5MqqPA6NNWQ4T5ea5K55nmN7ju9Q=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "bcabcbada90ed2aacb435dc09b91001819a6dc82", + "rev": "e631ea36ddba721eceda69bfee6dd01068416489", "type": "github" }, "original": { @@ -499,11 +499,11 @@ ] }, "locked": { - "lastModified": 1751897909, - "narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=", + "lastModified": 1755184602, + "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "fcca0c61f988a9d092cbb33e906775014c61579d", + "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", "type": "github" }, "original": { @@ -542,11 +542,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1753642709, - "narHash": "sha256-J/xPmOfKRX/4UtBIVa5qkKuwN6FrHQBmo5bIPmcPeck=", + "lastModified": 1755261305, + "narHash": "sha256-EOqCupB5X5WoGVHVcfOZcqy0SbKWNuY3kq+lj1wHdu8=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "e1e0999d45ba66d2d66ac061c27ce680814d14b1", + "rev": "203a7b463f307c60026136dd1191d9001c43457f", "type": "github" }, "original": { @@ -558,11 +558,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1752687322, - "narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=", + "lastModified": 1755186698, + "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251", + "rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c", "type": "github" }, "original": { @@ -574,11 +574,11 @@ }, "nixpkgs-latest": { "locked": { - "lastModified": 1753644334, - "narHash": "sha256-b7OuvvF9XEe5ms/7Uaq3g4fkmbLhQeP2b+weAjnciXE=", + "lastModified": 1756321630, + "narHash": "sha256-Lrqzu9plqzo3Zp64X11qL1wWHrMYMGML9XKzuiv6QJE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "6a56b14976d469a9f943400698244a4c1a4c1608", + "rev": "ebbc7fb3d213c5c7c9dcef705fa272073812f4c4", "type": "github" }, "original": { @@ -606,11 +606,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1753429684, - "narHash": "sha256-9h7+4/53cSfQ/uA3pSvCaBepmZaz/dLlLVJnbQ+SJjk=", + "lastModified": 1756125398, + "narHash": "sha256-XexyKZpf46cMiO5Vbj+dWSAXOnr285GHsMch8FBoHbc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7fd36ee82c0275fb545775cc5e4d30542899511d", + "rev": "3b9f00d7a7bf68acd4c4abb9d43695afb04e03a5", "type": "github" }, "original": { @@ -637,11 +637,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", + "lastModified": 1754725699, + "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", + "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", "type": "github" }, "original": { @@ -653,11 +653,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1753345091, - "narHash": "sha256-CdX2Rtvp5I8HGu9swBmYuq+ILwRxpXdJwlpg8jvN4tU=", + "lastModified": 1756217674, + "narHash": "sha256-TH1SfSP523QI7kcPiNtMAEuwZR3Jdz0MCDXPs7TS8uo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3ff0e34b1383648053bba8ed03f201d3466f90c9", + "rev": "4e7667a90c167f7a81d906e5a75cba4ad8bee620", "type": "github" }, "original": { @@ -692,11 +692,11 @@ ] }, "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "lastModified": 1755446520, + "narHash": "sha256-I0Ok1OGDwc1jPd8cs2VvAYZsHriUVFGIUqW+7uSsOUM=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "rev": "4b04db83821b819bbbe32ed0a025b31e7971f22e", "type": "github" }, "original": { @@ -796,11 +796,11 @@ ] }, "locked": { - "lastModified": 1752544651, - "narHash": "sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U=", + "lastModified": 1754988908, + "narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=", "owner": "Mic92", "repo": "sops-nix", - "rev": "2c8def626f54708a9c38a5861866660395bb3461", + "rev": "3223c7a92724b5d804e9988c6b447a0d09017d48", "type": "github" }, "original": { @@ -882,11 +882,11 @@ ] }, "locked": { - "lastModified": 1751300244, - "narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=", + "lastModified": 1755354946, + "narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a", + "rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0", "type": "github" }, "original": { @@ -902,11 +902,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1753610773, - "narHash": "sha256-M5SPkMK1ySSXEXEMJEcSgrHZlaBhIJeYMbFdO6q5IFc=", + "lastModified": 1756309929, + "narHash": "sha256-udly1zNvxR6UKFZSkbutSEZ9EihUd+pPCDBaseppB5s=", "owner": "sxyazi", "repo": "yazi", - "rev": "0e3cd8545c07e79d7cf1f58632c87cc14faa16d6", + "rev": "dd7afaa64aa54fac5bd30404eb44ccd9d68f31c5", "type": "github" }, "original": { diff --git a/home-modules/yazi.nix b/home-modules/yazi.nix index 66cf0d1..848f4b8 100644 --- a/home-modules/yazi.nix +++ b/home-modules/yazi.nix @@ -1,7 +1,9 @@ -{ pkgs, ... }@all: with all; -{ - home.packages = with pkgs; [ - unar +{ pkgs, ... }@all: with all; let + tfc = pkgs.latest.xdg-desktop-portal-termfilechooser; +in { + home.packages = [ + pkgs.unar + tfc ]; programs.yazi = { @@ -403,73 +405,23 @@ }; }; xdg = { - # # https://github.com/hunkyburrito/xdg-desktop-portal-termfilechooser/pull/44 - configFile = let - wrapper = pkgs.writeShellApplication { name = "yazi-wrapper.sh"; text = /*bash*/ '' - set -ex - - multiple="$1" - directory="$2" - save="$3" - path="$4" - out="$5" - - cmd="yazi" - termcmd="''${TERMCMD:-kitty --title 'termfilechooser'}" - - if [ "$save" = "1" ]; then - # save a file - set -- --chooser-file="$out" "$path" - elif [ "$directory" = "1" ]; then - # upload files from a directory - set -- --chooser-file="$out" --cwd-file="$out" "$path" - elif [ "$multiple" = "1" ]; then - # upload multiple files - set -- --chooser-file="$out" "$path" - else - # upload only 1 file - set -- --chooser-file="$out" "$path" - fi - - command="$termcmd $cmd" - for arg in "$@"; do - # escape double quotes - escaped=$(printf "%s" "$arg" | sed -E 's/[\"\(\)\{\}\|]//g') - # escape spaces - command="$command \"$escaped\"" - done - - sh -c "$command" - '';}; - in { - "xdg-desktop-portal-termfilechooser/config".text = '' + configFile."xdg-desktop-portal-termfilechooser/config" = { + force = true; + text = '' [filechooser] - cmd=${wrapper}/bin/yazi-wrapper.sh + cmd=${tfc}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh env=TERMCMD=ghostty --title="terminal-file-picker -e" default_dir=$HOME open_mode=suggested save_mode=last ''; - # "xdg-desktop-portal-termfilechooser/config".text = '' - # [filechooser] - # cmd=${pkgs.latest.xdg-desktop-portal-termfilechooser}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh - # env=TERMCMD=ghostty --title="terminal-file-picker -e" - # default_dir=$HOME - # open_mode=suggested - # save_mode=last - # ''; }; portal = { enable = true; - extraPortals = [ pkgs.latest.xdg-desktop-portal-termfilechooser ]; - config = { - common = { - "org.freedesktop.impl.portal.FileChooser" = "termfilechooser"; - }; - }; + xdgOpenUsePortal = true; + config.common."org.freedesktop.impl.portal.FileChooser" = "termfilechooser"; + extraPortals = [ tfc ]; }; }; - home.sessionVariables = { - GTK_USE_PORTAL = "1"; - }; + home.sessionVariables."GTK_USE_PORTAL" = "1"; }