summaryrefslogtreecommitdiff
path: root/common/modules/x11/default.nix
diff options
context:
space:
mode:
authorbrustybee <beebeeb5k@gmail.com>2026-04-03 18:17:46 +0530
committerbrustybee <beebeeb5k@gmail.com>2026-04-03 18:17:46 +0530
commitf8223622fed02aef1075d41e4dba090df81bf6c1 (patch)
treedcff61f6f82dd6be4a8f31ab284e0fd41b53d9ad /common/modules/x11/default.nix
parenta4a87bd11e228a2a57bfedd48d3594371cf40329 (diff)
YEP.
Diffstat (limited to 'common/modules/x11/default.nix')
-rw-r--r--common/modules/x11/default.nix172
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;
+ };
+ }
+ );
+}