NixOSConfig/lib/configuration.nix

67 lines
1.6 KiB
Nix
Raw Normal View History

2024-05-09 00:06:59 +00:00
{ hostname, lib, machineConfig, ... }: {
2024-05-01 16:58:39 +00:00
imports = [
./modules/custom-build-vm.nix
2024-05-03 12:02:42 +00:00
./modules/custom-sops-nix.nix
2024-05-07 20:02:12 +00:00
./modules/my-users.nix
2024-05-07 20:31:56 +00:00
./modules/sddm.nix
2024-05-08 14:16:42 +00:00
./modules/unfree.nix
2024-05-01 16:58:39 +00:00
];
config = {
system.stateVersion = "23.11";
2024-05-01 17:16:40 +00:00
# Map host keys into VM and launch vm using `virt-viewer`
2024-05-01 16:58:39 +00:00
virtualisation =
let
vmConfig = {
virtualisation = {
sharedHostKeys = true;
2024-05-08 09:13:07 +00:00
usb-redirect = true;
2024-05-01 16:58:39 +00:00
virt-viewer = true;
2024-05-07 11:57:22 +00:00
cores = 4;
memorySize = 4 * 1024;
2024-05-01 16:58:39 +00:00
};
};
in {
vmVariant = vmConfig;
vmVariantWithBootLoader = vmConfig;
};
2024-05-07 20:02:12 +00:00
users.myUsers = machineConfig.users;
2024-05-09 00:06:59 +00:00
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
users =
lib.attrsets.concatMapAttrs (username: user:
let
getUserConfig = import ./utils/user-config.nix { inherit lib; };
configPath = getUserConfig { inherit hostname username; };
in
if (configPath != null)
then {
${username} = { pkgs, ... }@args: import configPath ({
userConfig = {
inherit hostname username;
} // user;
} // args);
}
else {})
machineConfig.users;
};
2024-05-01 16:58:39 +00:00
# Networking
2024-05-08 22:35:21 +00:00
networking.hostName = hostname;
2024-05-07 11:57:46 +00:00
# Set time zone
time.timeZone = machineConfig.timeZone;
2024-05-07 12:11:22 +00:00
# Configure keyboard layout
console.keyMap = machineConfig.keyMap;
services.xserver.xkb.layout = machineConfig.keyboardLayout;
2024-05-07 12:31:38 +00:00
i18n.extraLocaleSettings = machineConfig.localeSettings;
2024-05-01 16:58:39 +00:00
};
}