diff --git a/flake.nix b/flake.nix index cc16fef..d17c0e6 100644 --- a/flake.nix +++ b/flake.nix @@ -22,23 +22,11 @@ # Available through 'nixos-rebuild --flake .#your-hostname' nixosConfigurations = { # FIXME_ replace with your hostname - nixos-mans = nixpkgs.lib.nixosSystem { + nixos-desktop-mans = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; # Pass flake inputs to our config # > Our main nixos configuration file < - modules = [ ./nixos/configuration.nix ]; + modules = [ ./nixos/machines/nixos-desktop-mans/configuration.nix ]; }; }; - - # Standalone home-manager configuration entrypoint - # Available through 'home-manager --flake .#your-username@your-hostname' - # homeConfigurations = { - # # FIXME_ replace with your username@hostname - # "mans@nixos-mans" = home-manager.lib.homeManagerConfiguration { - # pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance - # extraSpecialArgs = { inherit inputs; }; # Pass flake inputs to our config - # # > Our main home-manager configuration file < - # modules = [ ./home-manager/home.nix ]; - # }; - # }; }; } diff --git a/nixos/machines/nix-desktop-mans/configuration.nix b/nixos/machines/nix-desktop-mans/configuration.nix deleted file mode 100644 index 8d2f22b..0000000 --- a/nixos/machines/nix-desktop-mans/configuration.nix +++ /dev/null @@ -1,152 +0,0 @@ -# This is your system's configuration file. -# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix) -# https://github.com/Misterio77/nix-starter-configs - -{ inputs, lib, config, pkgs, ... }: { - # You can import other NixOS modules here - imports = [ - # If you want to use modules from other flakes (such as nixos-hardware): - inputs.hardware.nixosModules.common-cpu-amd - # inputs.hardware.nixosModules.common-gpu-nvidia - - # You can also split up your configuration and import pieces of it here: - # ./users.nix - ./network.nix - ./i3.nix - - # Import home-manager's NixOS module - inputs.home-manager.nixosModules.home-manager - - # Import your generated (nixos-generate-config) hardware configuration - ./hardware-configuration.nix - ]; - - nixpkgs = { - # You can add overlays here - overlays = [ - # If you want to use overlays exported from other flakes: - # neovim-nightly-overlay.overlays.default - - # Or define it inline, for example: - # (final: prev: { - # hi = final.hello.overrideAttrs (oldAttrs: { - # patches = [ ./change-hello-to-hi.patch ]; - # }); - # }) - ]; - # Configure your nixpkgs instance - config = { - # Disable if you don't want unfree packages - allowUnfree = true; - }; - }; - - nix = { - # This will add each flake input as a registry - # To make nix3 commands consistent with your flake - registry = lib.mapAttrs (_: value: { flake = value; }) inputs; - - # This will additionally add your inputs to the system's legacy channels - # Making legacy nix commands consistent as well, awesome! - nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry; - - settings = { - # Enable flakes and new 'nix' command - experimental-features = "nix-command flakes"; - # Deduplicate and optimize nix store - auto-optimise-store = true; - }; - }; - - # TODO_: This is just an example, be sure to use whatever bootloader you prefer - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - - - # Setup keyfile - boot.initrd.secrets = { - "/crypto_keyfile.bin" = null; - }; - - # FIXME_: Add the rest of your current configuration - - # Set your time zone. - time.timeZone = "Europe/Amsterdam"; - - # Select internationalisation properties. - i18n.defaultLocale = "en_US.UTF-8"; - - i18n.extraLocaleSettings = { - LC_ADDRESS = "nl_NL.UTF-8"; - LC_IDENTIFICATION = "nl_NL.UTF-8"; - LC_MEASUREMENT = "nl_NL.UTF-8"; - LC_MONETARY = "nl_NL.UTF-8"; - LC_NAME = "nl_NL.UTF-8"; - LC_NUMERIC = "nl_NL.UTF-8"; - LC_PAPER = "nl_NL.UTF-8"; - LC_TELEPHONE = "nl_NL.UTF-8"; - LC_TIME = "nl_NL.UTF-8"; - }; - - # Enable CUPS to print documents. - services.printing.enable = true; - - # Enable sound with pipewire. - sound.enable = true; - hardware.pulseaudio.enable = false; - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - # If you want to use JACK applications, uncomment this - # jack.enable = true; - - # use the example session manager (no others are packaged yet so this is enabled by default, - # no need to redefine it in your config for now) - #media-session.enable = true; - }; - - # Enable touchpad support (enabled default in most desktopManager). - # services.xserver.libinput.enable = true; - - # TODO_: Configure your system-wide user settings (groups, etc), add more users as needed. - users.users = { - # FIXME_: Replace with your username - mans = { - # TODO_: You can set an initial password for your user. - # If you do, you can skip setting a root password by passing '--no-root-passwd' to nixos-install. - # Be sure to change it (using passwd) after rebooting! - isNormalUser = true; - openssh.authorizedKeys.keys = [ - # TODO: Add your SSH public key(s) here, if you plan on using SSH to connect - ]; - # TODO_: Be sure to add any other groups you need (such as networkmanager, audio, docker, etc) - extraGroups = [ "wheel" "networkmanager" ]; - }; - }; - - # This setups a SSH server. Very important if you're setting up a headless system. - # Feel free to remove if you don't need it. - services.openssh = { - enable = true; - settings = { - # Forbid root login through SSH. - PermitRootLogin = "no"; - # Use keys only. Remove if you want to SSH using password (not recommended) - PasswordAuthentication = false; - }; - }; - - home-manager = { - extraSpecialArgs = { inherit inputs; }; - users = { - # Import your home-manager configuration - mans = import ../home-manager/home.nix; - }; - }; - - # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion - system.stateVersion = "23.05"; -} diff --git a/nixos/machines/nix-desktop-mans/hardware-configuration.nix b/nixos/machines/nix-desktop-mans/hardware-configuration.nix deleted file mode 100644 index 5bde617..0000000 --- a/nixos/machines/nix-desktop-mans/hardware-configuration.nix +++ /dev/null @@ -1,39 +0,0 @@ -# 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, ... }: - -{ - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/a0ce5ff7-5e7c-4ef3-ae98-a91f04969a36"; - fsType = "ext4"; - }; - - boot.initrd.luks.devices."luks-2a137f62-de59-4560-afc6-129f13ee6c16".device = "/dev/disk/by-uuid/2a137f62-de59-4560-afc6-129f13ee6c16"; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/61EC-610B"; - fsType = "vfat"; - }; - - 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..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.eno1.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/nixos/configuration.nix b/nixos/machines/nixos-desktop-mans/configuration.nix similarity index 99% rename from nixos/configuration.nix rename to nixos/machines/nixos-desktop-mans/configuration.nix index 56328cc..d049add 100644 --- a/nixos/configuration.nix +++ b/nixos/machines/nixos-desktop-mans/configuration.nix @@ -12,7 +12,7 @@ # You can also split up your configuration and import pieces of it here: # ./users.nix ./network.nix - ./i3.nix + ../roles/desktop.nix # Import home-manager's NixOS module inputs.home-manager.nixosModules.home-manager diff --git a/nixos/hardware-configuration.nix b/nixos/machines/nixos-desktop-mans/hardware-configuration.nix similarity index 100% rename from nixos/hardware-configuration.nix rename to nixos/machines/nixos-desktop-mans/hardware-configuration.nix diff --git a/nixos/network.nix b/nixos/machines/nixos-desktop-mans/network.nix similarity index 90% rename from nixos/network.nix rename to nixos/machines/nixos-desktop-mans/network.nix index 0209f99..1e428c1 100644 --- a/nixos/network.nix +++ b/nixos/machines/nixos-desktop-mans/network.nix @@ -17,5 +17,5 @@ # Set the hostname - networking.hostName = "nixos-mans"; + networking.hostName = "nixos-desktop-mans"; } diff --git a/nixos/i3.nix b/nixos/modules/i3.nix similarity index 100% rename from nixos/i3.nix rename to nixos/modules/i3.nix diff --git a/nixos/roles/base.nix b/nixos/roles/base.nix new file mode 100644 index 0000000..420b5dc --- /dev/null +++ b/nixos/roles/base.nix @@ -0,0 +1,12 @@ +# Module arguments which our system can use to refer to its own configuration +{ config, lib, pkgs, ... }: +{ + imports = [ + ]; + + options = { + }; + + config = { + }; +} diff --git a/nixos/roles/desktop.nix b/nixos/roles/desktop.nix new file mode 100644 index 0000000..125f402 --- /dev/null +++ b/nixos/roles/desktop.nix @@ -0,0 +1,12 @@ +{ config, lib, pkgs, ... }: +{ + imports = [ + ../modules/i3.nix + ]; + + options = { + }; + + config = { + }; +} diff --git a/nixos/roles/server.nix b/nixos/roles/server.nix new file mode 100644 index 0000000..420b5dc --- /dev/null +++ b/nixos/roles/server.nix @@ -0,0 +1,12 @@ +# Module arguments which our system can use to refer to its own configuration +{ config, lib, pkgs, ... }: +{ + imports = [ + ]; + + options = { + }; + + config = { + }; +} diff --git a/update.sh b/update.sh index 5578337..74619a9 100755 --- a/update.sh +++ b/update.sh @@ -1,2 +1,2 @@ #!/usr/bin/env bash -sudo nixos-rebuild switch --flake .#nixos-mans +sudo nixos-rebuild switch --flake .#$(hostname)