Updates to git delta config, waybar config, and others
This commit is contained in:
		
							parent
							
								
									98b45d64f7
								
							
						
					
					
						commit
						9436e1504f
					
				
							
								
								
									
										33
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										33
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							@ -1,5 +1,25 @@
 | 
			
		||||
{
 | 
			
		||||
  "nodes": {
 | 
			
		||||
    "auto-cpufreq": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1752998173,
 | 
			
		||||
        "narHash": "sha256-ZlYpBp2WOe03UrpjJGz5KTOL/pp7A452hJO/Vc8C4/0=",
 | 
			
		||||
        "owner": "AdnanHodzic",
 | 
			
		||||
        "repo": "auto-cpufreq",
 | 
			
		||||
        "rev": "562278377ffa96f3c1af49c7b499df028ce8d8bd",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "AdnanHodzic",
 | 
			
		||||
        "repo": "auto-cpufreq",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "catppuccin": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": "nixpkgs"
 | 
			
		||||
@ -78,11 +98,11 @@
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs-unstable": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1754214453,
 | 
			
		||||
        "narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=",
 | 
			
		||||
        "lastModified": 1754725699,
 | 
			
		||||
        "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376",
 | 
			
		||||
        "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@ -94,11 +114,11 @@
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_2": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1754028485,
 | 
			
		||||
        "narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=",
 | 
			
		||||
        "lastModified": 1754767907,
 | 
			
		||||
        "narHash": "sha256-8OnUzRQZkqtUol9vuUuQC30hzpMreKptNyET2T9lB6g=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "59e69648d345d6e8fef86158c555730fa12af9de",
 | 
			
		||||
        "rev": "c5f08b62ed75415439d48152c2a784e36909b1bc",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@ -146,6 +166,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    "root": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "auto-cpufreq": "auto-cpufreq",
 | 
			
		||||
        "catppuccin": "catppuccin",
 | 
			
		||||
        "home-manager": "home-manager",
 | 
			
		||||
        "nixpkgs": "nixpkgs_2",
 | 
			
		||||
 | 
			
		||||
@ -8,17 +8,23 @@
 | 
			
		||||
        url = "github:nix-community/home-manager/release-25.05";
 | 
			
		||||
        inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
    # bonus inputs
 | 
			
		||||
    catppuccin.url = "github:catppuccin/nix";
 | 
			
		||||
    nur.url = "github:nix-community/NUR";
 | 
			
		||||
    auto-cpufreq = {
 | 
			
		||||
      url = "github:AdnanHodzic/auto-cpufreq";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs = { self, nixpkgs, nixpkgs-unstable, catppuccin, nur, home-manager, ... } @ inputs:
 | 
			
		||||
  outputs = { self, nixpkgs, nixpkgs-unstable, catppuccin, nur, home-manager, auto-cpufreq, ... } @ inputs:
 | 
			
		||||
  let
 | 
			
		||||
    inherit (self) outputs;
 | 
			
		||||
    system = "x86_64-linux";
 | 
			
		||||
    timeZone = "America/Denver";
 | 
			
		||||
    pkgs = nixpkgs.legacyPackages.${system};
 | 
			
		||||
    unstablePkgs = import nixpkgs-unstable { system = system; config = { allowUnfree = true; }; };
 | 
			
		||||
    
 | 
			
		||||
    # pkgs23 = import nixpkgs-23 { system = system; config = { allowUnfree = true; }; }; 
 | 
			
		||||
  in
 | 
			
		||||
  {
 | 
			
		||||
@ -65,6 +71,7 @@
 | 
			
		||||
        };
 | 
			
		||||
        modules = [
 | 
			
		||||
            catppuccin.nixosModules.catppuccin
 | 
			
		||||
            auto-cpufreq.nixosModules.default
 | 
			
		||||
            # Setup home manager
 | 
			
		||||
            inputs.home-manager.nixosModules.home-manager {
 | 
			
		||||
                home-manager.useGlobalPkgs = true;
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,7 @@ in
 | 
			
		||||
      modules/user/main_user.nix
 | 
			
		||||
      modules/sway/sway_conf.nix
 | 
			
		||||
      modules/hypr/hyprland.nix
 | 
			
		||||
 | 
			
		||||
      ../shared/modules/system/power_manager.nix
 | 
			
		||||
      # inputs.nur.hmModules.nur
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
@ -67,6 +67,11 @@ in
 | 
			
		||||
      brscan5.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    power_manager = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      useFlake = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    main_user = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      userName = deskCfg.userName;
 | 
			
		||||
 | 
			
		||||
@ -1,11 +1,11 @@
 | 
			
		||||
// Global 
 | 
			
		||||
{
 | 
			
		||||
    "layer": "top",
 | 
			
		||||
    "layer": "bottom",
 | 
			
		||||
    "position": "top",
 | 
			
		||||
    "margin-top": 0,
 | 
			
		||||
    "margin-left": 10,
 | 
			
		||||
    "margin-right": 10,
 | 
			
		||||
    "margin-bottom": 0,
 | 
			
		||||
    "margin-top": 3,
 | 
			
		||||
    "margin-left": 3,
 | 
			
		||||
    "margin-right": 3,
 | 
			
		||||
    "margin-bottom": 3,
 | 
			
		||||
 | 
			
		||||
    // If height property would be not present, it'd be calculated dynamically
 | 
			
		||||
    // "height": 60,
 | 
			
		||||
@ -26,16 +26,16 @@
 | 
			
		||||
    ],
 | 
			
		||||
 | 
			
		||||
    "modules-right": [
 | 
			
		||||
        "network",
 | 
			
		||||
        "idle_inhibitor",
 | 
			
		||||
        "clock",
 | 
			
		||||
        // "network",  // using network applet in tray
 | 
			
		||||
        // "idle_inhibitor",
 | 
			
		||||
        "custom/storage",
 | 
			
		||||
        "memory",
 | 
			
		||||
        "cpu",
 | 
			
		||||
        "pulseaudio",
 | 
			
		||||
        "custom/keyboard-layout",
 | 
			
		||||
        "battery",
 | 
			
		||||
        "backlight#icon",
 | 
			
		||||
        "backlight#value",
 | 
			
		||||
        "clock",
 | 
			
		||||
        "backlight",
 | 
			
		||||
        "tray",
 | 
			
		||||
        //"custom/weather",
 | 
			
		||||
        "custom/power",
 | 
			
		||||
@ -57,7 +57,7 @@
 | 
			
		||||
            "warning": 30,
 | 
			
		||||
            "critical": 15
 | 
			
		||||
        },
 | 
			
		||||
        "format": "{capacity}% {icon}",
 | 
			
		||||
        "format": "{icon}  {capacity}%",
 | 
			
		||||
        "format-charging": "{capacity}% ",
 | 
			
		||||
        "format-plugged": "{capacity}% ",
 | 
			
		||||
        // "format-good": "", // An empty format will hide the module
 | 
			
		||||
@ -79,13 +79,13 @@
 | 
			
		||||
            "warning": 70,
 | 
			
		||||
            "critical": 90,
 | 
			
		||||
        },
 | 
			
		||||
        "on-click": "foot -e 'htop'",
 | 
			
		||||
        "on-click": "ghostty -e 'htop'",
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    "memory": {
 | 
			
		||||
        "interval": 5,
 | 
			
		||||
        "format": "  {}%", // Icon: memory
 | 
			
		||||
        "on-click": "foot -e 'htop'",
 | 
			
		||||
        "on-click": "ghostty -e 'htop'",
 | 
			
		||||
        "states": {
 | 
			
		||||
            "warning": 70,
 | 
			
		||||
            "critical": 90
 | 
			
		||||
@ -94,17 +94,17 @@
 | 
			
		||||
 | 
			
		||||
    "network": {
 | 
			
		||||
        "interval": 5,
 | 
			
		||||
        "format-wifi": "  {essid} ({signalStrength}%)", // Icon: wifi
 | 
			
		||||
        "format-wifi": "", // Icon: wifi
 | 
			
		||||
        "format-ethernet": "  {ifname}: {ipaddr}/{cidr}", // Icon: ethernet
 | 
			
		||||
        "format-disconnected": "⚠  Disconnected",
 | 
			
		||||
        "tooltip-format": "{ifname}: {ipaddr}",
 | 
			
		||||
        "on-click": "foot -e 'nmtui'",
 | 
			
		||||
        "tooltip-format": "{essid} - {ifname}:{ipaddr}  {bandwidthUpBytes} {bandwidthDownBytes}",
 | 
			
		||||
        "on-click": "ghostty -e 'nmtui'",
 | 
			
		||||
    },
 | 
			
		||||
    "network#vpn": {
 | 
			
		||||
        "interface": "tun0",
 | 
			
		||||
        "format": "  {essid} ({signalStrength}%)",
 | 
			
		||||
        "format": "  {signalStrength}%",
 | 
			
		||||
        "format-disconnected": "⚠  Disconnected",
 | 
			
		||||
        "tooltip-format": "{ifname}: {ipaddr}/{cidr}",
 | 
			
		||||
        "tooltip-format": "{essid} - {ifname}:{ipaddr}  {bandwidthUpBytes} {bandwidthDownBytes}",
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    "hyprland/window": {
 | 
			
		||||
@ -114,21 +114,21 @@
 | 
			
		||||
        "icon_size": 30,
 | 
			
		||||
        "rewrite": {
 | 
			
		||||
            // Firefox
 | 
			
		||||
            "(.*) — Mozilla Firefox": " $1",
 | 
			
		||||
            "(.*) - Mozilla Firefox": " $1",
 | 
			
		||||
            "Mozilla Firefox": " Firefox",
 | 
			
		||||
            "(.*) — Mozilla Firefox": " $1",
 | 
			
		||||
            "(.*) - Mozilla Firefox": " $1",
 | 
			
		||||
            "Mozilla Firefox": " Firefox",
 | 
			
		||||
 | 
			
		||||
            // Chrome/Chromium
 | 
			
		||||
            "(.*) - Google Chrome": " $1",
 | 
			
		||||
            "(.*) - Chromium": " $1",
 | 
			
		||||
            "Google Chrome": " Chrome",
 | 
			
		||||
            "Chromium": " Chromium",
 | 
			
		||||
            "(.*) - Google Chrome": " $1",
 | 
			
		||||
            "(.*) - Chromium": " $1",
 | 
			
		||||
            "Google Chrome": " Chrome",
 | 
			
		||||
            "Chromium": " Chromium",
 | 
			
		||||
 | 
			
		||||
            // Terminal applications
 | 
			
		||||
            "(.*) - zsh": " $1",
 | 
			
		||||
            "(.*) - bash": " $1",
 | 
			
		||||
            "(.*) - fish": " $1",
 | 
			
		||||
            "foot": " Terminal",
 | 
			
		||||
            "ghostty": " Terminal",
 | 
			
		||||
            "kitty": " Terminal",
 | 
			
		||||
            "alacritty": " Terminal",
 | 
			
		||||
            "ghostty": " Terminal",
 | 
			
		||||
@ -209,20 +209,20 @@
 | 
			
		||||
 | 
			
		||||
    "pulseaudio": {
 | 
			
		||||
        "scroll-step": 1, // %, can be a float
 | 
			
		||||
        "format": "{volume}% {icon}",
 | 
			
		||||
        "format": "{icon}  {volume}%",
 | 
			
		||||
        "format-bluetooth": "{volume}% {icon}  {format_source}",
 | 
			
		||||
        "format-bluetooth-muted": " {icon}  {format_source}",
 | 
			
		||||
        "format-muted": " {format_source}",
 | 
			
		||||
        "format-source": "{volume}% ",
 | 
			
		||||
        "format-source-muted": "",
 | 
			
		||||
        "format-icons": {
 | 
			
		||||
            "headphone": "",
 | 
			
		||||
            "headphone": ["", "", "", "", ""],
 | 
			
		||||
            "hands-free": "",
 | 
			
		||||
            "headset": "",
 | 
			
		||||
            "phone": "",
 | 
			
		||||
            "portable": "",
 | 
			
		||||
            "car": "",
 | 
			
		||||
            "default": [""]
 | 
			
		||||
            "default": ["", "", ""]
 | 
			
		||||
        },
 | 
			
		||||
        "on-click": "pavucontrol",
 | 
			
		||||
        "on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +2%",
 | 
			
		||||
@ -236,21 +236,29 @@
 | 
			
		||||
    // },
 | 
			
		||||
 | 
			
		||||
    "tray": {
 | 
			
		||||
        "icon-size": 18,
 | 
			
		||||
        "icon-size": 20,
 | 
			
		||||
        "spacing":10,
 | 
			
		||||
     },
 | 
			
		||||
 | 
			
		||||
    "backlight#icon": {
 | 
			
		||||
        "format": "{icon}",
 | 
			
		||||
        "format-icons": [""],
 | 
			
		||||
    "backlight": {
 | 
			
		||||
        "format": "{icon}  {percent}%",
 | 
			
		||||
        "format-icons": ["", "", "", "", "", ""],
 | 
			
		||||
        "on-scroll-down": "brightnessctl -c backlight set 1%-",
 | 
			
		||||
        "on-scroll-up": "brightnessctl -c backlight set +1%"
 | 
			
		||||
        "on-scroll-up": "brightnessctl -c backlight set +1%",
 | 
			
		||||
        "min-brightness": 1
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    "backlight#value" :{
 | 
			
		||||
         "format": "{percent}%",
 | 
			
		||||
         "on-scroll-down": "brightnessctl -c backlight set 1%-",
 | 
			
		||||
         "on-scroll-up": "brightnessctl -c backlight set +1%"
 | 
			
		||||
    "custom/storage": {
 | 
			
		||||
        "format": "{icon}  {percentage}%",
 | 
			
		||||
        "format-icons": {
 | 
			
		||||
          "default": "",
 | 
			
		||||
          "warning": "",
 | 
			
		||||
          "critical": "",
 | 
			
		||||
        },
 | 
			
		||||
        "exec": "usage=$(df / --output=pcent | tail -n1 | tr -d ' %'); if [ $usage -ge 90 ]; then class=\"critical\"; elif [ $usage -ge 75 ]; then class=\"warning\"; else class=\"default\"; fi; echo \"{\\\"percentage\\\":$usage,\\\"class\\\":\\\"$class\\\"}\"",
 | 
			
		||||
        "return-type": "json",
 | 
			
		||||
        "interval": 30,
 | 
			
		||||
        "tooltip-format": "Root filesystem: {percentage}% used",
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    "custom/signal": {
 | 
			
		||||
 | 
			
		||||
@ -68,8 +68,8 @@
 | 
			
		||||
  border: none;
 | 
			
		||||
  border-radius: 0;
 | 
			
		||||
  min-height: 40px;
 | 
			
		||||
  margin: 1px;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  margin: 0px;
 | 
			
		||||
  padding: 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* The whole bar */
 | 
			
		||||
@ -77,7 +77,7 @@
 | 
			
		||||
  background: transparent;
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
  font-family: Overpass Nerd Font;
 | 
			
		||||
  font-size: 20px;
 | 
			
		||||
  font-size: 22px;
 | 
			
		||||
  color: @text;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -112,25 +112,49 @@
 | 
			
		||||
  border-color: @surface0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Add gaps for middle module so they space out and dont touch */
 | 
			
		||||
.modules-center {
 | 
			
		||||
  margin: 0px 100px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Every modules */
 | 
			
		||||
#backlight,
 | 
			
		||||
#battery,
 | 
			
		||||
#clock,
 | 
			
		||||
#backlight,
 | 
			
		||||
#cpu,
 | 
			
		||||
#custom-storage,
 | 
			
		||||
#custom-keyboard-layout,
 | 
			
		||||
#custom-PBPbattery,
 | 
			
		||||
#custom-weather,
 | 
			
		||||
#idle_inhibitor,
 | 
			
		||||
#memory,
 | 
			
		||||
#mode,
 | 
			
		||||
#custom-weather,
 | 
			
		||||
#network,
 | 
			
		||||
#pulseaudio,
 | 
			
		||||
#temperature,
 | 
			
		||||
#tray,
 | 
			
		||||
#idle_inhibitor,
 | 
			
		||||
#custom-PBPbattery {
 | 
			
		||||
#tray {
 | 
			
		||||
  padding: 0.5rem 0.6rem;
 | 
			
		||||
  margin: 1px 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#clock {
 | 
			
		||||
  margin-left: 5px;
 | 
			
		||||
  margin-right: 5px;
 | 
			
		||||
  min-width: 140px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#backlight,
 | 
			
		||||
#battery,
 | 
			
		||||
#cpu,
 | 
			
		||||
#custom-storage,
 | 
			
		||||
#memory,
 | 
			
		||||
#network,
 | 
			
		||||
#pulseaudio,
 | 
			
		||||
#temperature {
 | 
			
		||||
  min-width: 90px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* -----------------------------------------------------------------------------
 | 
			
		||||
 * Modules styles
 | 
			
		||||
 * -------------------------------------------------------------------------- */
 | 
			
		||||
@ -141,11 +165,13 @@
 | 
			
		||||
  animation-direction: alternate;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#battery.warning {
 | 
			
		||||
#battery.warning,
 | 
			
		||||
#custom-storage.warning {
 | 
			
		||||
  color: @flamingo;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#battery.critical {
 | 
			
		||||
#battery.critical,
 | 
			
		||||
#custom-storage.critical {
 | 
			
		||||
  color: @red;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -212,6 +238,8 @@
 | 
			
		||||
 | 
			
		||||
#window {
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  margin-left: 20px;
 | 
			
		||||
  margin-right: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#workspaces {
 | 
			
		||||
@ -296,7 +324,7 @@
 | 
			
		||||
#custom-power {
 | 
			
		||||
  margin-left: 15px;
 | 
			
		||||
  margin-right: 15px;
 | 
			
		||||
  font-size: 15px;
 | 
			
		||||
  font-size: 20px;
 | 
			
		||||
  color: @flamingo;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -308,5 +336,5 @@
 | 
			
		||||
 | 
			
		||||
#backlight.icon {
 | 
			
		||||
  padding-right: 1px;
 | 
			
		||||
  font-size: 13px;
 | 
			
		||||
  font-size: 20px;
 | 
			
		||||
}
 | 
			
		||||
@ -213,14 +213,24 @@
 | 
			
		||||
      extraConfig = {
 | 
			
		||||
        include = { path = "${config.xdg.configHome}/macchiato.gitconfig"; };
 | 
			
		||||
        init = { defaultBranch = "main"; };
 | 
			
		||||
        pull = { ff = "only"; };
 | 
			
		||||
        merge = { conflictStyle="zdiff3"; };
 | 
			
		||||
        pull = { ff = "only"; };
 | 
			
		||||
        push = { autoSetupRemote="true"; };
 | 
			
		||||
        "url \"git@github.com:\"" = {
 | 
			
		||||
        url = {
 | 
			
		||||
          "git@github.com" = {
 | 
			
		||||
            insteadOf = "https://github.com/";
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
      delta.enable = true;
 | 
			
		||||
      };
 | 
			
		||||
      delta = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        navigate = true;
 | 
			
		||||
        options = {
 | 
			
		||||
          side-by-side = true;
 | 
			
		||||
          hyperlinks = true;
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs = {
 | 
			
		||||
 | 
			
		||||
@ -39,6 +39,8 @@ in
 | 
			
		||||
          # May need to kill mako if nwg-panel starts it
 | 
			
		||||
          "swaync"
 | 
			
		||||
          "keepassxc"
 | 
			
		||||
          "flatpak run org.signal.Signal"
 | 
			
		||||
          "flatpak run com.slack.Slack"
 | 
			
		||||
          # set gsettings
 | 
			
		||||
          # "dconf write /org/gnome/desktop/interface/cursor-theme \"'catppuccin-macchiato-lavender-cursors'\""
 | 
			
		||||
          # "dconf write /org/gnome/desktop/interface/cursor-size 24"
 | 
			
		||||
@ -168,18 +170,25 @@ in
 | 
			
		||||
        ", switch:off:Lid Switch, exec, hyprctl keyword monitor 'eDP-1, 2560x1600@165, 0x0, 1.00'"
 | 
			
		||||
      ];
 | 
			
		||||
      windowrulev2 = [
 | 
			
		||||
 | 
			
		||||
        # float keepass windows, put main window in scratch
 | 
			
		||||
        "float, class:^(org.keepassxc.KeePassXC)$"
 | 
			
		||||
        "workspace special:scratch silent, class:^(org.keepassxc.KeePassXC)$ title:\[Locked\]"
 | 
			
		||||
        "workspace special:scratch silent, class:^(org.keepassxc.KeePassXC)$"
 | 
			
		||||
        "workspace special:scratch silent, class:^(org.signal.Signal)$"
 | 
			
		||||
        
 | 
			
		||||
        # float music windows and move to music workspace
 | 
			
		||||
        # "tag +fmusic, class:^(firefox)$, title:^(YouTube — Mozilla Firefox)$"
 | 
			
		||||
        # "float, tag:^(fmusic)$"# class:^(firefox)$, title:YouTube"
 | 
			
		||||
        # "workspace special:music silent, tag:^(fmusic)$"# class:^(firefox)$, title:YouTube"
 | 
			
		||||
        # "size 800 400, tag:^(fmusic)$"# class:^(firefox)$, title:YouTube"
 | 
			
		||||
        # "move 100%-w-20 100%-h-20, tag:^(fmusic)$"# class:^(firefox)$, title:YouTube"
 | 
			
		||||
        # Firefox to workspace 2
 | 
			
		||||
        "workspace 2 silent, class:^(firefox)$"
 | 
			
		||||
        
 | 
			
		||||
        # Slack to workspace 3
 | 
			
		||||
        "workspace 3 silent, class:^(com.slack.Slack)$"
 | 
			
		||||
        
 | 
			
		||||
        # Zoom to workspace 4
 | 
			
		||||
        "workspace 4 silent, class:^(zoom)$" 
 | 
			
		||||
        "fullscreen, class:^(zoom)$, title:^(Meeting)$" 
 | 
			
		||||
        # Float all other zoom windows (not meetings)
 | 
			
		||||
        "float, class:^(zoom)$, title:!^(Meeting)$"        
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
      monitor = [
 | 
			
		||||
        "eDP-1, 2560x1600@165, 0x0, 1.00"
 | 
			
		||||
        # At home monitor setup, 144 for hdmi bandwidth
 | 
			
		||||
 | 
			
		||||
@ -251,7 +251,7 @@ in
 | 
			
		||||
 | 
			
		||||
        # Fine-grained power management. Turns off GPU when not in use.
 | 
			
		||||
        # Experimental and only works on modern Nvidia GPUs (Turing or newer).
 | 
			
		||||
        powerManagement.finegrained = false;
 | 
			
		||||
        powerManagement.finegrained = true;
 | 
			
		||||
 | 
			
		||||
        # Use the NVidia open source kernel module (not to be confused with the
 | 
			
		||||
        # independent third-party "nouveau" open source driver).
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										78
									
								
								shared/modules/system/power_manager.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								shared/modules/system/power_manager.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,78 @@
 | 
			
		||||
{ config, lib, pkgs, inputs ? null, ... }:
 | 
			
		||||
 | 
			
		||||
with lib;
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  cfg = config.power_manager;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  options.power_manager = {
 | 
			
		||||
    enable = mkEnableOption "power management with auto-cpufreq";
 | 
			
		||||
 | 
			
		||||
    useFlake = mkOption {
 | 
			
		||||
      type = types.bool;
 | 
			
		||||
      default = true;
 | 
			
		||||
      description = ''
 | 
			
		||||
        Whether to use the auto-cpufreq flake input for the latest version.
 | 
			
		||||
        If false, uses the nixpkgs version (may be outdated).
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    settings = mkOption {
 | 
			
		||||
      type = types.attrs;
 | 
			
		||||
      default = {
 | 
			
		||||
        battery = {
 | 
			
		||||
          governor = "powersave";
 | 
			
		||||
          turbo = "never";
 | 
			
		||||
        };
 | 
			
		||||
        charger = {
 | 
			
		||||
          governor = "performance";
 | 
			
		||||
          turbo = "auto";
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
      description = "Auto-cpufreq configuration settings";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    enableThermald = mkOption {
 | 
			
		||||
      type = types.bool;
 | 
			
		||||
      default = true;
 | 
			
		||||
      description = "Enable thermald for Intel CPU thermal management";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    enableUpower = mkOption {
 | 
			
		||||
      type = types.bool;
 | 
			
		||||
      default = true;
 | 
			
		||||
      description = "Enable UPower for battery monitoring";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  config = mkIf cfg.enable {
 | 
			
		||||
    # Auto-cpufreq configuration - use flake version if available, otherwise nixpkgs
 | 
			
		||||
    programs.auto-cpufreq = mkIf (cfg.useFlake && inputs ? auto-cpufreq) {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      settings = cfg.settings;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    services.auto-cpufreq = mkIf (!cfg.useFlake || !(inputs ? auto-cpufreq)) {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      settings = cfg.settings;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Supporting services
 | 
			
		||||
    services.upower.enable = mkIf cfg.enableUpower true;
 | 
			
		||||
    services.thermald.enable = mkIf cfg.enableThermald true;
 | 
			
		||||
    powerManagement.enable = mkIf cfg.enable true;
 | 
			
		||||
 | 
			
		||||
    # Disable conflicting power management services
 | 
			
		||||
    services.tlp.enable = mkForce false;
 | 
			
		||||
    services.power-profiles-daemon.enable = mkForce false;
 | 
			
		||||
    powerManagement.powertop.enable = mkForce false;
 | 
			
		||||
    
 | 
			
		||||
    # Don't set a static CPU governor (let auto-cpufreq handle it)
 | 
			
		||||
    powerManagement.cpuFreqGovernor = mkForce null;    
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # # Warning if flake input is missing when expected
 | 
			
		||||
  # warnings = optional (cfg.useFlake && !(inputs ? auto-cpufreq))
 | 
			
		||||
  #   "power_manager: useFlake is enabled but auto-cpufreq flake input not found. Using nixpkgs version instead.";
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user