Commit afb7c44

HPCesia <me@hpcesia.com>
2025-10-10 10:10:20
fix: chromium can't find os keyring
1 parent dd4d96b
Changed files (3)
modules
desktop
dev
modules/desktop/apps/browser/chromium.nix
@@ -4,20 +4,25 @@
     osConfig,
     ...
   }: let
-    linuxChromiumCLA = [
-      "--ozone-platform-hint=auto"
-      "--enable-wayland-ime"
-      "--wayland-text-input-version=3"
-    ];
+    chromiumCLA =
+      lib.optionals isLinux ([
+          "--ozone-platform-hint=auto"
+          "--enable-wayland-ime"
+          "--wayland-text-input-version=3"
+        ]
+        ++ lib.optionals (!isPlasma) [
+          # Fix https://github.com/microsoft/vscode/issues/187338
+          "--password-store=gnome-libsecret"
+        ])
+      ++ ["-–disable-features=GlobalShortcutsPortal"];
+
     isLinux = pkgs.stdenv.hostPlatform.isLinux;
-    isPlasma = isLinux && osConfig.services.desktopManager.plasma6.enable;
+    isPlasma = isLinux && (osConfig.services.desktopManager.plasma6.enable or false);
   in {
     programs.chromium = {
       enable = true;
       package = lib.mkIf isLinux (pkgs.chromium.override {
-        commandLineArgs =
-          linuxChromiumCLA
-          ++ ["-–disable-features=GlobalShortcutsPortal"];
+        commandLineArgs = chromiumCLA;
       });
       nativeMessagingHosts = lib.optionals isPlasma [
         pkgs.kdePackages.plasma-browser-integration
modules/desktop/apps/packages.nix
@@ -1,10 +1,21 @@
 {lib, ...}: {
-  flake.modules.homeManager.desktop = {pkgs, ...}: let
-    chromiumCLA = lib.optionals pkgs.stdenv.hostPlatform.isLinux [
-      "--ozone-platform-hint=auto"
-      "--enable-wayland-ime"
-      "--wayland-text-input-version=3"
-    ];
+  flake.modules.homeManager.desktop = {
+    pkgs,
+    osConfig,
+    ...
+  }: let
+    chromiumCLA = lib.optionals isLinux ([
+        "--ozone-platform-hint=auto"
+        "--enable-wayland-ime"
+        "--wayland-text-input-version=3"
+      ]
+      ++ lib.optionals (!isPlasma) [
+        # Fix https://github.com/microsoft/vscode/issues/187338
+        "--password-store=gnome-libsecret"
+      ]);
+
+    isLinux = pkgs.stdenv.hostPlatform.isLinux;
+    isPlasma = isLinux && (osConfig.services.desktopManager.plasma6.enable or false);
 
     # Fix Chromium IME bug
     cherry-studio = pkgs.cherry-studio.override {commandLineArgs = chromiumCLA;};
modules/dev/vscode/default.nix
@@ -1,22 +1,33 @@
 {lib, ...}: {
   flake.modules.homeManager.dev-vscode = {
     config,
+    osConfig,
     pkgs,
     ...
   }: let
     bask-pkg = pkgs.vscode;
 
+    chromiumCLA = lib.optionals isLinux ([
+        "--ozone-platform-hint=auto"
+        "--enable-wayland-ime"
+        "--wayland-text-input-version=3"
+      ]
+      ++ lib.optionals (!isPlasma) [
+        # Fix https://github.com/microsoft/vscode/issues/187338
+        "--password-store=gnome-libsecret"
+      ]);
+
+    isLinux = pkgs.stdenv.hostPlatform.isLinux;
+    isPlasma = isLinux && (osConfig.services.desktopManager.plasma6.enable or false);
+
     pkg = bask-pkg.override {
-      commandLineArgs = lib.lists.concatLists ([
+      commandLineArgs =
+        (lib.lists.concatLists [
           ["--extensions-dir" extensionsDir]
           ["--user-data-dir" userDataDir]
           ["--locale" "zh-cn"]
-        ]
-        ++ lib.optionals pkgs.stdenv.hostPlatform.isLinux [
-          ["--ozone-platform-hint=auto"]
-          ["--enable-wayland-ime"]
-          ["--wayland-text-input-version=3"]
-        ]);
+        ])
+        ++ chromiumCLA;
     };
 
     # Below VSCode paths are copied from home-manager's vscode module source