summaryrefslogtreecommitdiffstats
path: root/systems
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2023-09-23 15:41:49 -0400
committerJon Santmyer <jon@jonsantmyer.com>2023-09-23 15:41:49 -0400
commit4abb25ea7d3876899e641a8a16281203bd164d53 (patch)
tree8b47a0381776df3eb441cd6f31b15341d99847da /systems
downloadnix-config-4abb25ea7d3876899e641a8a16281203bd164d53.tar.gz
nix-config-4abb25ea7d3876899e641a8a16281203bd164d53.tar.bz2
nix-config-4abb25ea7d3876899e641a8a16281203bd164d53.zip
initial config for all 3 systems
Diffstat (limited to 'systems')
-rw-r--r--systems/default.nix160
-rw-r--r--systems/jonbox/default.nix49
-rw-r--r--systems/jonbox/filesystem.nix18
-rw-r--r--systems/jontest/default.nix22
-rw-r--r--systems/jontest/filesystem.nix11
-rw-r--r--systems/jontest/hardware-configuration.nix7
-rw-r--r--systems/jontop/default.nix30
-rw-r--r--systems/jontop/filesystem.nix16
-rw-r--r--systems/jontop/hardware-configuration.nix7
9 files changed, 320 insertions, 0 deletions
diff --git a/systems/default.nix b/systems/default.nix
new file mode 100644
index 0000000..eadf5c5
--- /dev/null
+++ b/systems/default.nix
@@ -0,0 +1,160 @@
+# Edit this configuration file to define what should be installed on
+# your system. Help is available in the configuration.nix(5) man page
+# and in the NixOS manual (accessible by running ‘nixos-help’).
+
+{ inputs, outputs, config, hostname, username, lib, pkgs, stateVersion, ... }:
+
+{
+ imports =
+ [
+ ./${hostname}
+ ../users/jon.nix
+ ];
+
+ boot = {
+ tmp.cleanOnBoot = true;
+ initrd.verbose = false;
+ };
+
+ nix = {
+ registry = lib.mapAttrs (_: value: {flake = value;}) inputs;
+
+ nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
+
+ settings = {
+ experimental-features = "nix-command flakes";
+ auto-optimise-store = true;
+ };
+
+ gc = {
+ automatic = true;
+ dates = "Fri";
+ };
+ };
+
+ networking.hostName = hostname; # Define your hostname.
+ networking.useDHCP = lib.mkDefault true;
+ networking.networkmanager.enable = true;
+
+ # Set your time zone.
+ time.timeZone = "America/New_York";
+
+ i18n.defaultLocale = "en_US.UTF-8";
+ i18n.extraLocaleSettings = {
+ LC_ADDRESS = "en_US.UTF-8";
+ LC_IDENTIFICATION = "en_US.UTF-8";
+ LC_MEASUREMENT = "en_US.UTF-8";
+ LC_MONETARY = "en_US.UTF-8";
+ LC_NAME = "en_US.UTF-8";
+ LC_NUMERIC = "en_US.UTF-8";
+ LC_PAPER = "en_US.UTF-8";
+ LC_TELEPHONE = "en_US.UTF-8";
+ LC_TIME = "en_US.UTF-8";
+ };
+
+ # Configure X11
+ services.xserver = {
+ enable = true;
+ layout = "us";
+ xkbVariant = "";
+
+ displayManager = {
+ sddm.enable = true;
+ defaultSession = "none+awesome";
+ };
+
+ windowManager.awesome = {
+ enable = true;
+ luaModules = with pkgs.luaPackages; [
+ luarocks
+ luadbi-mysql
+ ];
+ };
+ };
+
+ sound.enable = true;
+ services.pipewire = {
+ enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ };
+
+ security.rtkit.enable = true;
+
+ # List packages installed in system profile. To search, run:
+ # $ nix search wget
+ environment.systemPackages = with pkgs; [
+ arandr
+ binutils
+ clang-tools
+ gcc
+ gnutar
+ gnumake
+ gdb
+ unzip
+ wget
+ ];
+
+ fonts.packages = with pkgs; [
+ fira-code
+ fira-code-symbols
+ font-awesome
+ liberation_ttf
+ noto-fonts
+ noto-fonts-cjk
+ noto-fonts-emoji
+ (nerdfonts.override { fonts = [ "FiraCode" ]; } )
+ ];
+
+ programs.zsh.enable = true;
+ users.defaultUserShell = pkgs.zsh;
+
+ programs.neovim = {
+ enable = true;
+ defaultEditor = true;
+ };
+
+ services.mpd = {
+ enable = true;
+ musicDirectory = "/var/mus";
+ extraConfig = ''
+audio_output {
+ type "alsa"
+ name "My ALSA"
+ mixer_type "hardware"
+ mixer_device "device"
+ mixer_control "PCM"
+}
+ '';
+ network.listenAddress = "any";
+ };
+
+ # Some programs need SUID wrappers, can be configured further or are
+ # started in user sessions.
+ # programs.mtr.enable = true;
+ programs.gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ };
+
+ # List services that you want to enable:
+
+ # Enable the OpenSSH daemon.
+ # services.openssh.enable = true;
+
+ # Open ports in the firewall.
+ # networking.firewall.allowedTCPPorts = [ ... ];
+ # networking.firewall.allowedUDPPorts = [ ... ];
+ # Or disable the firewall altogether.
+ # networking.firewall.enable = false;
+
+ # This value determines the NixOS release from which the default
+ # settings for stateful data, like file locations and database versions
+ # on your system were taken. It‘s perfectly fine and recommended to leave
+ # this value at the release version of the first install of this system.
+ # Before changing this value read the documentation for this option
+ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
+ system.stateVersion = stateVersion; # Did you read the comment?
+
+}
diff --git a/systems/jonbox/default.nix b/systems/jonbox/default.nix
new file mode 100644
index 0000000..4456e6e
--- /dev/null
+++ b/systems/jonbox/default.nix
@@ -0,0 +1,49 @@
+{ inputs, config, lib, modulesPath, pkgs, ... }:
+
+{
+ imports =
+ [ # Include the results of the hardware scan.
+ (modulesPath + "/installer/scan/not-detected.nix")
+ ./filesystem.nix
+ ];
+
+ nixpkgs.config.allowUnfreePredicate = pkg:
+ builtins.elem (lib.getName pkg) [
+ "nvidia-x11"
+ "nvidia-settings"
+ "nvidia-persistenced"
+ ];
+
+ boot.loader.systemd-boot.enable = true;
+ boot.loader.efi.canTouchEfiVariables = true;
+
+ boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" "sr_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-intel" ];
+ boot.extraModulePackages = [ ];
+
+ hardware.opengl = {
+ enable = true;
+ driSupport = true;
+ driSupport32Bit = true;
+ };
+
+ services.xserver.videoDrivers = [ "nvidia" ];
+
+ hardware.nvidia = {
+ modesetting.enable = true;
+ powerManagment.enable = false;
+ powerManagment.finegrained = false;
+ open = true;
+ nvidiaSettings = true;
+ package = config.boot.kernelPackages.nvidiaPackages.stable;
+ };
+
+ hardware.bluetooth.enable = true;
+ services.blueman.enable = true;
+
+ programs.light.enable = true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/systems/jonbox/filesystem.nix b/systems/jonbox/filesystem.nix
new file mode 100644
index 0000000..30dafc6
--- /dev/null
+++ b/systems/jonbox/filesystem.nix
@@ -0,0 +1,18 @@
+{ config, lib, pkgs, modulesPath, ... }:
+
+{
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/83cafaff-8be3-477f-b13c-c47dafdf969d";
+ fsType = "btrfs";
+ options = [ "subvol=@" ];
+ };
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/40EA-5550";
+ fsType = "vfat";
+ };
+
+ swapDevices =
+ [ { device = "/dev/disk/by-uuid/acfc7ea5-0787-4e05-bcf1-20b7adb0f35c"; }
+ ];
+}
diff --git a/systems/jontest/default.nix b/systems/jontest/default.nix
new file mode 100644
index 0000000..b2a7f82
--- /dev/null
+++ b/systems/jontest/default.nix
@@ -0,0 +1,22 @@
+{ lib, modulesPath, pkgs, ... }:
+
+{
+ imports =
+ [ # Include the results of the hardware scan.
+ (modulesPath + "/profiles/qemu-guest.nix")
+ ./filesystem.nix
+ ];
+
+ boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sr_mod" "virtio_blk" ];
+ boot.kernelPackages = pkgs.linuxPackages_latest;
+
+ # Bootloader.
+ boot.loader.grub.enable = true;
+ boot.loader.grub.device = "/dev/vda";
+ boot.loader.grub.useOSProber = true;
+
+ services.qemuGuest.enable = true;
+ services.spice-vdagentd.enable = true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+}
diff --git a/systems/jontest/filesystem.nix b/systems/jontest/filesystem.nix
new file mode 100644
index 0000000..e247a9d
--- /dev/null
+++ b/systems/jontest/filesystem.nix
@@ -0,0 +1,11 @@
+{ ... }:
+{
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/a6804a93-979a-4596-879d-8b2fe8332541";
+ fsType = "ext4";
+ };
+
+ swapDevices =
+ [ { device = "/dev/disk/by-uuid/e6e941fe-f3a4-4b5e-960c-74d65e1e6257"; }
+ ];
+}
diff --git a/systems/jontest/hardware-configuration.nix b/systems/jontest/hardware-configuration.nix
new file mode 100644
index 0000000..62427e0
--- /dev/null
+++ b/systems/jontest/hardware-configuration.nix
@@ -0,0 +1,7 @@
+# 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, ... }:
+
+{
+}
diff --git a/systems/jontop/default.nix b/systems/jontop/default.nix
new file mode 100644
index 0000000..1ce9aaf
--- /dev/null
+++ b/systems/jontop/default.nix
@@ -0,0 +1,30 @@
+{ inputs, config, lib, modulesPath, pkgs, ... }:
+
+{
+ imports =
+ [ # Include the results of the hardware scan.
+ (modulesPath + "/installer/scan/not-detected.nix")
+ inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x220
+ ./filesystem.nix
+ ];
+
+ boot.loader.systemd-boot.enable = true;
+ boot.loader.efi.canTouchEfiVariables = true;
+
+ boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ];
+ boot.initrd.kernelModules = [ "i915" ];
+ boot.kernelModules = [ "kvm-intel" ];
+ boot.extraModulePackages = [ ];
+
+ hardware.opengl = {
+ enable = true;
+ };
+
+ hardware.bluetooth.enable = true;
+ services.blueman.enable = true;
+
+ programs.light.enable = true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/systems/jontop/filesystem.nix b/systems/jontop/filesystem.nix
new file mode 100644
index 0000000..5117680
--- /dev/null
+++ b/systems/jontop/filesystem.nix
@@ -0,0 +1,16 @@
+{ ... }:
+{
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/72e455f9-4b10-4cb2-a8e4-cfe39c4a8d1f";
+ fsType = "btrfs";
+ };
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/27F7-4AFD";
+ fsType = "vfat";
+ };
+
+ swapDevices =
+ [ { device = "/dev/disk/by-uuid/4133a381-ab7d-4a25-9013-3f4b2d31bc5a"; }
+ ];
+}
diff --git a/systems/jontop/hardware-configuration.nix b/systems/jontop/hardware-configuration.nix
new file mode 100644
index 0000000..62427e0
--- /dev/null
+++ b/systems/jontop/hardware-configuration.nix
@@ -0,0 +1,7 @@
+# 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, ... }:
+
+{
+}