From 6174f3650cf42aaf008012e828d5a1f8e2ce037f Mon Sep 17 00:00:00 2001 From: Leander Scherer Date: Thu, 8 Jan 2026 02:48:11 +0100 Subject: refactor(modules): separate nixos/home-manager modules, use standard option conventions --- modules/hosts/system/default.nix | 10 ++++++++++ modules/hosts/system/localisation.nix | 24 ++++++++++++++++++++++++ modules/hosts/system/network.nix | 14 ++++++++++++++ modules/hosts/system/nix-options.nix | 18 ++++++++++++++++++ modules/hosts/system/users.nix | 22 ++++++++++++++++++++++ 5 files changed, 88 insertions(+) create mode 100644 modules/hosts/system/default.nix create mode 100644 modules/hosts/system/localisation.nix create mode 100644 modules/hosts/system/network.nix create mode 100644 modules/hosts/system/nix-options.nix create mode 100644 modules/hosts/system/users.nix (limited to 'modules/hosts/system') diff --git a/modules/hosts/system/default.nix b/modules/hosts/system/default.nix new file mode 100644 index 0000000..93452a6 --- /dev/null +++ b/modules/hosts/system/default.nix @@ -0,0 +1,10 @@ +{ ... }: + +{ + imports = [ + ./localisation.nix + ./network.nix + ./nix-options.nix + ./users.nix + ]; +} diff --git a/modules/hosts/system/localisation.nix b/modules/hosts/system/localisation.nix new file mode 100644 index 0000000..229c45f --- /dev/null +++ b/modules/hosts/system/localisation.nix @@ -0,0 +1,24 @@ +{ ... }: + +let + locale = "de_DE.UTF-8"; +in +{ + # Set your time zone. + time.timeZone = "Europe/Berlin"; + + # Select internationalisation properties. + i18n.defaultLocale = locale; + i18n.extraLocaleSettings = { + LC_ADDRESS = locale; + LC_IDENTIFICATION = locale; + LC_MEASUREMENT = locale; + LC_MONETARY = locale; + LC_NAME = locale; + LC_NUMERIC = locale; + LC_PAPER = locale; + LC_TELEPHONE = locale; + LC_TIME = locale; + }; + console.keyMap = "de"; +} diff --git a/modules/hosts/system/network.nix b/modules/hosts/system/network.nix new file mode 100644 index 0000000..383480b --- /dev/null +++ b/modules/hosts/system/network.nix @@ -0,0 +1,14 @@ +{ + host, + ... +}: + +{ + networking = { + hostName = host; + networkmanager.enable = true; + }; + + # Improve startup time + systemd.services.NetworkManager-wait-online.enable = false; +} diff --git a/modules/hosts/system/nix-options.nix b/modules/hosts/system/nix-options.nix new file mode 100644 index 0000000..14d7fb7 --- /dev/null +++ b/modules/hosts/system/nix-options.nix @@ -0,0 +1,18 @@ +{ ... }: + +{ + nix = { + settings = { + experimental-features = [ + "nix-command" + "flakes" + ]; + auto-optimise-store = true; + }; + gc = { + automatic = true; + dates = "daily"; + options = "--delete-older-than 15d"; + }; + }; +} diff --git a/modules/hosts/system/users.nix b/modules/hosts/system/users.nix new file mode 100644 index 0000000..5ecdfba --- /dev/null +++ b/modules/hosts/system/users.nix @@ -0,0 +1,22 @@ +{ + config, + username, + pkgs, + lib, + ... +}: + +{ + users.users."${username}" = { + isNormalUser = true; + extraGroups = [ + "wheel" + "video" + "input" + (lib.mkIf config.networking.networkmanager.enable "networkmanager") + ]; + shell = pkgs.zsh; + ignoreShellProgramCheck = true; + }; + security.sudo.wheelNeedsPassword = false; +} -- cgit v1.3.1