Compare commits
	
		
			16 Commits
		
	
	
		
			93052529b8
			...
			nix-overri
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 0572cacd28 | |||
| ecf728bc11 | |||
| 5a59f98ebc | |||
| 5ab19d093a | |||
| 569141d227 | |||
| 48edbfdc4b | |||
| 50c62a4d3f | |||
| f4b518f806 | |||
| 7fffa45e4e | |||
| a3c53820b1 | |||
| 8cbdeb4cdc | |||
| bfa957adcd | |||
| 50d22afef8 | |||
| 29feb9223e | |||
| 7bc7749f51 | |||
| 51beed138e | 
@@ -13,9 +13,9 @@ set $term alacritty
 | 
			
		||||
set $menu wofi --term '$term'
 | 
			
		||||
 | 
			
		||||
### Output configuration
 | 
			
		||||
output DP-3 pos 3840 0 res 1920x1080@59Hz
 | 
			
		||||
output HDMI-A-1 pos 0 0 res 1920x1080@59Hz
 | 
			
		||||
output DP-2 pos 1920 0 res 1920x1080@60Hz
 | 
			
		||||
output DP-3 pos 1920 0 res 1920x1080@60Hz
 | 
			
		||||
output HDMI-A-1 pos 0 0 res 1920x1080@60Hz
 | 
			
		||||
output DP-2 pos 3840 0 res 1920x1080@60Hz
 | 
			
		||||
 | 
			
		||||
### Wallpaper
 | 
			
		||||
output HDMI-A-1 bg ~/.wallpaper/.wallpaper.png fill
 | 
			
		||||
@@ -25,22 +25,22 @@ output DP-3 bg ~/.wallpaper/.wallpaper.png fill
 | 
			
		||||
### Workspace binding
 | 
			
		||||
 | 
			
		||||
## DP-3 bindings
 | 
			
		||||
workspace 1 output DP-2
 | 
			
		||||
workspace 2 output DP-2
 | 
			
		||||
workspace 4 output DP-2
 | 
			
		||||
workspace 5 output DP-2
 | 
			
		||||
workspace 1 output DP-3
 | 
			
		||||
workspace 2 output DP-3
 | 
			
		||||
workspace 4 output DP-3
 | 
			
		||||
workspace 5 output DP-3
 | 
			
		||||
 | 
			
		||||
## HDMI-A-1 bindings
 | 
			
		||||
workspace 3 output HDMI-A-1
 | 
			
		||||
workspace 9 output HDMI-A-1
 | 
			
		||||
 | 
			
		||||
## DP-2 bindings
 | 
			
		||||
workspace 6 output DP-3
 | 
			
		||||
workspace 7 output DP-3
 | 
			
		||||
workspace 8 output DP-3
 | 
			
		||||
workspace 6 output DP-2
 | 
			
		||||
workspace 7 output DP-2
 | 
			
		||||
workspace 8 output DP-2
 | 
			
		||||
 | 
			
		||||
### Colour options
 | 
			
		||||
set $bg 	#24283b
 | 
			
		||||
set $bg 	       #24283b
 | 
			
		||||
set $bg-inactive   #323232
 | 
			
		||||
set $bg-urgent     #000000
 | 
			
		||||
