Merge pull request #62 from cnsta/kernload

Kernload
This commit is contained in:
cnsta
2024-09-22 14:32:11 +02:00
committed by GitHub
20 changed files with 339 additions and 127 deletions

View File

@@ -1,26 +1,36 @@
#!/usr/bin/env bash # Define TERMINAL if not set
TERMINAL="${TERMINAL:-foot}"
# Path to the tuirun executable # Path to the tuirun executable
TUIRUN_PATH="/etc/profiles/per-user/$USER/bin/tuirun" TUIRUN_PATH="/etc/profiles/per-user/$USER/bin/tuirun"
LOGFILE="$HOME/tuirun_debug.log"
echo "Launching tuirun..." >>"$LOGFILE" # Use absolute paths for commands
date >>"$LOGFILE" PGREP="/run/current-system/sw/bin/pgrep"
PKILL="/run/current-system/sw/bin/pkill"
HYPRCTL="/etc/profiles/per-user/$USER/bin/hyprctl"
if pgrep -f "alacritty --title tuirun" >/dev/null; then # Determine OPTIONS based on TERMINAL
echo "Terminating existing tuirun process" >>"$LOGFILE" if [ "$TERMINAL" = "foot" ]; then
pkill -f "alacritty --title tuirun" OPTIONS="--override=main.pad=0x0"
elif [ "$TERMINAL" = "alacritty" ]; then
OPTIONS="--option window.padding.x=0 --option window.padding.y=0"
else else
echo "Starting new tuirun process" >>"$LOGFILE" OPTIONS=""
if ! hyprctl dispatch exec "alacritty --title tuirun -e sh -c '$TUIRUN_PATH'"; then fi
echo "Failed to launch tuirun in foot terminal" >>"$LOGFILE"
exit 1 # Matching pattern for the process
fi MATCH_PATTERN="$TERMINAL --title tuirun"
sleep 1 # Give it a second to start
echo "Checking if tuirun process is still running..." >>"$LOGFILE" if "$PGREP" -f "$MATCH_PATTERN" >/dev/null; then
if pgrep -f "$TUIRUN_PATH" >/dev/null; then "$PKILL" -f "$MATCH_PATTERN"
echo "tuirun is running" >>"$LOGFILE" else
else # Construct the command
echo "tuirun exited prematurely" >>"$LOGFILE" CMD="$TERMINAL --title tuirun"
fi if [ -n "$OPTIONS" ]; then
CMD="$CMD $OPTIONS"
fi
CMD="$CMD -e $TUIRUN_PATH"
# Launch the terminal with OPTIONS
"$HYPRCTL" dispatch exec "$CMD"
fi fi

92
flake.lock generated
View File

