Initial template repo
This commit is contained in:
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
chaotic = {
|
||||
mesa-git = {
|
||||
enable = true;
|
||||
fallbackSpecialisation = true;
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
mesa_git
|
||||
];
|
||||
}
|
||||
@@ -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 = {};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
services.xserver.enable = true;
|
||||
services.desktopManager.budgie.enable = true;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
seahorse
|
||||
wayland-utils
|
||||
wl-clipboard
|
||||
];
|
||||
}
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
services.xserver.enable = true;
|
||||
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
};
|
||||
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Standard Linux Kernel (stabil)
|
||||
# - Empfohlen für Server & alte Hardware
|
||||
# - Nicht für Gaming optimiert
|
||||
boot.kernelPackages = pkgs.linuxPackages;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user