My Nix Configuration

[meta] Linting

Manually clean all deadnix and statix lints.

Changed files
+277 -310
homes
lib
modules
home
nixos
overlays
alejandra
mesa
nix-index
sway-unwrapped
tdlib-purple
treesitter
packages
caddy
go-jamming
olympus
shells
default
systems
+56 -37
flake.nix
···
# Actual inputs
agenix = {
url = "github:ryantm/agenix";
-
inputs.nixpkgs.follows = "nixpkgs";
-
inputs.systems.follows = "systems";
-
inputs.home-manager.follows = "home-manager";
+
inputs = {
+
nixpkgs.follows = "nixpkgs";
+
systems.follows = "systems";
+
home-manager.follows = "home-manager";
+
};
};
alejandra = {
url = "github:kamadorueda/alejandra";
···
};
conduit = {
url = "gitlab:famedly/conduit";
-
inputs.flake-utils.follows = "flake-utils";
-
inputs.nixpkgs.follows = "nixpkgs";
-
inputs.flake-compat.follows = "flake-compat";
-
inputs.attic.inputs.flake-utils.follows = "flake-utils";
-
inputs.attic.inputs.flake-compat.follows = "flake-compat";
-
inputs.attic.inputs.nixpkgs.follows = "nixpkgs";
-
inputs.attic.inputs.nixpkgs-stable.follows = "nixpkgs";
+
inputs = {
+
flake-utils.follows = "flake-utils";
+
nixpkgs.follows = "nixpkgs";
+
flake-compat.follows = "flake-compat";
+
attic.inputs = {
+
flake-utils.follows = "flake-utils";
+
flake-compat.follows = "flake-compat";
+
nixpkgs.follows = "nixpkgs";
+
nixpkgs-stable.follows = "nixpkgs";
+
};
+
};
};
ctp = {
url = "github:catppuccin/nix";
···
};
lix-module = {
url = "git+https://git.lix.systems/lix-project/nixos-module";
-
inputs.lix.follows = "lix";
-
inputs.nixpkgs.follows = "nixpkgs";
-
inputs.flake-utils.follows = "flake-utils";
+
inputs = {
+
lix.follows = "lix";
+
nixpkgs.follows = "nixpkgs";
+
flake-utils.follows = "flake-utils";
+
};
};
mailserver = {
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master";
-
inputs.flake-compat.follows = "flake-compat";
-
inputs.utils.follows = "flake-utils";
-
inputs.nixpkgs.follows = "nixpkgs";
+
inputs = {
+
flake-compat.follows = "flake-compat";
+
utils.follows = "flake-utils";
+
nixpkgs.follows = "nixpkgs";
+
};
};
mkshell-minimal = {
url = "github:viperML/mkshell-minimal";
···
};
nvim = {
url = "github:nix-community/neovim-nightly-overlay";
-
inputs.nixpkgs.follows = "nixpkgs-nvim";
-
inputs.flake-parts.follows = "flake-parts";
-
inputs.flake-compat.follows = "flake-compat";
+
inputs = {
+
nixpkgs.follows = "nixpkgs-nvim";
+
flake-parts.follows = "flake-parts";
+
flake-compat.follows = "flake-compat";
+
};
};
nh = {
url = "github:viperML/nh";
···
nur.url = "github:nix-community/nur";
prismlauncher = {
url = "github:PrismLauncher/PrismLauncher";
-
inputs.flake-compat.follows = "flake-compat";
-
inputs.flake-parts.follows = "flake-parts";
-
inputs.nixpkgs.follows = "nixpkgs";
-
inputs.pre-commit-hooks.inputs.flake-compat.follows = "flake-compat";
-
inputs.pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs";
-
inputs.pre-commit-hooks.inputs.nixpkgs-stable.follows = "nixpkgs";
+
inputs = {
+
flake-compat.follows = "flake-compat";
+
flake-parts.follows = "flake-parts";
+
nixpkgs.follows = "nixpkgs";
+
pre-commit-hooks.inputs = {
+
flake-compat.follows = "flake-compat";
+
nixpkgs.follows = "nixpkgs";
+
nixpkgs-stable.follows = "nixpkgs";
+
};
+
};
};
my-pkgs = {
url = "git+https://git.pyrox.dev/pyrox/pkgs";
···
};
wayland = {
url = "github:nix-community/nixpkgs-wayland";
-
inputs.flake-compat.follows = "flake-compat";
-
inputs.nixpkgs.follows = "nixpkgs";
-
inputs.nix-eval-jobs.inputs.flake-parts.follows = "flake-parts";
-
inputs.nix-eval-jobs.inputs.nixpkgs.follows = "nixpkgs";
-
inputs.lib-aggregate.inputs.flake-utils.follows = "flake-utils";
-
inputs.lib-aggregate.inputs.nixpkgs-lib.follows = "nixpkgs-lib";
+
inputs = {
+
flake-compat.follows = "flake-compat";
+
nixpkgs.follows = "nixpkgs";
+
nix-eval-jobs.inputs.flake-parts.follows = "flake-parts";
+
nix-eval-jobs.inputs.nixpkgs.follows = "nixpkgs";
+
lib-aggregate.inputs.flake-utils.follows = "flake-utils";
+
lib-aggregate.inputs.nixpkgs-lib.follows = "nixpkgs-lib";
+
};
};
};
···
lix-module.nixosModules.default
agenix.nixosModules.default
];
-
+
hosts = {
# Zaphod, my personal Framework 16 laptop
-
systems.hosts.zaphod.modules = with inputs; [ hardware.nixosModules.framework-16-7040-amd ];
+
zaphod.modules = with inputs; [ hardware.nixosModules.framework-16-7040-amd ];
# Prefect, my main VPS
-
systems.hosts.prefect.modules = with inputs; [
+
prefect.modules = with inputs; [
self.nixosModules.dn42Pingfinder
-
inputs.mailserver.nixosModule
+
mailserver.nixosModule
];
# (Deep) Thought, a WIP VPS
-
systems.hosts.thought.modules = with inputs; [ self.nixosModules.dn42Pingfinder ];
+
thought.modules = with inputs; [ self.nixosModules.dn42Pingfinder ];
# Marvin, my main homelab machine
-
systems.hosts.marvin.modules = with inputs; [
+
marvin.modules = with inputs; [
self.nixosModules.forgejoRunner
iceshrimp.nixosModules.default
golink.nixosModules.default
buildbot-nix.nixosModules.buildbot-master
buildbot-nix.nixosModules.buildbot-worker
];
+
};
};
outputs-builder =
-9
homes/x86_64-linux/pyrox/programs/email.nix
···
-
{
-
pkgs,
-
lib,
-
...
-
}: {
-
programs.msmtp.enable = true;
-
programs.mbsync.enable = true;
-
programs.mu.enable = true;
-
}
+5 -3
homes/x86_64-linux/pyrox/programs/git.nix
···
enable = true;
catppuccin.enable = true;
settings = {
-
gui.nerdFontsVersion = "3";
-
gui.showRandomTip = false;
-
gui.theme.selectedLineBgColor = ["default"];
+
gui = {
+
nerdFontsVersion = "3";
+
showRandomTip = false;
+
theme.selectedLineBgColor = ["default"];
+
};
git.paging = {
pager = "${lib.getExe pkgs.delta} --dark --paging=never";
colorArg = "always";
+1 -1
homes/x86_64-linux/pyrox/programs/nushell/default.nix
···
-
{pkgs, ...}: {
+
{
programs.nushell = {
enable = true;
configFile.source = ./config.nu;
-1
homes/x86_64-linux/pyrox/programs/obs.nix
···
{
-
config,
pkgs,
...
}: {
+1 -5
homes/x86_64-linux/pyrox/programs/pandoc.nix
···
-
{
-
lib,
-
pkgs,
-
...
-
}: {programs.pandoc.enable = true;}
+
{programs.pandoc.enable = true;}
+1 -1
homes/x86_64-linux/pyrox/programs/wlogout/default.nix
···
-
{ pkgs, config, ...}: {
+
{ pkgs, ...}: {
imports = [./style.nix];
programs.wlogout = {
enable = true;
+1 -1
homes/x86_64-linux/pyrox/programs/wlogout/style.nix
···
-
{pkgs, config, ...}: let
+
{config, ...}: let
pkg = config.programs.wlogout.package;
icon-path = "${pkg}/share/wlogout/icons";
in {
+1 -1
homes/x86_64-linux/pyrox/programs/zsh.nix
···
-
{pkgs, ...}: {
+
{
programs.zsh = {
enable = true;
autosuggestion.enable = true;
+1 -1
homes/x86_64-linux/pyrox/services/gpg-agent.nix
···
-
{pkgs, ...}: {
+
{
services.gpg-agent = {
enable = true;
enableExtraSocket = true;
+1 -1
homes/x86_64-linux/pyrox/services/kanshi.nix
···
-
{pkgs, ...}: {
+
{
services.kanshi = {
enable = true;
settings = [
+1 -1
homes/x86_64-linux/pyrox/services/kdeconnect.nix
···
-
{pkgs, ...}: {
+
{
services.kdeconnect = {
enable = false;
indicator = true;
-2
lib/default.nix
···
-
{lib, inputs, namespace, snowfall-inputs, ...}: {
-
}
+6 -4
modules/home/profiles/base/default.nix
···
-
{inputs, config, ...}: {
+
{...}: {
imports = [
../programs/gpg.nix
../xdg.nix
···
programs.home-manager.enable = true;
home.stateVersion = "24.05";
home.language = {base = "en_US.utf8";};
-
manual.manpages.enable = false;
-
manual.html.enable = false;
-
manual.json.enable = false;
+
manual = {
+
manpages.enable = false;
+
html.enable = false;
+
json.enable = false;
+
};
programs.man.enable = false;
}
+14 -16
modules/home/profiles/cli/default.nix
···
-
{pkgs, ...}: let
-
customPythonPackages = python-packages: with python-packages; [textual];
-
customPython = pkgs.python311.withPackages customPythonPackages;
-
in {
+
{pkgs, ...}: {
imports = [
../programs/bat.nix
../programs/direnv.nix
···
../files/distrobox-config.nix
];
-
programs.eza = {
-
enable = true;
-
icons = true;
-
git = true;
-
enableBashIntegration = false;
-
enableIonIntegration = false;
-
};
-
programs.btop = {
-
enable = true;
-
catppuccin.enable = true;
+
programs = {
+
eza = {
+
enable = true;
+
icons = true;
+
git = true;
+
enableBashIntegration = false;
+
enableIonIntegration = false;
+
};
+
btop = {
+
enable = true;
+
catppuccin.enable = true;
+
};
+
glamour.catppuccin.enable = true;
};
-
programs.glamour.catppuccin.enable = true;
xdg.configFile = {
"rbw".source = ../../oldconfig/rbw;
"rbw".recursive = true;
···
fzf
glow
gnupg
-
# neovim
pinentry
rbw
rsync
-1
modules/home/profiles/desktop/default.nix
···
{ pkgs
-
, inputs
, ...
}: {
imports = [
+1 -2
modules/home/profiles/gui/default.nix
···
{
pkgs,
-
inputs,
-
lib, # games ? true,
+
# games ? true,
# social ? true,
...
}: {
-2
modules/home/profiles/server/default.nix
···
{
-
pkgs,
-
inputs,
...
}: {imports = [./base.nix ./cli.nix];}
-1
modules/home/wayland/default.nix
···
{imports = [
./sway.nix
./keybindings.nix
-
./misc.nix
./waybar.nix
./swaylock.nix
];}
+1 -4
modules/home/wayland/keybindings.nix
···
{
-
pkgs,
-
lib,
config,
...
}: let
+
inherit (config.wayland.windowManager.sway.config) menu;
mod = config.wayland.windowManager.sway.config.modifier;
-
homeDir = config.home.homeDirectory;
-
menu = config.wayland.windowManager.sway.config.menu;
term = config.wayland.windowManager.sway.config.terminal;
grim = "grim -g";
slurp-screen = "\"$(slurp -c -b '#1e1e2e80' -o -r)\" -";
modules/home/wayland/misc.nix

This is a binary file and will not be displayed.

+1 -1
modules/nixos/defaultConfig/nixpkgsConfig.nix
···
-
{pkgs, ...}: {
+
{
nixpkgs = {
config = {
allowUnfree = true;
+6 -4
modules/nixos/defaultConfig/security.nix
···
{pkgs, ...}: {
# Everything should use doas instead of sudo
# Sudo is kept enabled for tools that ~can't~ won't use doas.
-
security.doas = {
+
security = {
+
doas = {
enable = true;
wheelNeedsPassword = false;
};
# Needed for nixos-rebuild to work properly
-
security.sudo.enable = true;
+
sudo.enable = true;
# TPM configuration
-
security.tpm2 = {
+
tpm2 = {
enable = true;
abrmd.enable = true;
applyUdevRules = true;
···
};
# Set up extra certificates for DN42 specifically
-
security.pki.certificateFiles = [
+
pki.certificateFiles = [
(pkgs.fetchurl {
url = "https://dn42.burble.com/burble-dn42-ca.pem";
name = "burble-dn42-ca.pem";
···
sha256 = "sha256-wsMeC9/tlppSNZGrqfZFLAjv3AMj1KwIAWeh2XBpiYs=";
})
];
+
};
}
+1
overlays/alejandra/default.nix
···
+
# deadnix: skip
{ inputs, ...}: final: prev: {
alejandra = inputs.alejandra.defaultPackage.${prev.system};
}
+1
overlays/mesa/default.nix
···
+
# deadnix: skip
{ inputs, ...}: final: prev: {
inherit (inputs.nixpkgs-mesa.legacyPackages.${prev.system}) mesa directx-headers;
}
+1
overlays/nix-index/default.nix
···
+
# deadnix: skip
{inputs, ...}: final: prev: { inherit (inputs.nix-index.packages.${prev.system}) nix-index; }
+4 -3
overlays/sway/default.nix overlays/sway-unwrapped/default.nix
···
-
final: prev: let
+
# deadnix: skip
+
{ ... }: final: prev: let
inherit (prev.lib.strings) mesonOption mesonEnable;
in {
-
sway-unwrapped = prev.sway-unwrapped.overrideAttrs (old: {
+
sway-unwrapped = prev.sway-unwrapped.overrideAttrs {
mesonFlags = [
(mesonOption "sd-bus-provider" "libsystemd")
(mesonEnable "tray" true)
];
-
});
+
};
}
-30
overlays/tdlib-purple/default.nix
···
-
final: prev: rec {
-
tdlib-pidgin = prev.tdlib.overrideAttrs (old: {
-
version = "1.8.0";
-
src = prev.fetchFromGitHub {
-
owner = "tdlib";
-
repo = "td";
-
rev = "b3ab664a18f8611f4dfcd3054717504271eeaa7a";
-
sha256 = "19psqpyh9a2kzfdhgqkirpif4x8pzy89phvi59dq155y30a3661q";
-
};
-
});
-
pidginPackages = prev.pidginPackages // {
-
tdlib-purple = prev.pidginPackages.tdlib-purple.overrideAttrs (old: {
-
version = "0.9.0";
-
meta.broken = false;
-
src = prev.fetchFromGitHub {
-
owner = "BenWiederhake";
-
repo = "tdlib-purple";
-
rev = "fce1b50c15a55c300553019b5f6756dd856485e7";
-
sha256 = "177fax1w440ch00vdda178bgwbbqp3y6zk38krld8kblj9p0ppyd";
-
};
-
buildInputs = (prev.lib.lists.remove prev.tdlib old.buildInputs) ++ [tdlib-pidgin];
-
patches = [(
-
prev.fetchpatch {
-
url = "https://github.com/BenWiederhake/tdlib-purple/commit/db2a900a6d999e9df120a63d27c2bb3312aeddd5.patch";
-
sha256 = "04p24zviqp0hvvfa2khrh0n5wwfjyrmc6wzrm06mg1k6li5d73jr";
-
}
-
)];
-
});
-
};
-
}
-21
overlays/treesitter/default.nix
···
-
self: super: {
-
tree-sitter = super.tree-sitter.overrideAttrs (old: rec {
-
name = "tree-sitter";
-
version = "0.20.9";
-
src = super.fetchFromGitHub {
-
owner = "tree-sitter";
-
repo = "tree-sitter";
-
rev = "v${version}";
-
sha256 = "sha256-NxWqpMNwu5Ajffw1E2q9KS4TgkCH6M+ctFyi9Jp0tqQ=";
-
fetchSubmodules = true;
-
};
-
cargoDeps = super.rustPlatform.importCargoLock {
-
lockFile = super.fetchurl {
-
url =
-
"https://raw.githubusercontent.com/tree-sitter/tree-sitter/v${version}/Cargo.lock";
-
sha256 = "sha256-CVxS6AAHkySSYI9vY9k1DLrffZC39nM7Bc01vfjMxWk=";
-
};
-
allowBuiltinFetchGit = true;
-
};
-
});
-
}
-2
packages/caddy/default.nix
···
{
fetchurl,
-
lib,
stdenv,
-
pkgs,
}:
stdenv.mkDerivation {
pname = "caddy-bin";
-1
packages/go-jamming/default.nix
···
{
lib,
-
stdenv,
fetchFromGitea,
buildGoModule,
}:
+1 -3
packages/olympus/default.nix
···
{
-
pkgs,
-
lib,
-
makeDesktopItem,
+
pkgs
}: let
olympus = pkgs.stdenv.mkDerivation rec {
pname = "olympus";
+7 -1
shells/default/default.nix
···
{ inputs, pkgs, ...}: let
mkShell = inputs.mkshell-minimal pkgs;
-
in mkShell {}
+
in mkShell {
+
packages = [
+
pkgs.deadnix
+
pkgs.nixfmt-rfc-style
+
pkgs.statix
+
];
+
}
+5 -5
systems/x86_64-linux/marvin/firewall.nix
···
-
{
-
networking.firewall.allowedTCPPorts = [80 443 6912 34197];
-
networking.firewall.allowedUDPPorts = [4367 34197];
-
networking.firewall.trustedInterfaces = ["tailscale0" "wg0"];
-
}
+
{networking.firewall = {
+
allowedTCPPorts = [80 443 6912 34197];
+
allowedUDPPorts = [4367 34197];
+
trustedInterfaces = ["tailscale0" "wg0"];
+
};}
+5 -5
systems/x86_64-linux/marvin/services/bots.nix
···
{
-
config,
pkgs,
-
lib,
...
}: {
-
systemd.services.io-bot = {
+
systemd.services = {
+
io-bot = {
enable = false;
wantedBy = ["multi-user.target"];
after = ["network.target" "io-bot-lavalink.service"];
···
WorkingDirectory = "/home/thehedgehog/io-py";
};
};
-
systemd.services.io-bot-lavalink = {
+
io-bot-lavalink = {
enable = false;
wantedBy = ["multi-user.target"];
after = ["network.target"];
···
WorkingDirectory = "/home/thehedgehog/io-py/config";
};
};
-
systemd.services.misc-bot = {
+
misc-bot = {
enable = false;
wantedBy = ["multi-user.target"];
after = ["network.target"];
···
RestartSec = 3;
WorkingDirectory = "/home/thehedgehog/bots/bot1";
};
+
};
};
}
+12 -8
systems/x86_64-linux/marvin/services/buildbot.nix
···
group = "buildbot";
};
in {
-
services.buildbot-nix.master = {
+
services = {
+
buildbot-nix.master = {
enable = true;
dbUrl = "postgresql://buildbot@localhost/buildbot";
workersFile = as.buildbot-workers.path;
···
domain = d.extUrl;
useHttps = true;
};
-
services.postgresql.ensureUsers = [{
-
name = "buildbot";
-
ensureDBOwnership = true;
-
ensureClauses.login = true;
-
}];
-
services.postgresql.ensureDatabases = [ "buildbot" ];
-
services.buildbot-master.port = 6915;
+
postgresql = {
+
ensureUsers = [{
+
name = "buildbot";
+
ensureDBOwnership = true;
+
ensureClauses.login = true;
+
}];
+
ensureDatabases = [ "buildbot" ];
+
};
+
buildbot-master.port = 6915;
+
};
age.secrets = {
buildbot-gitea-token = bbSecret // {
file = ../secrets/buildbot-gitea-token.age;
+5 -3
systems/x86_64-linux/marvin/services/git.nix
···
services.forgejo = {
enable = true;
lfs.enable = true;
-
database.type = "postgres";
-
database.createDatabase = true;
-
database.passwordFile = age.forgejo-db-pw.path;
+
database = {
+
type = "postgres";
+
createDatabase = true;
+
passwordFile = age.forgejo-db-pw.path;
+
};
mailerPasswordFile = age.forgejo-mail-pw.path;
settings = {
DEFAULT = {
-5
systems/x86_64-linux/marvin/services/golink.nix
···
{
-
config,
-
lib,
-
pkgs,
-
...
-
}: {
services.golink = {
enable = true;
tailscaleAuthKeyFile = /run/agenix/golink-authkey;
+4 -4
systems/x86_64-linux/marvin/services/iceshrimp.nix
···
d = lib.data.services.iceshrimp;
package = inputs.iceshrimp.packages.x86_64-linux.iceshrimp-pre.overrideAttrs
-
(old: rec {
+
rec {
version = "2023.12.7-pyrox1";
src = pkgs.fetchgit {
url = "https://iceshrimp.dev/pyrox/iceshrimp";
···
fetchLFS = true;
};
patches = [];
-
});
+
};
in {
services.iceshrimp = {
inherit package;
···
createDb = true;
configureNginx.enable = false;
settings = {
+
inherit (d) port;
url = "https://${d.extUrl}";
accountDomain = "pyrox.dev";
-
port = d.port;
redis.port = 6997;
maxNoteLength = 16384;
maxCaptionLength = 8192;
···
};
age.secrets = {
iceshrimp-secret-config = {
+
inherit (config.services.iceshrimp) group;
file = ../secrets/iceshrimp-secret-config.age;
owner = config.services.iceshrimp.user;
-
group = config.services.iceshrimp.group;
};
iceshrimp-db-password = {
file = ../secrets/iceshrimp-db-password.age;
+1 -2
systems/x86_64-linux/marvin/services/matrix.nix
···
{
-
config,
pkgs,
inputs,
lib,
···
package = inputs.conduit.packages.${pkgs.system}.default;
settings.global = {
+
inherit (d) port;
server_name = "pyrox.dev";
-
port = d.port;
max_request_size = 1024 * 1024 * 50;
allow_registration = false;
allow_federation = true;
+1 -1
systems/x86_64-linux/marvin/services/nextcloud/imaginary.nix
···
d = lib.py.data.services.nextcloud-imaginary;
in{
services.imaginary = {
+
inherit (d) port;
enable = true;
address = "localhost";
-
port = d.port;
settings.return-size = true;
settings.disable-endpoints = "form";
};
+1 -1
systems/x86_64-linux/marvin/services/nginx.nix
···
services.nginx = {
virtualHosts = {
"${n.extUrl}" = {
-
listen = [ { addr = "0.0.0.0"; port = n.port; } ];
+
listen = [ { inherit (n) port; addr = "0.0.0.0"; } ];
};
};
};
+13 -12
systems/x86_64-linux/marvin/services/podman.nix
···
-
{
-
virtualisation.docker.enable = true;
-
virtualisation.oci-containers.backend = "docker";
-
virtualisation.docker.storageDriver = "zfs";
-
virtualisation.docker.autoPrune.enable = true;
-
virtualisation.docker.liveRestore = true;
-
virtualisation.docker.daemon.settings = {
-
ipv6 = true;
-
experimental = true;
-
ip6tables = true;
-
fixed-cidr-v6 = "2001:db8:1::/64";
+
{virtualisation = {
+
oci-containers.backend = "docker";
+
docker = {
+
enable = true;
+
storageDriver = "zfs";
+
autoPrune.enable = true;
+
liveRestore = true;
+
daemon.settings = {
+
experimental = true;
+
ip6tables = true;
+
fixed-cidr-v6 = "2001:db8:1::/64";
+
};
};
-
}
+
};}
+3
systems/x86_64-linux/marvin/services/prosody.nix
···
{
+
# deadnix: skip
config,
+
# deadnix: skip
pkgs,
+
# deadnix: skip
lib,
...
}: {services.prosody = {enable = true;};}
+1 -1
systems/x86_64-linux/marvin/services/radicale.nix
···
-
{pkgs, lib, config, ...}: let
+
{lib, config, ...}: let
d = lib.py.data.services.radicale;
p = toString d.port;
in {
+1 -1
systems/x86_64-linux/marvin/services/redlib.nix
···
d = lib.py.data.services.redlib;
in {
services.libreddit = {
+
inherit (d) port;
enable = true;
package = pkgs.redlib;
-
port = d.port;
openFirewall = false;
};
}
+14 -12
systems/x86_64-linux/prefect/bootloader.nix
···
grub.device = "/dev/sda";
grub.enable = true;
};
-
initrd.availableKernelModules = [
-
"ata_piix"
-
"uhci_hcd"
-
"xen_blkfront"
-
"ahci"
-
"xhci_pci"
-
"virtio_pci"
-
"sd_mod"
-
"sr_mod"
-
];
-
initrd.kernelModules = ["nvme"];
-
initrd.supportedFilesystems = ["btrfs" "vfat" "f2fs" "zfs"];
+
initrd = {
+
availableKernelModules = [
+
"ata_piix"
+
"uhci_hcd"
+
"xen_blkfront"
+
"ahci"
+
"xhci_pci"
+
"virtio_pci"
+
"sd_mod"
+
"sr_mod"
+
];
+
kernelModules = ["nvme"];
+
supportedFilesystems = ["btrfs" "vfat" "f2fs" "zfs"];
+
};
supportedFilesystems = lib.mkForce ["btrfs" "vfat" "f2fs" "zfs"];
kernelPackages = pkgs.linuxPackages_6_1;
kernel.sysctl = {
+1 -1
systems/x86_64-linux/prefect/dn42/bgp.nix
···
-
{...}: {
+
{
sessions = [
# Lutoma
# {
+6 -5
systems/x86_64-linux/prefect/dn42/services.nix
···
'';
bgp = import ./bgp.nix {};
in {
-
systemd.timers.dn42-roa = {
+
systemd = {
+
timers.dn42-roa = {
description = "Trigger a ROA table update";
timerConfig = {
···
wantedBy = ["timers.target"];
before = ["bird.service"];
};
-
systemd.services = {
+
services = {
dn42-roa = {
after = ["network.target"];
description = "DN42 ROA Updated";
···
serviceConfig = {ExecStart = "${script}/bin/update-roa";};
};
};
-
systemd.services.bird-lg-proxy.serviceConfig.User = lib.mkForce "bird2";
-
systemd.services.bird-lg-proxy.serviceConfig.Group = lib.mkForce "bird2";
+
services.bird-lg-proxy.serviceConfig.User = lib.mkForce "bird2";
+
services.bird-lg-proxy.serviceConfig.Group = lib.mkForce "bird2";
+
};
services = {
bird-lg = {
···
+ bgp.extraConfig;
};
};
-
users.users.thehedgehog.extraGroups = ["bird2"];
}
+1 -1
systems/x86_64-linux/prefect/dn42/tunnels.nix
···
{
tunnel,
-
ospf,
...
}: let
+
# deadnix: skip
defaultPubKey = "e6kp9sca4XIzncKa9GEQwyOnMjje299Xg9ZdgXWMwHg=";
defaultPrivKeyFile = "/run/agenix/dn42-privkey";
defaultLocalIPv4 = "172.20.43.96";
+5 -3
systems/x86_64-linux/prefect/dn42/wireguard.nix
···
{
-
config,
pkgs,
lib,
...
···
defaultLocalIPv4 = "172.20.43.96/32";
defaultLocalIPv6 = "fe80::1/64";
privKeyFile = "/run/agenix/dn42-privkey";
+
# deadnix: skip
defaultPubKey = "e6kp9sca4XIzncKa9GEQwyOnMjje299Xg9ZdgXWMwHg=";
in {
environment.systemPackages = [pkgs.wireguard-tools];
networking.wireguard.interfaces = import ./tunnels.nix rec {
customTunnel = listenPort: privKeyFile: peerPubKey: endpoint: name: peerIPv4: peerIPv6: localIPv4: localIPv6: isOspf: {
-
listenPort = listenPort;
+
inherit listenPort;
privateKeyFile = privKeyFile;
allowedIPsAsRoutes = false;
peers = [
{
+
inherit endpoint;
publicKey = peerPubKey;
allowedIPs = ["0.0.0.0/0" "::/0"];
-
endpoint = endpoint;
dynamicEndpointRefreshSeconds = 5;
persistentKeepalive = 15;
}
···
+ lib.optionalString isOspf
"${pkgs.iproute2}/bin/ip -6 addr add ${defaultLocalIPv6} dev ${name}";
};
+
# deadnix: skip
tunnel = listenPort: privKey: peerPubKey: localIPv4: localIPv6: endpoint: name: peerIPv4: peerIPv6:
customTunnel listenPort privKeyFile peerPubKey endpoint name peerIPv4
peerIPv6
localIPv4
localIPv6
false;
+
# deadnix: skip
ospf = listenPort: privKey: peerPubKey: endpoint: name: peerIPv4: peerIPv6: ULAIPv6:
customTunnel listenPort privKeyFile peerPubKey endpoint name peerIPv4
peerIPv6
-2
systems/x86_64-linux/prefect/networking.nix
···
{
lib,
-
pkgs,
-
config,
...
}: {
networking = {
+1
systems/x86_64-linux/prefect/secrets/secrets.nix
···
let
yubi-back = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTVGi3PItsbUhFgnFZlqo1iUggL4npMg94+9FsyhEPfShcQwJK2/jJzjv5S9KPuk3cY7aoqyVFLbnasSBZPXmscJmOiVNvtWvHoC3QPXvf3IAcVZ5KOLpY2NJlPx/pAb31C6ewtg8v3VlyhL4zEp6M+AGwXX51tFDh2GnYD+7SNF+aMhKCrX63syAhgPy3F8mZ2RIDLAu+lsYlwdpWRkSEv9kcjX/6+3QgUWjfPBaKEeYID22ihSuj7+AiuAt0gM4q0TY/Hpcx+qDLonrIuBnm1hMZDgbv//D0sHIUxJQkGTKTEbkZxoh0Qri7UV/V6l3mETaG40deuemMU7RFY7Khl8RajNZ+9z0FdquS/HCt8+fYQk6eLneJrMIQ1bI4awrtblG3P2Yf2QUu+H3kfCQe44R3WjUugTbNtumVgyQBzl2dzlIVn1pZBeyZy70XCgbaFKkDR8Y/qZiUoZ0afP3vTOXhkn5UBfutTKwUiSGh3S8Ge5YhNgKHWE2eQp1ckEm0IMJV/q5Nsw/yBBXj/kfD8ekz96LQ+gP5JFLq4EaipXI7FM4aZNOBUZU1l/sCEuq7m997nrBucTKqGm7Ho3rq7bgdj4f6GyUJXSMOM1cN61LLrRumZGGTH8WghVL7ligxZyNFcQoudR8jfpf4mrgRxipQOe1A2umvuufMr+l/bw==";
yubi-main = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBBsOIMMZVmleClXfqUMrnmyh8PFuyiJqHKEZ51Xy746";
+
# deadnix: skip
backup = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCyTiGctsHaTUlRJn2XQ/745dD0UWGWO8W0en8J5rf7BLI8lL/hPUmbNt45vC5754LXcBjnp1t/1FNgiGhvNZIWJpC+elBmhyMhg8z1exRZPD+as7XaH7scnij2vSbSphQFUqH433ggAGe77x5bc7wKFp9n7vj8G1u0JJxMEe1M7kNFY0+ShNtaHna3LxiQOVcW7qVlNKZP8Ol1V7kZLblRADCJMTYOXDIbktA8bbGRfGhbNjJGkL665qz36haYwb2i6A4sC7Y583N8ro8hIDG/ByJqwbl/Sz4rSxkT6G4+OdBvS6sa7TovNXHjmQCculMIltdog7UhgyBsim1sTzxAen3YyFRi1Cz/kLM0oH39m/W4IoMvJcNZCJ3ItLgy+lEVMd87jVOqfuq/hyjHVI0wJtU2Si2HTxv7aKL8gPzqXwbNH+nhkhlQ0ZH8zKVBunOgLDgsmGIky5X/T3bpWZpIoFkOR7AYrId/5dOeGM3pHhHb6woZ3SRubZ43Ah/VdJM=";
prefect = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP532AB5mkNvE29MkDDY8HEf8ZdktGWiI0PzLrvbmLQe";
in {
+5 -4
systems/x86_64-linux/prefect/services/mailserver/default.nix
···
{
lib,
-
config,
...
}: {
imports = [./logins.nix ./monitoring.nix ./overrides.nix];
···
autoIndex = true;
enforced = "body";
indexAttachments = true;
-
maintenance.enable = true;
-
maintenance.onCalendar = "daily";
-
maintenance.randomizedDelaySec = 1000;
+
maintenance = {
+
enable = true;
+
onCalendar = "daily";
+
randomizedDelaySec = 1000;
+
};
maxSize = 20;
memoryLimit = 2048;
minSize = 2;
+2 -10
systems/x86_64-linux/prefect/services/nginx/default.nix
···
-
{ config
-
, lib
-
, pkgs
+
{ lib
, ...
-
}:
-
let
-
-
nm = pkgs.nginxModules;
-
-
in
-
{
+
}: {
services.nginx = {
enable = true;
additionalModules = [ ];
+5 -3
systems/x86_64-linux/prefect/services/tailscale.nix
···
{config, ...}: {
services.tailscale = {enable = true;};
-
networking.firewall.trustedInterfaces = ["tailscale0"];
-
networking.firewall.allowedUDPPorts = [config.services.tailscale.port];
-
networking.firewall.checkReversePath = "loose";
+
networking.firewall = {
+
trustedInterfaces = ["tailscale0"];
+
allowedUDPPorts = [config.services.tailscale.port];
+
checkReversePath = "loose";
+
};
}
+14 -12
systems/x86_64-linux/thought/bootloader.nix
···
grub.device = "/dev/sda";
grub.enable = true;
};
-
initrd.availableKernelModules = [
-
"ata_piix"
-
"uhci_hcd"
-
"xen_blkfront"
-
"ahci"
-
"xhci_pci"
-
"virtio_pci"
-
"sd_mod"
-
"sr_mod"
-
];
-
initrd.kernelModules = ["nvme"];
-
initrd.supportedFilesystems = ["btrfs" "vfat" "f2fs"];
+
initrd = {
+
availableKernelModules = [
+
"ata_piix"
+
"uhci_hcd"
+
"xen_blkfront"
+
"ahci"
+
"xhci_pci"
+
"virtio_pci"
+
"sd_mod"
+
"sr_mod"
+
];
+
kernelModules = ["nvme"];
+
supportedFilesystems = ["btrfs" "vfat" "f2fs"];
+
};
supportedFilesystems = lib.mkForce ["btrfs" "vfat" "f2fs"];
kernelPackages = pkgs.linuxPackages_latest;
kernel.sysctl = {
+5 -3
systems/x86_64-linux/thought/firewall.nix
···
{
-
networking.firewall.enable = true;
-
networking.firewall.allowedTCPPorts = [8000];
-
networking.firewall.allowedUDPPorts = [34197];
+
networking.firewall = {
+
enable = true;
+
allowedTCPPorts = [8000];
+
allowedUDPPorts = [34197];
+
};
services.ferm = {
enable = true;
config = ''
-2
systems/x86_64-linux/thought/networking.nix
···
{
lib,
-
pkgs,
-
config,
...
}: {
networking = {
+4
systems/x86_64-linux/thought/secrets/secrets.nix
···
let
+
# deadnix: skip
yubi-back = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTVGi3PItsbUhFgnFZlqo1iUggL4npMg94+9FsyhEPfShcQwJK2/jJzjv5S9KPuk3cY7aoqyVFLbnasSBZPXmscJmOiVNvtWvHoC3QPXvf3IAcVZ5KOLpY2NJlPx/pAb31C6ewtg8v3VlyhL4zEp6M+AGwXX51tFDh2GnYD+7SNF+aMhKCrX63syAhgPy3F8mZ2RIDLAu+lsYlwdpWRkSEv9kcjX/6+3QgUWjfPBaKEeYID22ihSuj7+AiuAt0gM4q0TY/Hpcx+qDLonrIuBnm1hMZDgbv//D0sHIUxJQkGTKTEbkZxoh0Qri7UV/V6l3mETaG40deuemMU7RFY7Khl8RajNZ+9z0FdquS/HCt8+fYQk6eLneJrMIQ1bI4awrtblG3P2Yf2QUu+H3kfCQe44R3WjUugTbNtumVgyQBzl2dzlIVn1pZBeyZy70XCgbaFKkDR8Y/qZiUoZ0afP3vTOXhkn5UBfutTKwUiSGh3S8Ge5YhNgKHWE2eQp1ckEm0IMJV/q5Nsw/yBBXj/kfD8ekz96LQ+gP5JFLq4EaipXI7FM4aZNOBUZU1l/sCEuq7m997nrBucTKqGm7Ho3rq7bgdj4f6GyUJXSMOM1cN61LLrRumZGGTH8WghVL7ligxZyNFcQoudR8jfpf4mrgRxipQOe1A2umvuufMr+l/bw==";
+
# deadnix: skip
yubi-main = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBBsOIMMZVmleClXfqUMrnmyh8PFuyiJqHKEZ51Xy746";
+
# deadnix: skip
backup = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCyTiGctsHaTUlRJn2XQ/745dD0UWGWO8W0en8J5rf7BLI8lL/hPUmbNt45vC5754LXcBjnp1t/1FNgiGhvNZIWJpC+elBmhyMhg8z1exRZPD+as7XaH7scnij2vSbSphQFUqH433ggAGe77x5bc7wKFp9n7vj8G1u0JJxMEe1M7kNFY0+ShNtaHna3LxiQOVcW7qVlNKZP8Ol1V7kZLblRADCJMTYOXDIbktA8bbGRfGhbNjJGkL665qz36haYwb2i6A4sC7Y583N8ro8hIDG/ByJqwbl/Sz4rSxkT6G4+OdBvS6sa7TovNXHjmQCculMIltdog7UhgyBsim1sTzxAen3YyFRi1Cz/kLM0oH39m/W4IoMvJcNZCJ3ItLgy+lEVMd87jVOqfuq/hyjHVI0wJtU2Si2HTxv7aKL8gPzqXwbNH+nhkhlQ0ZH8zKVBunOgLDgsmGIky5X/T3bpWZpIoFkOR7AYrId/5dOeGM3pHhHb6woZ3SRubZ43Ah/VdJM=";
+
# deadnix: skip
thought = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGkJcLykggEp427h2IywoiR74Yl3N+FU6Pwx9ZFQ3vjq";
in {
imports = [../../common/secrets/secrets.nix];
+5 -3
systems/x86_64-linux/thought/services/tailscale.nix
···
{config, ...}: {
services.tailscale = {enable = true;};
-
networking.firewall.trustedInterfaces = ["tailscale0"];
-
networking.firewall.allowedUDPPorts = [config.services.tailscale.port];
-
networking.firewall.checkReversePath = "loose";
+
networking.firewall = {
+
trustedInterfaces = ["tailscale0"];
+
allowedUDPPorts = [config.services.tailscale.port];
+
checkReversePath = "loose";
+
};
}
-1
systems/x86_64-linux/zaphod/bootloader.nix
···
pkgs,
lib,
config,
-
inputs,
...
}: {
boot = {
+1 -6
systems/x86_64-linux/zaphod/default.nix
···
-
{
-
pkgs,
-
lib,
-
inputs,
-
...
-
}: {
+
{ ... }: {
imports = [
# Common Config
../default.nix
+8 -5
systems/x86_64-linux/zaphod/kde.nix
···
-
{
-
services.xserver.enable = false;
-
services.xserver.displayManager.sddm.enable = false;
-
services.xserver.displayManager.defaultSession = "plasmawayland";
-
services.xserver.desktopManager.plasma5 = {
+
{services.xserver = {
+
enable = false;
+
displayManager = {
+
sddm.enable = false;
+
defaultSession = "plasmawayland";
+
};
+
desktopManager.plasma5 = {
enable = false;
phononBackend = "vlc";
runUsingSystemd = true;
useQtScaling = true;
+
};
};
qt = {
enable = true;
+15 -12
systems/x86_64-linux/zaphod/misc.nix
···
# Misc settings(documentation etc}
{
lib,
-
pkgs,
-
config,
...
}: {
documentation = {
···
};
nixos.enable = false;
};
-
environment.enableAllTerminfo = true;
-
environment.homeBinInPath = true;
-
environment.localBinInPath = true;
-
environment.noXlibs = false;
+
environment = {
+
homeBinInPath = true;
+
localBinInPath = true;
+
noXlibs = false;
+
};
services.openssh.settings.PermitRootLogin = lib.mkForce "yes";
time.timeZone = "America/New_York";
#
# systemd.tmpfiles.rules = ["L+ /lib64 - - - - /run/current-system/sw/lib64"];
-
virtualisation.virtualbox.host.enable = false;
-
virtualisation.virtualbox.host.enableExtensionPack = false;
-
virtualisation.virtualbox.guest.enable = false;
-
virtualisation.virtualbox.guest.clipboard = true;
-
virtualisation.virtualbox.guest.seamless = false;
-
virtualisation.virtualbox.guest.draganddrop = true;
+
virtualisation.virtualbox = {
+
host.enable = false;
+
host.enableExtensionPack = false;
+
guest = {
+
enable = false;
+
clipboard = true;
+
seamless = false;
+
draganddrop = true;
+
};
+
};
# Enable Virt-manager
virtualisation.libvirtd.enable = false;
programs.dconf.enable = true;
+15 -13
systems/x86_64-linux/zaphod/programs/misc.nix
···
-
{pkgs, ...}: {
+
{pkgs, ...}: {programs = {
# Bandwhich - Bandwidth monitor TUI
-
programs.bandwhich.enable = true;
+
bandwhich.enable = true;
# Fish shell
-
programs.fish.enable = true;
+
fish.enable = true;
# Git
-
programs.git.enable = true;
-
programs.git.package = pkgs.py.customGit;
-
programs.git.lfs.enable = true;
+
git = {
+
enable = true;
+
package = pkgs.py.customGit;
+
lfs.enable = true;
+
};
# KDEConnect
-
programs.kdeconnect.enable = true;
-
programs.kdeconnect.package = pkgs.kdePackages.kdeconnect-kde;
+
kdeconnect.enable = true;
+
kdeconnect.package = pkgs.kdePackages.kdeconnect-kde;
# Steam
-
programs.steam.enable = true;
+
steam.enable = true;
# Java
-
programs.adb.enable = true;
-
programs.java.enable = false;
+
adb.enable = true;
+
java.enable = false;
# Wireshark
-
programs.wireshark.enable = true;
-
}
+
wireshark.enable = true;
+
};}
+5 -3
systems/x86_64-linux/zaphod/services/docker.nix
···
virtualisation.docker = {
enable = true;
package = betterDocker;
-
rootless.enable = true;
-
rootless.package = betterDocker;
-
rootless.setSocketVariable = true;
+
rootless = {
+
enable = true;
+
package = betterDocker;
+
setSocketVariable = true;
+
};
storageDriver = "btrfs";
};
}
-1
systems/x86_64-linux/zaphod/services/misc.nix
···
{
config,
lib,
-
pkgs,
...
}: {
services = {