about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorcolin <colin@uninsane.org>2022-11-02 03:31:52 -0700
committercolin <colin@uninsane.org>2022-11-07 05:48:23 -0800
commited9998cf2a5ebb181ee604d2f0a2b0c64718c082 (patch)
tree7d57af31d89bea52b3acc95ad69455d40cdfc25c /nixos
parent32b67fe06229fb39023fd8ca4b6d8ed3342e2df4 (diff)
nixos/lightdm: add `greeters.mobile` config option
i based this on the neighboring lightdm-greeters/mini.nix module.

lightdm-mobile-greeter doesn't have a lot of configuration options.
it grabs the default user to login as from lightdm, along with which DE
it should launch. so no further configuration should be needed aside
from enabling `services.xserver.displayManager.lightdm.enable` and
either setting `services.xserver.displayManager.defaultSession` to the
appropriate session or explicitly defining a seat like:

```nix
services.xserver.displayManager.lightdm.extraSeatDefaults = ''
  user-session = phosh
'';
```
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/x11/display-managers/lightdm-greeters/mobile.nix26
-rw-r--r--nixos/modules/services/x11/display-managers/lightdm.nix1
2 files changed, 27 insertions, 0 deletions
diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/mobile.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/mobile.nix
new file mode 100644
index 0000000000000..31cc9b3deaa17
--- /dev/null
+++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/mobile.nix
@@ -0,0 +1,26 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  dmcfg = config.services.xserver.displayManager;
+  ldmcfg = dmcfg.lightdm;
+  cfg = ldmcfg.greeters.mobile;
+in
+{
+  options = {
+    services.xserver.displayManager.lightdm.greeters.mobile = {
+      enable = mkEnableOption (lib.mdDoc
+        "lightdm-mobile-greeter as the lightdm greeter"
+      );
+    };
+  };
+
+  config = mkIf (ldmcfg.enable && cfg.enable) {
+    services.xserver.displayManager.lightdm.greeters.gtk.enable = false;
+
+    services.xserver.displayManager.lightdm.greeter = mkDefault {
+      package = pkgs.lightdm-mobile-greeter.xgreeters;
+      name = "lightdm-mobile-greeter";
+    };
+  };
+}
diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix
index b0508c3b4f793..f74e8efb8f640 100644
--- a/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -83,6 +83,7 @@ in
     ./lightdm-greeters/pantheon.nix
     ./lightdm-greeters/tiny.nix
     ./lightdm-greeters/slick.nix
+    ./lightdm-greeters/mobile.nix
     (mkRenamedOptionModule [ "services" "xserver" "displayManager" "lightdm" "autoLogin" "enable" ] [
       "services"
       "xserver"