@@ -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
|
|
||||||
echo "Failed to launch tuirun in foot terminal" >>"$LOGFILE"
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
sleep 1 # Give it a second to start
|
|
||||||
echo "Checking if tuirun process is still running..." >>"$LOGFILE"
|
# Matching pattern for the process
|
||||||
if pgrep -f "$TUIRUN_PATH" >/dev/null; then
|
MATCH_PATTERN="$TERMINAL --title tuirun"
|
||||||
echo "tuirun is running" >>"$LOGFILE"
|
|
||||||
|
if "$PGREP" -f "$MATCH_PATTERN" >/dev/null; then
|
||||||
|
"$PKILL" -f "$MATCH_PATTERN"
|
||||||
else
|
else
|
||||||
echo "tuirun exited prematurely" >>"$LOGFILE"
|
# Construct the command
|
||||||
|
CMD="$TERMINAL --title tuirun"
|
||||||
|
if [ -n "$OPTIONS" ]; then
|
||||||
|
CMD="$CMD $OPTIONS"
|
||||||
fi
|
fi
|
||||||
|
CMD="$CMD -e $TUIRUN_PATH"
|
||||||
|
|
||||||
|
# Launch the terminal with OPTIONS
|
||||||
|
"$HYPRCTL" dispatch exec "$CMD"
|
||||||
fi
|
fi
|
||||||
|
|||||||
92
flake.lock
generated
92
flake.lock
generated
@@ -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": {
|
||||||
|
|||||||
@@ -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";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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,"
|
||||||
|
|||||||
@@ -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)"
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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"
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|||||||
72
system/modules/boot/kernel/default.nix
Normal file
72
system/modules/boot/kernel/default.nix
Normal 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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
60
system/modules/boot/loader/default.nix
Normal file
60
system/modules/boot/loader/default.nix
Normal 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];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
44
system/modules/utils/chaotic/default.nix
Normal file
44
system/modules/utils/chaotic/default.nix
Normal 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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
})
|
||||||
|
]);
|
||||||
|
}
|
||||||
@@ -14,7 +14,6 @@
|
|||||||
environment = {
|
environment = {
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
git
|
git
|
||||||
scx
|
|
||||||
stow
|
stow
|
||||||
];
|
];
|
||||||
localBinInPath = true;
|
localBinInPath = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user