nixos-config/configs/flake-parts/nixos.nix
Gabriel Arazas a4402aa04f
nixos/profiles/generic: init
We'll have to move the `profiles` modules into a new namespace. It will
get confusing in the future.
2024-01-22 12:17:48 +08:00

123 lines
3.1 KiB
Nix

{ inputs
, defaultExtraArgs
, defaultNixConf
, ...
}:
{
setups.nixos = {
configs = {
# The main desktop.
ni = {
systems = [ "x86_64-linux" ];
formats = null;
homeManagerUsers = {
nixpkgsInstance = "global";
users.foo-dogsquared = {
userConfig = {
extraGroups = [
"adbusers"
"wheel"
"audio"
"docker"
"podman"
"networkmanager"
"wireshark"
];
hashedPassword =
"$6$.cMYto0K0CHbpIMT$dRqyKs4q1ppzmTpdzy5FWP/V832a6X..FwM8CJ30ivK0nfLjQ7DubctxOZbeOtygfjcUd1PZ0nQoQpOg/WMvg.";
description = "Gabriel Arazas";
};
};
};
};
# A remote server.
plover = {
systems = [ "x86_64-linux" ];
formats = null;
domain = "foodogsquared.one";
deploy = {
hostname = "plover.foodogsquared.one";
autoRollback = true;
magicRollback = true;
};
};
# TODO: Remove extra newlines that are here for whatever reason.
#{{{
void = {
systems = [ "x86_64-linux" ];
formats = [ "vm" ];
};
#}}}
# The barely customized non-graphical installer.
bootstrap = {
systems = [ "aarch64-linux" "x86_64-linux" ];
formats = [ "install-iso" ];
nixpkgsBranch = "nixos-unstable-small";
};
# The barely customized graphical installer.
graphical-installer = {
systems = [ "aarch64-linux" "x86_64-linux" ];
formats = [ "install-iso" ];
};
# The WSL system (that is yet to be used).
winnowing = {
systems = [ "x86_64-linux" ];
formats = null;
overlays = [
inputs.neovim-nightly-overlay.overlays.default
];
modules = [
# Well, well, well...
inputs.nixos-wsl.nixosModules.default
];
};
};
# Only use imports as minimally as possible with the absolute
# requirements of a host. On second thought, only on flakes with
# optional NixOS modules.
sharedModules = [
# Import our custom modules.
../../modules/nixos
../../modules/nixos/_private
inputs.nix-index-database.nixosModules.nix-index
inputs.sops-nix.nixosModules.sops
inputs.disko.nixosModules.disko
defaultNixConf
../../modules/nixos/profiles/generic.nix
({ config, lib, ... }: {
_module.args = defaultExtraArgs;
# Set several paths for the traditional channels.
nix.nixPath = lib.mkIf config.nix.channel.enable
(lib.mapAttrsToList
(name: source:
let
name' = if (name == "self") then "config" else name;
in
"${name'}=${source}")
inputs
++ [
"/nix/var/nix/profiles/per-user/root/channels"
]);
})
];
};
flake = {
# Listing my public NixOS modules if anyone cares.
nixosModules.default = ../../modules/nixos;
};
}