diff --git a/modules/nixos/gnome-keyring/default.nix b/modules/nixos/gnome-keyring/default.nix new file mode 100644 index 0000000..54ffb71 --- /dev/null +++ b/modules/nixos/gnome-keyring/default.nix @@ -0,0 +1,32 @@ +{ config, lib, pkgs, namespace, ... }: + +let + cfg = config.${namespace}.gnome-keyring; +in { + options.${namespace}.gnome-keyring = { + enable = lib.mkEnableOption "Enable GNOME Keyring integration"; + }; + + config = lib.mkIf cfg.enable { + services.gnome-keyring = { + enable = true; + components = [ "secrets" "ssh" ]; + }; + # If using SDDM: + security.pam.services.sddm.enableGnomeKeyring = true; + # Also generally useful for other login methods + security.pam.services.login.enableGnomeKeyring = true; + # If using GDM: + security.pam.services.gdm.enableGnomeKeyring = true; + + environment.systemPackages = with pkgs; [ + gnome.seahorse # Provides a GUI for managing the keyring + ]; + + environment.variables = { + # Ensure GNOME Keyring is used for SSH keys + SSH_AUTH_SOCK = "${pkgs.gnome-keyring}/run/gnome-keyring-ssh-socket"; + PASSWORD_STORE = "gnome-libsecret"; + }; + }; +} \ No newline at end of file diff --git a/systems/x86_64-linux/drivebystation-nix/configuration.nix b/systems/x86_64-linux/drivebystation-nix/configuration.nix index 8356a9f..7d4a536 100644 --- a/systems/x86_64-linux/drivebystation-nix/configuration.nix +++ b/systems/x86_64-linux/drivebystation-nix/configuration.nix @@ -51,6 +51,9 @@ displayManager.defaultSession = "gnome"; desktopManager.plasma6.enable = true; + # Enable GNOME Keyring and KDE KWallet integration + my-namespace.gnome-keyring.enable = true; + xserver = { enable = true; # Enable the deprecated X11 teletype terminal connection system. @@ -143,8 +146,15 @@ # Install firefox. programs.firefox.enable = true; + # Enable XWayland for X11 application compatibility programs.xwayland.enable = true; + # docker + virtualisation.docker = { + enable = true; + }; + + # Allow unfree packages nixpkgs.config.allowUnfree = true; @@ -156,6 +166,13 @@ (python312.withPackages (ps: with ps; [ websockets ])) kdePackages.qtwebsockets kdePackages.qtwebchannel + kdePackages.korganizer + kdePackages.akonadi + kdePackages.akonadi-calendar + kdePackages.akonadi-contacts + javaPackages.compiler.openjdk25 + javaPackages.compiler.openjdk21 + linux-wallpaperengine qt6.qtwebengine gnome-tweaks qemu