diff options
author | Oliver Charles <ollie@ocharles.org.uk> | 2015-12-16 13:45:05 +0000 |
---|---|---|
committer | Oliver Charles <ollie@ocharles.org.uk> | 2015-12-16 13:45:05 +0000 |
commit | 35f8952a8c0df44c542a95a9000e476c16a344f7 (patch) | |
tree | ebe95223ceaeb03ec6510144b3588cdb72a1b36e /nixos/modules/services/x11 | |
parent | 63b76488702811bb28ea6e90b28dda1841c80eef (diff) | |
parent | 9be012f0d4d9b6bca35416ec89d5a40be4556896 (diff) | |
download | nixlib-35f8952a8c0df44c542a95a9000e476c16a344f7.tar nixlib-35f8952a8c0df44c542a95a9000e476c16a344f7.tar.gz nixlib-35f8952a8c0df44c542a95a9000e476c16a344f7.tar.bz2 nixlib-35f8952a8c0df44c542a95a9000e476c16a344f7.tar.lz nixlib-35f8952a8c0df44c542a95a9000e476c16a344f7.tar.xz nixlib-35f8952a8c0df44c542a95a9000e476c16a344f7.tar.zst nixlib-35f8952a8c0df44c542a95a9000e476c16a344f7.zip |
Merge pull request #11338 from obadz/light-locker
light-locker (lockscreen for lightdm)
Diffstat (limited to 'nixos/modules/services/x11')
-rw-r--r-- | nixos/modules/services/x11/display-managers/default.nix | 2 | ||||
-rw-r--r-- | nixos/modules/services/x11/display-managers/lightdm.nix | 15 | ||||
-rw-r--r-- | nixos/modules/services/x11/xserver.nix | 11 |
3 files changed, 18 insertions, 10 deletions
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index ca0832e5b0c8..bad99ccd8696 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -37,7 +37,7 @@ let # file provided by services.xserver.displayManager.session.script xsession = wm: dm: pkgs.writeScript "xsession" '' - #! /bin/sh + #! ${pkgs.bash}/bin/bash . /etc/profile cd "$HOME" diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix index c8ccf43029dc..ded694d90d50 100644 --- a/nixos/modules/services/x11/display-managers/lightdm.nix +++ b/nixos/modules/services/x11/display-managers/lightdm.nix @@ -13,9 +13,16 @@ let # lightdm runs with clearenv(), but we need a few things in the enviornment for X to startup xserverWrapper = writeScript "xserver-wrapper" '' - #! /bin/sh + #! ${pkgs.bash}/bin/bash ${concatMapStrings (n: "export ${n}=\"${getAttr n xEnv}\"\n") (attrNames xEnv)} - exec ${dmcfg.xserverBin} ${dmcfg.xserverArgs} + + display=$(echo "$@" | xargs -n 1 | grep -P ^:\\d\$ | head -n 1 | sed s/^://) + if [ -z "$display" ] + then additionalArgs=":0 -logfile /var/log/X.0.log" + else additionalArgs="-logfile /var/log/X.$display.log" + fi + + exec ${dmcfg.xserverBin} ${dmcfg.xserverArgs} $additionalArgs "$@" ''; usersConf = writeText "users.conf" @@ -39,7 +46,6 @@ let greeter-session = ${cfg.greeter.name} ${cfg.extraSeatDefaults} ''; - in { # Note: the order in which lightdm greeter modules are imported @@ -98,7 +104,6 @@ in }; config = mkIf cfg.enable { - services.xserver.displayManager.slim.enable = false; services.xserver.displayManager.job = { @@ -149,5 +154,7 @@ in services.xserver.displayManager.lightdm.background = mkDefault "${pkgs.nixos-artwork}/share/artwork/gnome/Gnome_Dark.png"; + services.xserver.tty = null; # We might start multiple X servers so let the tty increment themselves.. + services.xserver.display = null; # We specify our own display (and logfile) in xserver-wrapper up there }; } diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 3348e8d0582c..8fcca70bc796 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -381,13 +381,13 @@ in }; tty = mkOption { - type = types.int; + type = types.nullOr types.int; default = 7; description = "Virtual console for the X server."; }; display = mkOption { - type = types.int; + type = types.nullOr types.int; default = 0; description = "Display number for the X server."; }; @@ -517,11 +517,12 @@ in services.xserver.displayManager.xserverArgs = [ "-ac" "-terminate" - "-logfile" "/var/log/X.${toString cfg.display}.log" "-config ${configFile}" - ":${toString cfg.display}" "vt${toString cfg.tty}" "-xkbdir" "${pkgs.xkeyboard_config}/etc/X11/xkb" - ] ++ optional (!cfg.enableTCP) "-nolisten tcp"; + ] ++ optional (cfg.display != null) ":${tostring cfg.display}" + ++ optional (cfg.tty != null) "vt${toString cfg.tty}" + ++ optional (cfg.display != null) [ "-logfile" "/var/log/X.${toString cfg.display}.log" ] + ++ optional (!cfg.enableTCP) "-nolisten tcp"; services.xserver.modules = concatLists (catAttrs "modules" cfg.drivers) ++ |