From 66d8af6d091af58aa2cc7bdc4e85c3545f8d3ae2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 21 Nov 2009 22:14:01 +0000 Subject: X: Add support for starting the GnuPG agent. svn path=/nixos/trunk/; revision=18509 --- modules/services/x11/xserver.nix | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'modules/services/x11/xserver.nix') diff --git a/modules/services/x11/xserver.nix b/modules/services/x11/xserver.nix index e14c9762bd02..ee6f7c50f122 100644 --- a/modules/services/x11/xserver.nix +++ b/modules/services/x11/xserver.nix @@ -208,6 +208,16 @@ in ''; }; + startGnuPGAgent = mkOption { + default = true; + description = '' + Whether to start the GnuPG agent when you log in. The GnuPG agent + remembers private keys for you so that you don't have to type in + passphrases every time you make an SSH connection or sign/encrypt + data. Use ssh-add to add a key to the agent. + ''; + }; + layout = mkOption { default = "us"; description = '' @@ -322,13 +332,21 @@ in ###### implementation - + config = mkIf cfg.enable { - assertions = singleton - { assertion = config.services.hal.enable == true; - message = "The X server needs HAL running. Set services.hal.enable to true"; - }; + assertions = + [ { assertion = config.services.hal.enable == true; + message = "The X server needs HAL running. Set services.hal.enable to true"; + } + + { assertion = (cfg.startSSHAgent -> !cfg.startGnuPGAgent) + && (cfg.startGnuPGAgent -> !cfg.startSSHAgent); + message = + "The OpenSSH SSH agent and GnuPG agent cannot be started " + + "both. Choose between `startSSHAgent' and `startGnuPGAgent'."; + } + ]; boot.extraModulePackages = optional (elem "nvidia" driverNames) kernelPackages.nvidia_x11 ++ -- cgit 1.4.1