summaryrefslogtreecommitdiff
path: root/archetypes/collections/desktop/xserver.nix
diff options
context:
space:
mode:
Diffstat (limited to 'archetypes/collections/desktop/xserver.nix')
-rw-r--r--archetypes/collections/desktop/xserver.nix34
1 files changed, 34 insertions, 0 deletions
diff --git a/archetypes/collections/desktop/xserver.nix b/archetypes/collections/desktop/xserver.nix
new file mode 100644
index 0000000..4cbdae8
--- /dev/null
+++ b/archetypes/collections/desktop/xserver.nix
@@ -0,0 +1,34 @@
+{ pkgs, lib, config, ... }: let
+ cfg = config._archetypes.collections.desktop.xserver;
+in {
+ options._archetypes.collections.desktop.xserver = {
+ enable = lib.mkEnableOption "installs xserver";
+ utilities.enable = lib.mkEnableOption "installs basic xserver utilities";
+ };
+
+ config = lib.mkIf cfg.enable {
+ services.xserver.enable = true;
+ services.xserver.displayManager.startx.enable = true;
+ services.libinput.enable = true; # Enable touchpad support
+
+ # Install basic X utilities
+ environment.systemPackages = with pkgs; lib.optionals cfg.utilities.enable [
+ unclutter
+ xcape
+ xclip
+ xdotool
+ xorg.setxkbmap
+ xorg.xinput
+ xorg.xkill
+ xorg.xrandr
+ xorg.xset
+ xwallpaper
+ ];
+
+ # Enable TearFree option by default
+ # Not all video drivers support this option
+ services.xserver.deviceSection = ''
+ Option "TearFree" "true"
+ '';
+ };
+}