set $text          #eeeeec
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										99
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										99
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							@@ -7,11 +7,11 @@
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1749744770,
 | 
			
		||||
        "narHash": "sha256-MEM9XXHgBF/Cyv1RES1t6gqAX7/tvayBC1r/KPyK1ls=",
 | 
			
		||||
        "lastModified": 1759509947,
 | 
			
		||||
        "narHash": "sha256-4XifSIHfpJKcCf5bZZRhj8C4aCpjNBaE3kXr02s4rHU=",
 | 
			
		||||
        "owner": "lnl7",
 | 
			
		||||
        "repo": "nix-darwin",
 | 
			
		||||
        "rev": "536f951efb1ccda9b968e3c9dee39fbeb6d3fdeb",
 | 
			
		||||
        "rev": "000eadb231812ad6ea6aebd7526974aaf4e79355",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@@ -64,11 +64,11 @@
 | 
			
		||||
        "zon2nix": "zon2nix"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1756131615,
 | 
			
		||||
        "narHash": "sha256-rmmsEZglqzgxIePTKe5wCIQ3syzAb4jE3RpNxD/2tzY=",
 | 
			
		||||
        "lastModified": 1761172581,
 | 
			
		||||
        "narHash": "sha256-uX8FzMlRt15kvs4pPuOHZeQe1wztQXTEWOVtB2EwmB0=",
 | 
			
		||||
        "owner": "ghostty-org",
 | 
			
		||||
        "repo": "ghostty",
 | 
			
		||||
        "rev": "8aa0b4c92a54f822043e134d2b84ee29844f944e",
 | 
			
		||||
        "rev": "bdbda2fd8380b440508246bcda0bf1198f6666e4",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@@ -84,11 +84,11 @@
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1755928099,
 | 
			
		||||
        "narHash": "sha256-OILVkfhRCm8u18IZ2DKR8gz8CVZM2ZcJmQBXmjFLIfk=",
 | 
			
		||||
        "lastModified": 1758463745,
 | 
			
		||||
        "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "home-manager",
 | 
			
		||||
        "rev": "4a44fb9f7555da362af9d499817084f4288a957f",
 | 
			
		||||
        "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@@ -116,37 +116,37 @@
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1748189127,
 | 
			
		||||
        "narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=",
 | 
			
		||||
        "rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
 | 
			
		||||
        "lastModified": 315532800,
 | 
			
		||||
        "narHash": "sha256-sV6pJNzFkiPc6j9Bi9JuHBnWdVhtKB/mHgVmMPvDFlk=",
 | 
			
		||||
        "rev": "82c2e0d6dde50b17ae366d2aa36f224dc19af469",
 | 
			
		||||
        "type": "tarball",
 | 
			
		||||
        "url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz"
 | 
			
		||||
        "url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre877938.82c2e0d6dde5/nixexprs.tar.xz"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "tarball",
 | 
			
		||||
        "url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz"
 | 
			
		||||
        "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_2": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1755972213,
 | 
			
		||||
        "narHash": "sha256-VYK7aDAv8H1enXn1ECRHmGbeY6RqLnNwUJkOwloIsko=",
 | 
			
		||||
        "rev": "73e96df7cff5783f45e21342a75a1540c4eddce4",
 | 
			
		||||
        "lastModified": 1758360447,
 | 
			
		||||
        "narHash": "sha256-XDY3A83bclygHDtesRoaRTafUd80Q30D/Daf9KSG6bs=",
 | 
			
		||||
        "rev": "8eaee110344796db060382e15d3af0a9fc396e0e",
 | 
			
		||||
        "type": "tarball",
 | 
			
		||||
        "url": "https://releases.nixos.org/nixos/unstable-small/nixos-25.11pre850642.73e96df7cff5/nixexprs.tar.xz"
 | 
			
		||||
        "url": "https://releases.nixos.org/nixos/unstable/nixos-25.11pre864002.8eaee1103447/nixexprs.tar.xz"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "tarball",
 | 
			
		||||
        "url": "https://channels.nixos.org/nixos-unstable-small/nixexprs.tar.xz"
 | 
			
		||||
        "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_3": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1755922037,
 | 
			
		||||
        "narHash": "sha256-wY1+2JPH0ZZC4BQefoZw/k+3+DowFyfOxv17CN/idKs=",
 | 
			
		||||
        "lastModified": 1761016216,
 | 
			
		||||
        "narHash": "sha256-G/iC4t/9j/52i/nm+0/4ybBmAF4hzR8CNHC75qEhjHo=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "b1b3291469652d5a2edb0becc4ef0246fff97a7c",
 | 
			
		||||
        "rev": "481cf557888e05d3128a76f14c76397b7d7cc869",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@@ -156,13 +156,48 @@
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_4": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1744536153,
 | 
			
		||||
        "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "ref": "nixpkgs-unstable",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "root": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "darwin": "darwin",
 | 
			
		||||
        "ghostty": "ghostty",
 | 
			
		||||
        "home-manager": "home-manager",
 | 
			
		||||
        "nix-flatpak": "nix-flatpak",
 | 
			
		||||
        "nixpkgs": "nixpkgs_3"
 | 
			
		||||
        "nixpkgs": "nixpkgs_3",
 | 
			
		||||
        "rust-overlay": "rust-overlay"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "rust-overlay": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": "nixpkgs_4"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1761100675,
 | 
			
		||||
        "narHash": "sha256-LX3TCDBeNpCWTDXtGyRASVcLmRPChSli34bgHnZ1DCw=",
 | 
			
		||||
        "owner": "oxalica",
 | 
			
		||||
        "repo": "rust-overlay",
 | 
			
		||||
        "rev": "72161c6c53f6e3f8dadaf54b2204a5094c6a16ae",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "oxalica",
 | 
			
		||||
        "repo": "rust-overlay",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "systems": {
 | 
			
		||||
@@ -196,11 +231,11 @@
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1748261582,
 | 
			
		||||
        "narHash": "sha256-3i0IL3s18hdDlbsf0/E+5kyPRkZwGPbSFngq5eToiAA=",
 | 
			
		||||
        "lastModified": 1760401936,
 | 
			
		||||
        "narHash": "sha256-/zj5GYO5PKhBWGzbHbqT+ehY8EghuABdQ2WGfCwZpCQ=",
 | 
			
		||||
        "owner": "mitchellh",
 | 
			
		||||
        "repo": "zig-overlay",
 | 
			
		||||
        "rev": "aafb1b093fb838f7a02613b719e85ec912914221",
 | 
			
		||||
        "rev": "365085b6652259753b598d43b723858184980bbe",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@@ -211,24 +246,20 @@
 | 
			
		||||
    },
 | 
			
		||||
    "zon2nix": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": [
 | 
			
		||||
          "ghostty",
 | 
			
		||||
          "flake-utils"
 | 
			
		||||
        ],
 | 
			
		||||
        "nixpkgs": "nixpkgs_2"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1756000480,
 | 
			
		||||
        "narHash": "sha256-fR5pdcjO0II5MNdCzqvyokyuFkmff7/FyBAjUS6sMfA=",
 | 
			
		||||
        "lastModified": 1758405547,
 | 
			
		||||
        "narHash": "sha256-WgaDgvIZMPvlZcZrpPMjkaalTBnGF2lTG+62znXctWM=",
 | 
			
		||||
        "owner": "jcollie",
 | 
			
		||||
        "repo": "zon2nix",
 | 
			
		||||
        "rev": "d9dc9ef1ab9ae45b5c9d80c6a747cc9968ee0c60",
 | 
			
		||||
        "rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "jcollie",
 | 
			
		||||
        "repo": "zon2nix",
 | 
			
		||||
        "rev": "d9dc9ef1ab9ae45b5c9d80c6a747cc9968ee0c60",
 | 
			
		||||
        "rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								flake.nix
									
									
									
									
									
								
							@@ -12,6 +12,7 @@
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
    ghostty.url = "github:ghostty-org/ghostty";
 | 
			
		||||
    rust-overlay.url = "github:oxalica/rust-overlay";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs = inputs @ {
 | 
			
		||||
@@ -21,6 +22,7 @@
 | 
			
		||||
    darwin,
 | 
			
		||||
    home-manager,
 | 
			
		||||
    ghostty,
 | 
			
		||||
    rust-overlay,
 | 
			
		||||
    ...
 | 
			
		||||
  }: let
 | 
			
		||||
    userName = "wyatt";
 | 
			
		||||
