Compare commits

...

24 Commits

Author SHA1 Message Date
f80b6295ac wip - buildable state 2026-03-22 03:13:47 +01:00
eb90b797df bump kernel 2026-03-22 03:12:26 +01:00
ed06b07960 wip - buildable state 2026-03-22 03:10:21 +01:00
bf7f6a1218 wip - buildable state 2026-03-22 03:04:07 +01:00
6d0f92fad6 switch out neofetch for hyfetch because it has been deprecated 2026-03-16 16:12:40 +01:00
164ed80931 firewall rules 2026-03-16 16:07:32 +01:00
4a9a71bad1 commit working state 2026-02-28 16:35:41 +01:00
b9da82b956 attempt making pytorch work 2026-02-28 16:34:56 +01:00
bb596a794e attempt making pytorch work 2026-02-28 16:34:38 +01:00
476cab8c9d forward 9090 to vm 2026-02-28 16:34:11 +01:00
d57aeb9ef3 working passthrough support 2026-02-28 16:33:52 +01:00
aaba57ee2f add nv gpu passthrough vm setup 2026-02-26 02:47:09 +01:00
2332cc1e9d fix linux-wallpaperengine launch params 2026-02-18 02:59:22 +01:00
df06c641c2 add rivalcfg udev rules. 2026-02-18 02:59:08 +01:00
2880272e2a add rivalcfg 2026-02-18 02:57:50 +01:00
d3896b5817 enable cs-tools 2026-02-18 02:57:41 +01:00
522d87f51d add cs-demo-manager appimage package, and group with postgresql for cs-tools module. 2026-02-18 02:57:25 +01:00
578f246519 working mesa-git 2026-02-12 23:54:34 +01:00
271658bf4d further tweaks 2026-02-12 20:16:32 +01:00
fbe9f8b3ec attempt tweaks 2026-02-12 20:16:19 +01:00
149641c87b fix override 2026-02-12 20:16:08 +01:00
21782c109e revert intel 2026-02-12 20:15:59 +01:00
8ee971cbf8 add mpv as home package 2026-02-12 20:14:42 +01:00
1ed2b9c130 clean up 2026-02-12 20:14:32 +01:00
19 changed files with 366 additions and 172 deletions

153
flake.lock generated
View File

