my nixos/home-manager configuration
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 201 lines 5.0 kB view raw
1{ 2 inputs = { 3 nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-25.11"; 4 nixpkgs-unstable.url = "github:nixos/nixpkgs?ref=master"; 5 6 nixos-hardware.url = "github:nixos/nixos-hardware?ref=master"; 7 8 home-manager = { 9 url = "github:nix-community/home-manager?ref=release-25.11"; 10 inputs.nixpkgs.follows = "nixpkgs"; 11 }; 12 13 disko = { 14 url = "github:nix-community/disko"; 15 inputs.nixpkgs.follows = "nixpkgs"; 16 }; 17 18 nur = { 19 url = "github:nix-community/nur"; 20 inputs.nixpkgs.follows = "nixpkgs"; 21 }; 22 23 opnix = { 24 url = "github:brizzbuzz/opnix"; 25 inputs.nixpkgs.follows = "nixpkgs"; 26 }; 27 28 zen-browser = { 29 url = "github:0xc000022070/zen-browser-flake"; 30 inputs = { 31 nixpkgs.follows = "nixpkgs"; 32 home-manager.follows = "home-manager"; 33 }; 34 }; 35 36 betterfox = { 37 url = "github:yokoffing/Betterfox"; 38 flake = false; 39 }; 40 41 claude-code = { 42 url = "github:sadjow/claude-code-nix"; 43 inputs.nixpkgs.follows = "nixpkgs"; 44 }; 45 }; 46 47 outputs = 48 { 49 nixpkgs, 50 nixos-hardware, 51 home-manager, 52 disko, 53 nur, 54 opnix, 55 ... 56 }@inputs: 57 let 58 system = "x86_64-linux"; 59 config = { 60 allowUnfree = true; 61 }; 62 overlays = [ 63 nur.overlays.default 64 inputs.claude-code.overlays.default 65 (final: prev: { 66 unstable = import inputs.nixpkgs-unstable { 67 inherit system; 68 inherit config; 69 }; 70 }) 71 (final: prev: import ./pkgs { pkgs = final; }) 72 ]; 73 74 pkgs = import nixpkgs { 75 inherit system; 76 inherit config; 77 inherit overlays; 78 }; 79 80 user = rec { 81 name = "youn"; 82 family = "melois"; 83 fullName = "Youn Mélois"; 84 email = "youn@melois.dev"; 85 homeDirectory = "/home/${name}"; 86 nixfilesDirectory = "${homeDirectory}/nixfiles"; 87 configDirectory = "${nixfilesDirectory}/config"; 88 homeManagerConfigDirectory = "${nixfilesDirectory}/home-manager"; 89 nixosConfigDirectory = "${nixfilesDirectory}/nixos"; 90 }; 91 92 fonts = { 93 sans = { 94 default = { 95 package = pkgs.cantarell-fonts; 96 family = "Cantarell"; 97 }; 98 noto-cjk-sans = { 99 package = pkgs.noto-fonts-cjk-sans; 100 family = "Noto Sans CJK"; 101 }; 102 }; 103 serif = { 104 default = { 105 package = pkgs.dejavu_fonts; 106 family = "DejaVu Serif"; 107 }; 108 noto-cjk-serif = { 109 package = pkgs.noto-fonts-cjk-serif; 110 family = "Noto Serif CJK"; 111 }; 112 }; 113 monospace = { 114 default = { 115 package = pkgs.maple-mono.NL-NF; 116 family = "Maple Mono NL NF"; 117 }; 118 }; 119 emoji = { 120 default = { 121 package = pkgs.noto-fonts-color-emoji; 122 family = "Noto Color Emoji"; 123 }; 124 }; 125 }; 126 127 mkNixosSystem = 128 modules: 129 nixpkgs.lib.nixosSystem { 130 specialArgs = { 131 inherit inputs; 132 inherit user; 133 inherit fonts; 134 }; 135 136 modules = [ 137 { 138 nixpkgs = { 139 inherit config; 140 inherit overlays; 141 }; 142 } 143 ./nixos/modules 144 opnix.nixosModules.default 145 ] 146 ++ modules; 147 }; 148 149 mkHomeManagerConfiguration = 150 modules: 151 home-manager.lib.homeManagerConfiguration { 152 inherit pkgs; 153 154 extraSpecialArgs = { 155 inherit inputs; 156 inherit user; 157 inherit fonts; 158 }; 159 160 modules = [ 161 ./home-manager/modules 162 opnix.homeManagerModules.default 163 ] 164 ++ modules; 165 }; 166 in 167 { 168 # nixos-rebuild switch --flake .#<hostname> 169 nixosConfigurations = { 170 "desktop" = mkNixosSystem [ 171 ./nixos/desktop 172 ]; 173 "laptop" = mkNixosSystem [ 174 ./nixos/laptop 175 nixos-hardware.nixosModules.framework-12th-gen-intel 176 ]; 177 # nixos-rebuild --target-host root@<hostname> switch --flake ~/nixfiles#server 178 "server" = mkNixosSystem [ 179 disko.nixosModules.disko 180 ./nixos/server 181 ]; 182 "clever-cloud" = mkNixosSystem [ 183 ./nixos/clever-cloud 184 nixos-hardware.nixosModules.lenovo-thinkpad-t480s 185 ]; 186 }; 187 # nix run home-manager/release-25.11 -- switch --flake .#<hostname> 188 # home-manager switch --flake .#<hostname> 189 homeConfigurations = { 190 "${user.name}@desktop" = mkHomeManagerConfiguration [ 191 ./home-manager/desktop.nix 192 ]; 193 "${user.name}@laptop" = mkHomeManagerConfiguration [ 194 ./home-manager/laptop.nix 195 ]; 196 "${user.name}@clever-cloud" = mkHomeManagerConfiguration [ 197 ./home-manager/clever-cloud.nix 198 ]; 199 }; 200 }; 201}