Getting a lot closer..

This commit is contained in:
Jimbo 2024-10-09 03:19:55 -04:00
parent e3bacb2d84
commit 0a4a803da7
221 changed files with 856 additions and 956 deletions
.gitattributes
extras
flake.lockflake.nix
home
modules
pc.nix
programs
gaming
emulators
general
xash3d
misc
avtools
chat
general
headless
production
remote-desktop
school
server.nix
hosts
modules

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.

219
flake.lock generated
View file

@ -33,6 +33,27 @@
"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": false,
"locked": {
@ -50,6 +71,22 @@
}
},
"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,
"locked": {
"lastModified": 1673956053,
@ -65,9 +102,48 @@
"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": {
"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": {
"lastModified": 1681202837,
@ -83,6 +159,28 @@
"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": {
"locked": {
"lastModified": 1727665282,
@ -120,10 +218,37 @@
"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": {
"inputs": {
"blobs": "blobs",
"flake-compat": "flake-compat",
"flake-compat": "flake-compat_2",
"nixpkgs": "nixpkgs_2",
"nixpkgs-24_05": "nixpkgs-24_05",
"utils": "utils"
@ -145,8 +270,8 @@
},
"minecraft": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-utils": "flake-utils",
"flake-compat": "flake-compat_3",
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_3"
},
"locked": {
@ -192,6 +317,22 @@
"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": {
"locked": {
"lastModified": 1727348695,
@ -270,11 +411,39 @@
"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": {
"inputs": {
"blender-bin": "blender-bin",
"hardware": "hardware",
"home-manager": "home-manager",
"lanzaboote": "lanzaboote",
"mailserver": "mailserver",
"minecraft": "minecraft",
"nixpkgs": "nixpkgs_4",
@ -282,6 +451,31 @@
"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": {
"locked": {
"lastModified": 1681028828,
@ -312,9 +506,24 @@
"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": {
"inputs": {
"systems": "systems"
"systems": "systems_2"
},
"locked": {
"lastModified": 1709126324,

View file

@ -1,16 +1,20 @@
{
description = "Jimbo's systems as a flake";
inputs = {
# Nixpkgs
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";
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";
minecraft.url = "github:Infinidoge/nix-minecraft";
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 = {
url = "github:nix-community/home-manager/release-24.05";
@ -21,11 +25,12 @@
outputs = {
self,
nixpkgs,
nixpkgs-unstable,
unstable,
nur,
mailserver,
blender-bin,
hardware,
lanzaboote,
home-manager,
...
} @inputs: let
@ -35,12 +40,16 @@
"x86_64-linux"
];
in rec {
# Your custom packages
# Accessible through 'nix build', 'nix shell', etc
packages = forAllSystems (system: import ./extras/pkgs nixpkgs.legacyPackages.${system});
channels = {
master = import nixpkgs {
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
overlays = import ./extras/overlays.nix {inherit inputs;};
packages = import ./packages/default.nix { inherit (nix) pkgs; };
# Variables defined so they can be accessed globally
secrets = import ./extras/secrets.nix;
@ -55,27 +64,28 @@
JimDesktop = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs outputs;};
modules = [
./hosts/JimDesktop/configuration.nix
./system/hosts/JimDesktop/configuration.nix
lanzaboote.nixosModules.lanzaboote
];
};
JimServer = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs outputs;};
modules = [
./JimServer/configuration.nix
./system/hosts/JimServer/configuration.nix
mailserver.nixosModule
];
};
JimPine = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs outputs;};
modules = [
./hosts/JimPine/configuration.nix
./system/hosts/JimPine/configuration.nix
hardware.nixosModules.pine64-pinebook-pro
];
};
JimLenovo = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs outputs;};
modules = [
./hosts/JimLenovo/configuration.nix
./system/hosts/JimLenovo/configuration.nix
];
};
};
@ -86,7 +96,7 @@
pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = {inherit inputs outputs;};
modules = [
./hosts/JimDesktop/home.nix
./home/hosts/JimDesktop/home.nix
nur.nixosModules.nur
];
};
@ -94,14 +104,14 @@
pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = {inherit inputs outputs;};
modules = [
./hosts/JimServer/home.nix
./home/hosts/JimServer/home.nix
];
};
"jimbo@JimPine" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.aarch64-linux;
extraSpecialArgs = {inherit inputs outputs;};
modules = [
./hosts/JimPine/home.nix
./home/hosts/JimPine/home.nix
nur.nixosModules.nur
];
};
@ -109,7 +119,7 @@
pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = {inherit inputs outputs;};
modules = [
./hosts/JimLenovo/home.nix
./home/hosts/JimLenovo/home.nix
nur.nixosModules.nur
];
};
@ -118,7 +128,7 @@
pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = {inherit inputs outputs;};
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 = [
./users
];
# Allow unfree
nixpkgs.config.allowUnfree = true;
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion

View file

Before

(image error) Size: 86 KiB

After

(image error) Size: 86 KiB

View file

Before

(image error) Size: 2 MiB

After

(image error) Size: 2 MiB

View file

Before

(image error) Size: 2.3 MiB

After

(image error) Size: 2.3 MiB

View file

Before

(image error) Size: 1.9 MiB

After

(image error) Size: 1.9 MiB

View file

Before

(image error) Size: 314 KiB

After

(image error) Size: 314 KiB

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +1,5 @@
{ pkgs, config, outputs, ... }: {
{ pkgs, config, outputs, ... }:
{
programs.rofi = {
enable = true;
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 = {
enable = true;
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 = [
./avtools
./chat
./gaming/launchers
./general
./headless
./production
./remote-desktop
./school
];
}

View file

@ -1,6 +1,7 @@
{ ... }:
{
imports = [
./general
./launchers
./emulators
./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 = {
file = let
fastConf = ''

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +1,5 @@
{ pkgs, outputs, ... }: {
{ pkgs, outputs, ... }:
{
wayland.windowManager.sway = {
config = let
# 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 = {
config = {
# Assign workspaces to outputs

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

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