This commit is contained in:
Faris 2026-04-01 13:45:36 +01:00
parent 69ffbf8361
commit bf66c9dccf
9 changed files with 394 additions and 106 deletions

BIN
PXL_20260306_211823556.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

BIN
PXL_20260306_211842458.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

View File

@ -6,6 +6,7 @@
config,
pkgs,
home-manager,
lib,
...
}:
@ -17,6 +18,8 @@
#boot.loader.limine.secureBoot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
#programs.nix-ld = { enable = true; libraries = pkgs.steam-run.fhsenv.args.multiPkgs pkgs; }; # for dynamically links execs
# Enable networking
#networking.networkmanager.enable = true;
@ -51,6 +54,7 @@
"wheel"
"adbusers" # adb
"kvm" # virt
"networkmanager"
];
packages = with pkgs; [
];
@ -82,11 +86,50 @@
keep-derivations = true
'';
gc.automatic = true;
gc.randomizedDelaySec = "14m";
gc.options = "--delete-older-than 10d";
optimise.automatic = true;
};
# unfree
nixpkgs.config.allowUnfree = true;
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
# nvidia
"nvidia-x11"
"nvidia-settings"
# cuda
"cuda_cudart"
"cuda_nvcc"
"cuda_cccl"
"libcublas"
"cuda-merged"
"cuda_cuobjdump"
"cuda_gdb"
"cuda_nvdisasm"
"cuda_nvprune"
"cuda_cupti"
"cuda_cuxxfilt"
"cuda_nvml_dev"
"cuda_nvrtc"
"cuda_nvtx"
"cuda_profiler_api"
"cuda_sanitizer_api"
"libcufft"
"libcurand"
"libcusolver"
"libnvjitlink"
"libcusparse"
"libnpp"
# other
"proton-authenticator"
"obsidian"
"via"
"steam"
"steam-unwrapped"
"osu-lazer-bin"
"corefonts"
"claude-code"
];
environment.systemPackages = with pkgs; [
zsh
@ -101,6 +144,20 @@
usbutils # lsusb
nmap
tree
p7zip
inetutils # telnet
# media
yt-dlp
exiftool
mediainfo
ffmpeg-full
# barcodes
qrencode
zbar
barcode
ghostscript
];
}

View File

@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, inputs, ... }:
{
@ -14,8 +14,6 @@
# Enable the GNOME Desktop Environment.
services.displayManager.gdm.enable = true;
services.desktopManager.gnome.enable = true;
services.gnome.gnome-keyring.enable = true;
security.pam.services.gdm.enableGnomeKeyring = true; #unlock PAM
# Configure keymap in X11
services.xserver.xkb = {
@ -33,6 +31,7 @@
nssmdns4 = true;
openFirewall = true;
};
services.tailscale.enable = true;
# services.printing.drivers = [ pkgs.brgenml1lpr pkgs.brgenml1cupswrapper ];
# hardware.printers = {
# ensurePrinters = [
@ -60,8 +59,10 @@
};
# Enable automatic login for the user.
services.displayManager.autoLogin.enable = true;
services.displayManager.autoLogin.user = "admin";
# services.displayManager.autoLogin.enable = true;
# services.displayManager.autoLogin.user = "admin";
# services.gnome.gnome-keyring.enable = true;
# security.pam.services.gdm.enableGnomeKeyring = true; #unlock PAM
# Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
systemd.services."getty@tty1".enable = false;
@ -77,7 +78,9 @@
openFirewall = true;
host = "0.0.0.0";
# Optional: preload models, see https://ollama.com/library
loadModels = [ "deepseek-r1" ];
loadModels = [ "gemma3:4b-it-qat" ];
package = pkgs.unstable.ollama;
};
hardware.keyboard.qmk.enable = true;
@ -104,10 +107,21 @@
yelp # help
];
nixpkgs.overlays = [
(final: _: {
# this allows you to access `pkgs.unstable` anywhere in your config
unstable = import inputs.nixpkgs-unstable {
inherit (final.stdenv.hostPlatform) system;
inherit (final) config;
};
})
];
environment.systemPackages = with pkgs; [
audacity
brave
blender
cura-appimage
orca-slicer
firefox
gimp
gnomeExtensions.appindicator
@ -118,10 +132,12 @@
kiwix
libreoffice
obs-studio
proton-authenticator
protonmail-desktop
unstable.proton-authenticator
unstable.protonmail-desktop
unstable.protonvpn-gui
prismlauncher
signal-desktop
unstable.signal-desktop
freecad
tor-browser
wireshark
monero-gui
@ -133,8 +149,11 @@
kdePackages.kdenlive
easyeffects
element-desktop
p7zip
chirp
scrcpy
# AI?
claude-code
# games
heroic
@ -150,6 +169,8 @@
openttd
xonotic
osu-lazer-bin
#ufoai
#inputs.nix-citizen.packages.${system}.rsi-launcher
# game utils
mangohud
@ -158,25 +179,15 @@
# emu
ryubing
xemu
xenia-canary
#retroarch-full
rpcs3
dolphin-emu
cemu
# media
yt-dlp
exiftool
mediainfo
ffmpeg-full
# barcodes
qrencode
zbar
barcode
ghostscript
# backup
keepassxc
jdk
];
fonts.packages = with pkgs; [
@ -240,7 +251,7 @@
"org.gnome.Nautilus.desktop"
"brave-browser.desktop"
"proton-mail.desktop"
"joplin.desktop"
"obsidian.desktop"
"signal.desktop"
"element-desktop.desktop"
"steam.desktop"
@ -289,6 +300,7 @@
"org/gnome/shell/keybindings" = {
show-screenshot-ui = ["<Shift><Super>s"];
};
#org.gnome.desktop.input-sources sources [('xkb', 'us'), ('xkb', 'dz+ar')]
};
}];
};
@ -332,4 +344,10 @@
services.flatpak.enable = true;
# programs.nix-ld = {
# enable = true;
# libraries = with pkgs; [
# (pkgs.runCommand "steamrun-lib" {} "mkdir $out; ln -s ${pkgs.steam-run.fhsenv}/usr/lib64 $out/lib")
# ];
# };
}

