Compare commits

...
9 changed files with 313 additions and 38 deletions
Generated
+102 -31
View File
@@ -9,11 +9,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1780372639,
"narHash": "sha256-VFzXYHlIGwO4h4ovtnpZj9sX/Qu6+dlI00sXjHdwi2w=",
"lastModified": 1783689476,
"narHash": "sha256-Ac4EGPZr9e+mPUdmavJFSTft4vgoXml40+YOFYKTXPg=",
"owner": "ezKEa",
"repo": "aagl-gtk-on-nix",
"rev": "1ee1e8864a1fcfcc21a5fb5af4bd328b3c829f42",
"rev": "af94408291ad477cae8eed964981ab41f90eb184",
"type": "github"
},
"original": {
@@ -29,11 +29,11 @@
]
},
"locked": {
"lastModified": 1781190061,
"narHash": "sha256-QRMpLbsmlciMGv4yx75FUoIl54K02JbIX1tgdPHPw1s=",
"lastModified": 1783744694,
"narHash": "sha256-2cp6N3rrwnGYLTx9l6N+NI+kwrCWxvJUbj5WJhvB29A=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "f2b3fdb347f91dfd344ad196666a0b0fe8aad05c",
"rev": "c3e90c89649b07d1a96e4b9dd6cd0d6e44b91a74",
"type": "github"
},
"original": {
@@ -96,6 +96,20 @@
"type": "github"
}
},
"flake-schemas": {
"locked": {
"lastModified": 1780327564,
"narHash": "sha256-HiRPtA0spK+Dkgbhz/1zW9glXxNVB+L4Rj2VYmdawb8=",
"rev": "6cc9bd98891b1fc6bb2b8cb3277df8bc72799ca6",
"revCount": 149,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.5.0/019e83cf-9af3-78b1-ac5b-70e68ad1efe1/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
@@ -184,11 +198,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1781239934,
"narHash": "sha256-bK84gDc7MgPdoQfr4k1oSIsdA9pSXVjEc3QPpVFGRPs=",
"lastModified": 1783668331,
"narHash": "sha256-mMfzU9jvq9XQyyssR9w0Rki8/Ec4Ez+bLkFWc7BaGGg=",
"owner": "purpleclay",
"repo": "go-overlay",
"rev": "efc8ba6788ff0736cc2098d7c588d58819a927e7",
"rev": "423eed783363fa154fc7f0c049f7effa910d2440",
"type": "github"
},
"original": {
@@ -197,6 +211,26 @@
"type": "github"
}
},
"hildibrand": {
"inputs": {
"flake-schemas": "flake-schemas",
"nixpkgs": "nixpkgs_3",
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1785717646,
"narHash": "sha256-j6MlkwaYOLa3bogK4SbOnVI5eMZ9j2GdExSiKMaELPo=",
"ref": "refs/heads/master",
"rev": "9588520925513ed0e47711a5798c6e9958143a0a",
"revCount": 5,
"type": "git",
"url": "https://scm.wyattjmiller.com/wymiller/hildibrand.git"
},
"original": {
"type": "git",
"url": "https://scm.wyattjmiller.com/wymiller/hildibrand.git"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -204,11 +238,11 @@
]
},
"locked": {
"lastModified": 1781184346,
"narHash": "sha256-cZRlW47U6A2nWvAmnZeeO6Xvq23gxYbVLel4KxqOrcQ=",
"lastModified": 1783740085,
"narHash": "sha256-qajyHfZY29G2oEQk+uHxmsJcRoBUBXP9maTpFlwP/dI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "ea6d221d7aa85652d014b6f719dddf036037515b",
"rev": "3cd22efe6471dc7365c822bd9ad73a21e55f38fb",
"type": "github"
},
"original": {
@@ -220,7 +254,7 @@
},
"home-manager_2": {
"inputs": {
"nixpkgs": "nixpkgs_3"
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1779507042,
@@ -270,11 +304,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1780902259,
"narHash": "sha256-q8yYEC5f1mFlQO9RGna4LTc9QrcvWunX6FYp83munkQ=",
"lastModified": 1783703440,
"narHash": "sha256-O3/YajjWo001VUIgD8BwaRdSNLUFe7nZ1qV5TwhRBcw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "bd0ff2d3eac24699c3664d5966b9ef36f388e2ca",
"rev": "8f0500b9660505dc3cb647775fe9a978a74b5283",
"type": "github"
},
"original": {
@@ -285,6 +319,20 @@
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1784280462,
"narHash": "sha256-DtoqIqM7VkR6NxAkcLpMwmi02USwWb3JdmNGLyhthc0=",
"rev": "293d6abedf0478e681a4dfcfcb35b30fc796a32f",
"revCount": 1009740,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2605.1009740%2Brev-293d6abedf0478e681a4dfcfcb35b30fc796a32f/019f73de-20f7-7ec2-98c8-65726640dbf9/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1778443072,
"narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=",
@@ -300,7 +348,7 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_5": {
"locked": {
"lastModified": 1780902259,
"narHash": "sha256-q8yYEC5f1mFlQO9RGna4LTc9QrcvWunX6FYp83munkQ=",
@@ -316,7 +364,7 @@
"type": "github"
}
},
"nixpkgs_5": {
"nixpkgs_6": {
"locked": {
"lastModified": 1744536153,
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
@@ -336,15 +384,16 @@
"inputs": {
"darwin": "darwin_2",
"flake-utils": "flake-utils_2",
"hildibrand": "hildibrand",
"home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_4"
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1781241353,
"narHash": "sha256-lY3e7d5bA48qnTWGBSH6SK5jfINRlCQEv+zx1eGl1zU=",
"lastModified": 1786304454,
"narHash": "sha256-2ovOgwFWnKqUMoQfxbobtIWQ+TSN62llX9eJVb9hFoY=",
"ref": "refs/heads/master",
"rev": "90afe7c81a068fb1f160d68acd0ad06fa1bf7553",
"revCount": 30,
"rev": "ea7094e4e33fbb030edf28383de37073fc8b84e0",
"revCount": 43,
"type": "git",
"url": "https://scm.wyattjmiller.com/wymiller/nur.git"
},
@@ -362,7 +411,7 @@
"nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_2",
"nur": "nur",
"rust-overlay": "rust-overlay_2"
"rust-overlay": "rust-overlay_3"
}
},
"rust-overlay": {
@@ -373,11 +422,11 @@
]
},
"locked": {
"lastModified": 1780197589,
"narHash": "sha256-FVCr2Ij/jKf59a4LW481eeOF6rJRreOBrVgW/aUBTrw=",
"lastModified": 1782875958,
"narHash": "sha256-5eqDcnBjb1424HRQdnhuhNOBZguq1Z2tqSa2OMF/m2c=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "21632e942d89bf1cce4e5a63d7e58a215a0cbfcc",
"rev": "13139aefa973f3d96c60c0fbab801de058ae25ca",
"type": "github"
},
"original": {
@@ -388,14 +437,36 @@
},
"rust-overlay_2": {
"inputs": {
"nixpkgs": "nixpkgs_5"
"nixpkgs": [
"nur",
"hildibrand",
"nixpkgs"
]
},
"locked": {
"lastModified": 1781234414,
"narHash": "sha256-HdA+P4fKRGOomkewnI/Tww5Wz4xK1O7+hDO90YAsPB4=",
"lastModified": 1784438913,
"narHash": "sha256-NYF7ZM5ip0u+w1pBFDpIGEbrbgN/wpnLFAmBkWkYMXw=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "1d18bfe3de6244c641ca4e8011186d0981b81d76",
"rev": "afacd6819d3765a05814ee8e3de74c77d42ac799",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_3": {
"inputs": {
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1783834461,
"narHash": "sha256-FCmrs1StAghJDKfqy56KM96KZtxpYzgeq6zM3QO8wjA=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "a286e5b998e852297a403786f063fb2c9fe7f57a",
"type": "github"
},
"original": {
+27 -1
View File
@@ -122,7 +122,7 @@
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = extraSpecialArgs;
home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = true; role = "workstation"; };
home-manager.backupFileExtension = "bak";
home-manager.users.${userName}.imports = [
./home
@@ -213,6 +213,32 @@
];
};
# Discord bot server
nixosConfigurations."estinien" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit userName userEmail nur;
hostname = "estinien";
role = "server";
};
modules = [
myOverlays
./modules/common
./modules/machine/estinien
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = true; role = "server"; };
home-manager.backupFileExtension = "bak";
home-manager.users.${userName}.imports = [
./home
];
}
];
};
# generic non-NixOS Linux machine
homeConfigurations."generic" = let
hostname = builtins.getEnv "HOSTNAME";
+6 -1
View File
@@ -5,7 +5,12 @@ lib.mkIf pkgs.stdenv.isLinux {
xdg-utils
] ++ lib.optionals isNixOS [
vesktop
xfce.thunar
thunar
thunar-volman
thunar-shares-plugin
thunar-vcs-plugin
thunar-archive-plugin
thunar-media-tags-plugin
pavucontrol
zathura
gpu-screen-recorder
+8 -2
View File
@@ -149,10 +149,15 @@ in {
vintage-story = {
enable = lib.mkEnableOption "Vintage Story client and server";
};
archon = {
enable = lib.mkEnableOption "Archon from NUR";
};
};
config = let
agl = cfg.aagl;
nurPkgs = import "${nur.outPath}/pkgs" { inherit pkgs; };
in {
programs.steam = lib.mkIf cfg.steam.enable {
enable = true;
@@ -218,7 +223,8 @@ in {
)) ++
(lib.optionals cfg.minecraft.enable [pkgs.prismlauncher]) ++
(lib.optionals cfg.ffxiv.enable [pkgs.xivlauncher pkgs.fflogs]) ++
(lib.optionals cfg.vintage-story.enable [nur.packages.${pkgs.system}.vintage-story]) ++
(lib.optionals cfg.vintage-story.enable [nurPkgs.vintage-story]) ++
(lib.optionals cfg.archon.enable [nurPkgs.archon]) ++
(lib.optionals cfg.vkbasalt.enable [pkgs.vkbasalt pkgs.vkbasalt-cli]) ++
(lib.optionals cfg.mangohud.enable [pkgs.mangohud]) ++
(lib.optionals (cfg.vkbasalt.enable || cfg.mangohud.enable) [pkgs.goverlay pkgs.mesa-demos pkgs.vulkan-tools]);
@@ -226,7 +232,7 @@ in {
nix.settings = let
inherit agl;
in (lib.mkIf
(agl.anime-game-launcher.enable || agl.honkers-railway-laucher.enable || agl.honkers-launcher.enable || agl.wavey-launcher.enable || agl.sleepy-launcher.enable)
(agl.anime-game-launcher.enable || agl.honkers-railway-launcher.enable || agl.honkers-launcher.enable || agl.wavey-launcher.enable || agl.sleepy-launcher.enable)
{
substituters = [ "https://ezkea.cachix.org" ];
trusted-public-keys = [ "ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI=" ];
+13 -3
View File
@@ -3,6 +3,7 @@
pkgs,
userName,
aagl,
nur,
...
}: let
flatpakPackages = [
@@ -49,8 +50,6 @@ in {
];
};
# Custom kernel/boot stuff
boot = {
kernelPackages = pkgs.linuxPackages_latest;
@@ -83,6 +82,12 @@ in {
shared-mime-info
wl-clipboard
wl-clip-persist
ollama-rocm
newelle
vlc
mediainfo
makemkv
ffmpeg
];
# Enable Polkit
@@ -121,11 +126,13 @@ in {
};
ffxiv.enable = true;
archon.enable = true;
minecraft.enable = true;
aagl.anime-game-launcher.enable = true;
aagl.wavey-launcher.enable = true;
vintage-story.enable = true;
};
# Power management (see ../../pwrMgmt/default.nix)
pwrMgmt = {
enable = true;
@@ -225,5 +232,8 @@ in {
];
};
# Tailscale service
services.tailscale.enable = true;
system.stateVersion = "24.11";
}
+118
View File
@@ -0,0 +1,118 @@
{
pkgs,
userName,
nur,
...
}: let
hildibrand = nur.packages.${pkgs.stdenv.hostPlatform.system}.hildibrand;
caitsith = nur.packages.${pkgs.stdenv.hostPlatform.system}.caitsith;
in {
imports = [
../../pwrMgmt
../../networking/core.nix
];
# Enable flakes for NixOS
nix.settings.experimental-features = ["nix-command" "flakes"];
# Custom kernel/boot stuff
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Set your timezone
time.timeZone = "America/Detroit";
# Enable OpenSSH
services.openssh.enable = true;
# Enable keyring
services.gnome.gnome-keyring.enable = true;
# Enable GnuPG
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# Enable SUID wrappers (some programs need them)
programs.mtr.enable = true;
# Enable Polkit
security.polkit.enable = true;
# Power management (see ../../pwrMgmt/default.nix)
pwrMgmt = {
enable = true;
cpuFreqGovernor = "performance";
powertop.enable = false;
};
network = {
firewall = {
enable = true;
};
networkManager.enable = true;
};
environment.systemPackages = [
hildibrand
caitsith
];
systemd.services.hildibrand = {
description = "Hildibrand - trivia buzzer bot";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
Type = "simple";
User = userName;
WorkingDirectory = "/home/${userName}";
ExecStart = "${hildibrand}/bin/hildebrand";
Restart = "on-failure";
RestartSec = "5s";
EnvironmentFile = "/etc/secrets/hildibrand.env";
};
};
systemd.services.caitsith = {
description = "Caitsith - a randomizer bot";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
Type = "simple";
User = userName;
WorkingDirectory = "/home/${userName}";
ExecStart = "${caitsith}/bin/hildebrand";
Restart = "on-failure";
RestartSec = "5s";
EnvironmentFile = "/etc/secrets/caitsith.env";
};
};
# Add username to groups "wheel" and "video" - more may be added here later
users = {
users = {
${userName} = {
extraGroups = [ "wheel" "network" ];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4WKvKnnYpTbzZHFEslOKyfiiMqWxhW3AfX6E7ACmYU wyatt@wyattjmiller.com"
];
};
};
};
services.fail2ban = {
enable = true;
package = pkgs.fail2ban;
maxretry = 5;
bantime = "3h";
bantime-increment = {
enable = true;
rndtime = "10m";
};
};
system.stateVersion = "24.11";
}
+6
View File
@@ -0,0 +1,6 @@
{ ... }: {
imports = [
./configuration.nix
./hardware-configuration.nix
];
}
@@ -0,0 +1,32 @@
# 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 + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sr_mod" "virtio_blk" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/498ce176-f090-46d8-96bf-9e6141cffa19";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/09A6-B803";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/4a64a2ee-2b32-4e53-b00f-7b1f127162aa"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}
+1
View File
@@ -2,6 +2,7 @@
environment.systemPackages = with pkgs; [
neovim
git
tailscale
];
environment.variables.EDITOR = "nvim";