nixos-config/modules/system/x11.nix

95 lines
1.9 KiB
Nix
Raw Normal View History

2019-10-24 02:20:38 +02:00
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.system.custom.x11;
in {
options.system.custom.x11 = {
2019-12-20 05:54:26 +01:00
enable = mkEnableOption "enable x11";
2019-10-24 02:20:38 +02:00
autoLoginUser = mkOption {
type = with types; str;
description = "user to login";
};
};
config = mkIf cfg.enable {
services.xserver = {
enable = true;
# Configure video Drivers
# -----------------------
videoDrivers = [ "intel" ];
deviceSection = ''
Option "DRI" "2"
Option "TearFree" "true"
'';
# window-manager : Xmonad
# -----------------------
desktopManager = {
default = "none";
xterm.enable = false;
};
displayManager.lightdm = {
enable = true;
autoLogin.enable = true;
autoLogin.user = cfg.autoLoginUser;
};
windowManager = {
xmonad.enable = true;
xmonad.enableContribAndExtras = true;
default = "xmonad";
};
# mouse/touchpad
# --------------
libinput = {
enable = true;
disableWhileTyping = true;
tapping = true;
scrollMethod = "twofinger";
accelSpeed = "2";
};
# Wacom configuraton
# ------------------
modules = [ pkgs.xf86_input_wacom ];
};
# Packages
# --------
2019-12-20 05:54:26 +01:00
environment.systemPackages = with pkgs; [
2019-10-24 02:20:38 +02:00
dmenu
arandr
xcalib
flameshot
xorg.xmodmap
feh
];
# Xresources config
# -----------------
# spread the Xresource config
# across different files
# just add a file into `/etc/X11/Xresource.d/` and it will be
# evaluated.
services.xserver.displayManager.sessionCommands = ''
for file in `ls /etc/X11/Xresource.d/`
do
${pkgs.xorg.xrdb}/bin/xrdb -merge /etc/X11/Xresource.d/$file
done
'';
environment.etc."/X11/Xresource.d/.keep".text = "";
};
}