nix-configs

Personal NixOS and home-manager configuration files
Log | Files | Refs

commit 68de03afc27f38fc9dff55bd18fd0a2b1e904aab
parent 64d9284d610ec57ee58c5d3b3159443f926ac8f6
Author: breadcat <breadcat@users.noreply.github.com>
Date:   Sun,  3 Aug 2025 15:49:24 +0100

More artemis work

Import common includes

Diffstat:
Mmachines/artemis-hardware.nix | 17++++++++---------
Mmachines/artemis.nix | 169+++++++++++++++++++-------------------------------------------------------------
2 files changed, 47 insertions(+), 139 deletions(-)

diff --git a/machines/artemis-hardware.nix b/machines/artemis-hardware.nix @@ -1,6 +1,3 @@ -# 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, ... }: { @@ -26,12 +23,14 @@ swapDevices = [ ]; - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; + + # Bootloader + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # Networking, use DHCP networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp0s6.useDHCP = lib.mkDefault true; + # networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. - nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; } diff --git a/machines/artemis.nix b/machines/artemis.nix @@ -1,141 +1,50 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page, on -# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). - -{ config, lib, pkgs, ... }: - +# Server { + config, + pkgs, + machine, + username, + email, + fullname, + domain, + sshkey, + ... +}: let + home-manager = builtins.fetchTarball https://github.com/nix-community/home-manager/archive/release-25.05.tar.gz; # Stable + # home-manager = builtins.fetchTarball https://github.com/nix-community/home-manager/archive/master.tar.gz; # Unstable +in { + # Core OS imports imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix + [ + ./${machine}-hardware.nix # Include the results of the hardware scan. + (import "${home-manager}/nixos") # Home-Manager + ../common/flakes.nix + ../common/garbage.nix + ../common/locale.nix + ../common/packages.nix + (import ../common/restic.nix {inherit pkgs username;}) + (import ../common/ssh.nix {inherit username sshkey;}) + (import ../common/syncthing.nix {inherit config pkgs username;}) + (import ../common/user.nix {inherit config pkgs username fullname;}) + ../scripts/stagit-generate.nix ]; - # Use the systemd-boot EFI boot loader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - - services.openssh = { - enable = true; - ports = [ 22 ]; - settings = { - PasswordAuthentication = true; - PermitRootLogin = "prohibit-password"; - }; - }; - - users.users.peter = { - isNormalUser = true; - extraGroups = [ "wheel" ]; - shell = pkgs.fish; - home = "/home/peter"; + # Home-Manager + home-manager.backupFileExtension = "hm-bak"; + home-manager.users.${username} = {pkgs, ...}: { + imports = [ + ../home/fish.nix + (import ../home/git.nix {inherit fullname email;}) + ../home/htop.nix + ../home/neovim.nix + (import ../home/rbw.nix {inherit pkgs domain email;}) + (import ../home/ssh.nix {inherit domain username;}) + ]; + home.stateVersion = "25.05"; }; - programs.fish.enable = true; - environment.systemPackages = with pkgs; [ neovim git ]; networking.hostName = "artemis"; # Define your hostname. - # Pick only one of the below networking options. - # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - # networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. - - # Set your time zone. - # time.timeZone = "Europe/Amsterdam"; - - # Configure network proxy if necessary - # networking.proxy.default = "http://user:password@proxy:port/"; - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - - # Select internationalisation properties. - # i18n.defaultLocale = "en_US.UTF-8"; - # console = { - # font = "Lat2-Terminus16"; - # keyMap = "us"; - # useXkbConfig = true; # use xkb.options in tty. - # }; - - # Enable the X11 windowing system. - # services.xserver.enable = true; - - - - # Configure keymap in X11 - # services.xserver.xkb.layout = "us"; - # services.xserver.xkb.options = "eurosign:e,caps:escape"; - - # Enable CUPS to print documents. - # services.printing.enable = true; - - # Enable sound. - # services.pulseaudio.enable = true; - # OR - # services.pipewire = { - # enable = true; - # pulse.enable = true; - # }; - - # Enable touchpad support (enabled default in most desktopManager). - # services.libinput.enable = true; - - # Define a user account. Don't forget to set a password with ‘passwd’. - # users.users.alice = { - # isNormalUser = true; - # extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. - # packages = with pkgs; [ - # tree - # ]; - # }; - - # programs.firefox.enable = true; - - # List packages installed in system profile. - # You can use https://search.nixos.org/ to find more packages (and options). - # environment.systemPackages = with pkgs; [ - # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. - # wget - # ]; - - # 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; - - # Copy the NixOS configuration file and link it from the resulting system - # (/run/current-system/configuration.nix). This is useful in case you - # accidentally delete configuration.nix. - # system.copySystemConfiguration = true; - - # This option defines the first version of NixOS you have installed on this particular machine, - # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. - # - # Most users should NEVER change this value after the initial install, for any reason, - # even if you've upgraded your system to a new NixOS release. - # - # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, - # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how - # to actually do that. - # - # This value being lower than the current NixOS release does NOT mean your system is - # out of date, out of support, or vulnerable. - # - # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, - # and migrated your data accordingly. - # - # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . system.stateVersion = "25.05"; # Did you read the comment? } -