@@ -99,12 +99,12 @@
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1726859881, "lastModified": 1726952766,
"narHash": "sha256-ZSgYPiOsa0RdaHOxBq19bqUglBv02Gt/O/Wbgkj5+vU=", "narHash": "sha256-w/1jB99f0eaQp5hVbJgkUl/PTrUN/XGxRVKBQZlZ43A=",
"rev": "404cdbe22e3b2c24df554bf835a866a2e6e41f83", "rev": "a8b5d65ffe5c987dc7ab790588d011005e440d58",
"revCount": 1418, "revCount": 1419,
"type": "tarball", "type": "tarball",
"url": "https://api.flakehub.com/f/pinned/chaotic-cx/nyx/0.1.1418%2Brev-404cdbe22e3b2c24df554bf835a866a2e6e41f83/019210e3-5112-74cb-9c12-5f42d274a50f/source.tar.gz?rev=404cdbe22e3b2c24df554bf835a866a2e6e41f83&revCount=1418" "url": "https://api.flakehub.com/f/pinned/chaotic-cx/nyx/0.1.1419%2Brev-a8b5d65ffe5c987dc7ab790588d011005e440d58/0192167d-bd61-73b1-80b5-daa57fed5e16/source.tar.gz?rev=a8b5d65ffe5c987dc7ab790588d011005e440d58&revCount=1419"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@@ -205,11 +205,11 @@
"rust-analyzer-src": "rust-analyzer-src" "rust-analyzer-src": "rust-analyzer-src"
}, },
"locked": { "locked": {
"lastModified": 1726468443, "lastModified": 1726900127,
"narHash": "sha256-O1VcbVBrqIf58U05yFXl9+J7XM2qh0I+7vqMbNwZPq0=", "narHash": "sha256-v3r7yJY8YE4HAzD5DXOxLkzj8YZKQ0xuccp9yppGW1U=",
"owner": "nix-community", "owner": "nix-community",
"repo": "fenix", "repo": "fenix",
"rev": "effac20e9560aab202e82b6d833f685163a9c138", "rev": "18eefba7fd0bf03e115785948758a44125a9fd68",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -226,11 +226,11 @@
"rust-analyzer-src": "rust-analyzer-src_2" "rust-analyzer-src": "rust-analyzer-src_2"
}, },
"locked": { "locked": {
"lastModified": 1726900127, "lastModified": 1726986637,
"narHash": "sha256-v3r7yJY8YE4HAzD5DXOxLkzj8YZKQ0xuccp9yppGW1U=", "narHash": "sha256-webLScPFCax18Z2lQHhaWzqqQRvV2Y1lOADqUa7VQbU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "fenix", "repo": "fenix",
"rev": "18eefba7fd0bf03e115785948758a44125a9fd68", "rev": "f5a9b01cd81b46228b3737669e8275b1f2da7d35",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -250,11 +250,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1726921930, "lastModified": 1726960811,
"narHash": "sha256-ZkWbcsOlZYjTzgUjL5ac5qXidgb/s2hk++p1UsZUpSc=", "narHash": "sha256-dsXtISWmjHReplx9V18iCoEEKU9RcwmZJrIq0Jkzu3I=",
"owner": "nix-community", "owner": "nix-community",
"repo": "flake-firefox-nightly", "repo": "flake-firefox-nightly",
"rev": "c193460a0cc5ccee98a5d1e09b869ad3fd201bb9", "rev": "e202a3f7dd9c9d1016e47124bea4f44e7a551284",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -644,11 +644,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1726902823, "lastModified": 1726985855,
"narHash": "sha256-Gkc7pwTVLKj4HSvRt8tXNvosl8RS9hrBAEhOjAE0Tt4=", "narHash": "sha256-NJPGK030Y3qETpWBhj9oobDQRbXdXOPxtu+YgGvZ84o=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "14929f7089268481d86b83ed31ffd88713dcd415", "rev": "04213d1ce4221f5d9b40bcee30706ce9a91d148d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -686,11 +686,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1726440980, "lastModified": 1726902823,
"narHash": "sha256-ChhIrjtdu5d83W+YDRH+Ec5g1MmM0xk6hJnkz15Ot7M=", "narHash": "sha256-Gkc7pwTVLKj4HSvRt8tXNvosl8RS9hrBAEhOjAE0Tt4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "a9c9cc6e50f7cbd2d58ccb1cd46a1e06e9e445ff", "rev": "14929f7089268481d86b83ed31ffd88713dcd415",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -773,11 +773,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1726918033, "lastModified": 1726995313,
"narHash": "sha256-I0U4OLssUlNd6/KXHwErmgmYZURTJYJNHbeoKaMH4iI=", "narHash": "sha256-HTbsXJDFugdQ794d1Bnh8eRSY7AlunIxd7jFW9kkKNM=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "8579066c7a1ceb745499ea4e11d5d420b1387ec0", "rev": "e5ff19ac0f2c8d53a0c847d06a17676e636d6447",
"revCount": 5246, "revCount": 5247,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/hyprwm/Hyprland" "url": "https://github.com/hyprwm/Hyprland"
@@ -1016,11 +1016,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1726115155, "lastModified": 1726902390,
"narHash": "sha256-VDylz5VX4JD4/TZv6xUJDwuvNdgLRGoOpue1dlZGdIQ=", "narHash": "sha256-ESAD6AkxsQdV/j5ZBcO4Vg94J7Xd0nfpiEZpJtwSEhg=",
"owner": "Jovian-Experiments", "owner": "Jovian-Experiments",
"repo": "Jovian-NixOS", "repo": "Jovian-NixOS",
"rev": "02cf60ce20b6034fc0459e5116cec7016aaff6e4", "rev": "faf4c746c068dd8e41b1fa5f18beeabd34d4064c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1133,11 +1133,11 @@
"umu": "umu" "umu": "umu"
}, },
"locked": { "locked": {
"lastModified": 1726853411, "lastModified": 1726969451,
"narHash": "sha256-+R8HmKGNV2PKUTmCyLKQeDCCpUqur23ucKR63M2SWAQ=", "narHash": "sha256-PuRj1ZoHkvUBak10HD55n7v3SDx5zCwn3av0JEoJteI=",
"owner": "fufexan", "owner": "fufexan",
"repo": "nix-gaming", "repo": "nix-gaming",
"rev": "7ea77f2f1cd535c4d952128b349eca0b8a16d196", "rev": "43a085bb0d25ec065838b3c5434627b87c686295",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1226,11 +1226,11 @@
}, },
"nixpkgs-small": { "nixpkgs-small": {
"locked": { "locked": {
"lastModified": 1726929174, "lastModified": 1726972148,
"narHash": "sha256-MbKM2df9xF9USr9uuOaB6p1s1ZzFzLZGIIifD3BTTWg=", "narHash": "sha256-LjqTgGAovaT9vcrQgZNjBO6fA4DdPfWSY1dcEn1f4cg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "eca2693230fe59318102f3726d2da305312c04a4", "rev": "b8e6da32d920a9dec402390e08674f2b11427c24",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1401,11 +1401,11 @@
}, },
"nur": { "nur": {
"locked": { "locked": {
"lastModified": 1726950640, "lastModified": 1726995785,
"narHash": "sha256-VpU1v3QSxzwYLIQ9a9nRvSB1h3FlZzX7PYkgbQIacV0=", "narHash": "sha256-qpY9TCjtyhAeHa64NCyo3SoaHslxrrxQiMOPPY5lXEM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "e0592ed4327a65f23f3d9ab73a08417ae5853747", "rev": "474ea929fade537a0ba4f1e5b73abc0d157a293f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1740,11 +1740,11 @@
"systems": "systems_8" "systems": "systems_8"
}, },
"locked": { "locked": {
"lastModified": 1726953225, "lastModified": 1726998061,
"narHash": "sha256-Q9vQ+sEup4QbyoMYkz1hQ8Yti0nKZVPn+vVX0EpLoH0=", "narHash": "sha256-VgTXpSQuHQkSLvx3/lR8spnZK/iNniVoR3dcsQbEyQo=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "b283f82663e4a25d40da102481be7b1c9c88e354", "rev": "05f2efc7135167613ef4b190efd7ba4e01c424d6",
"revCount": 20, "revCount": 24,
"type": "git", "type": "git",
"url": "https://git.sr.ht/~canasta/tuirun" "url": "https://git.sr.ht/~canasta/tuirun"
}, },
@@ -1792,11 +1792,11 @@
}, },
"locked": { "locked": {
"dir": "nix", "dir": "nix",
"lastModified": 1726951933, "lastModified": 1726976812,
"narHash": "sha256-YM4u7EPmcps3ObGTj7Qcfa6SNIGK7W3dFIBBtPMJ6SY=", "narHash": "sha256-7LHyNF/IATpeDg+fLH4LnwGbK3IymdNHTPRNLXnIoZs=",
"owner": "wez", "owner": "wez",
"repo": "wezterm", "repo": "wezterm",
"rev": "9d4a145303fe44d4ee49a330bdd053bf3fc1197d", "rev": "1c4fdd3f7131785d0afaed08bed6cf1856f84328",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1832,11 +1832,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1726851729, "lastModified": 1726933538,
"narHash": "sha256-1z0esr5lBeUMlrPZ9gZmqZT8oTQekxJi53HAW4cH0Ms=", "narHash": "sha256-xTqnMoJsEojuvqJLuM+U7EZ7q71efaj3pbvjutq4TXc=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "73b8c4f1150040644cf678aa8bbf2cec48a433cf", "rev": "4880c50146d0c2a3152d2b02f79253810c330c11",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -1,13 +1,12 @@
{ pkgs {
, config pkgs,
, lib config,
, ... lib,
}: ...
let }: let
inherit (lib) mkIf mkEnableOption; inherit (lib) mkIf mkEnableOption;
cfg = config.modules.terminal.foot; cfg = config.modules.terminal.foot;
in in {
{
options = { options = {
modules.terminal.foot.enable = mkEnableOption "Enables foot terminal"; modules.terminal.foot.enable = mkEnableOption "Enables foot terminal";
}; };

View File

@@ -1,12 +1,11 @@
{ config {
, lib config,
, ... lib,
}: ...
let }: let
inherit (lib) mkIf mkEnableOption; inherit (lib) mkIf mkEnableOption;
cfg = config.modules.terminal.kitty; cfg = config.modules.terminal.kitty;
in in {
{
options = { options = {
modules.terminal.kitty.enable = mkEnableOption "Enables kitty terminal"; modules.terminal.kitty.enable = mkEnableOption "Enables kitty terminal";
}; };

View File

@@ -52,7 +52,7 @@ in {
#bind = $mod, M, exec, hyprctl dispatch exit #bind = $mod, M, exec, hyprctl dispatch exit
#bind = $mod, E, exec, $fileManager #bind = $mod, E, exec, $fileManager
"$mod, E, exec, $fileManager" "$mod, E, exec, $fileManager"
"$mod, r, exec, $tuirun" "$mod, R, exec, $tuirun"
"$mod SHIFT, E, exec, $yazi" "$mod SHIFT, E, exec, $yazi"
"$mod, F, fullscreen," "$mod, F, fullscreen,"
"$mod SHIFT, F, togglefloating," "$mod SHIFT, F, togglefloating,"

View File

@@ -19,7 +19,7 @@ in {
"float,initialTitle:(tuirun)" "float,initialTitle:(tuirun)"
"size 600 300,initialTitle:(tuirun)" "size 600 300,initialTitle:(tuirun)"
"center,initialTitle:(tuirun)" "center,initialTitle:(tuirun)"
# "workspace special:tuirun,initialTitle:(tuirun)" "workspace special:tuirun,initialTitle:(tuirun)"
"noborder,initialTitle:(tuirun)" "noborder,initialTitle:(tuirun)"
#windowrulev2 = move 1708 32,class:(floatcal) #windowrulev2 = move 1708 32,class:(floatcal)
"float,class:(org.keepassxc.KeePassXC)" "float,class:(org.keepassxc.KeePassXC)"

View File

@@ -36,15 +36,15 @@ in {
./modules.nix ./modules.nix
]; ];
boot = { # boot = {
consoleLogLevel = 3; # consoleLogLevel = 3;
kernelPackages = lib.mkForce pkgs.linuxPackages_latest; # kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
kernelParams = [ # kernelParams = [
"amd_pstate=active" # "amd_pstate=active"
"quiet" # "quiet"
"splash" # "splash"
]; # ];
}; # };
# environment.variables.COPILOT_API_KEY = config.age.secrets.cnstcopilot.path; # environment.variables.COPILOT_API_KEY = config.age.secrets.cnstcopilot.path;

View File

@@ -1,5 +1,17 @@
{ {
modules = { modules = {
boot = {
loader = {
default.enable = false;
lanzaboote.enable = true;
};
kernel = {
variant = "cachyos";
hardware = "amd";
extraKernelParams = [];
extraBlacklistedModules = [];
};
};
gaming = { gaming = {
steam = { steam = {
enable = true; enable = true;
@@ -154,6 +166,12 @@
anyrun = { anyrun = {
enable = true; enable = true;
}; };
chaotic = {
enable = true;
amd = {
enable = true;
};
};
corectrl = { corectrl = {
enable = true; enable = true;
}; };

View File

@@ -35,16 +35,6 @@ in {
./modules.nix ./modules.nix
]; ];
boot = {
consoleLogLevel = 3;
kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
kernelParams = [
"amd_pstate=active"
"quiet"
"splash"
];
};
swapDevices = [ swapDevices = [
{ {
device = "/var/lib/swapfile"; device = "/var/lib/swapfile";

View File

@@ -1,5 +1,17 @@
{ {
modules = { modules = {
boot = {
loader = {
default.enable = true;
lanzaboote.enable = false;
};
kernel = {
variant = "latest";
hardware = "amd";
extraKernelParams = [];
extraBlacklistedModules = [];
};
};
gaming = { gaming = {
steam = { steam = {
enable = false; enable = false;
@@ -149,6 +161,12 @@
brightnessctl = { brightnessctl = {
enable = true; enable = true;
}; };
chaotic = {
enable = false;
amd = {
enable = false;
};
};
corectrl = { corectrl = {
enable = false; enable = false;
}; };

View File

@@ -34,7 +34,6 @@
shared shared
++ [ ++ [
./cnix ./cnix
"${mod}/boot/lanzaboote"
"${mod}/nix/nh/cnst" "${mod}/nix/nh/cnst"
"${mod}/dev" "${mod}/dev"
{ {
@@ -53,7 +52,6 @@
shared shared
++ [ ++ [
./toothpc ./toothpc
"${mod}/boot/lanzaboote"
"${mod}/nix/nh/toothpick" "${mod}/nix/nh/toothpick"
"${mod}/dev" "${mod}/dev"
{ {
@@ -72,7 +70,6 @@
shared shared
++ [ ++ [
./cnixpad ./cnixpad
"${mod}/boot"
"${mod}/nix/nh/cnst" "${mod}/nix/nh/cnst"
"${mod}/dev" "${mod}/dev"
{ {

View File

@@ -35,15 +35,6 @@ in {
./modules.nix ./modules.nix
]; ];
boot = {
blacklistedKernelModules = [
];
consoleLogLevel = 3;
kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
kernelParams = [
];
};
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = lib.mkDefault "23.11"; system.stateVersion = lib.mkDefault "23.11";
} }

View File

@@ -1,5 +1,17 @@
{ {
modules = { modules = {
boot = {
loader = {
default.enable = false;
lanzaboote.enable = true;
};
kernel = {
variant = "cachyos";
hardware = "nvidia";
extraKernelParams = [];
extraBlacklistedModules = [];
};
};
gaming = { gaming = {
steam = { steam = {
enable = true; enable = true;
@@ -38,7 +50,7 @@
}; };
nvidia = { nvidia = {
enable = true; enable = true;
package = "beta"; # set to beta/stable/production depending on your needs package = "latest"; # set to beta/latest/stable/production depending on your needs
}; };
}; };
network = { network = {
@@ -150,6 +162,12 @@
corectrl = { corectrl = {
enable = false; enable = false;
}; };
chaotic = {
enable = true;
amd = {
enable = false;
};
};
microfetch = { microfetch = {
enable = true; enable = true;
}; };

View File

@@ -0,0 +1,72 @@
# kernel.nix
{
pkgs,
lib,
config,
...
}: let
inherit (lib) mkOption;
cfg = config.modules.boot.kernel;
in {
options = {
modules.boot.kernel = {
variant = mkOption {
type = lib.types.enum ["latest" "cachyos"];
default = "latest";
description = "Kernel variant to use.";
};
hardware = mkOption {
type = lib.types.enum ["amd" "nvidia"];
default = "amd";
description = "Hardware type (GPU) configuration.";
};
extraKernelParams = mkOption {
type = lib.types.listOf lib.types.str;
default = [];
description = "Additional kernel parameters.";
};
extraBlacklistedModules = mkOption {
type = lib.types.listOf lib.types.str;
default = [];
description = "Additional kernel modules to blacklist.";
};
};
};
config = {
boot = {
consoleLogLevel = 3;
kernelPackages = (
if cfg.variant == "latest"
then pkgs.linuxPackages_latest
else if cfg.variant == "cachyos"
then pkgs.linuxPackages_cachyos
else pkgs.linuxPackages
);
kernelParams =
[
"quiet"
"splash"
]
++ (
if cfg.hardware == "amd"
then ["amd_pstate=active"]
else []
)
++ cfg.extraKernelParams;
blacklistedKernelModules =
(
if cfg.hardware == "nvidia"
then ["nouveau"]
else []
)
++ cfg.extraBlacklistedModules;
};
};
}

View File

@@ -0,0 +1,60 @@
{
pkgs,
lib,
config,
inputs,
...
}: let
inherit (lib) mkIf mkEnableOption mkMerge mkForce;
cfg = config.modules.boot.loader;
in {
options = {
modules.boot.loader = {
default = {
enable = mkEnableOption "Enable default boot loader configuration.";
};
lanzaboote = {
enable = mkEnableOption "Enable Lanzaboote boot loader configuration.";
};
};
};
imports = [
inputs.lanzaboote.nixosModules.lanzaboote
];
config = mkMerge [
{
assertions = [
{
assertion = !(cfg.default.enable && cfg.lanzaboote.enable);
message = "Only one of modules.boot.loader.default.enable and modules.boot.loader.lanzaboote.enable can be set to true.";
}
];
}
(mkIf cfg.default.enable {
# Default boot loader configuration
boot.loader = {
systemd-boot.enable = true;
systemd-boot.graceful = true;
efi.canTouchEfiVariables = false;
};
})
(mkIf cfg.lanzaboote.enable {
# Lanzaboote boot loader configuration
boot = {
lanzaboote = {
enable = true;
pkiBundle = "/etc/secureboot";
};
# We let Lanzaboote install systemd-boot
loader.systemd-boot.enable = mkForce false;
};
environment.systemPackages = [pkgs.sbctl];
})
];
}

View File

@@ -1,5 +1,7 @@
{systemModules, ...}: { {systemModules, ...}: {
imports = [ imports = [
"${systemModules}/boot/loader"
"${systemModules}/boot/kernel"
"${systemModules}/gaming/gamemode" "${systemModules}/gaming/gamemode"
"${systemModules}/gaming/gamescope" "${systemModules}/gaming/gamescope"
"${systemModules}/gaming/lutris" "${systemModules}/gaming/lutris"
@@ -40,6 +42,7 @@
"${systemModules}/utils/android" "${systemModules}/utils/android"
"${systemModules}/utils/anyrun" "${systemModules}/utils/anyrun"
"${systemModules}/utils/brightnessctl" "${systemModules}/utils/brightnessctl"
"${systemModules}/utils/chaotic"
"${systemModules}/utils/corectrl" "${systemModules}/utils/corectrl"
"${systemModules}/utils/microfetch" "${systemModules}/utils/microfetch"
"${systemModules}/utils/misc" "${systemModules}/utils/misc"

View File

@@ -20,15 +20,7 @@ in {
vaapiVdpau vaapiVdpau
libvdpau-va-gl libvdpau-va-gl
amdvlk amdvlk
# mesa
mesa
# vulkan
vulkan-tools vulkan-tools
# vulkan-loader
# vulkan-validation-layers
# vulkan-extension-layer
]; ];
extraPackages32 = with pkgs.pkgsi686Linux; [ extraPackages32 = with pkgs.pkgsi686Linux; [
vaapiVdpau vaapiVdpau

View File

@@ -18,9 +18,9 @@ in {
modules.hardware.graphics.nvidia = { modules.hardware.graphics.nvidia = {
enable = mkEnableOption "Enables NVidia graphics"; enable = mkEnableOption "Enables NVidia graphics";
package = mkOption { package = mkOption {
type = types.enum ["stable" "beta" "production"]; # Added "production" here type = types.enum ["stable" "beta" "production" "latest"];
default = "stable"; default = "stable";
description = "Choose between the stable, beta, or production NVidia driver package"; description = "Choose between the stable, beta, latest, or production NVidia driver package";
}; };
}; };
}; };
@@ -49,15 +49,17 @@ in {
package = package =
if cfg.package == "beta" if cfg.package == "beta"
then config.boot.kernelPackages.nvidiaPackages.beta then config.boot.kernelPackages.nvidiaPackages.beta
else if cfg.package == "latest"
then config.boot.kernelPackages.nvidiaPackages.latest
else if cfg.package == "production" else if cfg.package == "production"
then config.boot.kernelPackages.nvidiaPackages.production then config.boot.kernelPackages.nvidiaPackages.prodution
else config.boot.kernelPackages.nvidiaPackages.stable; else config.boot.kernelPackages.nvidiaPackages.stable;
modesetting.enable = true; modesetting.enable = true;
powerManagement = { powerManagement = {
enable = false; enable = false;
finegrained = false; finegrained = false;
}; };
open = false; open = true;
nvidiaSettings = true; nvidiaSettings = true;
}; };
}; };

View File

@@ -0,0 +1,44 @@
{
pkgs,
config,
lib,
...
}: let
inherit (lib) mkIf mkEnableOption mkOption mkMerge;
cfg = config.modules.utils.chaotic;
in {
options = {
modules.utils.chaotic = {
enable = mkEnableOption "Enables Chaotic AUR packages";
amd.enable = mkOption {
type = lib.types.bool;
default = false;
description = "Whether to install AMD-specific settings.";
};
};
};
config = mkIf cfg.enable (mkMerge [
{
# Base configuration when Chaotic is enabled
chaotic.scx.enable = true;
}
(mkIf cfg.amd.enable {
# AMD-specific configuration
chaotic.mesa-git = {
enable = true;
extraPackages = with pkgs; [
mesa_git.opencl
intel-media-driver
intel-ocl
vaapiIntel
];
extraPackages32 = with pkgs; [
mesa32_git.opencl
intel-media-driver
vaapiIntel
];
};
})
]);
}

View File

@@ -14,7 +14,6 @@
environment = { environment = {
systemPackages = with pkgs; [ systemPackages = with pkgs; [
git git
scx
stow stow
]; ];
localBinInPath = true; localBinInPath = true;