❄️ Dotfiles for our NixOS system configuration.
at master 2.6 kB view raw
1{ 2 description = "NixOS configuration for the Sapphic Angels system."; 3 4 inputs = { 5 # Packages 6 nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; 7 8 # Flakes 9 flake-parts.url = "github:hercules-ci/flake-parts"; 10 easy-hosts.url = "github:tgirlcloud/easy-hosts"; 11 12 # Systems 13 nix-darwin = { 14 url = "github:nix-darwin/nix-darwin"; 15 inputs.nixpkgs.follows = "nixpkgs"; 16 }; 17 18 nixos-wsl = { 19 url = "github:nix-community/NixOS-WSL"; 20 inputs.nixpkgs.follows = "nixpkgs"; 21 }; 22 23 # Userspace 24 home-manager = { 25 url = "github:nix-community/home-manager"; 26 inputs.nixpkgs.follows = "nixpkgs"; 27 }; 28 29 # Misc 30 ## Catppuccin theme 31 catppuccin = { 32 url = "github:catppuccin/nix"; 33 inputs.nixpkgs.follows = "nixpkgs"; 34 }; 35 36 ## Nix Language Server 37 nil = { 38 url = "github:oxalica/nil"; 39 inputs.nixpkgs.follows = "nixpkgs"; 40 }; 41 42 ## Secrets management 43 ragenix = { 44 url = "github:yaxitech/ragenix"; 45 inputs.nixpkgs.follows = "nixpkgs"; 46 }; 47 48 ## Logitech config tool 49 solaar = { 50 url = "github:Svenum/Solaar-Flake/main"; 51 inputs.nixpkgs.follows = "nixpkgs"; 52 }; 53 54 tangled = { 55 url = "git+https://tangled.org/@tangled.org/core"; 56 inputs.nixpkgs.follows = "nixpkgs"; 57 }; 58 59 darwin-login-items.url = "github:uncenter/nix-darwin-login-items"; 60 }; 61 62 outputs = 63 inputs@{ flake-parts, ... }: 64 flake-parts.lib.mkFlake { inherit inputs; } { 65 imports = [ 66 inputs.easy-hosts.flakeModule 67 ]; 68 69 systems = [ 70 "x86_64-linux" 71 "aarch64-darwin" 72 ]; 73 74 perSystem = 75 { pkgs, ... }: 76 { 77 formatter = pkgs.nixfmt; 78 }; 79 80 easy-hosts = { 81 path = ./hosts; 82 83 additionalClasses = { 84 wsl = "nixos"; 85 }; 86 87 shared = { 88 modules = [ ./modules/base ]; 89 specialArgs = { inherit inputs; }; 90 }; 91 92 perClass = class: { 93 modules = [ ./modules/${class}/default.nix ]; 94 }; 95 96 hosts = { 97 caulfield = { 98 arch = "x86_64"; 99 class = "nixos"; 100 tags = [ "laptop" ]; 101 }; 102 103 dullscythe = { 104 arch = "x86_64"; 105 class = "nixos"; 106 tags = [ "server" ]; 107 }; 108 109 juniper = { 110 arch = "aarch64"; 111 class = "darwin"; 112 tags = [ "laptop" ]; 113 }; 114 115 solstice = { 116 arch = "x86_64"; 117 class = "wsl"; 118 tags = [ "wsl" ]; 119 }; 120 }; 121 }; 122 }; 123}