@@ -9,11 +9,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1767520119, "lastModified": 1772290697,
"narHash": "sha256-+OmNQLA9Fv5WBaxYHlPghS9XmnYWDaLt+AatCGhG+hc=", "narHash": "sha256-MyLNx13P+pv1RszO1rMd3144NEeU/oU4iL+xOTpRoaU=",
"owner": "ezKEa", "owner": "ezKEa",
"repo": "aagl-gtk-on-nix", "repo": "aagl-gtk-on-nix",
"rev": "5720d3282844b6b23b26dfac075a5f1f58ea8844", "rev": "dcb53a4cb4cb09ef7f08328428ba559be5b9f01b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -46,11 +46,11 @@
"cachyos-kernel": { "cachyos-kernel": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1769201405, "lastModified": 1773425695,
"narHash": "sha256-k/KQL7J9ZnLlF28E6ywGpfo5dxkuxCcEtJ/XEZDTw3M=", "narHash": "sha256-O5Fr6f+iS+IVKdB59yqkCaWfkr1SSHD5BLDDlZO7RwU=",
"owner": "CachyOS", "owner": "CachyOS",
"repo": "linux-cachyos", "repo": "linux-cachyos",
"rev": "ff53672af48a106f52857d62c9275b165cc452ef", "rev": "3b9ae1ae5d4ee95e1509d350b65c0777dde97628",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -62,11 +62,11 @@
"cachyos-kernel-patches": { "cachyos-kernel-patches": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1769199354, "lastModified": 1773430072,
"narHash": "sha256-y1DKMryOr1w4xcZnDkaZjvENIPmr3j/YB4Srtfd3I2Y=", "narHash": "sha256-0X47YCF1CUnLiQ1M6Lh4hc3ax9aV5DX/wCmMfuMyM1o=",
"owner": "CachyOS", "owner": "CachyOS",
"repo": "kernel-patches", "repo": "kernel-patches",
"rev": "c8b990198baf3c34b64e4e5c5ffeb7c068eede1a", "rev": "ac70453c25200f0a30ad38b3caa63020869f0f8a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -93,11 +93,11 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1761588595, "lastModified": 1767039857,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -196,11 +196,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1768135262, "lastModified": 1772408722,
"narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -248,7 +248,7 @@
}, },
"flake-utils_2": { "flake-utils_2": {
"inputs": { "inputs": {
"systems": "systems_3" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1694529238, "lastModified": 1694529238,
@@ -271,11 +271,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1728511087, "lastModified": 1771895942,
"narHash": "sha256-CvO74jwMjUUPySy0QCt7sPImbxKlhWcSAet93Fkt6iU=", "narHash": "sha256-2G212O6uoBCjmyIBux/Kfy/FVlsAY+3mTT4JRstYRZ0=",
"owner": "local-interloper", "owner": "local-interloper",
"repo": "game-of-life", "repo": "game-of-life",
"rev": "c39d37e394f5da79a6a7d198e1d7e505aa5298a7", "rev": "dd5cba5d873ece0ca5c8a7d74243b3b0199a2194",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -313,11 +313,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769450270, "lastModified": 1773681856,
"narHash": "sha256-pdVm/zJazDUAasTyHFX/Pbrlk9Upjxi0yzgn7GjGe4g=", "narHash": "sha256-+bRqxoFCJFO9ZTFhcCkzNXbDT3b8AEk88fyjB7Is6eo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "a10c1e8f5ad2589414407f4851c221cb66270257", "rev": "57d5560ee92a424fb71fde800acd6ed2c725dfce",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -334,11 +334,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768434960, "lastModified": 1773422513,
"narHash": "sha256-cJbFn17oyg6qAraLr+NVeNJrXsrzJdrudkzI4H2iTcg=", "narHash": "sha256-MPjR48roW7CUMU6lu0+qQGqj92Kuh3paIulMWFZy+NQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "b4d88c9ac42ae1a745283f6547701da43b6e9f9b", "rev": "ef12a9a2b0f77c8fa3dda1e7e494fca668909056",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -347,27 +347,6 @@
"type": "github" "type": "github"
} }
}, },
"kwin-effects-forceblur": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"utils": "utils"
},
"locked": {
"lastModified": 1755098995,
"narHash": "sha256-6FN7XEf27DenQHDIKjrjOW3tGIaJlyqRlXarmt1v+M0=",
"owner": "taj-ny",
"repo": "kwin-effects-forceblur",
"rev": "51a1d49d7fd7df3ce40ccf6ba4c4410cf6f510e1",
"type": "github"
},
"original": {
"owner": "taj-ny",
"repo": "kwin-effects-forceblur",
"type": "github"
}
},
"lanzaboote": { "lanzaboote": {
"inputs": { "inputs": {
"crane": "crane", "crane": "crane",
@@ -403,11 +382,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1769363279, "lastModified": 1773597464,
"narHash": "sha256-XJCuB8GWkFLRFBR6GQoxRB9/lobB45ERp0JN0Lo2nvs=", "narHash": "sha256-3SVrc1AMkY1UE36MD4qvmTkY/ZToK2F55Afut5Qm5F8=",
"owner": "xddxdd", "owner": "xddxdd",
"repo": "nix-cachyos-kernel", "repo": "nix-cachyos-kernel",
"rev": "4aa98db78c1d663c3dad59775e95ad93fe58a844", "rev": "30468236d5cdd9cb5dea6e757159e04816439146",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -425,11 +404,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769217863, "lastModified": 1773603777,
"narHash": "sha256-RY9kJDXD6+2Td/59LkZ0PFSereCXHdBX9wIkbYjRKCY=", "narHash": "sha256-oXSEbMR/IuHYk9nvrbRhaYBxVK5s63DH2UGOZT2ok48=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NixOS-WSL", "repo": "NixOS-WSL",
"rev": "38a5250e57f583662eac3b944830e4b9e169e965", "rev": "0efe7af73d6e4a8d447a22936c5526d73822b0a7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -457,11 +436,11 @@
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1765674936, "lastModified": 1772328832,
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=", "narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85", "rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -472,11 +451,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1769300497, "lastModified": 1773563071,
"narHash": "sha256-W7NbQnQGqUPRnpHOlLXk3g52TSQDkFVzhax9YNv9K+U=", "narHash": "sha256-p4f6smYpck1hw6gYsT2omq01gnlZ1E7HTpssDQ0fP+g=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "60f9d776547020ff3be5a2cfbd0a457fddd88ecc", "rev": "1c6f50e5b62030a50799682b6babc9dcc5a271ae",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -488,11 +467,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1769170682, "lastModified": 1773646010,
"narHash": "sha256-oMmN1lVQU0F0W2k6OI3bgdzp2YOHWYUAw79qzDSjenU=", "narHash": "sha256-iYrs97hS7p5u4lQzuNWzuALGIOdkPXvjz7bviiBjUu8=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c5296fdd05cfa2c187990dd909864da9658df755", "rev": "5b2c2d84341b2afb5647081c1386a80d7a8d8605",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -534,7 +513,6 @@
"anikki": "anikki", "anikki": "anikki",
"game-of-life": "game-of-life", "game-of-life": "game-of-life",
"home-manager": "home-manager", "home-manager": "home-manager",
"kwin-effects-forceblur": "kwin-effects-forceblur",
"lanzaboote": "lanzaboote", "lanzaboote": "lanzaboote",
"nix-cachyos-kernel": "nix-cachyos-kernel", "nix-cachyos-kernel": "nix-cachyos-kernel",
"nixos-wsl": "nixos-wsl", "nixos-wsl": "nixos-wsl",
@@ -550,11 +528,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1764470739, "lastModified": 1770952264,
"narHash": "sha256-sa9f81B1dWO16QtgDTWHX8DQbiHKzHndpaunY5EQtwE=", "narHash": "sha256-CjymNrJZWBtpavyuTkfPVPaZkwzIzGaf0E/3WgcwM14=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "3bfa664055e1a09c6aedab5533c5fc8d6ca5741a", "rev": "ec6a3d5cdf14bb5a1dd03652bd3f6351004d2188",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -613,11 +591,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769469829, "lastModified": 1773698643,
"narHash": "sha256-wFcr32ZqspCxk4+FvIxIL0AZktRs6DuF8oOsLt59YBU=", "narHash": "sha256-VCiDjE8kNs8uCAK73Ezk1r3fFuc4JepvW07YFqaN968=",
"owner": "mic92", "owner": "mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "c5eebd4eb2e3372fe12a8d70a248a6ee9dd02eff", "rev": "8237de83e8200d16fe0c4467b02a1c608ff28044",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -656,21 +634,6 @@
"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"
}
},
"trilium-next-pr": { "trilium-next-pr": {
"locked": { "locked": {
"lastModified": 1736678965, "lastModified": 1736678965,
@@ -687,24 +650,6 @@
"type": "github" "type": "github"
} }
}, },
"utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"zen-browser": { "zen-browser": {
"inputs": { "inputs": {
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
@@ -713,11 +658,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769431876, "lastModified": 1773695806,
"narHash": "sha256-FnOW+ulwocxfYGVKV2H/7MlSbn52+hfX9oaRR6FClZ4=", "narHash": "sha256-HYmp4Ym/dlkRIPap7GFznNUNuDTTW0iIcOtHmhRzl3w=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "d5ef79d18dca7617aefe511db8267d47f7cf953f", "rev": "ced61240cc38dee9e659a7ced0cd9a839c6085d3",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -42,10 +42,10 @@
url = "github:nix-community/lanzaboote/v0.4.3"; url = "github:nix-community/lanzaboote/v0.4.3";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
kwin-effects-forceblur = { # kwin-effects-forceblur = { Archived.
url = "github:taj-ny/kwin-effects-forceblur"; # url = "github:taj-ny/kwin-effects-forceblur";
inputs.nixpkgs.follows = "nixpkgs"; # inputs.nixpkgs.follows = "nixpkgs";
}; # };
aagl = { aagl = {
url = "github:ezKEa/aagl-gtk-on-nix"; url = "github:ezKEa/aagl-gtk-on-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -94,12 +94,6 @@
# Use the exact kernel versions as defined in this repo. # Use the exact kernel versions as defined in this repo.
# Guarantees you have binary cache. # Guarantees you have binary cache.
nix-cachyos-kernel.overlays.pinned nix-cachyos-kernel.overlays.pinned
# Alternatively, build the kernels on top of nixpkgs version in your flake.
# This might cause version mismatch/build failures!
# nix-cachyos-kernel.overlays.default
# Only use one of the two overlays!
]; ];
nixos = with inputs; [ nixos = with inputs; [
@@ -109,7 +103,7 @@
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = false; # Disabled to allow system-level overlays to work
useUserPackages = true; useUserPackages = true;
}; };
} }

View File

@@ -23,6 +23,7 @@ in
packages = [ packages = [
pkgs.nil pkgs.nil
pkgs.beeper pkgs.beeper
pkgs.mpv
pkgs.my-namespace.udev-steelseries pkgs.my-namespace.udev-steelseries
pkgs.qbittorrent pkgs.qbittorrent
pkgs.hyfetch pkgs.hyfetch
@@ -31,7 +32,7 @@ in
# pkgs.vesktop # pkgs.vesktop
pkgs.obsidian pkgs.obsidian
inputs.zen-browser.packages.x86_64-linux.default inputs.zen-browser.packages.x86_64-linux.default
inputs.kwin-effects-forceblur.packages.${pkgs.stdenv.hostPlatform.system}.default # inputs.kwin-effects-forceblur.packages.${pkgs.stdenv.hostPlatform.system}.default # Archived.
]; ];
}; };
@@ -40,7 +41,7 @@ in
[Desktop Entry] [Desktop Entry]
Type=Application Type=Application
Name=Wallpaper Engine Name=Wallpaper Engine
Exec=${pkgs.my-namespace.linux-wallpaperengine}/bin/linux-wallpaperengine --screen-root DP-1 --bg 2935872330 -f 12 --screen-root DP-2 --bg 2935872330 -f 12 Exec=${pkgs.my-namespace.linux-wallpaperengine}/bin/linux-wallpaperengine --screen-root DP-1 --bg 2935872330 --screen-root DP-2 --bg 2935872330 -f 12
X-KDE-autostart-after=panel X-KDE-autostart-after=panel
X-KDE-StartupNotify=false X-KDE-StartupNotify=false
''; '';

