refactor: multi-system configuration in host
This commit is contained in:
@@ -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";
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../common/configuration.nix
|
||||
];
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
Reference in New Issue
Block a user