diff --git a/modules/common/README.md b/modules/common/README.md new file mode 100644 index 0000000..42bc1c6 --- /dev/null +++ b/modules/common/README.md @@ -0,0 +1,9 @@ +# Shared configurations + +Developed and designed by Wyatt J. Miller, 2024 + +Licensed by the Mozilla Public License v2 + +## Synopsis + +This is the directory that holds shared configuration files amongst computers that I own. They are called by the root `flake.nix` file. diff --git a/modules/host-users.nix b/modules/common/host-users.nix similarity index 100% rename from modules/host-users.nix rename to modules/common/host-users.nix diff --git a/modules/nix-core.nix b/modules/common/nix-core.nix similarity index 100% rename from modules/nix-core.nix rename to modules/common/nix-core.nix diff --git a/modules/machine/cloud/README.md b/modules/machine/cloud/README.md new file mode 100644 index 0000000..6650285 --- /dev/null +++ b/modules/machine/cloud/README.md @@ -0,0 +1,9 @@ +# Machine specific configuration - cloud + +Designed and developed by Wyatt J. Miller, 2024 + +Licensed by the Mozilla Public License v2 + +## Synopsis + +This directory is where the machine-specific configuration files for hostname `cloud` live, my primary desktop. These files get called by the root `flake.nix` file. diff --git a/modules/nixos/configuration.nix b/modules/machine/cloud/configuration.nix similarity index 87% rename from modules/nixos/configuration.nix rename to modules/machine/cloud/configuration.nix index e5aaa08..95fb6e2 100644 --- a/modules/nixos/configuration.nix +++ b/modules/machine/cloud/configuration.nix @@ -1,7 +1,4 @@ { - inputs, - config, - lib, pkgs, userName, ... @@ -15,9 +12,9 @@ # Install and enable common graphics drivers hardware.opengl = { - driSupport = true; + # driSupport = true; extraPackages = with pkgs; [ - mesa_drivers + mesa libvdpau-va-gl libva libva-utils @@ -63,6 +60,10 @@ git wireguard-tools podman + buildah + podman-tui + podman-compose + podman-desktop toolbox grim slurp @@ -72,7 +73,8 @@ firefox wttrbar cliphist - xivlauncher # run with this: gamescope -f -w 2560 -h 1440 -b -- gamemoderun %command% + xivlauncher + patchelf ]; # Install system-wide fonts @@ -127,14 +129,20 @@ programs.gamescope.enable = true; # Add username to groups "wheel" and "video" - more may be added here later - users.users.${userName}.extraGroups = ["wheel" "video" "gamemode"]; + users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network"]; # XDG stuff xdg = { portal = { enable = true; wlr.enable = true; - config = {}; + config = { + common = { + default = [ + "wlr" + ]; + }; + }; xdgOpenUsePortal = true; extraPortals = with pkgs; [ xdg-desktop-portal-wlr @@ -143,6 +151,8 @@ }; }; + # environment. + # Firewall stuff not allowed in common user and network creation networking.firewall.enable = true; # VERY important, do not touch # networking.firewall.allowedTCPPorts = []; @@ -177,5 +187,18 @@ }; }; + # Enable Podman (OCI containers) + virtualisation.podman = { + enable = true; + dockerSocket.enable = true; + defaultNetwork.settings.dns_enabled = true; + }; + + services.shairport-sync = { + enable = pkgs.stdenv.isLinux; + openFirewall = pkgs.stdenv.isLinux; + arguments = "-v -o pw"; + }; + system.stateVersion = "24.05"; } diff --git a/modules/nixos/hardware-configuration.nix b/modules/machine/cloud/hardware-configuration.nix similarity index 100% rename from modules/nixos/hardware-configuration.nix rename to modules/machine/cloud/hardware-configuration.nix diff --git a/modules/machine/ixion/README.md b/modules/machine/ixion/README.md new file mode 100644 index 0000000..c8e7023 --- /dev/null +++ b/modules/machine/ixion/README.md @@ -0,0 +1,9 @@ +# Machine specific configuration - ixion + +Designed and developed by Wyatt J. Miller, 2024 + +Licensed by the Mozilla Public License v2 + +## Synopsis + +This directory is currently empty so, currently, there's nothing to see! However, this is where the machine-specific configuration files for hostname `ixion` live, my storage, status, game, and media server. These files get called by the root `flake.nix` file. diff --git a/modules/machine/sephiroth/README.md b/modules/machine/sephiroth/README.md new file mode 100644 index 0000000..d1d7b2a --- /dev/null +++ b/modules/machine/sephiroth/README.md @@ -0,0 +1,9 @@ +# Machine specific configuration - sephiroth + +Designed and developed by Wyatt J. Miller, 2024 + +Licensed by the Mozilla Public License v2 + +## Synopsis + +This directory is where the machine-specific configuration files for hostname `sephiroth` live, my primary laptop. These files get called by the root `flake.nix` file. diff --git a/modules/darwin/apps.nix b/modules/machine/sephiroth/apps.nix similarity index 100% rename from modules/darwin/apps.nix rename to modules/machine/sephiroth/apps.nix diff --git a/modules/darwin/configuration.nix b/modules/machine/sephiroth/configuration.nix similarity index 95% rename from modules/darwin/configuration.nix rename to modules/machine/sephiroth/configuration.nix index b394f80..cce0ded 100644 --- a/modules/darwin/configuration.nix +++ b/modules/machine/sephiroth/configuration.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: { +{pkgs, hostname, ...}: { system = { # activationScripts are executed every time you boot the system or run `nixos-rebuild` / `darwin-rebuild`. activationScripts.postUserActivation.text = '' @@ -145,6 +145,14 @@ # }; }; + + networking.hostName = hostname; + networking.computerName = hostname; + networking.firewall.enable = true; # VERY important, do not touch + networking.firewall.allowedTCPPorts = []; + networking.firewall.allowedUDPPorts = []; + system.defaults.smb.NetBIOSName = hostname; + # Add ability to used TouchID for sudo authentication security.pam.enableSudoTouchIdAuth = true; diff --git a/modules/machine/valefor/README.md b/modules/machine/valefor/README.md new file mode 100644 index 0000000..1f2e918 --- /dev/null +++ b/modules/machine/valefor/README.md @@ -0,0 +1,9 @@ +# Machine specific configuration - valefor + +Designed and developed by Wyatt J. Miller, 2024 + +Licensed by the Mozilla Public License v2 + +## Synopsis + +This directory is currently empty so, currently, there's nothing to see! However, this is where the machine-specific configuration files for hostname `valefor` live, my apartment appliance server. These files get called by the root `flake.nix` file.