View File

@@ -1,5 +1,4 @@
{ pkgs { config
, config
, lib , lib
, ... , ...
}: }:

View File

@@ -34,7 +34,7 @@ in
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
inetutils inetutils
neofetch hyfetch
tmux tmux
# nerdfonts # nerdfonts
p7zip p7zip

View File

@@ -0,0 +1,24 @@
{ lib, pkgs, config, namespace, ... }:
let
cfg = config.${namespace}.cs-tools;
in
{
options.${namespace}.cs-tools = {
enable = lib.mkEnableOption "CS tools including CS Demo Manager and PostgreSQL";
};
config = lib.mkIf cfg.enable {
services.postgresql = {
enable = true;
ensureDatabases = [ "csdm" ];
ensureUsers = [{
name = "csdm";
}];
};
environment.systemPackages = with pkgs; [
my-namespace.cs-demo-manager
postgresql
];
};
}

View File

@@ -48,11 +48,37 @@ in {
enable = true; enable = true;
}; };
services.desktopManager.gnome.enable = true; services.desktopManager.gnome.enable = true;
services.gnome.gnome-remote-desktop.enable = true;
systemd.services.gnome-remote-desktop = {
wantedBy = [ "graphical.target" ]; # for starting the unit automatically at boot
};
services.displayManager.autoLogin.enable = false;
networking.firewall.allowedTCPPorts = [
3389
3390
];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
gnome-tweaks gnome-tweaks
gnome-software gnome-software
gnomeExtensions.pop-shell gnomeExtensions.pop-shell
gnome-remote-desktop gnome-remote-desktop
glib-networking # Required gnome-remote-desktop dependency
];
systemd.user.services.gnome-remote-desktop.environment = {
VK_ICD_FILENAMES = "/dev/null";
LIBGL_ALWAYS_SOFTWARE = "1";
};
systemd.services.gnome-remote-desktop.environment = {
VK_ICD_FILENAMES = "/dev/null";
LIBGL_ALWAYS_SOFTWARE = "1";
};
environment.sessionVariables.XDG_DATA_DIRS = lib.mkAfter [
"${pkgs.gnome-remote-desktop}/share"
];
environment.pathsToLink = [
"/share/gsettings-schemas"
"/share"
]; ];
}) })