230
flake.lock generated
View File

@ -24,11 +24,11 @@
"cachyos-kernel": {
"flake": false,
"locked": {
"lastModified": 1767984036,
"narHash": "sha256-lcHdWENZAMakHEpjLRpi6DHPmqbUHji0TZTAsdyVIKA=",
"lastModified": 1770052877,
"narHash": "sha256-Ejj9F2obMjVoy0Jsugw6txHFaR9ziuErYIt58cIJqzE=",
"owner": "CachyOS",
"repo": "linux-cachyos",
"rev": "46822116e738fbe7f1696d592761606fec514247",
"rev": "1f8a79ffeac6f319a8c0fc3abad27a3ec7762abf",
"type": "github"
},
"original": {
@ -40,11 +40,11 @@
"cachyos-kernel-patches": {
"flake": false,
"locked": {
"lastModified": 1768135201,
"narHash": "sha256-cXF8TfRVMgdD0pxlWs5sknJRokqgwb4cunto3ycjWHk=",
"lastModified": 1770051966,
"narHash": "sha256-udCJTbUAEZm5zBrr4zVVjpBLQtCC/vQlkIOLnEGr5Ik=",
"owner": "CachyOS",
"repo": "kernel-patches",
"rev": "1378678080cdff989e935f374e4f9e92af720043",
"rev": "bfa4ff5231408610ffcc92898cd1e4c9bd55e452",
"type": "github"
},
"original": {
@ -95,6 +95,45 @@
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1769996383,
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nix-citizen",
"nixpkgs"
]
},
"locked": {
"lastModified": 1768135262,
"narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1768135262,
"narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
@ -137,11 +176,11 @@
]
},
"locked": {
"lastModified": 1767910483,
"narHash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=",
"lastModified": 1769580047,
"narHash": "sha256-tNqCP/+2+peAXXQ2V8RwsBkenlfWMERb+Uy6xmevyhM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "82fb7dedaad83e5e279127a38ef410bcfac6d77c",
"rev": "366d78c2856de6ab3411c15c1cb4fb4c2bf5c826",
"type": "github"
},
"original": {
@ -162,11 +201,11 @@
]
},
"locked": {
"lastModified": 1768153598,
"narHash": "sha256-ub5LZmQ6LEaV7k2pTlFXNc7BZj/rUooSR4hpUp3snYw=",
"lastModified": 1770055712,
"narHash": "sha256-VpbF4JDFPSW2crh0tP5EiegnuTkj3fACs0SLWDhlfPM=",
"owner": "xddxdd",
"repo": "nix-cachyos-kernel",
"rev": "8f448feca5af93c79fdd2187af392f692192b2f3",
"rev": "220dce3edcb81188ecb896382699884243d1c2e3",
"type": "github"
},
"original": {
@ -176,13 +215,79 @@
"type": "github"
}
},
"nix-citizen": {
"inputs": {
"flake-parts": "flake-parts_2",
"nix-gaming": "nix-gaming",
"nix-github-actions": "nix-github-actions",
"nixpkgs": "nixpkgs_2",
"systems": "systems_2",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1769832985,
"narHash": "sha256-PKONM6JUGWviRsv3tZWj72HE0aeHKcHTrzTskj58MRM=",
"owner": "LovingMelody",
"repo": "nix-citizen",
"rev": "47823c1ea4c53153dabd43f08b26f3c67c557542",
"type": "github"
},
"original": {
"owner": "LovingMelody",
"repo": "nix-citizen",
"type": "github"
}
},
"nix-gaming": {
"inputs": {
"flake-parts": "flake-parts_3",
"nixpkgs": [
"nix-citizen",
"nixpkgs"
]
},
"locked": {
"lastModified": 1769653948,
"narHash": "sha256-vOKkxlAREINxBVFzsj+8D3WZkoOPHLcjhweE0hDMwbg=",
"owner": "fufexan",
"repo": "nix-gaming",
"rev": "60855f0c988b2b4b787f54ddda18a3af44134623",
"type": "github"
},
"original": {
"owner": "fufexan",
"repo": "nix-gaming",
"type": "github"
}
},
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"nix-citizen",
"nixpkgs"
]
},
"locked": {
"lastModified": 1737420293,
"narHash": "sha256-F1G5ifvqTpJq7fdkT34e/Jy9VCyzd5XfJ9TO8fHhJWE=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "f4158fa080ef4503c8f4c820967d946c2af31ec9",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1767185284,
"narHash": "sha256-ljDBUDpD1Cg5n3mJI81Hz5qeZAwCGxon4kQW3Ho3+6Q=",
"lastModified": 1769302137,
"narHash": "sha256-QEDtctEkOsbx8nlFh4yqPEOtr4tif6KTqWwJ37IM2ds=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "40b1a28dce561bea34858287fbb23052c3ee63fe",
"rev": "a351494b0e35fd7c0b7a1aae82f0afddf4907aa8",
"type": "github"
},
"original": {
@ -209,6 +314,21 @@
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1769909678,
"narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "72716169fe93074c333e8d0173151350670b824c",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-lib_2": {
"locked": {
"lastModified": 1765674936,
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
@ -223,13 +343,45 @@
"type": "github"
}
},
"nixpkgs_2": {
"nixpkgs-unstable": {
"locked": {
"lastModified": 1768028080,
"narHash": "sha256-50aDK+8eLvsLK39TzQhKNq50/HcXyP4hyxOYoPoVxjo=",
"lastModified": 1770107345,
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d03088749a110d52a4739348f39a63f84bb0be14",
"rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1769461804,
"narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1770056022,
"narHash": "sha256-yvCz+Qmci1bVucXEyac3TdoSPMtjqVJmVy5wro6j/70=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d04d8548aed39902419f14a8537006426dc1e4fa",
"type": "github"
},
"original": {
@ -244,8 +396,10 @@
"agenix": "agenix",
"home-manager": "home-manager_2",
"nix-cachyos-kernel": "nix-cachyos-kernel",
"nix-citizen": "nix-citizen",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2"
"nixpkgs": "nixpkgs_3",
"nixpkgs-unstable": "nixpkgs-unstable"
}
},
"systems": {
@ -262,6 +416,42 @@
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nix-citizen",
"nixpkgs"
]
},
"locked": {
"lastModified": 1769515380,
"narHash": "sha256-CWWK3PaQ7zhr+Jcf5zyaTR2cfRBXPo09H7+5nWApL8s=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "9911802c2822def2eec3d22e2cafd1619ede94a5",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
}
},
"root": "root",

