diff --git a/hosts/hummingbird/configuration.nix b/configuration.nix similarity index 86% rename from hosts/hummingbird/configuration.nix rename to configuration.nix index 98b5f33..2104e1b 100644 --- a/hosts/hummingbird/configuration.nix +++ b/configuration.nix @@ -1,31 +1,29 @@ # Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). + +{ config, lib, pkgs, inputs, ... }: + { - config, - lib, - pkgs, - inputs, - ... -}: { - imports = [ - # Include the results of the hardware scan. - ./hardware-configuration.nix - inputs.home-manager.nixosModules.default - ]; + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + inputs.home-manager.nixosModules.default + ]; # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; - # mask dev-tpmrm0.device - systemd.services.dev-tpmrm0.wantedBy = lib.mkForce []; + + # mask dev-tpmrm0.device + systemd.services.dev-tpmrm0.wantedBy = lib.mkForce[ ]; networking.hostName = "nixos"; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - + # flakes - nix.settings.experimental-features = ["nix-command" "flakes"]; + nix.settings.experimental-features = [ "nix-command" "flakes" ]; # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; @@ -94,17 +92,16 @@ users.users.luna = { isNormalUser = true; description = "luna"; - extraGroups = ["networkmanager" "wheel"]; + extraGroups = [ "networkmanager" "wheel" ]; packages = with pkgs; [ - # thunderbird - gnome-software - git - neovim - rustup - vscode.fhs + # thunderbird + gnome-software + git + neovim + rustup ]; }; - + # flatpak services.flatpak.enable = true; @@ -114,9 +111,9 @@ # List packages installed in system profile. To search, run: # $ nix search wget 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 - gnome-menus + # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + # wget + gnome-menus ]; # Some programs need SUID wrappers, can be configured further or are @@ -130,7 +127,7 @@ # ssh agent programs.ssh.startAgent = true; - hardware.ckb-next.enable = true; + hardware.ckb-next.enable = true; # dynamic linking programs.nix-ld.enable = true; @@ -155,7 +152,7 @@ # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "24.11"; # Did you read the comment? - + programs.steam = { enable = true; remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play diff --git a/flake.lock b/flake.lock index 8db08a1..8688e7b 100644 --- a/flake.lock +++ b/flake.lock @@ -1,50 +1,5 @@ { "nodes": { - "alejandra": { - "inputs": { - "fenix": "fenix", - "flakeCompat": "flakeCompat", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1730688725, - "narHash": "sha256-g0SSfTWZ5mtMOpQic+eqq9sXMy1E/7yKxxfupZd9V4A=", - "owner": "kamadorueda", - "repo": "alejandra", - "rev": "2bb91e309ca99656addff5c74545acbf5813636d", - "type": "github" - }, - "original": { - "owner": "kamadorueda", - "ref": "3.1.0", - "repo": "alejandra", - "type": "github" - } - }, - "fenix": { - "inputs": { - "nixpkgs": [ - "alejandra", - "nixpkgs" - ], - "rust-analyzer-src": "rust-analyzer-src" - }, - "locked": { - "lastModified": 1730615655, - "narHash": "sha256-2HBR3zLn57LXKNRtxBb+O+uDqHM4n0pz51rPayMl4cg=", - "owner": "nix-community", - "repo": "fenix", - "rev": "efeb50e2535b17ffd4a135e6e3e5fd60a525180c", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "fenix", - "type": "github" - } - }, "flake-parts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" @@ -81,22 +36,6 @@ "type": "github" } }, - "flakeCompat": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -244,29 +183,11 @@ }, "root": { "inputs": { - "alejandra": "alejandra", "home-manager": "home-manager", "nixpkgs": "nixpkgs", "nvf": "nvf" } }, - "rust-analyzer-src": { - "flake": false, - "locked": { - "lastModified": 1730555913, - "narHash": "sha256-KNHZUlqsEibg3YtfUyOFQSofP8hp1HKoY+laoesBxRM=", - "owner": "rust-lang", - "repo": "rust-analyzer", - "rev": "f17a5bbfd0969ba2e63a74505a80e55ecb174ed9", - "type": "github" - }, - "original": { - "owner": "rust-lang", - "ref": "nightly", - "repo": "rust-analyzer", - "type": "github" - } - }, "rust-overlay": { "inputs": { "nixpkgs": [ diff --git a/flake.nix b/flake.nix index 524fc6d..2207f07 100644 --- a/flake.nix +++ b/flake.nix @@ -3,50 +3,35 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - + nvf.url = "github:notashelf/nvf"; - alejandra.url = "github:kamadorueda/alejandra/3.1.0"; - alejandra.inputs.nixpkgs.follows = "nixpkgs"; - home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; }; - outputs = { - self, - nixpkgs, - home-manager, - nvf, - alejandra, - ... - } @ inputs: { + outputs = { self, nixpkgs, home-manager, nvf, ... }@inputs: { # use "nixos", or your hostname as the name of the configuration # it's a better practice than "default" shown in the video - - packages."x86_64-linux".default = - (nvf.lib.neovimConfiguration { - pkgs = nixpkgs.legacyPackages."x86_64-linux"; - modules = [./nvf-configuration.nix]; - }) - .neovim; - - nixosConfigurations = { - nixos = nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs;}; - modules = [ - { - environment.systemPackages = [alejandra.defaultPackage.x86_64-linux]; - } - - ./hosts/hummingbird/configuration.nix - inputs.home-manager.nixosModules.default - nvf.nixosModules.default - ./nvf-configuration.nix - ]; - }; + + packages."x86_64-linux".default = + (nvf.lib.neovimConfiguration { + pkgs = nixpkgs.legacyPackages."x86_64-linux"; + modules = [ ./nvf-configuration.nix ]; + }).neovim; + + nixosConfigurations = { + nixos = nixpkgs.lib.nixosSystem { + specialArgs = {inherit inputs;}; + modules = [ + ./configuration.nix + inputs.home-manager.nixosModules.default + nvf.nixosModules.default + ./nvf-configuration.nix + ]; + }; + }; }; - }; } diff --git a/hardware-configuration.nix b/hardware-configuration.nix new file mode 100644 index 0000000..31adb34 --- /dev/null +++ b/hardware-configuration.nix @@ -0,0 +1,51 @@ +# 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" "usb_storage" "ums_realtek" "usbhid" "sd_mod" "sr_mod" ]; + boot.initrd.kernelModules = [ "sg" ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/d3942c4d-eca8-41e2-afa7-57ba5704e86f"; + fsType = "ext4"; + }; + + fileSystems."/mnt/sda1" = + { device = "/dev/disk/by-uuid/22847bcf-830f-484b-9ff8-dec259e4a990"; + fsType = "ext4"; + }; + + fileSystems."/mnt/sdb1" = + { device = "/dev/disk/by-uuid/21301a6f-2937-421d-81ec-e2e9be139b0a"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/B44E-D001"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/f054feb9-61b1-41f3-b0b2-6e48bfcc6655"; } + ]; + + # 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.enp23s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp24s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/hummingbird/home.nix b/home.nix similarity index 98% rename from hosts/hummingbird/home.nix rename to home.nix index 538acab..47263bb 100644 --- a/hosts/hummingbird/home.nix +++ b/home.nix @@ -1,8 +1,6 @@ +{ config, pkgs, ... }: + { - config, - pkgs, - ... -}: { # Home Manager needs a bit of information about you and the paths it should # manage. home.username = "luna"; diff --git a/hosts/hummingbird/hardware-configuration.nix b/hosts/hummingbird/hardware-configuration.nix deleted file mode 100644 index f1c346e..0000000 --- a/hosts/hummingbird/hardware-configuration.nix +++ /dev/null @@ -1,55 +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" "usb_storage" "ums_realtek" "usbhid" "sd_mod" "sr_mod"]; - boot.initrd.kernelModules = ["sg"]; - boot.kernelModules = ["kvm-amd"]; - boot.extraModulePackages = []; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/d3942c4d-eca8-41e2-afa7-57ba5704e86f"; - fsType = "ext4"; - }; - - fileSystems."/mnt/sda1" = { - device = "/dev/disk/by-uuid/22847bcf-830f-484b-9ff8-dec259e4a990"; - fsType = "ext4"; - }; - - fileSystems."/mnt/sdb1" = { - device = "/dev/disk/by-uuid/21301a6f-2937-421d-81ec-e2e9be139b0a"; - fsType = "ext4"; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/B44E-D001"; - fsType = "vfat"; - options = ["fmask=0077" "dmask=0077"]; - }; - - swapDevices = [ - {device = "/dev/disk/by-uuid/f054feb9-61b1-41f3-b0b2-6e48bfcc6655";} - ]; - - # 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.enp23s0.useDHCP = lib.mkDefault true; - # networking.interfaces.wlp24s0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/nvf-configuration.nix b/nvf-configuration.nix index 015c7e4..de03f2b 100644 --- a/nvf-configuration.nix +++ b/nvf-configuration.nix @@ -1,27 +1,25 @@ +{ pkgs, lib, ... }: + { - pkgs, - lib, - ... -}: { - programs.nvf = { - enable = true; - settings.vim = { - theme = { - enable = true; - name = "catppuccin"; - style = "macchiato"; - }; - - statusline.lualine.enable = true; - telescope.enable = true; - - languages = { - enableLSP = true; - enableTreesitter = true; - - nix.enable = true; - rust.enable = true; - }; - }; - }; + programs.nvf = { + enable = true; + settings.vim = { + theme = { + enable = true; + name = "catppuccin"; + style = "macchiato"; + }; + + statusline.lualine.enable = true; + telescope.enable = true; + + languages = { + enableLSP = true; + enableTreesitter = true; + + nix.enable = true; + rust.enable = true; + }; + }; + }; }