diff --git a/configuration.nix b/configuration.nix index 41757cf..aba1c68 100644 --- a/configuration.nix +++ b/configuration.nix @@ -46,7 +46,8 @@ LC_TIME = "en_US.UTF-8"; }; - networking.hostName = "imladris"; # Define your hostname. + # set by the configurator + # networking.hostName = "imladris"; # Define your hostname. networking.networkmanager.enable = true; services.resolved.enable = true; services.resolved.fallbackDns = [ @@ -181,6 +182,7 @@ bitwarden brave cloc + cmake cmus cscope direnv @@ -217,6 +219,7 @@ lagrange libfixposix libzip + man-pages mercurial mg mutt @@ -238,6 +241,7 @@ scdoc scrot silver-searcher + sqlite-interactive stumpwm syncthing tailscale @@ -268,7 +272,7 @@ ACTION=="add", SUBSYSTEM=="backlight", GROUP="video", MODE="0660" }; programs.ssh.askPassword = "ksshaskpass"; - nix.settings.experimental-features = [ "nix-command" ]; + nix.settings.experimental-features = [ "nix-command" "flakes" ]; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..b5c1b64 --- /dev/null +++ b/flake.nix @@ -0,0 +1,35 @@ +{ + description = "stolen from neutralinsomniac's nix config"; + + inputs = { + nixpkgs.url = "nixpkgs/nixos-24.11"; + nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; + + nix-index-database.url = "github:nix-community/nix-index-database"; + nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; + + nixos-hardware.url = "github:NixOS/nixos-hardware/master"; + }; + + outputs = inputs@{ + self, + nixpkgs, + nix-index-database, + ... + }: + let + lib = nixpkgs.lib; + in { + nixosConfigurations = lib.genAttrs [ "imladris" "orion" ] (hostName: lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; }; + modules = [ + { networking.hostName = hostName; } + ./hw/${hostName} + ./configuration.nix + nix-index-database.nixosModules.nix-index + { programs.nix-index-database.comma.enable = true; } + ]; + }); + }; +} diff --git a/hw/imladris/default.nix b/hw/imladris/default.nix new file mode 100644 index 0000000..e40436b --- /dev/null +++ b/hw/imladris/default.nix @@ -0,0 +1,7 @@ +{ inputs, ... }: + +{ + imports = [ + ./hardware-configuration.nix + ]; +} diff --git a/hw/imladris/hardware-configuration.nix b/hw/imladris/hardware-configuration.nix new file mode 100644 index 0000000..36dccd2 --- /dev/null +++ b/hw/imladris/hardware-configuration.nix @@ -0,0 +1,41 @@ +# 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 = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/a646409d-193c-47b7-a38c-33e08f1bf3ae"; + fsType = "ext4"; + }; + + boot.initrd.luks.devices."luks-41752b4f-4f27-4459-9087-8a8ba57e8e65".device = "/dev/disk/by-uuid/41752b4f-4f27-4459-9087-8a8ba57e8e65"; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/A3CB-584F"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + 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.enp0s31f6.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hw/orion/default.nix b/hw/orion/default.nix new file mode 100644 index 0000000..e40436b --- /dev/null +++ b/hw/orion/default.nix @@ -0,0 +1,7 @@ +{ inputs, ... }: + +{ + imports = [ + ./hardware-configuration.nix + ]; +} diff --git a/hw/orion/hardware-configuration.nix b/hw/orion/hardware-configuration.nix new file mode 100644 index 0000000..a7ea437 --- /dev/null +++ b/hw/orion/hardware-configuration.nix @@ -0,0 +1,41 @@ +# 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 = [ "xhci_pci" "thunderbolt" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/896531dc-7a85-4b4b-a739-404a9881427c"; + fsType = "ext4"; + }; + + boot.initrd.luks.devices."luks-5c5e94fc-f710-4578-a5f6-3a244efe5d3b".device = "/dev/disk/by-uuid/5c5e94fc-f710-4578-a5f6-3a244efe5d3b"; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/B165-2F51"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + 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.enp89s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlo1.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +}