Initial template repo

This commit is contained in:
2026-06-16 20:55:00 +02:00
commit 65a547ad1a
39 changed files with 3628 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
{ pkgs, ... }:
{
services.pulseaudio.enable = false;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
environment.systemPackages = with pkgs; [
easyeffects
helvum
pavucontrol
qpwgraph
];
}
+79
View File
@@ -0,0 +1,79 @@
{ config, lib, ... }:
{
boot = {
loader.systemd-boot.enable = true;
loader.efi.canTouchEfiVariables = true;
supportedFilesystems = [ "ntfs" ];
# Gaming-optimierte Kernel Parameter
kernel.sysctl = {
# Shader Cache & Game Launchers
"fs.inotify.max_user_watches" = 1048576;
"vm.max_map_count" = 2147483642;
# Netzwerk-Performance für Online-Spiele
"net.core.rmem_max" = 134217728;
"net.core.wmem_max" = 134217728;
"net.ipv4.udp_mem" = "88560 118080 177120";
"net.ipv4.tcp_tw_reuse" = 1;
"net.ipv4.ip_local_port_range" = "1024 65535";
};
# Kernel-Parameter für bessere Responsiveness
kernelParams = [
"sched_migration_cost_ns=5000000" # Weniger CPU-Migration
];
};
networking.networkmanager.enable = true;
# Override these in configuration.nix if you need local defaults.
time.timeZone = lib.mkDefault "Europe/Berlin";
i18n.defaultLocale = lib.mkDefault "de_DE.UTF-8";
console.keyMap = lib.mkDefault "de";
nix.settings = {
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
};
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
security = {
rtkit.enable = true;
polkit.enable = true;
};
hardware = {
enableRedistributableFirmware = true;
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
};
services.fwupd.enable = true;
# CPU im Performance-Mode für Gaming
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
# Erhöhe File Descriptors für Steam/Lutris
security.pam.loginLimits = [
{
domain = "*";
type = "soft";
item = "nofile";
value = "524288";
}
{
domain = "*";
type = "hard";
item = "nofile";
value = "524288";
}
];
}
+16
View File
@@ -0,0 +1,16 @@
{ pkgs, ... }:
{
nixpkgs.config.allowUnfree = true;
chaotic = {
mesa-git = {
enable = true;
fallbackSpecialisation = true;
};
};
environment.systemPackages = with pkgs; [
mesa_git
];
}
+20
View File
@@ -0,0 +1,20 @@
{ pkgs, ... }:
{
# Podman für Container
virtualisation.podman = {
enable = true;
dockerCompat = true; # docker CLI compatibility
defaultNetwork.settings.dns_enabled = true;
};
# Distrobox für einfache Linux-Container
environment.systemPackages = with pkgs; [
distrobox
podman-compose
distroshelf
];
# Benutzergruppe für Podman
users.groups.podman = {};
}
+6
View File
@@ -0,0 +1,6 @@
{ ... }:
{
services.xserver.enable = true;
services.desktopManager.budgie.enable = true;
}
+9
View File
@@ -0,0 +1,9 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
seahorse
wayland-utils
wl-clipboard
];
}
+39
View File
@@ -0,0 +1,39 @@
{ pkgs, ... }:
{
services.desktopManager.cosmic = {
enable = true;
xwayland.enable = true;
};
services.displayManager.cosmic-greeter.enable = true;
xdg.portal.enable = true;
environment.systemPackages = with pkgs; [
# COSMIC essentials
gnome-keyring
seahorse
wayland-utils
wl-clipboard
xwayland
networkmanagerapplet
# COSMIC tools
cosmic-term
cosmic-files
cosmic-settings
cosmic-randr
cosmic-launcher
cosmic-icons
cosmic-store
cosmic-applets
xdg-desktop-portal-cosmic
cosmic-ext-applet-minimon
cosmic-workspaces-epoch
];
environment.sessionVariables = {
COSMIC_DATA_CONTROL_ENABLED = "1";
};
}
+25
View File
@@ -0,0 +1,25 @@
{ pkgs, ... }:
{
services.desktopManager.cosmic = {
enable = true;
xwayland.enable = true;
};
services.displayManager.cosmic-greeter.enable = true;
xdg.portal.enable = true;
environment.systemPackages = with pkgs; [
# Schlanke COSMIC-Basis fuer den Alltag
gnome-keyring
networkmanagerapplet
seahorse
wayland-utils
wl-clipboard
xwayland
];
environment.sessionVariables = {
COSMIC_DATA_CONTROL_ENABLED = "1";
};
}
+11
View File
@@ -0,0 +1,11 @@
{ pkgs, ... }:
{
services.xserver.enable = true;
services.displayManager.gdm.enable = true;
services.desktopManager.gnome.enable = true;
environment.systemPackages = with pkgs; [
gnome-tweaks
];
}
+20
View File
@@ -0,0 +1,20 @@
{ pkgs, ... }:
{
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
};
programs.hyprland = {
enable = true;
withUWSM = true;
};
environment.systemPackages = with pkgs; [
dunst
kitty
waybar
wofi
];
}
+12
View File
@@ -0,0 +1,12 @@
{ ... }:
{
services.xserver.enable = true;
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
};
services.desktopManager.plasma6.enable = true;
}
+13
View File
@@ -0,0 +1,13 @@
{ pkgs, ... }:
{
services.flatpak.enable = true;
# Optional: Flatpak CLI auch direkt verfügbar machen
environment.systemPackages = with pkgs; [
flatpak
];
# XDG-Portale sind wichtig für Flatpak-Apps, File Picker, Screensharing etc.
xdg.portal.enable = true;
}
+26
View File
@@ -0,0 +1,26 @@
{ ... }:
{
# ACHTUNG: Diese Datei ist OPTIONAL!
# Die meisten Gaming-Tweaks sind bereits in modules/base.nix enthalten
#
# Diese Datei enthält nur ZUSÄTZLICHE, riskantere Optimierungen
# für extrem aggressive Gaming-Performance
boot.kernelParams = [
# ⚠️ WARNUNG: Deaktiviert Spectre/Meltdown-Mitigations!
# Sicherheitsrisiko, aber +20-30% Performance
# Nur für Offline-Gaming PCs empfohlen!
# "mitigations=off"
# Stattdessen: Moderate zusätzliche Parameter
"idle=nomwait" # Bessere CPU-Idle-States
];
# Optional: I/O Scheduler für Spiele (beste für Gaming)
# boot.kernelParams = [ "io_uring_enabled=1" ];
# CPU Scaling im Performance-Mode ist schon in base.nix aktiviert
# Falls du Powersaving brauchst, override in configuration.nix:
# powerManagement.cpuFreqGovernor = lib.mkForce "schedutil";
}
+33
View File
@@ -0,0 +1,33 @@
{ pkgs, ... }:
{
imports = [
./gaming/wine-proton.nix
];
programs = {
appimage = {
enable = true;
binfmt = true;
};
gamemode.enable = true;
gamescope.enable = true;
steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
gamescopeSession.enable = true;
};
};
environment.systemPackages = with pkgs; [
ftb-app
gamemode
goverlay
heroic
lutris
mangohud
prismlauncher
];
}
+43
View File
@@ -0,0 +1,43 @@
{ pkgs, ... }:
{
programs.steam.protontricks.enable = true;
environment.systemPackages = with pkgs; [
dxvk
protontricks
protonplus # Proton Updater GUI
steam-run
umu-launcher # Universal Launcher für nicht-Steam Spiele
vkd3d-proton
wineWow64Packages.stable
winetricks
];
environment.sessionVariables = {
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "$HOME/.steam/root/compatibilitytools.d";
};
# ️ PROTON-GE & PROTON-CACHYOS sind NICHT in nixpkgs!
#
# Warum nicht?
# - Community-Builds mit häufigen Updates (täglich/wöchentlich)
# - Nicht mainstream genug für nixpkgs
# - Standard-Proton (oben) ist in nixpkgs
#
# LÖSUNG 1: Automatisierte Installation (Empfohlen)
# $ chmod +x install-proton-ge.sh
# $ ./install-proton-ge.sh
# oder
# $ ./install-proton-cachyos.sh
#
# LÖSUNG 2: Manuell
# - https://github.com/GloriousEggroll/proton-ge-custom/releases
# - https://github.com/CachyOS/proton-cachyos/releases
# - In ~/.steam/root/compatibilitytools.d/ entpacken
#
# LÖSUNG 3: Chaotic-Nyx (bereits im Repo!)
# Chaotic-Nyx hat viele Gaming-Tools, aber nicht Proton-GE/CachyOS
}
+29
View File
@@ -0,0 +1,29 @@
{ pkgs, ... }:
{
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = [
pkgs.amdvlk
pkgs.rocmPackages.clr
pkgs.rocmPackages.clr.icd
];
extraPackages32 = [
pkgs.driversi686Linux.amdvlk
];
};
services.xserver.videoDrivers = [ "amdgpu" ];
hardware.amdgpu = {
initrd.enable = true;
opencl.enable = true;
};
environment.systemPackages = with pkgs; [
lact
mesa-demos
vulkan-tools
];
}
+20
View File
@@ -0,0 +1,20 @@
{ pkgs, ... }:
{
hardware.graphics = {
enable = true;
enable32Bit = true;
};
hardware.amdgpu.initrd.enable = true;
services.xserver.videoDrivers = [ "amdgpu" ];
services.lact.enable = true;
environment.systemPackages = with pkgs; [
lact
mesa-demos
vulkan-tools
];
}
+22
View File
@@ -0,0 +1,22 @@
{ config, pkgs, ... }:
{
hardware.graphics = {
enable = true;
enable32Bit = true;
};
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia = {
modesetting.enable = true;
nvidiaSettings = true;
open = true;
package = config.boot.kernelPackages.nvidiaPackages.latest;
};
environment.systemPackages = with pkgs; [
mesa-demos
vulkan-tools
];
}
+22
View File
@@ -0,0 +1,22 @@
{ config, pkgs, ... }:
{
hardware.graphics = {
enable = true;
enable32Bit = true;
};
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia = {
modesetting.enable = true;
nvidiaSettings = true;
open = false;
package = config.boot.kernelPackages.nvidiaPackages.latest;
};
environment.systemPackages = with pkgs; [
mesa-demos
vulkan-tools
];
}
+10
View File
@@ -0,0 +1,10 @@
{ pkgs, ... }:
{
# Linux CachyOS Kernel (Gaming optimiert - EMPFOHLEN!)
# - Spezial-Kernel für Gaming & Desktop Performance
# - Bereits im base.nix aktiviert (das ist Standard)
# - CachyOS-Patchset mit BORE Scheduler
# - ~5-10% bessere Gaming-Performance als Zen
boot.kernelPackages = pkgs.linuxPackages_cachyos;
}
+8
View File
@@ -0,0 +1,8 @@
{ pkgs, ... }:
{
# Standard Linux Kernel (stabil)
# - Empfohlen für Server & alte Hardware
# - Nicht für Gaming optimiert
boot.kernelPackages = pkgs.linuxPackages;
}
+9
View File
@@ -0,0 +1,9 @@
{ pkgs, ... }:
{
# Linux Hardened Kernel (Sicherheit)
# - Zusätzliche Sicherheits-Patches
# - Speicherschutz, Exploit-Mitigation
# - Langsamer als Standard/Zen (Security > Performance)
boot.kernelPackages = pkgs.linuxPackages_hardened;
}
+10
View File
@@ -0,0 +1,10 @@
{ pkgs, ... }:
{
# Linux Xanmod Kernel (Extreme Performance)
# - Aggressive Performance-Optimierungen
# - Nicht immer stabil
# - Mehr Performance als CachyOS (aber riskanter)
# - Für Enthusiasten
boot.kernelPackages = pkgs.linuxPackages_xanmod;
}
+9
View File
@@ -0,0 +1,9 @@
{ pkgs, ... }:
{
# Linux Zen Kernel (Gaming-optimiert)
# - Bessere Responsiveness
# - Optimiert für Desktop/Gaming Workloads
# - Schnellere Builds, kleinere Größe
boot.kernelPackages = pkgs.linuxPackages_zen;
}
+24
View File
@@ -0,0 +1,24 @@
{ pkgs, ... }:
{
# Corsair Keyboard/Mouse Daemon + GUI
hardware.ckb-next.enable = true;
# Eigene Zusatzpakete kommen hier rein.
environment.systemPackages = with pkgs; [
discord
firefox
teamspeak6-client
vscodium
spotify
gearlever
git
protonplus
zapzap
bambustudio
# GUI ist durch hardware.ckb-next.enable normalerweise schon dabei,
# kann aber drin bleiben, falls du sie explizit im Menü haben willst.
ckb-next
];
}
+21
View File
@@ -0,0 +1,21 @@
{ pkgs, ... }:
{
hardware = {
i2c.enable = true;
steam-hardware.enable = true;
};
services = {
hardware.openrgb.enable = true;
ratbagd.enable = true;
};
environment.systemPackages = with pkgs; [
openrgb
pciutils
piper
solaar
usbutils
];
}