From 56e7da9008bc2b1c986aef402be55ead5e80d4cd Mon Sep 17 00:00:00 2001 From: Miguel Palhas Date: Fri, 4 Sep 2026 13:47:17 +0100 Subject: [PATCH] fix(claude-desktop): pin libsecret password store Chromium maps XDG_CURRENT_DESKTOP=Hyprland to "other" and falls back to the plaintext `basic` keystore, so safeStorage reported unavailable and auth tokens were dropped on every restart. Co-Authored-By: Claude --- pkgs/claude-desktop/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/claude-desktop/package.nix b/pkgs/claude-desktop/package.nix index 0ae4488..8d6dc46 100644 --- a/pkgs/claude-desktop/package.nix +++ b/pkgs/claude-desktop/package.nix @@ -137,9 +137,12 @@ stdenv.mkDerivation (finalAttrs: { # The bundled Chromium/ANGLE dlopen()s the system libEGL.so.1 for GL; give it # libglvnd + NixOS's GPU driver path so it hardware-accelerates instead of # falling back to software rendering. + # Chromium maps XDG_CURRENT_DESKTOP=Hyprland to "other" and silently picks the + # plaintext `basic` keystore, so safeStorage reports unavailable and auth tokens + # never persist across restarts. Pin the libsecret backend explicitly. makeWrapper $out/lib/claude-desktop/claude-desktop $out/bin/claude-desktop \ "''${gappsWrapperArgs[@]}" \ - --add-flags "--no-sandbox${lib.optionalString (deviceScaleFactor != null) " --force-device-scale-factor=${deviceScaleFactor}"}" \ + --add-flags "--no-sandbox --password-store=gnome-libsecret${lib.optionalString (deviceScaleFactor != null) " --force-device-scale-factor=${deviceScaleFactor}"}" \ --prefix PATH : ${lib.makeBinPath [ xdg-utils ]} \ --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL mesa ]}:/run/opengl-driver/lib"