From 24c5c9f86b2a8fb2a461a0fc81ccdd0a0acd1f8c Mon Sep 17 00:00:00 2001 From: Daniel Langbein Date: Fri, 31 Jan 2025 12:19:42 +0100 Subject: [PATCH] base and base-minimal --- hosts/yodaTuxHeadless/configuration.nix | 2 +- modules/base-minimal.nix | 89 +++++++++++++++++++++++++ modules/base.nix | 89 ++----------------------- 3 files changed, 95 insertions(+), 85 deletions(-) create mode 100644 modules/base-minimal.nix diff --git a/hosts/yodaTuxHeadless/configuration.nix b/hosts/yodaTuxHeadless/configuration.nix index 94e5b07..f8cee92 100644 --- a/hosts/yodaTuxHeadless/configuration.nix +++ b/hosts/yodaTuxHeadless/configuration.nix @@ -6,7 +6,7 @@ #../../modules/tuxedo-rs.nix #../../modules/gpu-amd.nix - ../../modules/base.nix + ../../modules/base-minimal.nix ../../modules/base-efi-systemd.nix ../../modules/headless.nix diff --git a/modules/base-minimal.nix b/modules/base-minimal.nix new file mode 100644 index 0000000..35e1781 --- /dev/null +++ b/modules/base-minimal.nix @@ -0,0 +1,89 @@ +{ config, pkgs, ... }: +{ + imports = [ + # Filesystem settings. + ./btrfs-mount-options.nix + + # Shell settings. + ./bash.nix # bash settings. + ./zsh.nix # zsh as default shell for yoda and root. + ./fzf.nix # Fuzzy command history and file search. + + # nixpkgs config + ./home-manager.nix + ./nur-and-unstable.nix + # Helper + ./unfree.nix + ]; + + # Firmware. + # + # The list of hardware.enableAllFirmware contains non-redistributable licensed firmware files. + # This requires nixpkgs.config.allowUnfree to be true. + # An alternative is to use the hardware.enableRedistributableFirmware option. + hardware.enableAllFirmware = false; + # + # Enables e.g. Intel microcode updates. + # Defaults to `config.hardware.enableAllFirmware`. + hardware.enableRedistributableFirmware = true; + + # Allow **all** unfree packages. + # To whitelist individual unfree packages, see ./unfree.nix + nixpkgs.config.allowUnfree = false; + + # Set your time zone. + time.timeZone = "Europe/Berlin"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + i18n.extraLocaleSettings = { + LC_ADDRESS = "de_DE.UTF-8"; + LC_IDENTIFICATION = "de_DE.UTF-8"; + LC_MEASUREMENT = "de_DE.UTF-8"; + LC_MONETARY = "de_DE.UTF-8"; + LC_NAME = "de_DE.UTF-8"; + LC_NUMERIC = "de_DE.UTF-8"; + LC_PAPER = "de_DE.UTF-8"; + LC_TELEPHONE = "de_DE.UTF-8"; + LC_TIME = "de_DE.UTF-8"; + }; + + console = { + #font = "Lat2-Terminus16"; + # Configure console keymap. + keyMap = "de-latin1-nodeadkeys"; + }; + + # Define a user account. + # Don't forget to set a password with `passwd`. + users.users.yoda = { + isNormalUser = true; + description = "Yoda"; + extraGroups = [ "wheel" ]; + }; + + # SystemMaxFileSize: Defaults to one eighth of the values configured with SystemMaxUse= and RuntimeMaxUse=, so that usually seven rotated journal files are kept as history. + # MaxFileSec: To ensure that not too much data is lost at once when old journal files are deleted, it might make sense to change this value from the default of one month. + # https://www.freedesktop.org/software/systemd/man/journald.conf.html + services.journald.extraConfig = '' + SystemMaxUse=800M + MaxFileSec=7day + ''; + + # Delete all files in /tmp during boot. + boot.tmp.cleanOnBoot = true; + + # Whether to install NixOS's own documentation. + documentation.nixos.enable = false; + + # Options only for build.system.vm - they won’t get applied when building build.system.toplevel aka the normal system config. + # https://discourse.nixos.org/t/wayland-compositors-an-build-vm-not-working/46486/2 + virtualisation.vmVariant = { + users.users.yoda.initialPassword = "asdf"; + virtualisation.qemu.options = [ + "-device virtio-vga-gl" + "-display sdl,gl=on,show-cursor=off" + "-m 8G" + ]; + }; +} diff --git a/modules/base.nix b/modules/base.nix index ebf1f51..a4bd4d1 100644 --- a/modules/base.nix +++ b/modules/base.nix @@ -1,14 +1,10 @@ { config, pkgs, ... }: { imports = [ + ./base-minimal.nix + # Filesystem settings. ./btrfs-scrub.nix - ./btrfs-mount-options.nix - - # Shell settings. - ./bash.nix # bash settings. - ./zsh.nix # zsh as default shell for yoda and root. - ./fzf.nix # Fuzzy command history and file search. # DNS settings. # @@ -16,101 +12,26 @@ ./dns.nix # Encrypted DNS queries to custom name servers. #./dns-unencrypted.nix # Custom name servers. - # nixpkgs config - ./home-manager.nix - ./nur-and-unstable.nix - # Helper - ./unfree.nix - # Nix garbage collection. ./nix-gc.nix # Display contact information during boot. ./initrd-contact-info.nix ]; - # Firmware. - # - # The list of hardware.enableAllFirmware contains non-redistributable licensed firmware files. - # This requires nixpkgs.config.allowUnfree to be true. - # An alternative is to use the hardware.enableRedistributableFirmware option. - hardware.enableAllFirmware = false; - # - # Enables e.g. Intel microcode updates. - # Defaults to `config.hardware.enableAllFirmware`. - hardware.enableRedistributableFirmware = true; - - # Allow **all** unfree packages. - # To whitelist individual unfree packages, see ./unfree.nix - nixpkgs.config.allowUnfree = false; - # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; - + # # Enable networking. networking.networkmanager.enable = true; - - # Set your time zone. - time.timeZone = "Europe/Berlin"; - - # Select internationalisation properties. - i18n.defaultLocale = "en_US.UTF-8"; - i18n.extraLocaleSettings = { - LC_ADDRESS = "de_DE.UTF-8"; - LC_IDENTIFICATION = "de_DE.UTF-8"; - LC_MEASUREMENT = "de_DE.UTF-8"; - LC_MONETARY = "de_DE.UTF-8"; - LC_NAME = "de_DE.UTF-8"; - LC_NUMERIC = "de_DE.UTF-8"; - LC_PAPER = "de_DE.UTF-8"; - LC_TELEPHONE = "de_DE.UTF-8"; - LC_TIME = "de_DE.UTF-8"; - }; - - console = { - #font = "Lat2-Terminus16"; - # Configure console keymap. - keyMap = "de-latin1-nodeadkeys"; - }; - - # Define a user account. - # Don't forget to set a password with `passwd`. + # users.users.yoda = { - isNormalUser = true; - description = "Yoda"; - extraGroups = [ "networkmanager" "wheel" ]; - packages = with pkgs; [ - ]; + extraGroups = [ "networkmanager" ]; }; - # SystemMaxFileSize: Defaults to one eighth of the values configured with SystemMaxUse= and RuntimeMaxUse=, so that usually seven rotated journal files are kept as history. - # MaxFileSec: To ensure that not too much data is lost at once when old journal files are deleted, it might make sense to change this value from the default of one month. - # https://www.freedesktop.org/software/systemd/man/journald.conf.html - services.journald.extraConfig = '' - SystemMaxUse=800M - MaxFileSec=7day - ''; - nix.settings.auto-optimise-store = true; - # Delete all files in /tmp during boot. - boot.tmp.cleanOnBoot = true; - - # Whether to install NixOS's own documentation. - documentation.nixos.enable = false; - # Firewall. # https://nixos.wiki/wiki/Firewall # Note: Firewall rules may be bypassed/overwritten by Docker, as per https://github.com/NixOS/nixpkgs/issues/111852 networking.firewall.enable = true; - - # Options only for build.system.vm - they won’t get applied when building build.system.toplevel aka the normal system config. - # https://discourse.nixos.org/t/wayland-compositors-an-build-vm-not-working/46486/2 - virtualisation.vmVariant = { - users.users.yoda.initialPassword = "asdf"; - virtualisation.qemu.options = [ - "-device virtio-vga-gl" - "-display sdl,gl=on,show-cursor=off" - "-m 8G" - ]; - }; }