den
 1{lib, ...}: {
 2  flake.modules.homeManager.desktop = {
 3    pkgs,
 4    osConfig,
 5    ...
 6  }: let
 7    chromiumCLA =
 8      lib.optionals isLinux ([
 9          "--ozone-platform-hint=auto"
10          "--enable-wayland-ime"
11          "--wayland-text-input-version=3"
12        ]
13        ++ lib.optionals (!isPlasma) [
14          # Fix https://github.com/microsoft/vscode/issues/187338
15          "--password-store=gnome-libsecret"
16        ])
17      ++ ["-disable-features=GlobalShortcutsPortal"];
18
19    isLinux = pkgs.stdenv.hostPlatform.isLinux;
20    isPlasma = isLinux && (osConfig.services.desktopManager.plasma6.enable or false);
21  in {
22    programs.chromium = {
23      enable = true;
24      package = lib.mkIf isLinux (pkgs.chromium.override {
25        commandLineArgs = chromiumCLA;
26      });
27      nativeMessagingHosts = lib.optionals isPlasma [
28        pkgs.kdePackages.plasma-browser-integration
29      ];
30      extensions =
31        [
32          {id = "nngceckbapebfimnlniiiahkandclblb";} # Bitwarden
33          {id = "ddkjiahejlhfcafbddmgiahcphecmpfh";} # Ublock Origin Lite
34        ]
35        ++ (lib.optional isPlasma {id = "cimiefiiaegbelhefglklhhakcgmhkai";}); # Plasma Integration
36    };
37  };
38}