about summary refs log tree commit diff
path: root/modules/desktop/xserver.nix
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2022-02-08 19:58:38 -0800
committerFranck Cuny <franck@fcuny.net>2022-02-08 19:59:17 -0800
commit3b1ac4f78d21802073c82df39ca7080ae70a67a9 (patch)
tree7895ede6ae0c31c7b1a77230619e8560404f6f2a /modules/desktop/xserver.nix
parentdesktop: new option to control desktop setup (diff)
downloadworld-3b1ac4f78d21802073c82df39ca7080ae70a67a9.tar.gz
desktop: install sound and xserver only when asked
Diffstat (limited to 'modules/desktop/xserver.nix')
-rw-r--r--modules/desktop/xserver.nix41
1 files changed, 23 insertions, 18 deletions
diff --git a/modules/desktop/xserver.nix b/modules/desktop/xserver.nix
index 894b39b..d007bd8 100644
--- a/modules/desktop/xserver.nix
+++ b/modules/desktop/xserver.nix
@@ -1,26 +1,31 @@
 { config, pkgs, lib, ... }:
+with lib;
 
-{
-  services.xserver = {
-    enable = true;
-    layout = "us";
-    xkbOptions = "eurosign:e";
-    libinput.enable = true;
+let
+  xorg = (elem "xorg" config.sys.graphics.desktopProtocols);
+in {
+  config= mkIf xorg {
+    services.xserver = {
+      enable = true;
+      layout = "us";
+      xkbOptions = "eurosign:e";
+      libinput.enable = true;
 
-    desktopManager = {
-      xterm.enable = false;
-    };
+      desktopManager = {
+        xterm.enable = false;
+      };
 
-    displayManager = {
-      lightdm.enable = true;
-      defaultSession = "none+i3";
-    };
+      displayManager = {
+        lightdm.enable = true;
+        defaultSession = "none+i3";
+      };
 
-    windowManager = {
-      i3.enable = true;
+      windowManager = {
+        i3.enable = true;
+      };
     };
-  };
 
-  services.gnome.gnome-keyring.enable = true;
-  services.gvfs.enable = true;
+    services.gnome.gnome-keyring.enable = true;
+    services.gvfs.enable = true;
+  };
 }