Loading nixos/modules/config/no-x-libs.nix +1 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ with lib; networkmanager-sstp = super.networkmanager-vpnc.override { withGnome = false; }; networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; }; pango = super.pango.override { x11Support = false; }; pinentry = super.pinentry.override { enabledFlavors = [ "curses" "tty" "emacs" ]; withLibsecret = false; }; pinentry-curses = super.pinentry-curses.override { withLibsecret = false; }; pipewire = super.pipewire.override { vulkanSupport = false; x11Support = false; }; pythonPackagesExtensions = super.pythonPackagesExtensions ++ [ (python-final: python-prev: { Loading nixos/modules/programs/gnupg.nix +20 −22 Original line number Diff line number Diff line { config, lib, pkgs, ... }: with lib; let inherit (lib) mkRemovedOptionModule mkOption mkPackageOption types mkIf optionalString; cfg = config.programs.gnupg; Loading @@ -26,8 +25,10 @@ let "curses"; in { imports = [ (mkRemovedOptionModule [ "programs" "gnupg" "agent" "pinentryFlavor" ] "Use programs.gnupg.agent.pinentryPackage instead") ]; options.programs.gnupg = { package = mkPackageOption pkgs "gnupg" { }; Loading Loading @@ -66,17 +67,17 @@ in ''; }; agent.pinentryFlavor = mkOption { type = types.nullOr (types.enum pkgs.pinentry.flavors); example = "gnome3"; default = defaultPinentryFlavor; defaultText = literalMD ''matching the configured desktop environment''; agent.pinentryPackage = mkOption { type = types.nullOr types.package; example = lib.literalMD "pkgs.pinentry-gnome3"; default = pkgs.pinentry-curses; defaultText = lib.literalMD "matching the configured desktop environment or `pkgs.pinentry-curses`"; description = lib.mdDoc '' Which pinentry interface to use. If not null, the path to the pinentry binary will be set in /etc/gnupg/gpg-agent.conf. If not set at all, it'll pick an appropriate flavor depending on the system configuration (qt flavor for lxqt and plasma5, gtk2 for xfce 4.12, gnome3 on all other systems with X enabled, ncurses otherwise). Which pinentry package to use. The path to the mainProgram as defined in the package's meta attriutes will be set in /etc/gnupg/gpg-agent.conf. If not set by the user, it'll pick an appropriate flavor depending on the system configuration (qt flavor for lxqt and plasma5, gtk2 for xfce, gnome3 on all other systems with X enabled, curses otherwise). ''; }; Loading @@ -102,9 +103,8 @@ in }; config = mkIf cfg.agent.enable { programs.gnupg.agent.settings = { pinentry-program = lib.mkIf (cfg.agent.pinentryFlavor != null) "${pkgs.pinentry.${cfg.agent.pinentryFlavor}}/bin/pinentry"; programs.gnupg.agent.settings = mkIf (cfg.agent.pinentryPackage != null) { pinentry-program = lib.getExe cfg.agent.pinentryPackage; }; environment.etc."gnupg/gpg-agent.conf".source = Loading Loading @@ -207,9 +207,9 @@ in wantedBy = [ "sockets.target" ]; }; services.dbus.packages = mkIf (cfg.agent.pinentryFlavor == "gnome3") [ pkgs.gcr ]; services.dbus.packages = mkIf (lib.elem "gnome3" (cfg.agent.pinentryPackage.flavors or [])) [ pkgs.gcr ]; environment.systemPackages = with pkgs; [ cfg.package ]; environment.systemPackages = [ cfg.package ]; environment.interactiveShellInit = '' # Bind gpg-agent to this TTY if gpg commands are used. Loading @@ -230,12 +230,10 @@ in ''; assertions = [ { assertion = cfg.agent.enableSSHSupport -> !config.programs.ssh.startAgent; { assertion = cfg.agent.enableSSHSupport -> !config.programs.ssh.startAgent; message = "You can't use ssh-agent and GnuPG agent with SSH support enabled at the same time!"; } ]; }; # uses attributes of the linked package meta.buildDocsInSandbox = false; } nixos/modules/programs/wayland/sway.nix +5 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,7 @@ in { ''; } ]; environment = { systemPackages = optional (cfg.package != null) cfg.package ++ cfg.extraPackages; # Needed for the default wallpaper: Loading @@ -166,8 +167,12 @@ in { "sway/config".source = mkOptionDefault "${cfg.package}/etc/sway/config"; }; }; programs.gnupg.agent.pinentryPackage = lib.mkDefault pkgs.pinentry-gnome3; # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913 xdg.portal.config.sway.default = mkDefault [ "wlr" "gtk" ]; # To make a Sway session available if a display manager like SDDM is enabled: services.xserver.displayManager.sessionPackages = optionals (cfg.package != null) [ cfg.package ]; } (import ./wayland-session.nix { inherit lib pkgs; }) Loading nixos/modules/services/security/yubikey-agent.nix +2 −10 Original line number Diff line number Diff line Loading @@ -6,9 +6,6 @@ with lib; let cfg = config.services.yubikey-agent; # reuse the pinentryFlavor option from the gnupg module pinentryFlavor = config.programs.gnupg.agent.pinentryFlavor; in { ###### interface Loading Loading @@ -41,13 +38,8 @@ in # This overrides the systemd user unit shipped with the # yubikey-agent package systemd.user.services.yubikey-agent = mkIf (pinentryFlavor != null) { path = [ pkgs.pinentry.${pinentryFlavor} ]; wantedBy = [ (if pinentryFlavor == "tty" || pinentryFlavor == "curses" then "default.target" else "graphical-session.target") ]; path = [ config.programs.gnupg.agent.pinentryPackage ]; wantedBy = [ "default.target" ]; }; # Yubikey-agent expects pcsd to be running in order to function. Loading nixos/modules/services/x11/desktop-managers/deepin.nix +1 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ in services.upower.enable = mkDefault config.powerManagement.enable; networking.networkmanager.enable = mkDefault true; programs.dconf.enable = mkDefault true; programs.gnupg.agent.pinentryPackage = pkgs.pinentry-qt; fonts.packages = with pkgs; [ noto-fonts ]; xdg.mime.enable = true; Loading Loading
nixos/modules/config/no-x-libs.nix +1 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ with lib; networkmanager-sstp = super.networkmanager-vpnc.override { withGnome = false; }; networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; }; pango = super.pango.override { x11Support = false; }; pinentry = super.pinentry.override { enabledFlavors = [ "curses" "tty" "emacs" ]; withLibsecret = false; }; pinentry-curses = super.pinentry-curses.override { withLibsecret = false; }; pipewire = super.pipewire.override { vulkanSupport = false; x11Support = false; }; pythonPackagesExtensions = super.pythonPackagesExtensions ++ [ (python-final: python-prev: { Loading
nixos/modules/programs/gnupg.nix +20 −22 Original line number Diff line number Diff line { config, lib, pkgs, ... }: with lib; let inherit (lib) mkRemovedOptionModule mkOption mkPackageOption types mkIf optionalString; cfg = config.programs.gnupg; Loading @@ -26,8 +25,10 @@ let "curses"; in { imports = [ (mkRemovedOptionModule [ "programs" "gnupg" "agent" "pinentryFlavor" ] "Use programs.gnupg.agent.pinentryPackage instead") ]; options.programs.gnupg = { package = mkPackageOption pkgs "gnupg" { }; Loading Loading @@ -66,17 +67,17 @@ in ''; }; agent.pinentryFlavor = mkOption { type = types.nullOr (types.enum pkgs.pinentry.flavors); example = "gnome3"; default = defaultPinentryFlavor; defaultText = literalMD ''matching the configured desktop environment''; agent.pinentryPackage = mkOption { type = types.nullOr types.package; example = lib.literalMD "pkgs.pinentry-gnome3"; default = pkgs.pinentry-curses; defaultText = lib.literalMD "matching the configured desktop environment or `pkgs.pinentry-curses`"; description = lib.mdDoc '' Which pinentry interface to use. If not null, the path to the pinentry binary will be set in /etc/gnupg/gpg-agent.conf. If not set at all, it'll pick an appropriate flavor depending on the system configuration (qt flavor for lxqt and plasma5, gtk2 for xfce 4.12, gnome3 on all other systems with X enabled, ncurses otherwise). Which pinentry package to use. The path to the mainProgram as defined in the package's meta attriutes will be set in /etc/gnupg/gpg-agent.conf. If not set by the user, it'll pick an appropriate flavor depending on the system configuration (qt flavor for lxqt and plasma5, gtk2 for xfce, gnome3 on all other systems with X enabled, curses otherwise). ''; }; Loading @@ -102,9 +103,8 @@ in }; config = mkIf cfg.agent.enable { programs.gnupg.agent.settings = { pinentry-program = lib.mkIf (cfg.agent.pinentryFlavor != null) "${pkgs.pinentry.${cfg.agent.pinentryFlavor}}/bin/pinentry"; programs.gnupg.agent.settings = mkIf (cfg.agent.pinentryPackage != null) { pinentry-program = lib.getExe cfg.agent.pinentryPackage; }; environment.etc."gnupg/gpg-agent.conf".source = Loading Loading @@ -207,9 +207,9 @@ in wantedBy = [ "sockets.target" ]; }; services.dbus.packages = mkIf (cfg.agent.pinentryFlavor == "gnome3") [ pkgs.gcr ]; services.dbus.packages = mkIf (lib.elem "gnome3" (cfg.agent.pinentryPackage.flavors or [])) [ pkgs.gcr ]; environment.systemPackages = with pkgs; [ cfg.package ]; environment.systemPackages = [ cfg.package ]; environment.interactiveShellInit = '' # Bind gpg-agent to this TTY if gpg commands are used. Loading @@ -230,12 +230,10 @@ in ''; assertions = [ { assertion = cfg.agent.enableSSHSupport -> !config.programs.ssh.startAgent; { assertion = cfg.agent.enableSSHSupport -> !config.programs.ssh.startAgent; message = "You can't use ssh-agent and GnuPG agent with SSH support enabled at the same time!"; } ]; }; # uses attributes of the linked package meta.buildDocsInSandbox = false; }
nixos/modules/programs/wayland/sway.nix +5 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,7 @@ in { ''; } ]; environment = { systemPackages = optional (cfg.package != null) cfg.package ++ cfg.extraPackages; # Needed for the default wallpaper: Loading @@ -166,8 +167,12 @@ in { "sway/config".source = mkOptionDefault "${cfg.package}/etc/sway/config"; }; }; programs.gnupg.agent.pinentryPackage = lib.mkDefault pkgs.pinentry-gnome3; # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913 xdg.portal.config.sway.default = mkDefault [ "wlr" "gtk" ]; # To make a Sway session available if a display manager like SDDM is enabled: services.xserver.displayManager.sessionPackages = optionals (cfg.package != null) [ cfg.package ]; } (import ./wayland-session.nix { inherit lib pkgs; }) Loading
nixos/modules/services/security/yubikey-agent.nix +2 −10 Original line number Diff line number Diff line Loading @@ -6,9 +6,6 @@ with lib; let cfg = config.services.yubikey-agent; # reuse the pinentryFlavor option from the gnupg module pinentryFlavor = config.programs.gnupg.agent.pinentryFlavor; in { ###### interface Loading Loading @@ -41,13 +38,8 @@ in # This overrides the systemd user unit shipped with the # yubikey-agent package systemd.user.services.yubikey-agent = mkIf (pinentryFlavor != null) { path = [ pkgs.pinentry.${pinentryFlavor} ]; wantedBy = [ (if pinentryFlavor == "tty" || pinentryFlavor == "curses" then "default.target" else "graphical-session.target") ]; path = [ config.programs.gnupg.agent.pinentryPackage ]; wantedBy = [ "default.target" ]; }; # Yubikey-agent expects pcsd to be running in order to function. Loading
nixos/modules/services/x11/desktop-managers/deepin.nix +1 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ in services.upower.enable = mkDefault config.powerManagement.enable; networking.networkmanager.enable = mkDefault true; programs.dconf.enable = mkDefault true; programs.gnupg.agent.pinentryPackage = pkgs.pinentry-qt; fonts.packages = with pkgs; [ noto-fonts ]; xdg.mime.enable = true; Loading