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,
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";
}

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 = {
# 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;

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.