View File

@ -4,34 +4,23 @@
inputs = {
agenix.url = "github:ryantm/agenix";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
nixos-hardware.url = "github:nixos/nixos-hardware/master";
home-manager.url = "github:nix-community/home-manager/release-25.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
nix-cachyos-kernel.inputs.nixpkgs.follows = "nixpkgs";
nix-citizen.url = "github:LovingMelody/nix-citizen";
};
outputs =
{
self,
nixpkgs,
nixos-hardware,
home-manager,
agenix,
nix-cachyos-kernel,
}:
{ self, nixpkgs, home-manager, ... }@inputs:
{
nixosConfigurations.desktop = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs;};
#inherit system;
modules = [
(
{ pkgs, ... }:
{
nixpkgs.overlays = [
nix-cachyos-kernel.overlays.pinned
];
}
)
./config/common.nix
./config/desktop.nix
./hosts/desktop/hardware.nix
@ -50,29 +39,30 @@
];
};
nixosConfigurations.nixos-server = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./config/common.nix
./hosts/server/hardware.nix
./hosts/server/settings.nix
agenix.nixosModules.default
{
environment.systemPackages = [ agenix.packages.x86_64-linux.default ];
}
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.admin = {
imports = [
./home/common.nix
./home/podman.nix
agenix.homeManagerModules.default
];
};
}
];
};
# nixosConfigurations.nixos-server = nixpkgs.lib.nixosSystem {
# #specialArgs = {inherit inputs;};
# inherit system;
# modules = [
# ./config/common.nix
# ./hosts/server/hardware.nix
# ./hosts/server/settings.nix
# {
# environment.systemPackages = [ agenix.packages.x86_64-linux.default ];
# }
# home-manager.nixosModules.home-manager
# {
# home-manager.useGlobalPkgs = true;
# home-manager.useUserPackages = true;
# home-manager.users.admin = {
# imports = [
# ./home/common.nix
# ./home/podman.nix
# agenix.homeManagerModules.default
# ];
# };
# }
# ];
# };
};
}