@@ -28,9 +30,20 @@
 | 
			
		||||
    extraSpecialArgs = {
 | 
			
		||||
      inherit userName userEmail ghostty;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    myOverlays = { ... }: {
 | 
			
		||||
      nixpkgs.overlays = [
 | 
			
		||||
        rust-overlay.overlays.default
 | 
			
		||||
        self.common.overlays
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
  in {
 | 
			
		||||
    meta = import ./meta;
 | 
			
		||||
 | 
			
		||||
    common = {
 | 
			
		||||
      overlays = import ./modules/common/overlays.nix;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Primary laptop - MacBook Pro (2023, M3)
 | 
			
		||||
    darwinConfigurations."sephiroth" = darwin.lib.darwinSystem {
 | 
			
		||||
      system = "aarch64-darwin";
 | 
			
		||||
@@ -40,6 +53,7 @@
 | 
			
		||||
        role = "devel";
 | 
			
		||||
      };
 | 
			
		||||
      modules = [
 | 
			
		||||
        myOverlays
 | 
			
		||||
        ./modules/common
 | 
			
		||||
        ./modules/machine/sephiroth
 | 
			
		||||
 | 
			
		||||
@@ -48,6 +62,7 @@
 | 
			
		||||
          home-manager.useGlobalPkgs = true;
 | 
			
		||||
          home-manager.useUserPackages = true;
 | 
			
		||||
          home-manager.extraSpecialArgs = extraSpecialArgs;
 | 
			
		||||
          home-manager.backupFileExtension = "bak";
 | 
			
		||||
          home-manager.users.${userName} = import ./home;
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
@@ -62,6 +77,7 @@
 | 
			
		||||
        role = "devel";
 | 
			
		||||
      };
 | 
			
		||||
      modules = [
 | 
			
		||||
        myOverlays
 | 
			
		||||
        nix-flatpak.nixosModules.nix-flatpak
 | 
			
		||||
        ./modules/common
 | 
			
		||||
        ./modules/machine/cloud
 | 
			
		||||
@@ -71,6 +87,7 @@
 | 
			
		||||
          home-manager.useGlobalPkgs = true;
 | 
			
		||||
          home-manager.useUserPackages = true;
 | 
			
		||||
          home-manager.extraSpecialArgs = extraSpecialArgs;
 | 
			
		||||
          home-manager.backupFileExtension = "bak";
 | 
			
		||||
          home-manager.users.${userName}.imports = [
 | 
			
		||||
            ./home
 | 
			
		||||
          ];
 | 
			
		||||
@@ -87,6 +104,7 @@
 | 
			
		||||
        role = "server";
 | 
			
		||||
      };
 | 
			
		||||
      modules = [
 | 
			
		||||
        myOverlays
 | 
			
		||||
        ./modules/common
 | 
			
		||||
        ./modules/machine/valefor
 | 
			
		||||
 | 
			
		||||
@@ -95,6 +113,7 @@
 | 
			
		||||
          home-manager.useGlobalPkgs = true;
 | 
			
		||||
          home-manager.useUserPackages = true;
 | 
			
		||||
          home-manager.extraSpecialArgs = extraSpecialArgs;
 | 
			
		||||
          home-manager.backupFileExtension = "bak";
 | 
			
		||||
          home-manager.users.${userName}.imports = [
 | 
			
		||||
            ./home
 | 
			
		||||
          ];
 | 
			
		||||
@@ -111,6 +130,7 @@
 | 
			
		||||
        role = "server";
 | 
			
		||||
      };
 | 
			
		||||
      # modules = [
 | 
			
		||||
      #   myOverlays
 | 
			
		||||
      #   nix-flatpak.nixosModules.nix-flatpak
 | 
			
		||||
      #   nix-ld.nixosModules.nix-ld
 | 
			
		||||
      #   ./modules/nixos/hardware-configuration.nix
 | 
			
		||||
@@ -123,6 +143,7 @@
 | 
			
		||||
      #     home-manager.useGlobalPkgs = true;
 | 
			
		||||
      #     home-manager.useUserPackages = true;
 | 
			
		||||
      #     home-manager.extraSpecialArgs = extraSpecialArgs;
 | 
			
		||||
      #     home-manager.backupFileExtension = "bak";
 | 
			
		||||
      #     home-manager.users.${userName}.imports = [
 | 
			
		||||
      #       ./home
 | 
			
		||||
      #     ];
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
{...}: {
 | 
			
		||||
{ pkgs, ...}: {
 | 
			
		||||
  programs.atuin = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    enableFishIntegration = true;
 | 
			
		||||
    package = pkgs.atuinLatest;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -27,6 +27,7 @@ in {
 | 
			
		||||
    ./browser.nix
 | 
			
		||||
    ./zellij.nix
 | 
			
		||||
    ./bat.nix
 | 
			
		||||
    ./lazygit.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Home Manager needs a bit of information about you and the
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,7 @@
 | 
			
		||||
    extraConfig = {
 | 
			
		||||
      init.defaultBranch = "master";
 | 
			
		||||
      push.autoSetupRemote = true;
 | 
			
		||||
      pull.merge = true;
 | 
			
		||||
      pull.rebase = false;
 | 
			
		||||
      merge.tool = "nvimdiff";
 | 
			
		||||
      mergetool.keepBackup = false;
 | 
			
		||||
    };
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
{...}: {
 | 
			
		||||
{ pkgs, ... }: {
 | 
			
		||||
  programs.lazygit = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    package = pkgs.lazygitLatest;
 | 
			
		||||
 | 
			
		||||
    settings = {
 | 
			
		||||
      gui.theme = {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,4 @@
 | 
			
		||||
{
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
@@ -14,7 +13,6 @@
 | 
			
		||||
 | 
			
		||||
    # utils
 | 
			
		||||
    tmux
 | 
			
		||||
    lazygit
 | 
			
		||||
    bottom
 | 
			
		||||
    ripgrep
 | 
			
		||||
    jq
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
{pkgs, ...}: {
 | 
			
		||||
{pkgs, lib, ...}: {
 | 
			
		||||
  programs.fish = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    # initExtra = ''
 | 
			
		||||
@@ -52,6 +52,27 @@
 | 
			
		||||
        '';
 | 
			
		||||
        onEvent = "fish_greeting";
 | 
			
		||||
      };
 | 
			
		||||
    } // lib.optionalAttrs pkgs.stdenv.isLinux {
 | 
			
		||||
      block = {
 | 
			
		||||
        body = ''
 | 
			
		||||
          systemd-inhibit --what=sleep --who="$USER" --why="manual invocation" --mode=block sleep infinity &
 | 
			
		||||
          set -g INHIBIT_PID $last_pid
 | 
			
		||||
          echo "Sleep inhibited. PID: $INHIBIT_PID"
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      unblock = {
 | 
			
		||||
        body = ''
 | 
			
		||||
          if set -q INHIBIT_PID
 | 
			
		||||
            kill $INHIBIT_PID 2>/dev/null
 | 
			
		||||
            and echo "Sleep inhibitor removed. PID: $INHIBIT_PID"
 | 
			
		||||
            or echo "Failed to kill process or already terminated."
 | 
			
		||||
            set -e INHIBIT_PID
 | 
			
		||||
          else
 | 
			
		||||
            echo "No active sleep inhibitor found."
 | 
			
		||||
          end
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								modules/apps/appimage.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								modules/apps/appimage.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
with lib; let
 | 
			
		||||
  cfg = config.appimage;
 | 
			
		||||
in {
 | 
			
		||||
  options.appimage = {
 | 
			
		||||
    enable = mkEnableOption "AppImage support";
 | 
			
		||||
  };
 | 
			
		||||
  config = mkIf cfg.enable {
 | 
			
		||||
    environment.systemPackages = with pkgs; [
 | 
			
		||||
      appimageupdate
 | 
			
		||||
      appimage-run
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
@@ -8,6 +8,9 @@
 | 
			
		||||
 | 
			
		||||
  # Allow unfree packages
 | 
			
		||||
  nixpkgs.config.allowUnfree = true;
 | 
			
		||||
  nixpkgs.config.permittedInsecurePackages = [
 | 
			
		||||
    "mbedtls-2.28.10"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  nix.package = pkgs.nix;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,9 @@
 | 
			
		||||
{
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
{ ... }: {
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./core.nix
 | 
			
		||||
    ./environment.nix
 | 
			
		||||
    ./fonts.nix
 | 
			
		||||
    # ./overlays.nix
 | 
			
		||||
    ./users.nix
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										50
									
								
								modules/common/overlays.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								modules/common/overlays.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
final: prev: let
 | 
			
		||||
  rust_1_90_0 = prev.rust-bin.stable."1.90.0".default;
 | 
			
		||||
  myRustPlatform = prev.makeRustPlatform {
 | 
			
		||||
    cargo = rust_1_90_0;
 | 
			
		||||
    rustc = rust_1_90_0;
 | 
			
		||||
  };
 | 
			
		||||
in {
 | 
			
		||||
  lazygitLatest = prev.lazygit.overrideAttrs (_: rec {
 | 
			
		||||
    version = "0.55.1";
 | 
			
		||||
    src = prev.fetchFromGitHub {
 | 
			
		||||
      owner = "jesseduffield";
 | 
			
		||||
      repo = "lazygit";
 | 
			
		||||
      rev = "v${version}";
 | 
			
		||||
      hash = "sha256-UofhgILZhVXnYiGpb25m4Ct4sbu5pRmjVgj3oEf5Uyk=";
 | 
			
		||||
    };
 | 
			
		||||
    vendorHash = null;
 | 
			
		||||
    subPackages = [ "." ];
 | 
			
		||||
    ldflags = [
 | 
			
		||||
      "-X main.version=${version}"
 | 
			
		||||
      "-X main.buildSource=nix"
 | 
			
		||||
    ];
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  atuinLatest = (prev.atuin.override {
 | 
			
		||||
    rustPlatform = myRustPlatform;
 | 
			
		||||
  }).overrideAttrs (oldAttrs: rec {
 | 
			
		||||
    version = "18.10.0";
 | 
			
		||||
 | 
			
		||||
    src = prev.fetchFromGitHub {
 | 
			
		||||
      owner = "atuinsh";
 | 
			
		||||
      repo = "atuin";
 | 
			
		||||
      rev = "v${version}";
 | 
			
		||||
      hash = "sha256-bfSa3RtVXxHt3usDqqpE/oXKKDUZOrf+tD9uL59fr6M=";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    cargoDeps = myRustPlatform.fetchCargoVendor {
 | 
			
		||||
      # name = "atuin-${version}-vendor.tar.gz";
 | 
			
		||||
      inherit src;
 | 
			
		||||
      hash = "sha256-67ffivZVCly1GWA3fJ9mT8nGv2EGd6eCthbaIu/IW3M=";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    preCheck = (oldAttrs.preCheck or "") + ''
 | 
			
		||||
      export HOME="$TMPDIR"
 | 
			
		||||
      export XDG_CONFIG_HOME="$TMPDIR/.config"
 | 
			
		||||
      export XDG_DATA_HOME="$TMPDIR/.local/share"
 | 
			
		||||
      export XDG_STATE_HOME="$TMPDIR/.local/state"
 | 
			
		||||
      mkdir -p "$XDG_CONFIG_HOME" "$XDG_DATA_HOME" "$XDG_STATE_HOME"
 | 
			
		||||
    '';
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
@@ -18,14 +18,16 @@
 | 
			
		||||
in {
 | 
			
		||||
  imports = [
 | 
			
		||||
    (import ../../apps/flatpak.nix {
 | 
			
		||||
      inherit lib pkgs flatpakPackages;
 | 
			
		||||
      inherit lib pkgs flatpakPackages userName;
 | 
			
		||||
    })
 | 
			
		||||
    ../../apps/gaming.nix
 | 
			
		||||
    ../../apps/appimage.nix
 | 
			
		||||
    ../../graphics
 | 
			
		||||
    ../../pwrMgmt
 | 
			
		||||
    ../../networking/core.nix
 | 
			
		||||
    ../../sound/pipewire.nix
 | 
			
		||||
    ../../sound/shairport.nix
 | 
			
		||||
    ../../sound/focusrite.nix
 | 
			
		||||
    ../../virtualization/podman.nix
 | 
			
		||||
    ../../virtualization/hardware.nix
 | 
			
		||||
  ];
 | 
			
		||||
@@ -34,9 +36,13 @@ in {
 | 
			
		||||
  nix.settings.experimental-features = ["nix-command" "flakes"];
 | 
			
		||||
 | 
			
		||||
  # Custom kernel/boot stuff
 | 
			
		||||
  boot.kernelPackages = pkgs.linuxPackages_latest;
 | 
			
		||||
  boot.loader.systemd-boot.enable = true;
 | 
			
		||||
  boot.loader.efi.canTouchEfiVariables = true;
 | 
			
		||||
  boot = {
 | 
			
		||||
    kernelPackages = pkgs.linuxPackages_latest;
 | 
			
		||||
    loader = {
 | 
			
		||||
      systemd-boot.enable = true;
 | 
			
		||||
      efi.canTouchEfiVariables = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Enable Bluetooth if present
 | 
			
		||||
  hardware.bluetooth.enable = true;
 | 
			
		||||
@@ -63,21 +69,6 @@ in {
 | 
			
		||||
    wl-clip-persist
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Enable OpenSSH
 | 
			
		||||
  services.openssh.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Enable keyring
 | 
			
		||||
  services.gnome.gnome-keyring.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Enable GnuPG
 | 
			
		||||
  programs.gnupg.agent = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    enableSSHSupport = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Enable SUID wrappers (some programs need them)
 | 
			
		||||
  programs.mtr.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Enable Polkit
 | 
			
		||||
  security.polkit.enable = true;
 | 
			
		||||
 | 
			
		||||
@@ -145,14 +136,39 @@ in {
 | 
			
		||||
    networkManager.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Enable dconf
 | 
			
		||||
  programs.dconf.enable = true;
 | 
			
		||||
  programs = {
 | 
			
		||||
    # Enable GnuPG
 | 
			
		||||
    gnupg.agent = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      enableSSHSupport = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Enable SUID wrappers (some programs need them)
 | 
			
		||||
    mtr.enable = true;
 | 
			
		||||
 | 
			
		||||
    # Enable dconf
 | 
			
		||||
    dconf.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Add username to groups "wheel" and "video" - more may be added here later
 | 
			
		||||
  users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network"];
 | 
			
		||||
 | 
			
		||||
  # Flatpak packages (see ../../apps/flatpak.nix)
 | 
			
		||||
  services.flatpak.packages = flatpakPackages;
 | 
			
		||||
  services = {
 | 
			
		||||
    # Enable OpenSSH
 | 
			
		||||
    openssh.enable = true;
 | 
			
		||||
 | 
			
		||||
    # Enable keyring
 | 
			
		||||
    gnome.gnome-keyring.enable = true;
 | 
			
		||||
 | 
			
		||||
    # Flatpak packages (see ../../apps/flatpak.nix)
 | 
			
		||||
    flatpak.packages = flatpakPackages;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Focusrite Scarlett audio interface support (see ../../sound/focusrite.nix)
 | 
			
		||||
  sound.hardware.focusrite.enable = true;
 | 
			
		||||
 | 
			
		||||
  # AppImage support
 | 
			
		||||
  appimage.enable = true;
 | 
			
		||||
 | 
			
		||||
  # XDG stuff
 | 
			
		||||
  xdg = {
 | 
			
		||||
@@ -160,12 +176,12 @@ in {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      config = {
 | 
			
		||||
        sway = {
 | 
			
		||||
          default = [ "wlr" "gtk" ];
 | 
			
		||||
          "org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ];
 | 
			
		||||
          default = ["wlr" "gtk"];
 | 
			
		||||
          "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
 | 
			
		||||
        };
 | 
			
		||||
        common = {
 | 
			
		||||
          default = [ "gtk" ];
 | 
			
		||||
          "org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ];
 | 
			
		||||
          default = ["gtk"];
 | 
			
		||||
          "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
      extraPortals = with pkgs; [
 | 
			
		||||
 
 | 
			
		||||
@@ -12,24 +12,24 @@
 | 
			
		||||
    (modulesPath + "/installer/scan/not-detected.nix")
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
 | 
			
		||||
  boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "thunderbolt" "ahci" "usb_storage" "usbhid" "sd_mod"];
 | 
			
		||||
  boot.initrd.kernelModules = [];
 | 
			
		||||
  boot.kernelModules = ["kvm-amd"];
 | 
			
		||||
  boot.extraModulePackages = [];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" = {
 | 
			
		||||
    device = "/dev/disk/by-label/COMPUTER";
 | 
			
		||||
    device = "/dev/disk/by-uuid/f8f39aae-61d2-437d-a8e1-01066bbb3c5c";
 | 
			
		||||
    fsType = "xfs";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" = {
 | 
			
		||||
    device = "/dev/disk/by-label/BOOT";
 | 
			
		||||
    device = "/dev/disk/by-uuid/B72F-087F";
 | 
			
		||||
    fsType = "vfat";
 | 
			
		||||
    options = ["fmask=0022" "dmask=0022"];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [
 | 
			
		||||
    {device = "/dev/disk/by-label/SWAP";}
 | 
			
		||||
    {device = "/dev/disk/by-uuid/6d6bcc02-20a9-4ae8-9c1e-5124fb2b2634";}
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										33
									
								
								modules/sound/focusrite.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								modules/sound/focusrite.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
# Must be paired with the pipewire Nix module, this does nothing but install packages
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
with lib; let
 | 
			
		||||
  cfg = config.sound.hardware.focusrite;
 | 
			
		||||
in {
 | 
			
		||||
  options.sound.hardware.focusrite = {
 | 
			
		||||
    enable = mkEnableOption "Focusrite audio interface support";
 | 
			
		||||
    guiSupport = mkOption {
 | 
			
		||||
      type = types.bool;
 | 
			
		||||
      default = false;
 | 
			
		||||
      description = "Enable GUI support for Focusrite Scarlett audio interface (installs alsa-scarlett-gui)";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  config = mkIf cfg.enable (mkMerge [
 | 
			
		||||
    {
 | 
			
		||||
      environment.systemPackages = with pkgs;
 | 
			
		||||
        [
 | 
			
		||||
          scarlett2
 | 
			
		||||
          alsa-scarlett-gui
 | 
			
		||||
        ]
 | 
			
		||||
        ++ (
 | 
			
		||||
          if cfg.guiSupport
 | 
			
		||||
          then [pkgs.alsa-scarlett-gui]
 | 
			
		||||
          else []
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
  ]);
 | 
			
		||||
}
 | 
			
		||||
@@ -1,7 +1,16 @@
 | 
			
		||||
{pkgs, ...}: {
 | 
			
		||||
{ lib, pkgs, userName, ...}: {
 | 
			
		||||
  services.shairport-sync = {
 | 
			
		||||
    enable = pkgs.stdenv.isLinux;
 | 
			
		||||
    openFirewall = pkgs.stdenv.isLinux;
 | 
			
		||||
    arguments = "-v -o pw";
 | 
			
		||||
    # arguments = "-v -o pa";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  systemd.services.shairport-sync = {
 | 
			
		||||
    serviceConfig = {
 | 
			
		||||
      User = lib.mkForce "${userName}";
 | 
			
		||||
    };
 | 
			
		||||
    environment = {
 | 
			
		||||
      XDG_RUNTIME_DIR = "/run/user/1000";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user