diff options
| author | brustybee <beebeeb5k@gmail.com> | 2026-04-03 18:17:46 +0530 |
|---|---|---|
| committer | brustybee <beebeeb5k@gmail.com> | 2026-04-03 18:17:46 +0530 |
| commit | f8223622fed02aef1075d41e4dba090df81bf6c1 (patch) | |
| tree | dcff61f6f82dd6be4a8f31ab284e0fd41b53d9ad /common/modules/x11/default.nix | |
| parent | a4a87bd11e228a2a57bfedd48d3594371cf40329 (diff) | |
YEP.
Diffstat (limited to 'common/modules/x11/default.nix')
| -rw-r--r-- | common/modules/x11/default.nix | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/common/modules/x11/default.nix b/common/modules/x11/default.nix new file mode 100644 index 0000000..b619c9a --- /dev/null +++ b/common/modules/x11/default.nix @@ -0,0 +1,172 @@ +{ + homeManager, + inputs, + moduleNameSpace, + ... +}: +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.${moduleNameSpace}.x11; + args = { + inherit inputs homeManager moduleNameSpace; + }; +in +{ + imports = [ + (import ./bspwm args) + (import ./dwm args) + (import ./picom.nix homeManager) + ]; + + options.${moduleNameSpace}.x11 = { + picom = { + enable = lib.mkEnableOption "enable picom compositor"; + animations = lib.mkEnableOption "enable animations"; + shadow = lib.mkEnableOption "enable shadows"; + window = { + opacity = { + active = lib.mkOption { + type = lib.types.float; + default = 1.0; + }; + inactive = lib.mkOption { + type = lib.types.float; + default = 1.0; + }; + }; + blur = { + enable = lib.mkEnableOption "Enable window blur"; + strength = lib.mkOption { + type = lib.types.int; + default = 1; + }; + size = lib.mkOption { + type = lib.types.int; + default = 10; + }; + }; + }; + }; + }; + + config = lib.mkIf (cfg.dwm.enable || cfg.bspwm.enable) ( + if !homeManager then + { + services.xserver = { + enable = true; + autoRepeatDelay = 300; + autoRepeatInterval = 20; + excludePackages = with pkgs; [ xterm ]; + displayManager.sessionCommands = '' + ${pkgs.systemd}/bin/systemctl --user import-environment DISPLAY XAUTHORITY XDG_SESSION_TYPE + ${pkgs.dbus}/bin/dbus-update-activation-environment --systemd DISPLAY XAUTHORITY XDG_SESSION_TYPE + ''; + }; + + programs.ssh.askPassword = ""; + security.pam.services.betterlockscreen = { }; + security.pam.services.i3lock = { }; + + programs.i3lock = { + enable = true; + package = pkgs.i3lock-color; + }; + } + else + { + services.clipcat = { + enable = true; + daemonSettings = { + daemonize = false; + max_history = 50; + desktop_notification = { + enable = false; + }; + }; + menuSettings = { + server_endpoint = "/run/user/1000/clipcat/grpc.sock"; + finder = "rofi"; + + rofi = { + menu_length = 10; + line_length = 100; + menu_prompt = "Clipboard"; + extra_arguments = [ ]; + }; + }; + }; + + services.screen-locker = { + enable = true; + inactiveInterval = 5; + lockCmd = "${pkgs.betterlockscreen}/bin/betterlockscreen -l"; + + xss-lock.extraOptions = [ + "-n" + "--transfer-sleep-lock" + ]; + }; + + services.xidlehook = { + enable = true; + timers = [ + { + delay = 270; + command = "${pkgs.brightnessctl}/bin/brightnessctl g > /tmp/brightness_prev && ${pkgs.brightnessctl}/bin/brightnessctl set 10%"; + canceller = "${pkgs.brightnessctl}/bin/brightnessctl set $(${pkgs.coreutils}/bin/cat /tmp/brightness_prev 2>/dev/null || echo 100%)"; + } + { + delay = 900; + command = "systemctl suspend"; + canceller = ""; + } + ]; + }; + + systemd.user.services.clipcat = { + Unit = { + ConditionEnvironment = [ "XDG_SESSION_TYPE=x11" ]; + }; + + }; + systemd.user.services.xidlehook = { + Unit = { + ConditionEnvironment = [ "XDG_SESSION_TYPE=x11" ]; + }; + }; + + systemd.user.services.xautolock-session = { + Unit = { + ConditionEnvironment = [ "XDG_SESSION_TYPE=x11" ]; + }; + }; + + systemd.user.services.xss-lock = { + Unit = { + ConditionEnvironment = [ "XDG_SESSION_TYPE=x11" ]; + }; + }; + + xresources.extraConfig = lib.mkIf config.beeMods.matugen.enable '' + #include "${config.xdg.configHome}/x11/matugen.Xresources" + ''; + xresources.properties = { + "Xft.dpi" = 96; + "Xft.autohint" = 0; + "Xft.antialias" = true; + "Xft.hinting" = true; + "Xft.lcdfilter" = "lcddefault"; + "Xft.hintstyle" = "hintfull"; + "Xft.rgba" = "rgb"; + "st.font" = + "${config.beeMods.terminal.font.family}:size=${toString config.beeMods.terminal.font.size}:antialias=true:autohint=true"; + "st.borderpx" = 5; + }; + } + ); +} |
