modularized into machine

This commit is contained in:
Wyatt J. Miller 2024-10-30 22:41:37 -04:00
parent 33876f6bc9
commit fbaa38c1a5
11 changed files with 85 additions and 9 deletions

9
modules/common/README.md Normal file
View File

@ -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.

View File

@ -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.

View File

@ -1,7 +1,4 @@
{ {
inputs,
config,
lib,
pkgs, pkgs,
userName, userName,
... ...
@ -15,9 +12,9 @@
# Install and enable common graphics drivers # Install and enable common graphics drivers
hardware.opengl = { hardware.opengl = {
driSupport = true; # driSupport = true;
extraPackages = with pkgs; [ extraPackages = with pkgs; [
mesa_drivers mesa
libvdpau-va-gl libvdpau-va-gl
libva libva
libva-utils libva-utils
@ -63,6 +60,10 @@
git git
wireguard-tools wireguard-tools
podman podman
buildah
podman-tui
podman-compose
podman-desktop
toolbox toolbox
grim grim
slurp slurp
@ -72,7 +73,8 @@
firefox firefox
wttrbar wttrbar
cliphist cliphist
xivlauncher # run with this: gamescope -f -w 2560 -h 1440 -b -- gamemoderun %command% xivlauncher
patchelf
]; ];
# Install system-wide fonts # Install system-wide fonts
@ -127,14 +129,20 @@
programs.gamescope.enable = true; programs.gamescope.enable = true;
# Add username to groups "wheel" and "video" - more may be added here later # 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 stuff
xdg = { xdg = {
portal = { portal = {
enable = true; enable = true;
wlr.enable = true; wlr.enable = true;
config = {}; config = {
common = {
default = [
"wlr"
];
};
};
xdgOpenUsePortal = true; xdgOpenUsePortal = true;
extraPortals = with pkgs; [ extraPortals = with pkgs; [
xdg-desktop-portal-wlr xdg-desktop-portal-wlr
@ -143,6 +151,8 @@
}; };
}; };
# environment.
# Firewall stuff not allowed in common user and network creation # Firewall stuff not allowed in common user and network creation
networking.firewall.enable = true; # VERY important, do not touch networking.firewall.enable = true; # VERY important, do not touch
# networking.firewall.allowedTCPPorts = []; # 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"; system.stateVersion = "24.05";
} }

View File

@ -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.

View File

@ -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.

View File

@ -1,4 +1,4 @@
{pkgs, ...}: { {pkgs, hostname, ...}: {
system = { system = {
# activationScripts are executed every time you boot the system or run `nixos-rebuild` / `darwin-rebuild`. # activationScripts are executed every time you boot the system or run `nixos-rebuild` / `darwin-rebuild`.
activationScripts.postUserActivation.text = '' 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 # Add ability to used TouchID for sudo authentication
security.pam.enableSudoTouchIdAuth = true; security.pam.enableSudoTouchIdAuth = true;

View File

@ -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.