diff --git a/default.nix b/default.nix index 63c86ade..afa2fe55 100644 --- a/default.nix +++ b/default.nix @@ -10,6 +10,10 @@ system = "x86_64-linux"; modules = [./nix/configurations/tungsten.nix]; }; + tungsten-btrfs-test = { + system = "x86_64-linux"; + modules = [./nix/configurations/tungsten-btrfs-test.nix]; + }; installer = { system = "x86_64-linux"; modules = [./nix/configurations/installer.nix]; diff --git a/nix/configurations/tungsten-btrfs-test.nix b/nix/configurations/tungsten-btrfs-test.nix new file mode 100644 index 00000000..a8e54d66 --- /dev/null +++ b/nix/configurations/tungsten-btrfs-test.nix @@ -0,0 +1,197 @@ +# Entry point to cherry pick modules +let + sources = import ../sources.nix; + + hostname = "tungsten"; + username = "leana"; +in + { + config, + lib, + ... + }: let + inherit (lib.modules) mkAliasOptionModule; + in { + imports = [ + # + # Shorthands + # + (mkAliasOptionModule ["me"] ["users" "users" username]) + (mkAliasOptionModule ["hm"] ["home-manager" "users" username]) + + # + # hostname + # + {_module.args = {inherit hostname;};} + + # + # nixpkgs + # + { + nixpkgs = { + overlays = map import [ + ../overlays/agenix.nix + ../overlays/disko.nix + ../overlays/nur.nix + ../overlays/wired-notify.nix + ../overlays/nix-tree.nix + + ../packages/overlay.nix + ]; + + # Set NIX_PATH and flake registry at the same time + # https://github.com/NixOS/nixpkgs/pull/254405 + flake.source = sources.nixpkgs; + }; + + system.nixos.version = lib.substring 0 8 sources.nixpkgs.revision; + } + + # + # NixOS modules + # + ./tungsten/nixos/hardware-configuration.nix # generated + ./tungsten/nixos/fs.nix + ./tungsten/nixos/restic.nix + + ./tungsten/nixos/battery.nix + + ./tungsten/nixos/audio.nix + ./tungsten/nixos/connectivity.nix + ./tungsten/nixos/input.nix + + ./tungsten/nixos/misc.nix + + ./tungsten/nixos/display.nix + ./tungsten/nixos/gui.nix + + ./tungsten/nixos/locale.nix + ./tungsten/nixos/unfree-predicate.nix + ./tungsten/nixos/programs.nix + + ../nixosModules/common/disable-command-not-found.nix + ../nixosModules/common/network.nix + ../nixosModules/common/sudo-conf.nix + ../nixosModules/common/system-nixconf.nix + + ../nixosModules/extra/layouts + ../nixosModules/extra/zram.nix + ../nixosModules/extra/leana.nix + + ../nixosModules/extra/macbook-swap-fn-ctrl.nix + ../nixosModules/extra/macbook-swap-cmd-opt.nix + + # + # Extern modules + # + (sources.disko + "/module.nix") + ../disko/tungsten/btrfs.nix + + (sources.agenix + "/modules/age.nix") + + (import sources.url-eater).nixosModules.default + + (sources.nixos-hardware + "/apple/macbook-air/6") + + (import (sources.lix-module + "/module.nix") {inherit (sources) lix;}) + + # + # home-manager + # + (sources.home-manager + "/nixos") + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + sharedModules = [{home.stateVersion = lib.mkDefault config.system.stateVersion;}]; + }; + + hm.imports = [ + # + # hostname + # + {_module.args = {inherit hostname;};} + + # + # home modules + # + ./tungsten/home/programs.nix + ./tungsten/home/misc.nix + + ./tungsten/home/firefox.nix + ./tungsten/home/xmobar.nix + + # Language server packages, etc + ./tungsten/home/dev.nix + + ../homeModules/common/btop + ../homeModules/common/cmus + ../homeModules/common/fcitx5 + ../homeModules/common/fish + ../homeModules/common/ranger + ../homeModules/common/starship + ../homeModules/common/tmux + ../homeModules/common/vim + ../homeModules/common/wired + ../homeModules/common/atuin.nix + ../homeModules/common/battery-notify.nix + ../homeModules/common/direnv.nix + ../homeModules/common/feh.nix + ../homeModules/common/firefox.nix + ../homeModules/common/fzf.nix + ../homeModules/common/git.nix + ../homeModules/common/gpg.nix + ../homeModules/common/kitty.nix + ../homeModules/common/leana.nix + ../homeModules/common/locale.nix + ../homeModules/common/neovim.nix + ../homeModules/common/packages.nix + ../homeModules/common/password-store.nix + ../homeModules/common/sioyek.nix + ../homeModules/common/user-nixconf.nix + + ../homeModules/extra/tmux-fish-integration.nix + + # + # Extern modules + # + (sources.agenix + "/modules/age-home.nix") + (import sources.wired-notify).homeManagerModules.default + ]; + } + + # + # Secrets + # + { + age.secrets = { + wpa_password.file = "${../secrets/wpa_password.age}"; + + restic_backblaze_pwd.file = "${../secrets/restic_backblaze_pwd.age}"; + restic_backblaze_repo.file = "${../secrets/restic_backblaze_repo.age}"; + restic_backblaze_env.file = "${../secrets/restic_backblaze_env.age}"; + + four_pwd.file = "${../secrets/four_pwd.age}"; + restic_four_pwd.file = "${../secrets/restic_four_pwd.age}"; + + sgbk_pwd.file = "${../secrets/sgbk_pwd.age}"; + restic_sgbk_pwd.file = "${../secrets/restic_sgbk_pwd.age}"; + + two_pwd.file = "${../secrets/two_pwd.age}"; + }; + + hm = { + age.secrets = { + sshconfig = { + file = "${../secrets/sshconfig.age}"; + path = "/home/leana/.ssh/config"; + }; + ltex_dict = { + file = "${../secrets/ltex_dict.age}"; + path = "/home/leana/.config/ltex_dict"; + }; + }; + }; + } + ]; + }