summaryrefslogtreecommitdiff
path: root/modules/x11.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/x11.nix')
-rw-r--r--modules/x11.nix91
1 files changed, 91 insertions, 0 deletions
diff --git a/modules/x11.nix b/modules/x11.nix
new file mode 100644
index 0000000..55ba0b5
--- /dev/null
+++ b/modules/x11.nix
@@ -0,0 +1,91 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+with lib;
+let
+ cfg = config.nixfiles.modules.x11;
+in
+{
+ options.nixfiles.modules.x11.enable = mkEnableOption "X11";
+
+ config = mkIf cfg.enable {
+ hm = {
+ home = {
+ sessionVariables = {
+ XCOMPOSEFILE = pkgs.writeText "XCompose" ''
+ include "${pkgs.xorg.libX11}/share/X11/locale/en_US.UTF-8/Compose"
+ '';
+ XCOMPOSECACHE = "${config.dirs.cache}/libx11/compose";
+ };
+
+ packages = with pkgs; [ xclip ];
+ };
+
+ xresources.properties = {
+ "Xft.antialias" = mkDefault 1;
+ "Xft.autohint" = mkDefault 0;
+ "Xft.hinting" = mkDefault 1;
+ "Xft.hintstyle" = mkDefault "hintslight";
+ "Xft.lcdfilter" = mkDefault "lcddefault";
+ "Xft.rgba" = mkDefault "rgb";
+ };
+
+ services.xsettingsd = {
+ enable = true;
+ # https://codeberg.org/derat/xsettingsd#settings
+ settings =
+ let
+ xprop = config.hm.xresources.properties;
+ in
+ {
+ "Net/CursorBlink" = 1;
+ "Net/CursorBlinkTime" = 1200;
+ "Net/DndDragThreshold" = 0;
+ "Net/DoubleClickDistance" = 5;
+ "Net/DoubleClickTime" = 250;
+ "Net/EnableEventSounds" = 1;
+ "Net/EnableInputFeedbackSounds" = 1;
+ "Xft/Antialias" = xprop."Xft.antialias";
+ "Xft/HintStyle" = xprop."Xft.hintstyle";
+ "Xft/Hinting" = xprop."Xft.hinting";
+ "Xft/RGBA" = xprop."Xft.rgba";
+ };
+ };
+ };
+
+ services.xserver = {
+ enable = true;
+
+ tty = mkDefault 1;
+
+ autoRepeatDelay = 200;
+ autoRepeatInterval = 50;
+
+ 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"
+ ''
+ ];
+ };
+ };
+}