View File

@@ -43,7 +43,7 @@ in
age age
wget wget
sops sops
bitwarden-desktop #replaced bitwarden # bitwarden-desktop #replaced bitwarden
bitwarden-cli bitwarden-cli
cowsay cowsay
remmina remmina

View File

@@ -3,7 +3,7 @@
let let
cfg = config.${namespace}.performance-tuning; cfg = config.${namespace}.performance-tuning;
in { in {
options.${namespace}.performance-tuning.enable = lib.mkEnableOption "XFCE desktop environment"; options.${namespace}.performance-tuning.enable = lib.mkEnableOption "performance tuning settings for gaming and general use";
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
boot.kernelParams = [ boot.kernelParams = [
"nvme_core.default_ps_max_latency_us=0" "nvme_core.default_ps_max_latency_us=0"

View File

@@ -0,0 +1,28 @@
{ ... }:
final: prev:
let
python313ForCeph =
let
base = final.python313;
in
base
// {
override = args:
base.override (args // {
packageOverrides = self: super:
(if args ? packageOverrides then args.packageOverrides self super else { })
// {
# Ceph still references cython_0 in nixpkgs; map it to modern cython on py3.13.
cython_0 = super.cython;
};
});
};
in {
# Work around nixos-unstable eval failure:
# sphinx-9.1.0 not supported for interpreter python3.11
# (seen through libvirtd -> qemu_full -> ceph Python dependency chain).
ceph = prev.ceph.override {
python311 = python313ForCeph;
};
}

View File

@@ -1,7 +1,40 @@
{ ... }: { ... }:
final: prev: { final: prev: {
mesa = prev.mesa.overrideAttrs (old: { mesa = (prev.mesa.overrideAttrs (old: rec {
version = "git-unstable-2026-02-12";
src = prev.fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "mesa";
repo = "mesa";
rev = "main";
hash = "sha256-5gpLORvbV3skALrQa0VxTJJarYjuq+KyTxDm9HtZNbQ=";
};
patches = [];
buildInputs = old.buildInputs ++ (with prev.llvmPackages_21; [
clang-unwrapped
libclang
]);
# Create symlinks to clang libraries so meson can find them
preConfigure = (old.preConfigure or "") + ''
mkdir -p $NIX_BUILD_TOP/clang-libs
for lib in ${prev.llvmPackages_21.clang-unwrapped.lib}/lib/*.a; do
ln -sf "$lib" "$NIX_BUILD_TOP/clang-libs/"
done
export LIBRARY_PATH="$NIX_BUILD_TOP/clang-libs:''${LIBRARY_PATH:-}"
export CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
'';
mesonFlags =
(builtins.filter (flag:
!(prev.lib.hasPrefix "-Dclang-libdir=" flag) &&
flag != "--sysconfdir=/etc"
) old.mesonFlags) ++ [
"-Dsysconfdir=${placeholder "out"}/etc"
] ++ (if prev.stdenv.hostPlatform.is64bit then [ "-Dintel-rt=enabled" ] else [ "-Dintel-rt=disabled" ]);
})).override {
stdenv = prev.gcc14Stdenv; stdenv = prev.gcc14Stdenv;
}); };
} }

View File

@@ -1,17 +0,0 @@
{ ... }:
final: prev: {
synergy = prev.synergy.overrideAttrs (oldAttrs: {
postPatch = (oldAttrs.postPatch or "") + ''
# Fix deprecated Qt endl usage in QTextStream contexts only
# Don't touch cerr/cout which use std::endl
find . -name "*.cpp" -type f -exec sed -i \
's/\(outStream.*<<.*\)endl/\1Qt::endl/g; s/\(QTextStream.*<<.*\)endl/\1Qt::endl/g' {} +
find . -name "*.h" -type f -exec sed -i \
's/\(outStream.*<<.*\)endl/\1Qt::endl/g; s/\(QTextStream.*<<.*\)endl/\1Qt::endl/g' {} +
# Fix missing SIZE_MAX include
sed -i '/#include <cstring>/a#include <cstdint>' src/lib/server/InputFilter.cpp
'';
});
}

View File

@@ -0,0 +1,43 @@
{ lib
, stdenv
, fetchurl
, appimageTools
, postgresql
, procps
, ...
}:
let
pname = "cs-demo-manager";
version = "3.18.2";
src = fetchurl {
url = "https://github.com/akiver/cs-demo-manager/releases/download/v${version}/CS-Demo-Manager-${version}.AppImage";
hash = "sha256-REEhqvfYSKD7EyIYJVlbkQu0h5FZcofc8X7Zhu1xZnA="; # You need to add the hash after first build attempt
};
appimageContents = appimageTools.extractType2 {
inherit pname version src;
};
in
appimageTools.wrapType2 {
inherit pname version src;
extraPkgs = pkgs: [ postgresql procps ];
extraInstallCommands = ''
install -m 444 -D ${appimageContents}/cs-demo-manager.desktop $out/share/applications/cs-demo-manager.desktop
install -m 444 -D ${appimageContents}/cs-demo-manager.png $out/share/icons/hicolor/512x512/apps/cs-demo-manager.png
substituteInPlace $out/share/applications/cs-demo-manager.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
'';
meta = with lib; {
description = "An application to manage Counter-Strike demos";
homepage = "https://github.com/akiver/cs-demo-manager";
license = licenses.gpl2Plus;
platforms = [ "x86_64-linux" ];
maintainers = [ ];
};
}

View File

@@ -7,7 +7,7 @@ pkgs.mkShellNoCC {
packages = with pkgs; [ packages = with pkgs; [
cowsay cowsay
lolcat lolcat
bitwarden-desktop #replaced bitwarden # bitwarden-desktop #replaced bitwarden
bitwarden-cli bitwarden-cli
sops sops
]; ];

View File

@@ -13,9 +13,8 @@
./hardware/hardware-configuration.nix ./hardware/hardware-configuration.nix
]; ];
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; # boot.loader.systemd-boot.enable = true; # managed by lanzaboote
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ];
networking.hostName = "drivebystation-nix"; # Define your hostname. networking.hostName = "drivebystation-nix"; # Define your hostname.
@@ -48,10 +47,10 @@
services = { services = {
# Enable Gnome Session # Enable Gnome Session
displayManager.gdm.enable = false; displayManager.gdm.enable = true;
displayManager.sddm.enable = false; displayManager.sddm.enable = false;
# displayManager.sddm.wayland.enable = true; displayManager.sddm.wayland.enable = false;
displayManager.cosmic-greeter.enable = true; displayManager.cosmic-greeter.enable = false;
displayManager.defaultSession = "gnome"; displayManager.defaultSession = "gnome";
xserver = { xserver = {
@@ -129,7 +128,7 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
# wget # wget
(python312.withPackages (ps: with ps; [ websockets ])) (python3.withPackages (ps: with ps; [ websockets ]))
sqlite sqlite
javaPackages.compiler.openjdk25 javaPackages.compiler.openjdk25
javaPackages.compiler.openjdk21 javaPackages.compiler.openjdk21
@@ -139,6 +138,8 @@
krita krita
ntfs3g ntfs3g
htop htop
rivalcfg
reaper reaper
discord discord
betterdiscordctl betterdiscordctl
@@ -159,6 +160,9 @@
services.gvfs.enable = true; # For file manager integration services.gvfs.enable = true; # For file manager integration
# Enable udev rules for SteelSeries devices (rivalcfg)
services.udev.packages = [ pkgs.rivalcfg ];
# Disable iBus (not needed unless using Asian input methods) # Disable iBus (not needed unless using Asian input methods)
i18n.inputMethod = { i18n.inputMethod = {
enable = false; enable = false;
@@ -167,13 +171,17 @@
virtualisation.libvirtd = { virtualisation.libvirtd = {
enable = true; enable = true;
qemu = { qemu = {
package = pkgs.qemu_kvm; package = pkgs.qemu_full.override {
cephSupport = false;
};
runAsRoot = true; runAsRoot = true;
swtpm.enable = true; swtpm.enable = true;
vhostUserPackages = [ pkgs.virtiofsd ];
}; };
}; };
systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ]; systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
# started in user sessions. # started in user sessions.
@@ -192,11 +200,40 @@
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
24800 #Synergy 24800 #Synergy
53317 #localsend 53317 #localsend
3390 #rdp
9090
8000
]; ];
networking.firewall.allowedUDPPorts = [ networking.firewall.allowedUDPPorts = [
24800 #Synergy 24800 #Synergy
53317 #localsend 53317 #localsend
3390 #rdp
9090
8000
]; ];
networking.firewall.trustedInterfaces = [ "virbr0" ];
networking.nat = {
enable = true;
internalInterfaces = [ "virbr0" ];
externalInterface = "enp75s0";
extraCommands = ''
# MASQUERADE forwarded traffic to VM so it knows how to route back
iptables -t nat -A nixos-nat-post -o virbr0 -j MASQUERADE
'';
forwardPorts = [
{
sourcePort = 9090;
proto = "tcp";
destination = "192.168.122.113:9090";
}
{
sourcePort = 9090;
proto = "udp";
destination = "192.168.122.113:9090";
}
];
};
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;

View File

@@ -10,23 +10,23 @@
inputs, inputs,
# Additional metadata is provided by Snowfall Lib. # Additional metadata is provided by Snowfall Lib.
# The namespace used for your flake, defaulting to "internal" if not set. # The namespace used for your flake, defaulting to "internal" if not set.
namespace, # namespace,
# The system architecture for this host (eg. `x86_64-linux`). # The system architecture for this host (eg. `x86_64-linux`).
system, # system,
# The Snowfall Lib target for this system (eg. `x86_64-iso`). # The Snowfall Lib target for this system (eg. `x86_64-iso`).
target, # target,
# A normalized name for the system target (eg. `iso`). # A normalized name for the system target (eg. `iso`).
format, # format,
# A boolean to determine whether this system is a virtual target using nixos-generators. # A boolean to determine whether this system is a virtual target using nixos-generators.
virtual, # virtual,
# An attribute map of your defined hosts. # An attribute map of your defined hosts.
systems, # systems,
# All other arguments come from the system system. # All other arguments come from the system system.
config # config,
, ... ...
}: }:
let let
inherit (lib.my-namespace) enabled; # inherit (lib.my-namespace) systemPackages;
inherit pkgs; inherit pkgs;
installedPackages = lib.my-namespace.mkPackages pkgs; installedPackages = lib.my-namespace.mkPackages pkgs;
in in
@@ -47,9 +47,12 @@ in
my-namespace.desktop-environment.kde.enable = true; my-namespace.desktop-environment.kde.enable = true;
my-namespace.desktop-environment.cosmic.enable = true; my-namespace.desktop-environment.cosmic.enable = true;
my-namespace.performance-tuning.enable = true; my-namespace.performance-tuning.enable = true;
my-namespace.file-organization.enable = true;
# GNOME-keyring # GNOME-keyring
my-namespace.gnome-keyring.enable = true; my-namespace.gnome-keyring.enable = true;
# CS Tools
my-namespace.cs-tools.enable = true;
users.users.andreas = { users.users.andreas = {
isNormalUser = true; isNormalUser = true;
description = "Andreas Schaafsma"; description = "Andreas Schaafsma";
@@ -62,7 +65,7 @@ in
"gamemode" "gamemode"
]; ];
packages = with pkgs; [ packages = with pkgs; [
# Packages from inputs # Packages from inputsq
inputs.game-of-life.packages.x86_64-linux.default inputs.game-of-life.packages.x86_64-linux.default
inputs.zen-browser.packages.x86_64-linux.default inputs.zen-browser.packages.x86_64-linux.default
inputs.trilium-next-pr.legacyPackages.x86_64-linux.trilium-next-desktop inputs.trilium-next-pr.legacyPackages.x86_64-linux.trilium-next-desktop
@@ -79,8 +82,10 @@ in
trilium-desktop trilium-desktop
terraform terraform
virt-manager virt-manager
nil
# thunderbird # thunderbird
]; ];
}; };
programs.anime-game-launcher.enable = true; # Adds launcher and /etc/hosts rules programs.anime-game-launcher.enable = true; # Adds launcher and /etc/hosts rules
@@ -122,7 +127,6 @@ in
mangohud mangohud
my-namespace.udev-steelseries my-namespace.udev-steelseries
my-namespace.hello my-namespace.hello
kde-rounded-corners
my-namespace.linux-wallpaperengine my-namespace.linux-wallpaperengine
(pkgs.writeShellScriptBin "switch-to-desktop" '' (pkgs.writeShellScriptBin "switch-to-desktop" ''
@@ -133,26 +137,30 @@ in
# End the session cleanly # End the session cleanly
loginctl terminate-session "$XDG_SESSION_ID" loginctl terminate-session "$XDG_SESSION_ID"
'') '')
(pkgs.writeShellScriptBin "steamos-session-select" '' (pkgs.writeShellScriptBin "steamos-session-select" ''
#!/bin/sh #!/bin/sh
exec switch-to-desktop exec switch-to-desktop
'') '')
# Vulkan packages for Steam # Vulkan packages for Steam
pkgs.mesa mesa
pkgs.vulkan-loader vulkan-loader
pkgs.vulkan-validation-layers vulkan-validation-layers
pkgs.vulkan-extension-layer vulkan-extension-layer
pkgs.vulkan-tools vulkan-tools
pkgs.libva libva
pkgs.libva-utils libva-utils
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
# wget # wget
] ]
++ installedPackages.packages; ++ installedPackages.packages;
programs.nix-ld = { programs.nix-ld = {
enable = true; enable = true;
package = pkgs.nix-ld; #replaces nix-ld-rs package = pkgs.nix-ld; #replaces nix-ld-rs
}; };
services.flatpak.enable = true; services.flatpak.enable = true;
systemd.services.flatpak-repo = { systemd.services.flatpak-repo = {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
@@ -180,6 +188,7 @@ in
# Disable the GNOME3/GDM auto-suspend feature that cannot be disabled in GUI! # Disable the GNOME3/GDM auto-suspend feature that cannot be disabled in GUI!
# If no user is logged in, the machine will power down after 20 minutes. # If no user is logged in, the machine will power down after 20 minutes.
systemd.targets.sleep.enable = false; systemd.targets.sleep.enable = false;
systemd.targets.suspend.enable = false; systemd.targets.suspend.enable = false;
systemd.targets.hibernate.enable = false; systemd.targets.hibernate.enable = false;

View File

@@ -18,10 +18,15 @@
boot.kernelParams = [ boot.kernelParams = [
"console=tty0" "console=tty0"
# "efifb=off" # "efifb=off"
# "xe.force_probe=*" "xe.force_probe=e20b"
# Xe stability improvements for B580
"xe.guc_log_level=0" # Reduce GuC logging overhead
"xe.enable_display=1" # Ensure display is enabled
# Memory/performance parameters
"mitigations=off" # Disable CPU mitigations for better performance
"module_blacklist=nouveau,nvidia,nvidia_drm,nvidia_modeset,nvidia_uvm" "module_blacklist=nouveau,nvidia,nvidia_drm,nvidia_modeset,nvidia_uvm"
]; ];
services.switcherooControl.enable = true;
environment.variables.VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/intel_icd.x86_64.json"; environment.variables.VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/intel_icd.x86_64.json";
hardware.intel-gpu-tools.enable = true; hardware.intel-gpu-tools.enable = true;
hardware.graphics = { hardware.graphics = {
@@ -33,6 +38,7 @@
vpl-gpu-rt # oneVPL runtime vpl-gpu-rt # oneVPL runtime
intel-vaapi-driver # fallback intel-vaapi-driver # fallback
intel-compute-runtime # OpenCL/Level Zero intel-compute-runtime # OpenCL/Level Zero
level-zero # Level Zero API for compute
]; ];
}; };
@@ -48,7 +54,24 @@
]; ];
environment.variables = { environment.variables = {
# Force Intel GPU for all graphics operations
KWIN_DRM_DEVICES = "/dev/dri/card0"; KWIN_DRM_DEVICES = "/dev/dri/card0";
# Vulkan/DXVK optimizations for B580
ANV_ENABLE_PIPELINE_CACHE = "1";
# Shader cache settings
MESA_SHADER_CACHE_DISABLE = "false";
MESA_SHADER_CACHE_MAX_SIZE = "10G";
# DXVK optimizations
DXVK_HUD = "compiler"; # Monitor shader compilation
# DXVK_ASYNC = "1"; # Enable if you want async shader compilation (may cause issues)
# Intel IPEX / PyTorch settings
ZE_ENABLE_ALT_DRIVERS = "libze_intel_gpu.so.1"; # Enable Intel GPU driver for Level Zero
SYCL_CACHE_PERSISTENT = "1"; # Enable persistent SYCL cache
SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS = "1"; # Performance optimization
}; };
@@ -86,4 +109,15 @@
## User Access ## User Access
############################ ############################
users.users.andreas.extraGroups = [ "video" "render" ]; users.users.andreas.extraGroups = [ "video" "render" ];
############################
## System Packages for AI/ML
############################
environment.systemPackages = with pkgs; [
intel-compute-runtime
level-zero
# For checking GPU compute capabilities
clinfo
vulkan-tools
];
} }

View File

@@ -0,0 +1,37 @@
{ config, lib, system, pkgs, ... }:
{
boot.kernelModules = [
"vfio"
"vfio-pci"
"vfio_iommu_type1"
];
boot.kernelParams = [
"amd_iommu=on"
"iommu=pt"
];
# Make sure vfio is available inside initrd
boot.initrd.availableKernelModules = [
"vfio_pci"
];
# Bind by IDs (cleaner via modprobe instead of kernel param)
boot.extraModprobeConfig = ''
options vfio-pci ids=10de:1b81,10de:10f0
'';
boot.initrd.preDeviceCommands = ''
modprobe vfio-pci
'';
# # EARLY and deterministic binding
# boot.initrd.preDeviceCommands = ''
# echo 0000:05:00.0 > /sys/bus/pci/drivers/vfio-pci/bind
# echo 0000:05:00.1 > /sys/bus/pci/drivers/vfio-pci/bind
# '';
environment.systemPackages = with pkgs; [
pciutils
virtiofsd
config.virtualisation.libvirtd.qemu.package
looking-glass-client
virt-manager
libguestfs-with-appliance
];
users.extraUsers.andreas.extraGroups = [ "libvirtd" ];
}

View File

@@ -7,8 +7,9 @@
imports = imports =
[ [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
# ./graphics/intel.nix ./graphics/intel.nix
./graphics/intel_i915.nix ./graphics/passthrough_nvidia.nix
# ./graphics/intel_i915.nix
# ./graphics/nvidia.nix # ./graphics/nvidia.nix
./acer-monitor-edid.nix ./acer-monitor-edid.nix
./samsung-monitor-edid.nix ./samsung-monitor-edid.nix