diff --git a/flake.lock b/flake.lock index 3e44bbf..41794aa 100644 --- a/flake.lock +++ b/flake.lock @@ -16,9 +16,26 @@ "type": "github" } }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1720542800, + "narHash": "sha256-ZgnNHuKV6h2+fQ5LuqnUaqZey1Lqqt5dTUAiAnqH0QQ=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "feb2849fdeb70028c70d73b848214b00d324a497", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "nixpkgs-unstable": "nixpkgs-unstable" } } }, diff --git a/flake.nix b/flake.nix index 15e82bc..5bf2f59 100644 --- a/flake.nix +++ b/flake.nix @@ -3,19 +3,37 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; + nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; }; - outputs = { self, nixpkgs } @inputs: { + outputs = { self, nixpkgs, nixpkgs-unstable } @inputs: + let + mkHost = { hostname, system, stateVersion }: nixpkgs.lib.nixosSystem { + system = system; + modules = [ + { + networking = { + hostName = hostname; + networkmanager.enable = true; + }; + system.stateVersion = stateVersion; + } + ./modules/nixos + ./hosts/${hostname} + ]; + specialArgs = { inherit inputs; }; + }; + in { nixosConfigurations = { - marauder = nixpkgs.lib.nixosSystem { + marauder = mkHost { + hostname = "marauder"; system = "x86_64-linux"; - modules = [ ./hosts/marauder ]; - specialArgs = { inherit inputs; }; + stateVersion = "24.05"; }; - monolith = nixpkgs.lib.nixosSystem { + monolith = mkHost { + hostname = "monolith"; system = "x86_64-linux"; - modules = [ ./hosts/monolith ]; - specialArgs = { inherit inputs; }; + stateVersion = "24.05"; }; }; }; diff --git a/modules/nixos/coding.nix b/hosts/marauder/apps.nix similarity index 50% rename from modules/nixos/coding.nix rename to hosts/marauder/apps.nix index 3c435de..9b93544 100644 --- a/modules/nixos/coding.nix +++ b/hosts/marauder/apps.nix @@ -1,13 +1,33 @@ { pkgs, ... }: { environment.systemPackages = with pkgs; [ - cargo - rustc - rustfmt - gcc + # Chat clients + discord + element-desktop + telegram-desktop + + # Browsers + firefox + + # Coding (vscode-with-extensions.override { - vscodeExtensions = import ./vscode-extensions.nix { inherit pkgs; }; + vscodeExtensions = with pkgs.vscode-extensions; [ + bbenoist.nix + github.copilot + arrterian.nix-env-selector + ]; }) + + # Art and 3D + inkscape + openscad-unstable + bambu-studio + + # Multimedia + vlc + + # Productivity + obsidian ]; programs = { @@ -30,7 +50,10 @@ set linenumbers ''; }; + steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + }; }; - - fonts.packages = [pkgs.fira-code]; } diff --git a/modules/nixos/backup.nix b/hosts/marauder/backup.nix similarity index 100% rename from modules/nixos/backup.nix rename to hosts/marauder/backup.nix diff --git a/modules/nixos/boot.nix b/hosts/marauder/boot.nix similarity index 100% rename from modules/nixos/boot.nix rename to hosts/marauder/boot.nix diff --git a/hosts/marauder/default.nix b/hosts/marauder/default.nix index 1669741..13625a2 100644 --- a/hosts/marauder/default.nix +++ b/hosts/marauder/default.nix @@ -1,6 +1,10 @@ { config, lib, pkgs, inputs, ... }: { imports = [ + ./apps.nix + ./backup.nix + ./boot.nix + ./hardware.nix ../../modules/nixos ]; @@ -13,5 +17,16 @@ "flakes" ]; + services = { + xserver = { + enable = true; + desktopManager = { + cinnamon.enable = true; + xterm.enable = false; + }; + }; + displayManager.defaultSession = "cinnamon"; + }; + system.stateVersion = "24.05"; } diff --git a/modules/nixos/hardware.nix b/hosts/marauder/hardware.nix similarity index 100% rename from modules/nixos/hardware.nix rename to hosts/marauder/hardware.nix diff --git a/hosts/monolith/default.nix b/hosts/monolith/default.nix index c765ccb..393fdee 100644 --- a/hosts/monolith/default.nix +++ b/hosts/monolith/default.nix @@ -1,5 +1,9 @@ -{ config, lib, pkgs, inputs, ... }: +{ config, lib, pkgs, inputs, outputs, ... }: { + imports = [ + outputs.nixosModules + ]; + time.timeZone = "America/Los_Angeles"; nix.settings.experimental-features = [ @@ -7,5 +11,10 @@ "flakes" ]; + networking = { + hostName = "monolith"; + networkmanager.enable = true; + }; + system.stateVersion = "24.05"; } diff --git a/modules/nixos/chat.nix b/modules/nixos/chat.nix deleted file mode 100644 index 24baf63..0000000 --- a/modules/nixos/chat.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ pkgs, ... }: -{ - environment.systemPackages = with pkgs; [ - discord - element-desktop - telegram-desktop - ]; -} diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index a7c97fa..3e79d7a 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -1,19 +1,6 @@ { ... }: { imports = [ - ./backup.nix - ./boot.nix - ./chat.nix - ./coding.nix - ./gaming.nix - ./hardware.nix - ./illustration.nix - ./interface.nix - ./media.nix - ./modelling.nix - ./networking.nix - ./productivity.nix ./users.nix - ./web.nix ]; } \ No newline at end of file diff --git a/modules/nixos/gaming.nix b/modules/nixos/gaming.nix deleted file mode 100644 index c8008f9..0000000 --- a/modules/nixos/gaming.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: -{ - programs.steam = { - enable = true; - remotePlay.openFirewall = true; - dedicatedServer.openFirewall = true; - }; -} diff --git a/modules/nixos/illustration.nix b/modules/nixos/illustration.nix deleted file mode 100644 index 27aa053..0000000 --- a/modules/nixos/illustration.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ pkgs, ... }: -{ - environment.systemPackages = [pkgs.inkscape]; -} diff --git a/modules/nixos/interface.nix b/modules/nixos/interface.nix deleted file mode 100644 index 8515bfc..0000000 --- a/modules/nixos/interface.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ ... }: -{ - services = { - xserver = { - enable = true; - desktopManager = { - cinnamon.enable = true; - xterm.enable = false; - }; - }; - displayManager.defaultSession = "cinnamon"; - }; -} diff --git a/modules/nixos/media.nix b/modules/nixos/media.nix deleted file mode 100644 index 76e2e3e..0000000 --- a/modules/nixos/media.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ pkgs, ... }: -{ - environment.systemPackages = [pkgs.vlc]; -} diff --git a/modules/nixos/modelling.nix b/modules/nixos/modelling.nix deleted file mode 100644 index e8f1267..0000000 --- a/modules/nixos/modelling.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: -{ - environment.systemPackages = with pkgs; [ - openscad-unstable - bambu-studio - ]; -} diff --git a/modules/nixos/networking.nix b/modules/nixos/networking.nix deleted file mode 100644 index 3251d6d..0000000 --- a/modules/nixos/networking.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ ... }: -{ - networking = { - hostName = "marauder"; - networkmanager.enable = true; - }; -} diff --git a/modules/nixos/productivity.nix b/modules/nixos/productivity.nix deleted file mode 100644 index 30b25af..0000000 --- a/modules/nixos/productivity.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ pkgs, ... }: -{ - environment.systemPackages = [pkgs.obsidian]; -} diff --git a/modules/nixos/vscode-extensions.nix b/modules/nixos/vscode-extensions.nix deleted file mode 100644 index 5e845cc..0000000 --- a/modules/nixos/vscode-extensions.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, ... }: -with pkgs.vscode-extensions; [ - bbenoist.nix - github.copilot - arrterian.nix-env-selector -] diff --git a/modules/nixos/web.nix b/modules/nixos/web.nix deleted file mode 100644 index 6d42e0c..0000000 --- a/modules/nixos/web.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ pkgs, ... }: -{ - environment.systemPackages = [pkgs.firefox]; -}