diff --git a/modules/machine/valefor/configuration.nix b/modules/machine/valefor/configuration.nix new file mode 100644 index 0000000..04b5fd7 --- /dev/null +++ b/modules/machine/valefor/configuration.nix @@ -0,0 +1,113 @@ +{ + config, + lib, + pkgs, + userName, + ... +}: { + imports = [ + ../../graphics + ../../pwrMgmt + ../../networking/core.nix + ../../networking/dns.nix + ../../virtualization/podman.nix + ]; + + # Enable flakes for NixOS + nix.settings.experimental-features = ["nix-command" "flakes"]; + + # Custom kernel/boot stuff + boot.kernelPackages = pkgs.linuxPackages_latest; + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # Enable Bluetooth if present + hardware.bluetooth.enable = true; + + # Set your timezone + time.timeZone = "America/Detroit"; + + # Install packages to be installed system-wide + environment.systemPackages = with pkgs; [ + vim + neovim + git + patchelf + ]; + + # Set the EDITOR global environment variable to neovim + environment.variables.EDITOR = "nvim"; + + # Enable OpenSSH + services.openssh.enable = true; + + # Enable keyring + services.gnome.gnome-keyring.enable = true; + + # Enable GnuPG + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + + # Enable SUID wrappers (some programs need them) + programs.mtr.enable = true; + + # Enable Polkit + security.polkit.enable = true; + + # Graphics module (../../graphics/default.nix) + graphics = { + enable = true; + gpuVendor = "intel"; + wayland.enable = true; + vulkan.enable = true; + }; + + # Power management (see ../../pwrMgmt/default.nix) + pwrMgmt = { + enable = true; + cpuFreqGovernor = "performance"; + powertop.enable = false; + }; + + # Podman module (see ../../virtualization/podman.nix) + podman = { + enable = true; + extraPackages = with pkgs; [ + docker-credential-helpers + toolbox + cosign + crane + podman-tui + podman-desktop + ]; + }; + + # Core networking module (see ../../networking/core.nix) + networking = { + firewall = { + enable = true; + udpPorts = { + dns.enable = true; + } + }; + networkmanager.enable = true; + udpPorts.dns.enable = true; + }; + + # DNS module (see ../../networking/dns.nix) + dns = { + technitium = { + enable = true; + } + }; + + # Enable dconf + programs.dconf.enable = true; + + # Add username to groups "wheel" and "video" - more may be added here later + users.users.${userName}.extraGroups = ["wheel" "podman" "network"]; + + system.stateVersion = "24.11"; +} diff --git a/modules/machine/valefor/default.nix b/modules/machine/valefor/default.nix new file mode 100644 index 0000000..187a110 --- /dev/null +++ b/modules/machine/valefor/default.nix @@ -0,0 +1,6 @@ +{...}: { + imports = [ + ./configuration.nix + ./hardware-configuration.nix + ]; +} diff --git a/modules/machine/valefor/hardware-configuration.nix b/modules/machine/valefor/hardware-configuration.nix new file mode 100644 index 0000000..e69de29