about summary refs log tree commit diff
path: root/modules/nixos/x11.nix
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>2022-12-17 16:39:09 +0300
committerAzat Bahawi <azat@bahawi.net>2022-12-17 16:39:09 +0300
commit8f137c28230623259a964484adcf31fe00756594 (patch)
tree82bce6a13fda125087cf6d9dc80aa91d9230d6c4 /modules/nixos/x11.nix
parent2022-11-20 (diff)
2022-12-17
Diffstat (limited to 'modules/nixos/x11.nix')
-rw-r--r--modules/nixos/x11.nix92
1 files changed, 92 insertions, 0 deletions
diff --git a/modules/nixos/x11.nix b/modules/nixos/x11.nix
new file mode 100644
index 0000000..cd8dfbe
--- /dev/null
+++ b/modules/nixos/x11.nix
@@ -0,0 +1,92 @@
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}:
+with lib; let
+  cfg = config.nixfiles.modules.x11;
+in {
+  options.nixfiles.modules.x11.enable = mkEnableOption "X11";
+
+  config = mkIf cfg.enable {
+    nixfiles.modules.fonts.enable = true;
+
+    hm = {
+      home.sessionVariables = with config.dirs; {
+        XCOMPOSEFILE = "${cache}/XComposeFile";
+        XCOMPOSECACHE = "${cache}/XComposeCache";
+      };
+
+      xsession.scriptPath = ".xinitrc";
+
+      xresources.properties =
+        (let
+          font = with config.fontScheme.monospaceFont; "${family}:style=${style}:size=${toString size}";
+        in {
+          "*.font" = font;
+
+          "Xft.antialias" = 1;
+          "Xft.autohint" = 0;
+          "Xft.dpi" = 96;
+          "Xft.hinting" = 1;
+          "Xft.hintstyle" = "hintslight";
+          "Xft.lcdfilter" = "lcddefault";
+          "Xft.rgba" = "rgb";
+        })
+        // (with config.colourScheme; {
+          "*.color0" = black;
+          "*.color8" = brightBlack;
+          "*.color1" = red;
+          "*.color9" = brightRed;
+          "*.color2" = green;
+          "*.color10" = brightGreen;
+          "*.color3" = yellow;
+          "*.color11" = brightYellow;
+          "*.color4" = blue;
+          "*.color12" = brightBlue;
+          "*.color5" = magenta;
+          "*.color13" = brightMagenta;
+          "*.color6" = cyan;
+          "*.color14" = brightCyan;
+          "*.color7" = white;
+          "*.color15" = brightWhite;
+
+          "*.background" = background;
+          "*.foreground" = foreground;
+        });
+    };
+
+    services.xserver = {
+      enable = true;
+
+      tty = mkDefault 1;
+
+      autoRepeatDelay = 200;
+      autoRepeatInterval = 25;
+
+      libinput.enable = true;
+
+      monitorSection = ''
+        Option "DPMS" "false"
+      '';
+
+      serverFlagsSection = ''
+        Option "BlankTime" "0"
+        Option "OffTime" "0"
+        Option "StandbyTime" "0"
+        Option "SuspendTime" "0"
+      '';
+
+      inputClassSections = [
+        ''
+          Identifier "Mouse"
+          MatchIsPointer "yes"
+          Option "AccelerationNumerator" "2"
+          Option "AccelerationDenominator" "1"
+          Option "AccelerationThreshold" "4"
+        ''
+      ];
+    };
+  };
+}

Consider giving Nix/NixOS a try! <3