my terrible dotfiles
at main 3.2 kB view raw
1{ 2 description = "monke's configs"; 3 4 inputs = { 5 disko = { 6 url = "github:nix-community/disko/latest"; 7 inputs.nixpkgs.follows = "nixpkgs"; 8 }; 9 finge = { 10 url = "github:monke0192/nixos-06cb-009a-fingerprint-sensor?ref=unstable"; 11 inputs.nixpkgs.follows = "nixpkgs"; 12 }; 13 home-manager = { 14 url = "github:nix-community/home-manager/master"; 15 inputs.nixpkgs.follows = "nixpkgs"; 16 }; 17 niri = { 18 url = "github:sodiboo/niri-flake"; 19 inputs.nixpkgs.follows = "nixpkgs"; 20 }; 21 nixos-apple-silicon = { 22 url = "github:nix-community/nixos-apple-silicon/main"; 23 inputs.nixpkgs.follows = "nixpkgs"; 24 }; 25 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small"; 26 nixvim = { 27 url = "github:nix-community/nixvim"; 28 inputs.nixpkgs.follows = "nixpkgs"; 29 }; 30 sops-nix = { 31 url = "github:Mic92/sops-nix"; 32 inputs.nixpkgs.follows = "nixpkgs"; 33 }; 34 libinput-jyutping = { 35 url = "git+https://tangled.org/auri.ee/libime-jyutping-flake"; 36 inputs.nixpkgs.follows = "nixpkgs"; 37 }; 38 tangled.url = "git+https://tangled.org/@tangled.org/core?ref=refs/tags/v1.11.0-alpha"; 39 }; 40 41 outputs = 42 inputs@{ nixpkgs, ... }: 43 let 44 forArchs = nixpkgs.lib.genAttrs [ 45 "aarch64-linux" 46 "x86_64-linux" 47 ]; 48 systems = { 49 bathtub = { 50 extraModules = [ 51 inputs.nixos-apple-silicon.nixosModules.apple-silicon-support 52 inputs.niri.nixosModules.niri 53 ]; 54 system = "aarch64-linux"; 55 }; 56 forest = { 57 extraModules = [ 58 inputs.tangled.nixosModules.knot 59 ]; 60 system = "x86_64-linux"; 61 }; 62 tundra = { 63 extraModules = [ 64 inputs.niri.nixosModules.niri 65 inputs.finge.nixosModules."06cb-009a-fingerprint-sensor" 66 ]; 67 system = "x86_64-linux"; 68 }; 69 }; 70 in 71 { 72 formatter = forArchs (a: nixpkgs.legacyPackages.${a}.nixfmt-tree); 73 devShell = forArchs ( 74 a: 75 let 76 pkgs = nixpkgs.legacyPackages.${a}; 77 in 78 pkgs.mkShell { 79 packages = with pkgs; [ 80 sops 81 age 82 just 83 ]; 84 } 85 ); 86 87 nixosConfigurations = nixpkgs.lib.mapAttrs ( 88 hostname: config: 89 nixpkgs.lib.nixosSystem { 90 system = config.system; 91 specialArgs = { inherit inputs; }; 92 modules = [ 93 ./${hostname} 94 inputs.disko.nixosModules.disko 95 inputs.home-manager.nixosModules.home-manager 96 inputs.sops-nix.nixosModules.sops 97 { 98 home-manager = { 99 backupFileExtension = ".old"; 100 extraSpecialArgs = inputs; 101 useGlobalPkgs = true; 102 useUserPackages = true; 103 users."monke" = import ./${hostname}/home.nix; 104 sharedModules = [ 105 inputs.sops-nix.homeManagerModules.sops 106 inputs.nixvim.homeModules.nixvim 107 ]; 108 }; 109 } 110 ] 111 ++ config.extraModules; 112 } 113 ) systems; 114 }; 115}