From 8de0666cc5bfcfaaabc12b755d1f27e50493d081 Mon Sep 17 00:00:00 2001 From: Random936 Date: Thu, 4 Jul 2024 18:31:09 -0700 Subject: [PATCH] Separated out shared.nix into headful and headless nix config files --- config/headful.nix | 52 +++++++++++++++++++++++++++++++++++++++++++ config/headless.nix | 14 ++---------- config/omen.nix | 9 ++++---- config/shared.nix | 54 ++------------------------------------------- config/user.nix | 8 +++++++ 5 files changed, 69 insertions(+), 68 deletions(-) create mode 100644 config/headful.nix create mode 100644 config/user.nix diff --git a/config/headful.nix b/config/headful.nix new file mode 100644 index 0000000..e1141de --- /dev/null +++ b/config/headful.nix @@ -0,0 +1,52 @@ +{ config, pkgs, inputs, ... }: { + + imports = [ ./shared.nix ]; + + # Networking + networking.wireless.iwd.enable = true; + networking.networkmanager = { + enable = true; + wifi.backend = "iwd"; + }; + + # Enable sound + sound.enable = true; + hardware.pulseaudio.enable = true; + + # Enable CUPS to print documents. + services.printing.enable = true; + + # Enable the X11 windowing system and i3 window manager. + environment.pathsToLink = [ "/libexec" ]; + services.xserver = { + enable = true; + + # Setup i3 window manager + windowManager.i3 = { + enable = true; + package = pkgs.i3-gaps; + extraPackages = with pkgs; [ + rofi + polybar + rxvt-unicode + arandr + ]; + }; + + # Configure keymap in X11 + xkb = { + layout = "us"; + variant = ""; + options = "caps:escape"; + }; + }; + + # List packages to be installed for headful systems + environment.systemPackages = with pkgs; [ + picom + ]; + + # Install additional programs + programs.thunar.enable = true; + +} diff --git a/config/headless.nix b/config/headless.nix index 9f75bd4..b4048d8 100644 --- a/config/headless.nix +++ b/config/headless.nix @@ -1,21 +1,11 @@ -# 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’). +{ config, pkgs, inputs, ... }: { -{ config, pkgs, inputs, ... }: - -{ - imports = [ - ../hardware/vm.nix - ]; + imports = [ ./shared.nix ]; # Bootloader. boot.loader.grub.enable = true; boot.loader.grub.device = "/dev/sda"; boot.loader.grub.useOSProber = true; - # Set hostname - networking.hostName = "nixos-dev"; - system.stateVersion = "24.05"; } diff --git a/config/omen.nix b/config/omen.nix index 900d3b2..0bcab88 100644 --- a/config/omen.nix +++ b/config/omen.nix @@ -2,11 +2,11 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, inputs, ... }: +{ config, pkgs, inputs, ... }: { -{ imports = [ ../hardware/omen.nix + ./headful.nix ]; # Bootloader. @@ -16,6 +16,9 @@ # Set hostname networking.hostName = "randomctf"; + # Create user + users.users.random = import ./user.nix; + # Enable Nvidia drivers services.xserver.videoDrivers = [ "nvidia" ]; hardware.nvidia = { @@ -45,6 +48,4 @@ # Enable VMWare Workstation virtualisation.vmware.host.enable = true; - - system.stateVersion = "24.05"; } diff --git a/config/shared.nix b/config/shared.nix index e179eee..2a02189 100644 --- a/config/shared.nix +++ b/config/shared.nix @@ -4,12 +4,8 @@ # Enable experimental nix features. nix.settings.experimental-features = [ "nix-command" "flakes" ]; - # Networking - networking.wireless.iwd.enable = true; - networking.networkmanager = { - enable = true; - wifi.backend = "iwd"; - }; + # Allow unfree packages + nixpkgs.config.allowUnfree = true; # General setup time.timeZone = "America/Los_Angeles"; @@ -26,36 +22,6 @@ LC_TIME = "en_US.UTF-8"; }; - # Enable the X11 windowing system and i3 window manager. - environment.pathsToLink = [ "/libexec" ]; - services.xserver = { - enable = true; - windowManager.i3 = { - enable = true; - package = pkgs.i3-gaps; - extraPackages = with pkgs; [ - rofi - polybar - rxvt-unicode - arandr - ]; - }; - }; - - # Configure keymap in X11 - services.xserver.xkb = { - layout = "us"; - variant = ""; - options = "caps:escape"; - }; - - # Enable CUPS to print documents. - services.printing.enable = true; - - # Enable sound with - sound.enable = true; - hardware.pulseaudio.enable = true; - # Change default shell to zsh. users.defaultUserShell = pkgs.zsh; programs.zsh = { @@ -64,29 +30,13 @@ syntaxHighlighting.enable = true; }; - # Define a user account. Don't forget to set a password with ‘passwd’. - users.users.random = { - isNormalUser = true; - useDefaultShell = true; - description = "random"; - extraGroups = [ "networkmanager" "wheel" "docker" ]; - packages = with pkgs; []; - }; - - # Allow unfree packages - nixpkgs.config.allowUnfree = true; - # List packages installed in system profile. environment.systemPackages = with pkgs; [ vim git - picom killall ]; - # Install additional programs - programs.thunar.enable = true; - # Enable services. services.openssh.enable = true; services.tailscale.enable = true; diff --git a/config/user.nix b/config/user.nix new file mode 100644 index 0000000..c8bc132 --- /dev/null +++ b/config/user.nix @@ -0,0 +1,8 @@ +# Generic user configuration. +# Don't forget to set a password with ‘passwd’. +{ + isNormalUser = true; + useDefaultShell = true; + description = "random"; + extraGroups = [ "networkmanager" "wheel" "docker" ]; +}