matt1432
9744b4e127
All checks were successful
Discord / discord commits (push) Has been skipped
Flake Inputs: • Updated input 'astal': 'github:Aylur/astal' (2024-11-29) rev: 990f031507b21f8a18c0710016fb76b1f260afe8 → 'github:Aylur/astal' (2024-12-06) rev: 4c19d8d06fa25cc6389f37abe8839b4d8be5c0d6 • Updated input 'custom-sidebar-src': 'github:elchininet/custom-sidebar' (2024-12-04) rev: bf77493d6d69d252a669192b2f306bfbe4549655 → 'github:elchininet/custom-sidebar' (2024-12-07) rev: 4a8a5977e620cbcd584a8de96e1bceb83db227a2 • Updated input 'discord-overlay': 'github:matt1432/discord-nightly-overlay' (2024-12-03) rev: 3d31fbcaa6a99040ef1c6b953957f21c30c1d8e0 → 'github:matt1432/discord-nightly-overlay' (2024-12-07) rev: 67db3b139494ad55e489d772c1131d8f03289eea • Updated input 'gpu-screen-recorder-src': 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2024-11-30) rev: 508934b14a78f420174c1953ee8460384444e72b → 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2024-12-08) rev: 0b9fe9a89783f42d9c3bea1cf9ebf1f4ddf70621 • Updated input 'gtk-theme-src': 'github:dracula/gtk' (2024-11-26) rev: 788add33099a70b8ebba321b882ebff23fdc0a98 → 'github:dracula/gtk' (2024-12-05) rev: 3478e48925f33af411393adaa4043193f03a4e9a • Updated input 'home-manager': 'github:nix-community/home-manager' (2024-12-05) rev: 65912bc6841cf420eb8c0a20e03df7cbbff5963f → 'github:nix-community/home-manager' (2024-12-06) rev: d00c6f6d0ad16d598bf7e2956f52c1d9d5de3c3a • Updated input 'hyprgrass': 'github:horriblename/hyprgrass' (2024-12-05) rev: ecb7e95a739e4e6e7ee4007c3e676f545b687981 → 'github:horriblename/hyprgrass' (2024-12-08) rev: b928abfba914b61d657daf70f3e9901461d27439 • Updated input 'hyprland': 'github:hyprwm/Hyprland' (2024-12-05) rev: ceef4fb3a5efe1617790f56e2701846a21c2533d → 'github:hyprwm/Hyprland' (2024-12-07) rev: c106f454c136ecca47f84c659c58e19670050412 • Added input 'hyprland/hyprland-qtutils': 'github:hyprwm/hyprland-qtutils' (2024-12-06) rev: 969427419276c7ee170301ef1ebe0f68eb6eb2e2 • Added input 'hyprland/hyprland-qtutils/hyprutils': follows 'hyprland/hyprutils' • Added input 'hyprland/hyprland-qtutils/nixpkgs': follows 'hyprland/nixpkgs' • Added input 'hyprland/hyprland-qtutils/systems': follows 'hyprland/systems' • Updated input 'hyprland/pre-commit-hooks': 'github:cachix/git-hooks.nix' (2024-11-19) rev: 3308484d1a443fc5bc92012435d79e80458fe43c → 'github:cachix/git-hooks.nix' (2024-12-04) rev: 6f4e2a2112050951a314d2733a994fbab94864c6 • Updated input 'hyprland/xdph': 'github:hyprwm/xdg-desktop-portal-hyprland' (2024-11-15) rev: 8070f36deec723de71e7557441acb17e478204d3 → 'github:hyprwm/xdg-desktop-portal-hyprland' (2024-12-02) rev: fd85ef39369f95eed67fdf3f025e86916edeea2f • Updated input 'hyprutils': 'github:hyprwm/hyprutils' (2024-11-22) rev: b26f33cc1c8a7fd5076e19e2cce3f062dca6351c → 'github:hyprwm/hyprutils' (2024-12-06) rev: 104117aed6dd68561be38b50f218190aa47f2cd8 • Updated input 'jovian': 'github:Jovian-Experiments/Jovian-NixOS' (2024-11-27) rev: 8d7b2149e618696d5100c2683af1ffa893f02a75 → 'github:Jovian-Experiments/Jovian-NixOS' (2024-12-06) rev: 0f415721ee427270bc078ef3a5ba2a308d47461f • Updated input 'material-symbols-src': 'github:beecho01/material-symbols' (2024-11-23) rev: 2210b1fd4ee1a75d53ca9f3d5013b21d855e22f2 → 'github:beecho01/material-symbols' (2024-12-06) rev: 8f665f5d92821f266c3d0be5385ec990a89c7df3 • Updated input 'nh': 'github:viperML/nh' (2024-12-02) rev: 83db9160f7d79c0e3af45686454853d239202e54 → 'github:viperML/nh' (2024-12-06) rev: 97e70d0a2c6bddb2a1d081c949ebe1b48c169a87 • Updated input 'nix-gaming': 'github:fufexan/nix-gaming' (2024-12-02) rev: 094b2c4ee459dd5d3d1611c919d59f26110053b0 → 'github:fufexan/nix-gaming' (2024-12-08) rev: b15e082eeea1afdf6bfe7aa0dbe4758097958f80 • Updated input 'nix-index-db': 'github:Mic92/nix-index-database' (2024-12-01) rev: 6e0b7f81367069589a480b91603a10bcf71f3103 → 'github:Mic92/nix-index-database' (2024-12-08) rev: f1e477a7dd11e27e7f98b646349cd66bbabf2fb8 • Updated input 'nixpkgs': 'github:NixOS/nixpkgs' (2024-12-03) rev: 55d15ad12a74eb7d4646254e13638ad0c4128776 → 'github:NixOS/nixpkgs' (2024-12-05) rev: d0797a04b81caeae77bcff10a9dde78bc17f5661 • Updated input 'nixpkgs-wayland': 'github:nix-community/nixpkgs-wayland' (2024-12-05) rev: 9f8fe3345238f1be1859a036ff68f40dc7bbf34b → 'github:nix-community/nixpkgs-wayland' (2024-12-07) rev: 98e4d443cc6cc78659a33074aae4dee9e4b37bd7 • Updated input 'spotifyplus-src': 'github:thlucas1/homeassistantcomponent_spotifyplus' (2024-12-03) rev: 0ccc8e47abec9f3d474bd2d70e80f2dacfc69b5a → 'github:thlucas1/homeassistantcomponent_spotifyplus' (2024-12-06) rev: 3aa0d8a1e6b811508becabebddcb8df1db490e71 • Updated input 'spotifywebapi-src': 'github:thlucas1/SpotifyWebApiPython' (2024-12-03) rev: 02ddbac32cfe3ad48c6bddecc5522127d8abd723 → 'github:thlucas1/SpotifyWebApiPython' (2024-12-08) rev: acc942bb5f22a9f782b0ec87372157f5fd041219 • Updated input 'tuya-local-src': 'github:make-all/tuya-local' (2024-12-03) rev: 2d205a4cd4a822ed69907738d60f035380086878 → 'github:make-all/tuya-local' (2024-12-08) rev: e7fd0c13dcf8468f913af7d7e1124fb2f4476ada Docker Images: • rssbridge/rss-bridge latest: sha256:f5b63c60dad245b24912886f6ad20503281a4f8aae4cb886a3797f778fad4ffa → sha256:9de8e139d3583793a9b707c90efca9a1a66298ffe202b73903ad218e412ddef9 • nextcloud fpm: sha256:8fac67551cdd146e1c5cea72758a5fb9027234636c4ea44efda6748bc1eb6246 → sha256:e452bb5fc952269c50196a9f914fb84d37f3bb8ef4ff96ad3b5080f990bed5c9 • ghcr.io/linuxserver/sonarr latest: sha256:f1b771bf5f911ddb11aa86170ae27fab5ccde7d4671edcde6a3b264af8662945 → sha256:4ba3bfa985b911129b449734bbf63749a03f6ef69b8ca37f2ecd74d46fabef1f
121 lines
2.9 KiB
Nix
121 lines
2.9 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
inherit (builtins) toJSON;
|
|
inherit (lib) mkIf mkEnableOption mkOption optionals optionalString types;
|
|
|
|
cfg = config.nvidia;
|
|
in {
|
|
options.nvidia = {
|
|
enable = mkEnableOption "nvidia";
|
|
|
|
enableNvidiaSettings = mkOption {
|
|
type = types.bool;
|
|
default = false;
|
|
};
|
|
|
|
enableWayland = mkOption {
|
|
type = types.bool;
|
|
default = false;
|
|
};
|
|
|
|
enableCUDA = mkOption {
|
|
type = types.bool;
|
|
default = false;
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
hardware.graphics = {
|
|
enable = true;
|
|
enable32Bit = true;
|
|
|
|
extraPackages = builtins.attrValues {
|
|
inherit
|
|
(pkgs)
|
|
vaapiVdpau
|
|
libvdpau-va-gl
|
|
nvidia-vaapi-driver
|
|
;
|
|
};
|
|
extraPackages32 = [pkgs.vaapiVdpau];
|
|
};
|
|
|
|
services.xserver.videoDrivers = ["nvidia"];
|
|
|
|
hardware.nvidia = {
|
|
modesetting.enable = true;
|
|
|
|
# Enable the Nvidia settings menu,
|
|
# accessible via `nvidia-settings`.
|
|
nvidiaSettings = cfg.enableNvidiaSettings;
|
|
|
|
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
|
powerManagement = {
|
|
enable = false;
|
|
|
|
# Fine-grained power management. Turns off GPU when not in use.
|
|
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
|
finegrained = false;
|
|
};
|
|
|
|
open = false;
|
|
|
|
package = let
|
|
inherit (config.boot.kernelPackages.nvidiaPackages) beta stable;
|
|
in
|
|
if !cfg.enableWayland
|
|
then stable
|
|
else beta;
|
|
};
|
|
|
|
environment.systemPackages =
|
|
optionals cfg.enableCUDA [pkgs.cudaPackages.cudatoolkit]
|
|
++ (builtins.attrValues {
|
|
inherit (pkgs.nvtopPackages) nvidia;
|
|
inherit
|
|
(pkgs)
|
|
libva-utils
|
|
nvidia-vaapi-driver
|
|
pciutils
|
|
vdpauinfo
|
|
;
|
|
});
|
|
|
|
boot.kernelModules =
|
|
optionals cfg.enableCUDA ["nvidia-uvm"]
|
|
++ ["nvidia" "nvidia-drm"];
|
|
|
|
# Fixes egl-wayland issues with beta drivers
|
|
environment.etc = let
|
|
mkEglFile = n: library: let
|
|
suffix = optionalString (library != "wayland") ".1";
|
|
pkg =
|
|
if library != "wayland"
|
|
then config.hardware.nvidia.package
|
|
else pkgs.egl-wayland;
|
|
|
|
fileName = "${toString n}_nvidia_${library}.json";
|
|
library_path = "${pkg}/lib/libnvidia-egl-${library}.so${suffix}";
|
|
in {
|
|
"egl/egl_external_platform.d/${fileName}".source = pkgs.writeText fileName (toJSON {
|
|
file_format_version = "1.0.0";
|
|
ICD = {inherit library_path;};
|
|
});
|
|
};
|
|
in
|
|
mkIf cfg.enableWayland (
|
|
{"egl/egl_external_platform.d".enable = false;}
|
|
// mkEglFile 10 "wayland"
|
|
// mkEglFile 15 "gbm"
|
|
// mkEglFile 20 "xcb"
|
|
// mkEglFile 20 "xlib"
|
|
);
|
|
};
|
|
|
|
# For accurate stack trace
|
|
_file = ./default.nix;
|
|
}
|