Reproducible dotfiles in nix

fix: remove Linux standalone for now

Changed files
+53 -104
.github
workflows
lib
+1 -1
.github/workflows/flake.yml
··· 12 12 strategy: 13 13 fail-fast: false 14 14 matrix: 15 - os: ["ubuntu-latest", "macos-latest", "ubuntu-24.04-arm"] 15 + os: ["macos-latest"] 16 16 runs-on: ${{ matrix.os }} 17 17 steps: 18 18 - name: Checkout sources
+15 -54
flake.lock
··· 159 159 "nixpkgs-lib": "nixpkgs-lib" 160 160 }, 161 161 "locked": { 162 - "lastModified": 1765835352, 163 - "narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=", 162 + "lastModified": 1767609335, 163 + "narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=", 164 164 "owner": "hercules-ci", 165 165 "repo": "flake-parts", 166 - "rev": "a34fae9c08a15ad73f295041fec82323541400a9", 166 + "rev": "250481aafeb741edfe23d29195671c19b36b6dca", 167 167 "type": "github" 168 168 }, 169 169 "original": { ··· 313 313 "type": "github" 314 314 } 315 315 }, 316 - "gitignore_2": { 317 - "inputs": { 318 - "nixpkgs": [ 319 - "zls-flake", 320 - "nixpkgs" 321 - ] 322 - }, 323 - "locked": { 324 - "lastModified": 1762808025, 325 - "narHash": "sha256-XmjITeZNMTQXGhhww6ed/Wacy2KzD6svioyCX7pkUu4=", 326 - "owner": "hercules-ci", 327 - "repo": "gitignore.nix", 328 - "rev": "cb5e3fdca1de58ccbc3ef53de65bd372b48f567c", 329 - "type": "github" 330 - }, 331 - "original": { 332 - "owner": "hercules-ci", 333 - "repo": "gitignore.nix", 334 - "type": "github" 335 - } 336 - }, 337 316 "home-manager": { 338 317 "inputs": { 339 318 "nixpkgs": [ ··· 341 320 ] 342 321 }, 343 322 "locked": { 344 - "lastModified": 1767525999, 345 - "narHash": "sha256-1E9xlYlyl3EnUrwxoaJMTK7dFrC2llL/TJ+T4xIcXDY=", 323 + "lastModified": 1767702900, 324 + "narHash": "sha256-xMzHmNytl7JgFRov2jHf2GYsLVp/sAfYO0JvbZt0uDo=", 346 325 "owner": "nix-community", 347 326 "repo": "home-manager", 348 - "rev": "7d5927b63cea63deb655b3e8421ae17ebb9feac2", 327 + "rev": "38e187fd2f9efac197e03be0c25f3ee215974144", 349 328 "type": "github" 350 329 }, 351 330 "original": { ··· 480 459 "type": "github" 481 460 } 482 461 }, 483 - "nixpkgs-stable": { 484 - "locked": { 485 - "lastModified": 1767051569, 486 - "narHash": "sha256-0MnuWoN+n1UYaGBIpqpPs9I9ZHW4kynits4mrnh1Pk4=", 487 - "owner": "NixOS", 488 - "repo": "nixpkgs", 489 - "rev": "40ee5e1944bebdd128f9fbada44faefddfde29bd", 490 - "type": "github" 491 - }, 492 - "original": { 493 - "owner": "NixOS", 494 - "ref": "nixos-25.05", 495 - "repo": "nixpkgs", 496 - "type": "github" 497 - } 498 - }, 499 462 "nixpkgs_2": { 500 463 "locked": { 501 464 "lastModified": 1766314097, ··· 583 546 "home-manager": "home-manager", 584 547 "nix-darwin": "nix-darwin", 585 548 "nixpkgs": "nixpkgs_3", 586 - "nixpkgs-stable": "nixpkgs-stable", 587 549 "superhtml": "superhtml", 588 550 "zig": "zig", 589 551 "ziggy": "ziggy", ··· 645 607 "nixpkgs": "nixpkgs_5" 646 608 }, 647 609 "locked": { 648 - "lastModified": 1767487353, 649 - "narHash": "sha256-/NPUfN1z61Vs5G+1C+ZH4xEP+ANuMPpqeT0ixmQl1pc=", 610 + "lastModified": 1767659903, 611 + "narHash": "sha256-Jc/KmlLyn2T8P/ZpgBoMkULsfmn8B4PjnwiXzlEA9Zg=", 650 612 "owner": "mitchellh", 651 613 "repo": "zig-overlay", 652 - "rev": "3f83708d754f667aea7d684e1c209582aa6cc209", 614 + "rev": "1508a4f84129c2824ee4fcbdec31c63bdcf08756", 653 615 "type": "github" 654 616 }, 655 617 "original": { ··· 668 630 ] 669 631 }, 670 632 "locked": { 671 - "lastModified": 1766968853, 672 - "narHash": "sha256-lCw6MKbf1XbGB8m4EwVACm4IyIBThg2JI1ysqYZ2gc4=", 633 + "lastModified": 1767573704, 634 + "narHash": "sha256-rNGKx9KO30dKt1wfpf6F0DrUaqp4jRZoqUi6+Fy32yM=", 673 635 "owner": "mitchellh", 674 636 "repo": "zig-overlay", 675 - "rev": "d0d74182d45d3dea8eee91c8fb8e7f735306349e", 637 + "rev": "501956cc4a633fdc744dc4cdd88ce12c65b7fc65", 676 638 "type": "github" 677 639 }, 678 640 "original": { ··· 702 664 }, 703 665 "zls-flake": { 704 666 "inputs": { 705 - "gitignore": "gitignore_2", 706 667 "nixpkgs": [ 707 668 "nixpkgs" 708 669 ], 709 670 "zig-overlay": "zig-overlay" 710 671 }, 711 672 "locked": { 712 - "lastModified": 1767031944, 713 - "narHash": "sha256-hhXTN6aN6XmtcyW4gZa+vtiRpj2xpxMF+JsAQ8GL0+A=", 673 + "lastModified": 1767605240, 674 + "narHash": "sha256-Y2gW2QUCxqS/v5g5WumTDeAlk4qbCdS/b5s/crXAdiw=", 714 675 "owner": "zigtools", 715 676 "repo": "zls", 716 - "rev": "cbb6228417f2ddcac372808d4743960ba19f49a3", 677 + "rev": "26e019205cc7a3f583ce4ad6c25ef131a62d98c3", 717 678 "type": "github" 718 679 }, 719 680 "original": {
+7 -10
flake.nix
··· 3 3 4 4 inputs = { 5 5 nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; 6 - nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05"; 7 6 nix-darwin.url = "github:LnL7/nix-darwin"; 8 7 nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; 9 8 home-manager.url = "github:nix-community/home-manager"; ··· 28 27 }; 29 28 30 29 outputs = inputs @ {self, ...}: let 31 - mkDarwin = self.lib.mkDarwin {}; 32 - mkStandalone = self.lib.mkStandalone {}; 30 + mkDarwin = self.my_lib.mkDarwin {}; 31 + mkStandalone = self.my_lib.mkStandalone {}; 33 32 in 34 33 inputs.flake-parts.lib.mkFlake {inherit inputs;} { 35 34 flake = { 36 - lib = import ./lib {inherit inputs;}; 37 - darwinConfigurations."Ethans-Laptop" = mkDarwin {system = "aarch64-darwin";}; 38 - homeConfigurations."ethan" = mkStandalone {system = "x86_64-linux";}; 39 - homeConfigurations."ethan-aarch64" = mkStandalone {system = "aarch64-linux";}; 40 - # This is for using in GH Actions 41 - homeConfigurations."runner" = mkStandalone {system = "x86_64-linux";}; 35 + my_lib = import ./lib {inherit inputs;}; 36 + darwinConfigurations."Ethans-Laptop" = mkDarwin { 37 + system = "aarch64-darwin"; 38 + }; 42 39 }; 43 40 44 - systems = ["aarch64-darwin" "x86_64-linux" "aarch64-linux"]; 41 + systems = ["aarch64-darwin"]; 45 42 perSystem = { 46 43 pkgs, 47 44 system,
+9 -11
lib/default.nix
··· 1 1 {inputs}: let 2 2 defaultUsername = "ethan"; 3 - pkgs = inputs.nixpkgs; 4 - pkgs-stable = inputs.nixpkgs-stable; 5 3 in { 6 4 mkStandalone = {userName ? defaultUsername}: {system}: 7 5 inputs.home-manager.lib.homeManagerConfiguration { 8 - pkgs = import pkgs { 9 - inherit system; 10 - config.allowUnfree = true; 11 - }; 6 + pkgs = inputs.nixpkgs; 12 7 modules = [ 13 - (import ./shared/home.nix {inherit inputs pkgs-stable;}) 14 - ./shared/lsp.nix 15 - (import ./shared/python.nix {inherit pkgs-stable;}) 8 + # (import ./shared/home.nix {inherit inputs pkgs-stable;}) 9 + # ./shared/lsp.nix 10 + # (import ./shared/python.nix {inherit pkgs-stable;}) 16 11 ./shared/nix.nix 17 12 ]; 18 13 # modules = [./home.nix ./lsp.nix ./ocaml.nix ./python.nix]; 19 - extraSpecialArgs = {inherit inputs userName pkgs-stable;}; 14 + extraSpecialArgs = { 15 + inherit inputs; 16 + pkgs = inputs.nixpkgs; 17 + }; 20 18 }; 21 19 mkDarwin = {userName ? defaultUsername}: {system}: 22 20 inputs.nix-darwin.lib.darwinSystem { ··· 59 57 # inputs.ghostty.homeModules.default 60 58 (import ./shared/home.nix {inherit inputs pkgs userName;}) 61 59 (import ./shared/lsp.nix {inherit inputs pkgs;}) 62 - (import ./shared/python.nix {inherit inputs pkgs pkgs-stable;}) 60 + (import ./shared/python.nix {inherit inputs pkgs;}) 63 61 (import ./shared/nix.nix {inherit inputs pkgs;}) 64 62 ]; 65 63 };
+20 -23
lib/shared/home.nix
··· 4 4 userName, 5 5 ... 6 6 }: let 7 - inherit (pkgs) system lib; 8 - pkgs-stable = import inputs.nixpkgs-stable { 9 - inherit system; 10 - config.allowUnfree = true; 11 - }; 7 + inherit (pkgs) system; 8 + # pkgs-stable = import inputs.nixpkgs-stable { 9 + # inherit system; 10 + # config.allowUnfree = true; 11 + # }; 12 12 zig = inputs.zig.packages.${system}."0.15.1"; 13 13 base = 14 14 if pkgs.stdenv.isDarwin ··· 24 24 home.homeDirectory = base; 25 25 # Home Manager needs a bit of information about you and the paths it should 26 26 # manage. 27 - home.sessionPath = 28 - [ 29 - "$HOME/.local/bin" 30 - "$HOME/go/bin" 31 - "$HOME/.cargo/bin" 32 - "$HOME/.cache/rebar3/bin" 33 - "$HOME/.pixi/bin" 34 - "$HOME/.bun/bin" 35 - "$GHOSTTY_BIN_DIR" 36 - ] 37 - ++ lib.optionals pkgs.stdenv.isDarwin [ 38 - "/opt/homebrew/opt/node@22/bin" 39 - "/opt/homebrew/bin" 40 - "/opt/podman/bin" 41 - "$HOME/.opencode/bin" 42 - ]; 27 + home.sessionPath = [ 28 + "$HOME/.local/bin" 29 + "$HOME/go/bin" 30 + "$HOME/.cargo/bin" 31 + "$HOME/.cache/rebar3/bin" 32 + "$HOME/.pixi/bin" 33 + "$HOME/.bun/bin" 34 + "$GHOSTTY_BIN_DIR" 35 + "/opt/homebrew/opt/node@22/bin" 36 + "/opt/homebrew/bin" 37 + "/opt/podman/bin" 38 + "$HOME/.opencode/bin" 39 + ]; 43 40 # environment.pathsToLink = ["/usr/share/zsh/vendor-completions"]; 44 41 45 42 # This value determines the Home Manager release that your configuration is ··· 144 141 programs.ghostty = { 145 142 enable = true; 146 143 # TODO: make this Linux capable in the future 147 - package = lib.mkIf pkgs.stdenv.isDarwin null; 144 + package = null; 148 145 settings = { 149 146 font-size = font-size; 150 147 font-family = "GeistMono Nerd Font"; ··· 176 173 177 174 programs.gitui = { 178 175 enable = true; 179 - package = pkgs-stable.gitui; 176 + # package = pkgs-stable.gitui; 180 177 keyConfig = '' 181 178 ( 182 179 open_help: Some(( code: F(1), modifiers: ( bits: 0,),)),
+1 -5
lib/shared/python.nix
··· 4 4 ... 5 5 }: let 6 6 inherit (pkgs) system; 7 - pkgs-stable = import inputs.nixpkgs-stable { 8 - inherit system; 9 - config.allowUnfree = true; 10 - }; 11 7 in { 12 8 home.packages = [ 13 9 # Python 14 - pkgs-stable.micromamba 10 + pkgs.micromamba 15 11 pkgs.cookiecutter 16 12 pkgs.ruff 17 13 pkgs.pyright