From 95083ca2ac000adeaaaa9a14c8e64b015979d0b1 Mon Sep 17 00:00:00 2001 From: "Simen A. W. Olsen" Date: Sat, 21 Mar 2026 13:39:30 +0100 Subject: feat: add NixOS system configuration for nixbox --- .gitignore | 1 + flake.nix | 13 ++++++++++++ modules/nixos/default.nix | 51 +++++++++++++++++++++++++++++++++++++++++++++++ nvim/.config/nvim | 2 +- 4 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 modules/nixos/default.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d6b130c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.claude/settings.local.json diff --git a/flake.nix b/flake.nix index 0e5bab4..015881f 100644 --- a/flake.nix +++ b/flake.nix @@ -36,6 +36,19 @@ ]; }; + nixosConfigurations."nixbox" = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./modules/nixos + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.simenandre = import ./modules/home; + } + ]; + }; + homeConfigurations."simenandre" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."x86_64-linux"; modules = [ ./modules/home ]; diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix new file mode 100644 index 0000000..155601a --- /dev/null +++ b/modules/nixos/default.nix @@ -0,0 +1,51 @@ +{ pkgs, ... }: + +{ + imports = [ + ./hardware-configuration.nix + ]; + + # Enable experimental Nix features + nix.settings.experimental-features = "nix-command flakes"; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + # Bootloader + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # Networking + networking.hostName = "nixbox"; + networking.networkmanager.enable = true; + + # Timezone / locale + time.timeZone = "Europe/Oslo"; + i18n.defaultLocale = "en_US.UTF-8"; + + # User account + users.users.simenandre = { + isNormalUser = true; + extraGroups = [ "wheel" "networkmanager" ]; + shell = pkgs.zsh; + }; + programs.zsh.enable = true; + + # Core system packages + environment.systemPackages = with pkgs; [ + curl + git + wget + neovim + ]; + + # 1Password (for SSH signing) + programs._1password.enable = true; + programs._1password-gui.enable = true; + + # SSH + services.openssh.enable = true; + + # System state version – do not change after first installation + system.stateVersion = "24.11"; +} diff --git a/nvim/.config/nvim b/nvim/.config/nvim index 807903b..9ae165f 160000 --- a/nvim/.config/nvim +++ b/nvim/.config/nvim @@ -1 +1 @@ -Subproject commit 807903b91c013b56e77f9f70758bd137e42cbb65 +Subproject commit 9ae165fa0d8cd1ecc433026642484c167c3e0b88 -- cgit v1.2.3