# Entry point to cherry pick modules let sources = import ../../npins; hostname = "vanadium"; username = "leana"; in { config, lib, pkgs, ... }: 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 # { # affect the generated nix.conf, doesn't need to be turned off during nixos-install nix = { distributedBuilds = true; settings.builders-use-substitutes = true; }; nixpkgs = { config = { # For btop, ROCm support is needed for AMD GPU # https://github.com/aristocratos/btop?tab=readme-ov-file#gpu-compatibility rocmSupport = true; }; overlays = map import [ ../overlays/agenix.nix ../overlays/disko.nix ../overlays/nur.nix ../overlays/wired-notify.nix ../overlays/nix-tree.nix ../overlays/wallpapers.nix ../overlays/nil.nix ../overlays/dix.nix ../overlays/eepy.nix ../overlays/calibre-no-mime.nix ../overlays/fcitx5-table-extra-taiwanese.nix ../overlays/iosevka.nix ../packages/overlay.nix ./vanadium/overlay.nix ./vanadium/kernel-overlay.nix # removed, but I need it for PLFA! ../overlays/pin-emacs28.nix ] # use lix everywhere and wrap it with nom ++ [ (import (sources.lix-module + "/overlay.nix") {inherit (sources) lix;}) (import ../overlays/nix-monitored.nix) ]; # Set NIX_PATH and flake registry at the same time # https://github.com/NixOS/nixpkgs/pull/254405 flake.source = sources.nixpkgs; }; nix.package = pkgs.nix-monitored; system.nixos.version = lib.substring 0 8 sources.nixpkgs.revision; } # # NixOS modules # ./vanadium/nixos/hardware-configuration.nix # generated ./vanadium/nixos/fs.nix ./vanadium/nixos/restic.nix ./vanadium/nixos/battery.nix ./vanadium/nixos/audio.nix ./vanadium/nixos/connectivity.nix ./vanadium/nixos/secure_dns.nix ./vanadium/nixos/input.nix ./vanadium/nixos/misc.nix ./vanadium/nixos/display.nix ./vanadium/nixos/gui.nix ./vanadium/nixos/locale.nix ./vanadium/nixos/unfree-predicate.nix ./vanadium/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/common/xscreensaver.nix ../nixosModules/extra/zram.nix ../nixosModules/extra/leana.nix # # Extern modules # (sources.disko + "/module.nix") ../disko/vanadium/btrfs.nix (sources.agenix + "/modules/age.nix") (import sources.url-eater).nixosModules.default (sources.nixos-hardware + "/framework/13-inch/7040-amd") # # 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 # ./vanadium/home/programs.nix ./vanadium/home/misc.nix ./vanadium/home/firefox.nix ./vanadium/home/xmobar.nix # Language server packages, etc ./vanadium/home/dev.nix ../homeModules/common/btop ../homeModules/common/cmus ../homeModules/common/fcitx5 ../homeModules/common/fish ../homeModules/common/nushell.nix ../homeModules/common/starship ../homeModules/common/tmux ../homeModules/common/vim ../homeModules/common/wired ../homeModules/common/atuin.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/lazygit.nix ../homeModules/common/packages.nix ../homeModules/common/password-store.nix ../homeModules/common/sioyek.nix ../homeModules/common/tealdeer.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"; }; iambconfig = { file = "${../secrets/iambconfig.age}"; path = "/home/leana/.config/iamb/config.toml"; }; }; }; } ]; }