refactor: multi-system configuration in host

This commit is contained in:
autumn-the-kitty-cat
2025-12-01 17:55:12 -05:00
parent 9b216cf609
commit 6696d0a56a
7 changed files with 266 additions and 174 deletions
+142
View File
@@ -0,0 +1,142 @@
{
inputs,
hostName,
pkgs,
...
}:
{
imports = [
inputs.home-manager.nixosModules.home-manager
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.tmp.cleanOnBoot = true;
nix.package = pkgs.lixPackageSets.latest.lix;
networking.hostName = "${hostName}";
hardware.graphics.enable = true;
networking.networkmanager.enable = true;
nixpkgs.config.allowUnfree = true;
time.timeZone = "America/Toronto";
i18n.defaultLocale = "en_CA.UTF-8";
services.udev.extraRules = ''
SUBSYSTEMS=="usb", ATTR{idVendor}=="*", MODE:="0666"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
'';
home-manager = {
extraSpecialArgs = { inherit inputs; };
users = {
autumn = import ../../../home/autumn/home.nix;
};
};
services.gnome.glib-networking.enable = true;
programs.hyprland = {
enable = true;
};
services.displayManager.sddm = {
enable = true;
theme = "catppuccin-mocha-mauve";
wayland.enable = true;
package = pkgs.kdePackages.sddm;
};
programs.steam = {
enable = true;
};
services.blueman.enable = true;
services.printing.enable = true;
services.openssh = {
enable = true;
settings = {
PermitRootLogin = "no";
PasswordAuthentication = false;
};
};
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
users.users.autumn = {
isNormalUser = true;
description = "Autumn";
extraGroups = [
"networkmanager"
"wheel"
];
packages = [ ];
shell = pkgs.nushell;
};
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
programs.dconf.enable = true;
environment.systemPackages = with pkgs; [
cloudflared
gparted
networkmanagerapplet
nh
pavucontrol
(pkgs.catppuccin-sddm.override {
flavor = "mocha";
font = "CaskaydiaCove Nerd Font";
fontSize = "12";
})
wget
];
fonts = {
packages = [
pkgs.nerd-fonts.caskaydia-cove
];
fontconfig = {
defaultFonts =
let
font = "CaskaydiaCove Nerd Font";
in
{
serif = [ font ];
sansSerif = [ font ];
monospace = [ font ];
emoji = [ font ];
};
};
};
environment.sessionVariables = {
EDITOR = "nvim";
BROWSER = "zen";
SUDO_EDITOR = "nvim";
SHELL = "nu";
};
system.stateVersion = "24.05";
}
+7
View File
@@ -0,0 +1,7 @@
{ ... }:
{
imports = [
./hardware-configuration.nix
../common/configuration.nix
];
}
+7
View File
@@ -0,0 +1,7 @@
{ ... }:
{
imports = [
./hardware-configuration.nix
../common/configuration.nix
];
}
@@ -0,0 +1,39 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/90aaba2e-42f2-4b98-8df6-bd4a72f6d688";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/F8E0-7E32";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp10s0.useDHCP = lib.mkDefault true;
# networking.interfaces.enp18s0f4u1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+138
View File
@@ -0,0 +1,138 @@
{ inputs, hostName, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
inputs.home-manager.nixosModules.home-manager
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.tmp.cleanOnBoot = true;
nix.package = pkgs.lixPackageSets.latest.lix;
networking.hostName = "${hostName}";
hardware.graphics.enable = true;
networking.networkmanager.enable = true;
nixpkgs.config.allowUnfree = true;
time.timeZone = "America/Toronto";
i18n.defaultLocale = "en_CA.UTF-8";
services.udev.extraRules = ''
SUBSYSTEMS=="usb", ATTR{idVendor}=="*", MODE:="0666"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
'';
home-manager = {
extraSpecialArgs = { inherit inputs; };
users = {
autumn = import ../home-manager/home.nix;
};
};
services.gnome.glib-networking.enable = true;
programs.hyprland = {
enable = true;
};
services.displayManager.sddm = {
enable = true;
theme = "catppuccin-mocha-mauve";
wayland.enable = true;
package = pkgs.kdePackages.sddm;
};
programs.steam = {
enable = true;
};
services.blueman.enable = true;
services.printing.enable = true;
services.openssh = {
enable = true;
settings = {
PermitRootLogin = "no";
PasswordAuthentication = false;
};
};
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
users.users.autumn = {
isNormalUser = true;
description = "Autumn";
extraGroups = [
"networkmanager"
"wheel"
];
packages = [ ];
shell = pkgs.nushell;
};
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
programs.dconf.enable = true;
environment.systemPackages = with pkgs; [
cloudflared
gparted
networkmanagerapplet
nh
pavucontrol
(pkgs.catppuccin-sddm.override {
flavor = "mocha";
font = "CaskaydiaCove Nerd Font";
fontSize = "12";
})
wget
];
fonts = {
packages = [
pkgs.nerd-fonts.caskaydia-cove
];
fontconfig = {
defaultFonts =
let
font = "CaskaydiaCove Nerd Font";
in
{
serif = [ font ];
sansSerif = [ font ];
monospace = [ font ];
emoji = [ font ];
};
};
};
environment.sessionVariables = {
EDITOR = "nvim";
BROWSER = "zen";
SUDO_EDITOR = "nvim";
SHELL = "nu";
};
system.stateVersion = "24.05";
}