.files/nix/configurations/hydrogen.nix

144 lines
3.2 KiB
Nix

let
sources = import ../../npins;
hostname = "hydrogen";
username = "leana";
in
{
modulesPath,
config,
pkgs,
lib,
...
}:
let
inherit (lib.modules) mkAliasOptionModule;
in
{
imports = [
# The generator and hardware configuration
(modulesPath + "/installer/sd-card/sd-image-aarch64.nix")
#
# 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/nur.nix
../overlays/nix-tree.nix
../packages/overlay.nix
# use lix everywhere and wrap it with nom
../overlays/lix.nix
../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 =
let
rev = lib.substring 0 8 sources.nixpkgs.revision;
in
{
versionSuffix = "-git:${rev}";
revision = rev;
};
}
./hydrogen/nixos/misc.nix
./hydrogen/nixos/programs.nix
./hydrogen/nixos/connectivity.nix
../nixosModules/common/fish.nix
../nixosModules/common/disable-command-not-found.nix
../nixosModules/common/network.nix
../nixosModules/common/sudo-conf.nix
../nixosModules/common/system-nixconf.nix
# QUIRK:
# Had issue when building the installer as it fails to bootstrap itself
# Might be useful to disable for the first build.
# ../nixosModules/extra/secure_dns.nix
../nixosModules/extra/leana.nix
#
# Extern modules
#
(sources.agenix + "/modules/age.nix")
(sources.nixos-hardware + "/raspberry-pi/4")
#
# 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
#
./hydrogen/home/programs.nix
./hydrogen/home/dev.nix
../homeModules/common/btop
../homeModules/common/fish
../homeModules/common/starship
../homeModules/common/fzf.nix
../homeModules/common/tmux
../homeModules/common/vim
../homeModules/common/direnv.nix
../homeModules/common/git.nix
../homeModules/common/gpg.nix
../homeModules/common/leana.nix
../homeModules/common/locale.nix
../homeModules/common/packages.nix
../homeModules/common/tealdeer.nix
../homeModules/extra/tmux-fish-integration.nix
#
# Extern modules
#
(sources.agenix + "/modules/age-home.nix")
];
}
#
# Secrets
#
{
age.secrets = {
wpa_password.file = "${../secrets/wpa_password.age}";
};
}
];
}