What a clusterfuck

This commit is contained in:
Jimbo 2024-10-09 03:36:08 -04:00
parent 91f88b8bb2
commit f29273be22
221 changed files with 779 additions and 956 deletions

2
.gitattributes vendored
View file

@ -1 +1 @@
extras/secrets.nix filter=git-crypt diff=git-crypt variables/secrets/** filter=git-crypt diff=git-crypt

View file

@ -1,16 +0,0 @@
{ inputs, ... }: {
additions = final: _prev: import ./pkgs {pkgs = final;};
selfsuper = (self: super: {
mpv = super.mpv.override {
scripts = with self.mpvScripts; [mpris sponsorblock thumbnail];
};
});
finalprev = (final: prev: {
unstable = import inputs.nixpkgs-unstable {
system = final.system;
config.allowUnfree = true;
};
});
}

View file

@ -1,4 +0,0 @@
{ pkgs, ... }: {
xash3d = pkgs.callPackage ./xash/xash3d.nix {};
hlsdk = pkgs.callPackage ./xash/hlsdk.nix {};
}

View file

@ -1,72 +0,0 @@
{ ... }: {
# Define domains
jimDomain = "";
# User account passwords, generated with 'mkpasswd -m sha-512'
jimboAccPass = "";
# External emails
jimUsername = "";
jimEmail = "";
# SSH Keys
jimKeys = [
""
""
];
# System timezone in standard timezone identifier format
timeZone = "";
# Cloudflare API key
flareApiKey = "";
# Wireguard keys, generated with the wg command
wgServerPriv = "";
wgServerPub = "";
wgClientPriv = "";
wgClientPub = "";
wgPixel9Pub = "";
wgOraclePub = "";
# Icecast, plaintext
castAdminPass = "";
castSourcePass = "";
# Photoprism, plaintext
prismAdminPass = "";
# Matrix secrets
matrixSecret = "";
discordBotID = "";
discordBotToken = "";
# Pixelfed secret, must be 32 characters long
pixelfedKey = ''
APP_KEY=
'';
# Transmission credentials, plaintext
transmissionCredFile = ''
{
"rpc-username": "",
"rpc-password": ""
}
'';
# Email cleartext passwords
noreplyPassword = "";
# Email account hashes, generated with 'mkpasswd -m bcrypt'
noreplyMailHash = "";
jimboMailHash = "";
lunaMailHash = "";
freecornMailHash = "";
tinyMailHash = "";
# IPs
jimIP1 = "";
jimIP2 = "";
lunaIP = "";
cornIP = "";
}

Binary file not shown.

View file

@ -33,6 +33,27 @@
"type": "gitlab" "type": "gitlab"
} }
}, },
"crane": {
"inputs": {
"nixpkgs": [
"lanzaboote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1717535930,
"narHash": "sha256-1hZ/txnbd/RmiBPNUs7i8UQw2N89uAK3UzrGAWdnFfU=",
"owner": "ipetkov",
"repo": "crane",
"rev": "55e7754ec31dac78980c8be45f8a28e80e370946",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -50,6 +71,22 @@
} }
}, },
"flake-compat_2": { "flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_3": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1673956053, "lastModified": 1673956053,
@ -65,9 +102,48 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"lanzaboote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1717285511,
"narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1681202837, "lastModified": 1681202837,
@ -83,6 +159,28 @@
"type": "github" "type": "github"
} }
}, },
"gitignore": {
"inputs": {
"nixpkgs": [
"lanzaboote",
"pre-commit-hooks-nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"hardware": { "hardware": {
"locked": { "locked": {
"lastModified": 1727665282, "lastModified": 1727665282,
@ -120,10 +218,37 @@
"type": "github" "type": "github"
} }
}, },
"lanzaboote": {
"inputs": {
"crane": "crane",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1718178907,
"narHash": "sha256-eSZyrQ9uoPB9iPQ8Y5H7gAmAgAvCw3InStmU3oEjqsE=",
"owner": "nix-community",
"repo": "lanzaboote",
"rev": "b627ccd97d0159214cee5c7db1412b75e4be6086",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "v0.4.1",
"repo": "lanzaboote",
"type": "github"
}
},
"mailserver": { "mailserver": {
"inputs": { "inputs": {
"blobs": "blobs", "blobs": "blobs",
"flake-compat": "flake-compat", "flake-compat": "flake-compat_2",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixpkgs-24_05": "nixpkgs-24_05", "nixpkgs-24_05": "nixpkgs-24_05",
"utils": "utils" "utils": "utils"
@ -145,8 +270,8 @@
}, },
"minecraft": { "minecraft": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_3",
"flake-utils": "flake-utils", "flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
@ -192,6 +317,22 @@
"type": "indirect" "type": "indirect"
} }
}, },
"nixpkgs-stable": {
"locked": {
"lastModified": 1710695816,
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "614b4613980a522ba49f0d194531beddbb7220d3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1727348695, "lastModified": 1727348695,
@ -270,11 +411,39 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks-nix": {
"inputs": {
"flake-compat": [
"lanzaboote",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"lanzaboote",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1717664902,
"narHash": "sha256-7XfBuLULizXjXfBYy/VV+SpYMHreNRHk9nKMsm1bgb4=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "cc4d466cb1254af050ff7bdf47f6d404a7c646d1",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"blender-bin": "blender-bin", "blender-bin": "blender-bin",
"hardware": "hardware", "hardware": "hardware",
"home-manager": "home-manager", "home-manager": "home-manager",
"lanzaboote": "lanzaboote",
"mailserver": "mailserver", "mailserver": "mailserver",
"minecraft": "minecraft", "minecraft": "minecraft",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_4",
@ -282,6 +451,31 @@
"nur": "nur" "nur": "nur"
} }
}, },
"rust-overlay": {
"inputs": {
"flake-utils": [
"lanzaboote",
"flake-utils"
],
"nixpkgs": [
"lanzaboote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1717813066,
"narHash": "sha256-wqbRwq3i7g5EHIui0bIi84mdqZ/It1AXBSLJ5tafD28=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "6dc3e45fe4aee36efeed24d64fc68b1f989d5465",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@ -312,9 +506,24 @@
"type": "github" "type": "github"
} }
}, },
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": { "utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1709126324, "lastModified": 1709126324,

View file

@ -1,16 +1,20 @@
{ {
description = "Jimbo's systems as a flake";
inputs = { inputs = {
# Nixpkgs # Nixpkgs
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";
mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05"; mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
blender-bin.url = "https://flakehub.com/f/edolstra/blender-bin/1.0.8.tar.gz"; blender-bin.url = "https://flakehub.com/f/edolstra/blender-bin/1.0.8.tar.gz";
minecraft.url = "github:Infinidoge/nix-minecraft"; minecraft.url = "github:Infinidoge/nix-minecraft";
hardware.url = "github:nixos/nixos-hardware/master"; hardware.url = "github:nixos/nixos-hardware/master";
# Secure boot
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.1";
inputs.nixpkgs.follows = "nixpkgs";
};
# Home manager # Home manager
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-24.05"; url = "github:nix-community/home-manager/release-24.05";
@ -21,11 +25,12 @@
outputs = { outputs = {
self, self,
nixpkgs, nixpkgs,
nixpkgs-unstable, unstable,
nur, nur,
mailserver, mailserver,
blender-bin, blender-bin,
hardware, hardware,
lanzaboote,
home-manager, home-manager,
... ...
} @inputs: let } @inputs: let
@ -35,12 +40,16 @@
"x86_64-linux" "x86_64-linux"
]; ];
in rec { in rec {
# Your custom packages channels = {
# Accessible through 'nix build', 'nix shell', etc master = import nixpkgs {
packages = forAllSystems (system: import ./extras/pkgs nixpkgs.legacyPackages.${system}); inherit (flake) system overlays;
config.allowUnfree = true;
};
unstable = import unstable { inherit (flake) system; };
nur = import nur { nurpkgs = import nixpkgs { inherit (flake) system; }; };
};
# Your custom packages and modifications, exported as overlays packages = import ./packages/default.nix { inherit (nix) pkgs; };
overlays = import ./extras/overlays.nix {inherit inputs;};
# Variables defined so they can be accessed globally # Variables defined so they can be accessed globally
secrets = import ./extras/secrets.nix; secrets = import ./extras/secrets.nix;
@ -55,27 +64,28 @@
JimDesktop = nixpkgs.lib.nixosSystem { JimDesktop = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs outputs;}; specialArgs = {inherit inputs outputs;};
modules = [ modules = [
./hosts/JimDesktop/configuration.nix ./system/hosts/JimDesktop/configuration.nix
lanzaboote.nixosModules.lanzaboote
]; ];
}; };
JimServer = nixpkgs.lib.nixosSystem { JimServer = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs outputs;}; specialArgs = {inherit inputs outputs;};
modules = [ modules = [
./JimServer/configuration.nix ./system/hosts/JimServer/configuration.nix
mailserver.nixosModule mailserver.nixosModule
]; ];
}; };
JimPine = nixpkgs.lib.nixosSystem { JimPine = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs outputs;}; specialArgs = {inherit inputs outputs;};
modules = [ modules = [
./hosts/JimPine/configuration.nix ./system/hosts/JimPine/configuration.nix
hardware.nixosModules.pine64-pinebook-pro hardware.nixosModules.pine64-pinebook-pro
]; ];
}; };
JimLenovo = nixpkgs.lib.nixosSystem { JimLenovo = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs outputs;}; specialArgs = {inherit inputs outputs;};
modules = [ modules = [
./hosts/JimLenovo/configuration.nix ./system/hosts/JimLenovo/configuration.nix
]; ];
}; };
}; };
@ -86,7 +96,7 @@
pkgs = nixpkgs.legacyPackages.x86_64-linux; pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = {inherit inputs outputs;}; extraSpecialArgs = {inherit inputs outputs;};
modules = [ modules = [
./hosts/JimDesktop/home.nix ./home/hosts/JimDesktop/home.nix
nur.nixosModules.nur nur.nixosModules.nur
]; ];
}; };
@ -94,14 +104,14 @@
pkgs = nixpkgs.legacyPackages.x86_64-linux; pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = {inherit inputs outputs;}; extraSpecialArgs = {inherit inputs outputs;};
modules = [ modules = [
./hosts/JimServer/home.nix ./home/hosts/JimServer/home.nix
]; ];
}; };
"jimbo@JimPine" = home-manager.lib.homeManagerConfiguration { "jimbo@JimPine" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.aarch64-linux; pkgs = nixpkgs.legacyPackages.aarch64-linux;
extraSpecialArgs = {inherit inputs outputs;}; extraSpecialArgs = {inherit inputs outputs;};
modules = [ modules = [
./hosts/JimPine/home.nix ./home/hosts/JimPine/home.nix
nur.nixosModules.nur nur.nixosModules.nur
]; ];
}; };
@ -109,7 +119,7 @@
pkgs = nixpkgs.legacyPackages.x86_64-linux; pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = {inherit inputs outputs;}; extraSpecialArgs = {inherit inputs outputs;};
modules = [ modules = [
./hosts/JimLenovo/home.nix ./home/hosts/JimLenovo/home.nix
nur.nixosModules.nur nur.nixosModules.nur
]; ];
}; };
@ -118,7 +128,7 @@
pkgs = nixpkgs.legacyPackages.x86_64-linux; pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = {inherit inputs outputs;}; extraSpecialArgs = {inherit inputs outputs;};
modules = [ modules = [
./hosts/JimTerminal/home.nix ./home/hosts/JimTerminal/home.nix
]; ];
}; };
}; };

View file

@ -1,6 +0,0 @@
{ ... }: {
imports = [
./files
./settings
];
}

View file

@ -1,8 +0,0 @@
{ ... }: {
nixpkgs.overlays = [
outputs.overlays.additions
outputs.overlays.selfsuper
outputs.overlays.finalprev
inputs.blender-bin.overlays.default
];
}

View file

@ -1,10 +0,0 @@
{ ... }: {
imports = [
./default.nix
./modules
./profiles
./programs
./sway
./utils
];
}

View file

@ -1,16 +0,0 @@
{pkgs, lib, config, ...}: {
options = {
gaming.emulators.enable = lib.mkEnableOption "Enable console emulators";
};
config = mkIf config.gaming.emulators.enable; {
home.packages = with pkgs; [
dolphin-emu
cemu
ryujinx
duckstation
pcsx2
unstable.lime3ds
];
};
}

View file

@ -1,14 +0,0 @@
{pkgs, lib, config, ...}: {
options = {
gaming.general.enable = lib.mkEnableOption "Enable PC gaming apps";
};
config = mkIf config.gaming.general.enable; {
home.packages = with pkgs; [
steam
steam-run
heroic
prismlauncher
];
};
}

View file

@ -1,12 +0,0 @@
{pkgs, lib, config, ...}: {
options = {
gaming.xash3d.enable = lib.mkEnableOption "Enable Xash3d for Half-Life";
};
config = mkIf config.gaming.xash3d.enable; {
home.packages = with pkgs; [
xash3d
hlsdk
];
};
}

View file

@ -1,19 +0,0 @@
{ pkgs, lib, config, ... }: {
options = {
misc.avtools.enable = lib.mkEnableOption "Enable audio video tools";
};
imports = mkIf config.misc.avtools.enable [
./obs
];
config = mkIf config.misc.avtools.enable; {
home.packages = with pkgs; [
yt-dlp
spotdl
playerctl
ffmpeg
pulsemixer
];
};
}

View file

@ -1,12 +0,0 @@
{ pkgs, lib, config, ... }: {
options = {
misc.chat.enable = lib.mkEnableOption "Enable chat clients";
};
config = mkIf config.misc.chat.enable; {
home.packages = with pkgs; [
vesktop
fractal
];
};
}

View file

@ -1,17 +0,0 @@
{ pkgs, lib, config, ... }: {
options = {
misc.general.enable = lib.mkEnableOption "Enable general use apps";
};
config = mkIf config.misc.general.enable; {
home.packages = with pkgs; [
imv
qbittorrent
libreoffice-fresh
ffmpegthumbnailer
thunderbird
protonvpn-cli_2
bc
];
};
}

View file

@ -1,19 +0,0 @@
{ pkgs, lib, config, ... }: {
options = {
misc.headless.enable = lib.mkEnableOption "Enable apps that can be used headlessly";
};
config = mkIf config.misc.headless.enable; {
home.packages = with pkgs; [
home-manager
gotop
tcptrack
p7zip
vimv
dua
pciutils
usbutils
protonvpn-cli_2
];
};
}

View file

@ -1,15 +0,0 @@
{ pkgs, lib, config, ... }: {
options = {
production.enable = lib.mkEnableOption "Enable apps used for production";
};
config = mkIf config.misc.production.enable; {
home.packages = with pkgs; [
krita
inkscape
audacity
blender_4_2
sunvox
];
};
}

View file

@ -1,12 +0,0 @@
{ pkgs, lib, config, ... }: {
options = {
remote-desktop.enable = lib.mkEnableOption "Enable remote desktop related apps";
};
config = mkIf misc.remote-desktop.nvidia.enable; {
home.packages = with pkgs; [
moonlight-qt
rustdesk-flutter
];
};
}

View file

@ -1,14 +0,0 @@
{ pkgs, lib, config, ... }: {
options = {
school.enable = lib.mkEnableOption "Enable apps needed for school";
};
config = mkIf config.misc.school.enable; {
home.packages = with pkgs; [
remmina
freerdp
globalprotect-openconnect
zoom-us
];
};
}

View file

@ -1,11 +0,0 @@
{ ... }: {
imports = [
./default.nix
./utils/zsh
./utils/git
./programs/fastfetch
./programs/neovim
./programs/ranger
./programs/tmux
];
}

View file

@ -1,23 +0,0 @@
{
imports = [
# Base configs
./../../system
./../../system/pc.nix
# Hardware
./hardware-configuration.nix
./../../system/modules/boot/systemd
];
# Enable Nvidia drivers
drivers.nvidia.enable = true;
# Set hostname
networking.hostName = "JimDesktop";
# Force Electron to use Wayland
environment.sessionVariables.NIXOS_OZONE_WL = "1";
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "24.05";
}

View file

@ -1,26 +0,0 @@
{config, ...}: {
imports = [
# Common modules
./../../home
./../../home/pc.nix
];
# Useful
general.enable = true;
chat.enable = true;
avtools.enable = true;
production.enable = true;
obs.enable = true;
remotedesktop.enable = false;
school.enable = true;
# Gaming
pcgaming.enable = true;
emulators.enable = false;
xash3d.enable = true;
# Symlinks
home.file = {
"VMs".source = config.lib.file.mkOutOfStoreSymlink "/etc/libvirt/VMs";
};
}

View file

@ -1,45 +0,0 @@
{
imports = [
# Base configs
./../../base.nix
# Import users and groups
./../../users/jimbo.nix
./../../users/groups.nix
# Desktop
./../../desktop/misc.nix
./../../desktop/sway.nix
./../../desktop/greetd-sway.nix
./../../desktop/printing.nix
./../../desktop/gaming.nix
./../../desktop/pipewire.nix
./../../desktop/bluetooth.nix
./../../desktop/firewall.nix
./../../desktop/fonts.nix
./../../desktop/qt.nix
# Laptop/Portable only
./../../modules/wireless.nix
# Modules
./../../modules/security.nix
# Hardware
./hardware-configuration.nix
./../../modules/systemdboot.nix
./../../modules/opengl.nix
# Services
./../../services/openssh.nix
./../../services/gnome-keyring.nix
./../../services/udev.nix
./../../services/mpd.nix
];
# Set hostname
networking.hostName = "JimLenovo";
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "24.05";
}

View file

@ -1,47 +0,0 @@
{ config, lib, pkgs, modulesPath, ... }: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
# Set all boot options
boot = {
# Set a kernel version and load/blacklist drivers
kernelPackages = pkgs.linuxPackages_zen;
blacklistedKernelModules = [
"pcspkr"
];
kernel.sysctl."vm.max_map_count" = 2147483642;
initrd = {
availableKernelModules = [
"nvme"
"xhci_pci"
"usbhid"
"usb_storage"
"sd_mod"
"sdhci_pci"
];
kernelModules = [
"kvm-amd"
];
};
};
# Mount everything as necessary
fileSystems = {
"/" = {
device = "/dev/disk/by-uuid/c0fe8419-88f9-48a0-8c5b-acd4c11f8037";
fsType = "ext4";
};
"/boot" = {
device = "/dev/disk/by-uuid/BF2B-9AE0";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
};
# Enables DHCP on each ethernet and wireless interface.
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -1,17 +0,0 @@
{config, ...}: {
imports = [
# Common modules
./../../home/base.nix
./../../home/pc.nix
./../../home/users/jimbo.nix
];
# Useful
general.enable = true;
chat.enable = true;
avtools.enable = true;
remotedesktop.enable = true;
# Gaming
pcgaming.enable = true;
}

View file

@ -1,49 +0,0 @@
{lib, outputs, ...}: {
imports = [
# Base configs
./../../base.nix
# Import users and groups
./../../users/jimbo.nix
./../../users/groups.nix
# Desktop
./../../desktop/misc.nix
./../../desktop/sway.nix
./../../desktop/greetd-sway.nix
./../../desktop/printing.nix
./../../desktop/pipewire.nix
./../../desktop/bluetooth.nix
./../../desktop/firewall.nix
./../../desktop/fonts.nix
./../../desktop/qt.nix
./../../desktop/wireguard.nix
# Modules
./../../modules/security.nix
# Hardware
./hardware-configuration.nix
./../../modules/extlinux.nix
./../../modules/opengl.nix
./../../modules/filesystems.nix
./../../modules/wireless.nix
# Services
./../../services/openssh.nix
./../../services/gnome-keyring.nix
./../../services/mpd.nix
];
# Set hostname
networking.hostName = "JimPine";
# Disable 32 bit graphics
hardware.opengl.driSupport32Bit = lib.mkForce false;
# Set the VPN IP per machine
networking.wireguard.interfaces."${outputs.ips.wgInt}".ips = [ "${outputs.ips.wgSpan}.17/32" ];
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "24.05";
}

View file

@ -1,21 +0,0 @@
{config, ...}: {
imports = [
# Common modules
./../../home/base.nix
./../../home/pc.nix
./../../home/users/jimbo.nix
];
# Useful
general.enable = true;
chat.enable = true;
avtools.enable = true;
remotedesktop.enable = true;
# Needed to make the speaker work
home.packages = with pkgs; [
alsa-utils
];
wayland.windowManager.sway.config.output.${outputs.displays.dI}.scale = "1.3";
}

View file

@ -1,20 +0,0 @@
{
imports = [
# Base configs
./../../system
./../../system/profiles/server
# Hardware
./hardware-configuration.nix
./../../system/modules/boot/systemd
];
# Set custom openssh port
services.openssh.ports = [ 2222 ];
# Set hostname
networking.hostName = "JimServer";
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "24.05";
}

View file

@ -1,6 +0,0 @@
{
imports = [
./../../home
./../../home/server.nix
];
}

View file

@ -1,14 +0,0 @@
{
imports = [
# Common modules
./../../base.nix
./../../users/jimbo.nix
];
# Rebuild this entire system
programs.zsh = {
shellAliases = {
termswitch = "home-manager switch --flake ~/.home-manager/.#jimbo@JimTerminal --extra-experimental-features 'nix-command flakes'";
};
};
}

View file

@ -1,9 +1,9 @@
{ ... }: { { ... }:
{
imports = [ imports = [
./users ./users
]; ];
# Allow unfree
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion

View file

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View file

Before

Width:  |  Height:  |  Size: 2 MiB

After

Width:  |  Height:  |  Size: 2 MiB

View file

Before

Width:  |  Height:  |  Size: 2.3 MiB

After

Width:  |  Height:  |  Size: 2.3 MiB

View file

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

View file

Before

Width:  |  Height:  |  Size: 314 KiB

After

Width:  |  Height:  |  Size: 314 KiB

View file

@ -0,0 +1,8 @@
{ ... }:
{
imports = [
./gui
./terminal
./misc
];
}

View file

@ -1,20 +1,13 @@
{ ... }: { { ... }:
{
imports = [ imports = [
./easyeffects ./easyeffects
./fastfetch
./foot ./foot
./gaming
./git
./librewolf ./librewolf
./mako ./mako
./mangohud ./mangohud
./misc
./mpv ./mpv
./ncmpcpp
./neovim
./pcmanfm-qt ./pcmanfm-qt
./ranger
./rofi ./rofi
./tmux
]; ];
} }

View file

@ -1,4 +1,5 @@
{pkgs, ...}: { { pkgs, ... }:
{
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
easyeffects easyeffects

View file

@ -1,5 +1,5 @@
{outputs, ...}: { { outputs, ... }:
# Enable a terminal emulator {
programs.foot = { programs.foot = {
enable = true; enable = true;
server.enable = false; server.enable = false;

View file

@ -1,4 +1,5 @@
{pkgs, config, outputs, ...}: let { pkgs, config, outputs, ... }:
let
# FireFox colors # FireFox colors
themeJim = '' themeJim = ''
:root { :root {

View file

@ -1,4 +1,5 @@
{pkgs, outputs, ...}: { { pkgs, outputs, ... }:
{
services.mako = { services.mako = {
enable = true; enable = true;
borderColor = "#${outputs.look.colors.accent}"; borderColor = "#${outputs.look.colors.accent}";

View file

@ -1,10 +1,10 @@
{pkgs, ...}: { { pkgs, ... }:
{
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
mangohud mangohud
]; ];
file = { file = {
# Mangohud config
".config/MangoHud/MangoHud.conf".text = '' ".config/MangoHud/MangoHud.conf".text = ''
table_columns=2 table_columns=2
frametime=0 frametime=0

View file

@ -1,3 +1,4 @@
{ ... }:
{ {
programs.mpv = { programs.mpv = {
enable = true; enable = true;

View file

@ -1,4 +1,5 @@
{ pkgs, ... }: { { pkgs, ... }:
{
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
pcmanfm-qt pcmanfm-qt

View file

@ -1,4 +1,5 @@
{ pkgs, config, outputs, ... }: { { pkgs, config, outputs, ... }:
{
programs.rofi = { programs.rofi = {
enable = true; enable = true;
package = pkgs.rofi-wayland; package = pkgs.rofi-wayland;

View file

@ -0,0 +1,14 @@
{ pkgs, lib, config, ... }:
{
imports = [
./obs
];
home.packages = with pkgs; [
yt-dlp
spotdl
playerctl
ffmpeg
pulsemixer
];
}

View file

@ -1,4 +1,5 @@
{pkgs, lib, config, ...}: { {pkgs, lib, config, ...}:
{
programs.obs-studio = { programs.obs-studio = {
enable = true; enable = true;
plugins = with pkgs.obs-studio-plugins; [ plugins = with pkgs.obs-studio-plugins; [

View file

@ -0,0 +1,7 @@
{ pkgs, lib, config, ... }:
{
home.packages = with pkgs; [
vesktop
fractal
];
}

View file

@ -1,11 +1,12 @@
{ ... }: { { ... }:
{
imports = [ imports = [
./avtools ./avtools
./chat ./chat
./gaming/launchers
./general ./general
./headless ./headless
./production ./production
./remote-desktop ./remote-desktop
./school
]; ];
} }

View file

@ -1,6 +1,7 @@
{ ... }:
{ {
imports = [ imports = [
./general ./launchers
./emulators ./emulators
./xash3d ./xash3d
]; ];

View file

@ -0,0 +1,11 @@
{ pkgs, lib, config, ... }:
{
home.packages = with pkgs; [
dolphin-emu
cemu
ryujinx
duckstation
pcsx2
unstable.lime3ds
];
}

View file

@ -0,0 +1,9 @@
{ pkgs, lib, config, ... }:
{
home.packages = with pkgs; [
steam
steam-run
heroic
prismlauncher
];
}

View file

@ -0,0 +1,6 @@
{ pkgs, lib, config, ... }:
{
home.packages = with pkgs; [
xash3d
];
}

View file

@ -0,0 +1,12 @@
{ pkgs, lib, config, ... }:
{
home.packages = with pkgs; [
imv
qbittorrent
libreoffice-fresh
ffmpegthumbnailer
thunderbird
protonvpn-cli_2
bc
];
}

View file

@ -0,0 +1,14 @@
{ pkgs, lib, config, ... }:
{
home.packages = with pkgs; [
home-manager
gotop
tcptrack
p7zip
vimv
dua
pciutils
usbutils
protonvpn-cli_2
];
}

View file

@ -0,0 +1,10 @@
{ pkgs, lib, config, ... }:
{
home.packages = with pkgs; [
krita
inkscape
audacity
blender_4_2
sunvox
];
}

View file

@ -0,0 +1,7 @@
{ pkgs, lib, config, ... }:
{
home.packages = with pkgs; [
moonlight-qt
rustdesk-flutter
];
}

View file

@ -0,0 +1,9 @@
{ pkgs, lib, config, ... }:
{
home.packages = with pkgs; [
remmina
freerdp
zoom-us
globalprotect-openconnect
];
}

View file

@ -0,0 +1,11 @@
{ ... }:
{
imports = [
./fastfetch
./git
./ncmpcpp
./neovim
./ranger
./tmux
];
}

View file

@ -1,4 +1,5 @@
{ pkgs, ... }: { { pkgs, ... }:
{
home = { home = {
file = let file = let
fastConf = '' fastConf = ''

View file

@ -1,4 +1,5 @@
{ pkgs, outputs, ... }: { { pkgs, outputs, ... }:
{
programs.git = { programs.git = {
enable = true; enable = true;
lfs.enable = true; lfs.enable = true;

View file

@ -1,4 +1,5 @@
{pkgs, ...}: { {pkgs, ...}:
{
programs.ncmpcpp = { programs.ncmpcpp = {
enable = true; enable = true;
settings = { settings = {

View file

@ -1,4 +1,5 @@
{ pkgs, outputs, ... }: { { pkgs, outputs, ... }:
{
programs.neovim = { programs.neovim = {
enable = true; enable = true;
defaultEditor = true; defaultEditor = true;

View file

@ -1,5 +1,5 @@
{ pkgs, ... }: { { pkgs, ... }:
# Enable Ranger {
programs.ranger = { programs.ranger = {
enable = true; enable = true;
settings = { settings = {

View file

@ -1,5 +1,5 @@
{ ... }: { { ... }:
# Enable tmux {
programs.tmux = { programs.tmux = {
enable = true; enable = true;
extraConfig = '' extraConfig = ''

View file

@ -1,4 +1,5 @@
{ ... }: { { ... }:
{
dconf.settings = { dconf.settings = {
"org/gnome/desktop/interface/color-scheme" = { "org/gnome/desktop/interface/color-scheme" = {
color-scheme = "prefer-dark"; color-scheme = "prefer-dark";

View file

@ -1,3 +1,4 @@
{ ... }:
{ {
imports = [ imports = [
./dconf ./dconf

View file

@ -1,4 +1,5 @@
{ pkgs, outputs, ... }: { { pkgs, outputs, ... }:
{
gtk = { gtk = {
enable = true; enable = true;
font = { font = {

View file

@ -1,4 +1,5 @@
{ ... }: { { ... }:
{
xdg.mimeApps.defaultApplications = { xdg.mimeApps.defaultApplications = {
"inode/directory" = ["pcmanfm-qt.desktop"]; "inode/directory" = ["pcmanfm-qt.desktop"];
"text/plain" = ["nvim.desktop"]; "text/plain" = ["nvim.desktop"];

View file

@ -1,4 +1,5 @@
{ pkgs, ... }: { { pkgs, ... }:
{
wayland.windowManager.sway = { wayland.windowManager.sway = {
config = { config = {
bars = [{command = "waybar";}]; bars = [{command = "waybar";}];

View file

@ -1,4 +1,5 @@
{ config, pkgs, outputs, ... }: { { config, pkgs, outputs, ... }:
{
imports = [ imports = [
./hardware ./hardware
./theme ./theme

View file

@ -1,4 +1,5 @@
{ pkgs, outputs, ... }: { { pkgs, outputs, ... }:
{
wayland.windowManager.sway = { wayland.windowManager.sway = {
config = { config = {
# Define monitors # Define monitors

View file

@ -1,4 +1,5 @@
{ pkgs, outputs, ... }: { { pkgs, outputs, ... }:
{
wayland.windowManager.sway = { wayland.windowManager.sway = {
config = let config = let
# Set default modifier and variables # Set default modifier and variables

View file

@ -0,0 +1,14 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
wl-clipboard
wdisplays
clipman
libnotify
grim
slurp
swappy
jq
lm_sensors
];
}

View file

@ -1,4 +1,5 @@
{ pkgs, outputs, ... }: { { pkgs, outputs, ... }:
{
wayland.windowManager.sway = { wayland.windowManager.sway = {
config = { config = {
# Assign workspaces to outputs # Assign workspaces to outputs

View file

@ -1,5 +1,5 @@
{ pkgs, ... }: { { pkgs, ... }:
# Enable Sway and write some scripts {
wayland.windowManager.sway = { wayland.windowManager.sway = {
package = pkgs.unstable.sway; package = pkgs.unstable.sway;
extraConfig = '' extraConfig = ''

View file

@ -1,4 +1,5 @@
{ pkgs, outputs, ... }: let { pkgs, outputs, ... }:
let
swayLock = pkgs.writeScriptBin "swaylock" '' swayLock = pkgs.writeScriptBin "swaylock" ''
# Set the lock script # Set the lock script
lockscript() { lockscript() {

View file

@ -1,4 +1,5 @@
{ pkgs, outputs, ... }: { { pkgs, outputs, ... }:
{
imports = [ imports = [
./swappy ./swappy
]; ];

View file

@ -1,4 +1,5 @@
{ pkgs, ... }: { { pkgs, ... }:
{
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
swappy swappy

View file

@ -1,4 +1,5 @@
{ config, pkgs, outputs, ... }: { { config, pkgs, outputs, ... }:
{
wayland.windowManager.sway = { wayland.windowManager.sway = {
enable = true; enable = true;
wrapperFeatures.gtk = true; wrapperFeatures.gtk = true;

View file

@ -1,4 +1,5 @@
{ pkgs, outputs, ... }: { { pkgs, outputs, ... }:
{
programs.waybar = let programs.waybar = let
swayWorkspacesModule = { swayWorkspacesModule = {
format = "{name}"; format = "{name}";

View file

@ -1,4 +1,5 @@
{ ... }: { { ... }:
{
imports = [ imports = [
./jimbo ./jimbo
]; ];

View file

@ -1,4 +1,5 @@
{ ... }: { { ... }:
{
home = { home = {
username = "jimbo"; username = "jimbo";
homeDirectory = "/home/jimbo"; homeDirectory = "/home/jimbo";

View file

@ -1,4 +1,5 @@
{ ... }: { { ... }:
{
imports = [ imports = [
./gnome-keyring ./gnome-keyring
./udiskie ./udiskie

View file

@ -1,3 +1,4 @@
{ ... }: { { ... }:
{
services.gnome-keyring.enable = true; services.gnome-keyring.enable = true;
} }

View file

@ -1,4 +1,5 @@
{ ... }: { { ... }:
{
services.udiskie = { services.udiskie = {
enable = true; enable = true;
automount = false; automount = false;

View file

@ -1,4 +1,5 @@
{ pkgs, config, outputs, ... }: { { pkgs, config, outputs, ... }:
{
programs.zsh = { programs.zsh = {
enable = true; enable = true;
autosuggestion.enable = true; autosuggestion.enable = true;

View file

@ -1,4 +1,5 @@
{ ... }: { { ... }:
{
imports = [ imports = [
./nfsShare ./nfsShare
]; ];

View file

@ -1,3 +1,4 @@
{ ... }: { { ... }:
{
users.groups.nfsShare = {}; users.groups.nfsShare = {};
} }

View file

@ -1,4 +1,5 @@
{ ... }: { { ... }:
{
imports = [ imports = [
./jimbo ./jimbo
./liquidsoap ./liquidsoap

View file

@ -1,4 +1,5 @@
{ pkgs, outputs, ... }: { { pkgs, outputs, ... }:
{
users.users = { users.users = {
jimbo = { jimbo = {
description = "Jimbo"; description = "Jimbo";

View file

@ -1,6 +1,6 @@
{ ... }:
{ {
# Add service users to extra groups users.users = {
users.users = {
nextcloud = { nextcloud = {
extraGroups = [ "nginx" ]; extraGroups = [ "nginx" ];
isSystemUser = true; isSystemUser = true;

View file

@ -1,5 +1,4 @@
{ { ... }: {
# Add service users to extra groups
users.users = { users.users = {
nextcloud = { nextcloud = {
extraGroups = [ "nfsShare" ]; extraGroups = [ "nfsShare" ];

View file

@ -1,5 +1,5 @@
{ ... }:
{ {
# Add service users to extra groups
users.users = { users.users = {
nginx = { nginx = {
extraGroups = [ "turnserver" "virtualMail" ]; extraGroups = [ "turnserver" "virtualMail" ];

Some files were not shown because too many files have changed in this diff Show more