View File

@ -2,12 +2,28 @@
{
programs = {
chromium = {
# chromium = {
# enable = true;
# package = pkgs.brave;
# commandLineArgs = [
# #"--sync-url='http://192.168.0.30:8295/v2'"
# ];
# };
anki = {
enable = true;
package = pkgs.brave;
commandLineArgs = [
#"--sync-url='http://192.168.0.30:8295/v2'"
];
sync = {
url = "http://192.168.0.30:27701";
};
};
obsidian = {
enable = true;
vaults = {
Main = {
target = "Documents/Obsidian/Main";
};
};
};
mpv = {
@ -36,11 +52,6 @@
r cycle_values video-rotate 90 180 270 0
'';
};
joplin-desktop = {
enable = true;
sync.target = "joplin-server";
};
};
# add bookmarks for shared drives
xdg.configFile."gtk-3.0/bookmarks" = {

View File

@ -8,7 +8,7 @@
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" "nvidia-uvm" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
@ -30,6 +30,11 @@
[ { device = "/dev/disk/by-uuid/be22d9db-283a-4dd9-93d5-1006e392724b"; }
];
fileSystems."/run/media/admin/08cabc7a-9a6e-4c21-8a07-6663af77b705" =
{ device = "/dev/disk/by-uuid/08cabc7a-9a6e-4c21-8a07-6663af77b705";
fsType = "ext4";
};
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction

View File

@ -1,7 +1,14 @@
{ config, pkgs, ... }:
{ config, pkgs, inputs, ... }:
{
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
wireplumber.enable = true;
};
boot = {
initrd.luks.devices."luks-cbf20b12-90f7-4fbb-95d3-1320eece4d89".device = "/dev/disk/by-uuid/cbf20b12-90f7-4fbb-95d3-1320eece4d89";
kernelParams = [
@ -24,12 +31,12 @@
wakeOnLan.enable = true;
ipv4.addresses = [
{
address = "192.168.0.40";
address = "192.168.30.40";
prefixLength = 24;
}
];
};
defaultGateway = "192.168.0.1";
defaultGateway = "192.168.30.1";
nameservers = [ "192.168.0.1" "1.1.1.1" ];
};
@ -41,9 +48,8 @@
modesetting.enable = true;
powerManagement.enable = true;
powerManagement.finegrained = false;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.beta;
open = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
# this fixes the sleep/wake issue FUCK NVIDIA
@ -53,10 +59,21 @@
};
};
# fixes hardware accel on nvidia open FUCK NVIDIA
hardware.graphics.extraPackages = [
pkgs.nvidia-vaapi-driver
];
environment.variables = {
NVD_BACKEND = "direct";
LIBVA_DRIVER_NAME = "nvidia";
};
# cachyos kernel
boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-latest;
nix.settings.substituters = [ "https://attic.xuyh0120.win/lantian" ];
nix.settings.trusted-public-keys = [ "lantian:EeAUQ+W+6r7EtwnmYjeVwx5kOGEBpjlBfPlzGlTNvHc=" ];
# nixpkgs.overlays = [ inputs.nix-cachyos-kernel.overlays.pinned ];
# boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-latest;
# nix.settings.substituters = [ "https://attic.xuyh0120.win/lantian" ];
# nix.settings.trusted-public-keys = [ "lantian:EeAUQ+W+6r7EtwnmYjeVwx5kOGEBpjlBfPlzGlTNvHc=" ];
system.stateVersion = "24.11";
}