223 lines
6.6 KiB
Nix
223 lines
6.6 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
with lib;
|
|
with lib.metacfg;
|
|
{
|
|
imports = [
|
|
./hardware-configuration.nix
|
|
./xremap.nix
|
|
./sound.nix
|
|
];
|
|
|
|
powerManagement.cpuFreqGovernor = "performance";
|
|
|
|
services.rustdesk-server.signal.enable = false;
|
|
networking.firewall.allowedTCPPorts = [
|
|
22000
|
|
];
|
|
|
|
services.cratedocs-mcp.enable = true;
|
|
|
|
services.openssh = {
|
|
enable = true;
|
|
};
|
|
|
|
services.tailscale.enable = true;
|
|
services.resolved.enable = true;
|
|
|
|
metacfg = {
|
|
hardware.wooting.enable = true;
|
|
base.enable = true;
|
|
gui.enable = true;
|
|
nix-ld.enable = true;
|
|
nix.enable = true;
|
|
podman.enable = true;
|
|
secureboot.enable = true;
|
|
homeprinter.enable = true;
|
|
build.enable = true;
|
|
|
|
system = {
|
|
limits = {
|
|
enable = true;
|
|
nofileLimit = 32768;
|
|
memlockLimit = 32768;
|
|
};
|
|
};
|
|
|
|
# User configuration
|
|
tools = {
|
|
direnv.enable = true;
|
|
};
|
|
user.extraGroups = [
|
|
"docker"
|
|
"dialout"
|
|
"tss"
|
|
];
|
|
system.kernelTweaks.enable = true;
|
|
};
|
|
|
|
system.autoUpgrade = {
|
|
enable = true;
|
|
operation = "boot";
|
|
allowReboot = false;
|
|
};
|
|
|
|
nixpkgs.config.permittedInsecurePackages = [
|
|
"electron-27.3.11"
|
|
];
|
|
|
|
# Additional kernel tuning beyond the module defaults
|
|
boot.kernel.sysctl = {
|
|
# Reduce swap usage (you have zram)
|
|
"vm.swappiness" = 10;
|
|
# Prefer keeping directory/inode caches
|
|
"vm.vfs_cache_pressure" = 50;
|
|
# Faster dirty page writeback
|
|
"vm.dirty_ratio" = 10;
|
|
"vm.dirty_background_ratio" = 5;
|
|
};
|
|
|
|
# SSD TRIM support
|
|
services.fstrim = {
|
|
enable = true;
|
|
interval = "weekly";
|
|
};
|
|
|
|
programs.steam = {
|
|
enable = true;
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
attic-client
|
|
azure-cli
|
|
claude-code
|
|
claude-desktop-with-fhs
|
|
desktop-file-utils
|
|
gnome-terminal
|
|
gnome-remote-desktop
|
|
gtypist
|
|
k9s
|
|
klavaro
|
|
kubectl
|
|
kubectx
|
|
logseq
|
|
nvtopPackages.amd
|
|
obsidian
|
|
piper-tts
|
|
tipp10
|
|
uv
|
|
vscode
|
|
cider-2
|
|
opencode
|
|
];
|
|
|
|
# zram swap with zstd compression for better performance
|
|
zramSwap = {
|
|
algorithm = "zstd";
|
|
memoryPercent = 50;
|
|
};
|
|
|
|
services.ratbagd.enable = true;
|
|
|
|
# Logitech racing wheel permissions (oversteer)
|
|
services.udev.extraRules = ''
|
|
# Match Logitech HID devices for racing wheel support
|
|
ACTION!="unbind", ACTION!="remove", SUBSYSTEM=="hid", ATTRS{idVendor}=="046d", GOTO="logitech-rules"
|
|
GOTO="end"
|
|
|
|
LABEL="logitech-rules"
|
|
|
|
DRIVER=="logitech", GOTO="logitech-driver"
|
|
DRIVER!="logitech-hidpp-device", GOTO="end"
|
|
|
|
# Logitech G PRO Racing Wheel for PlayStation and PC
|
|
ATTRS{idProduct}=="c268", RUN+="/bin/sh -c 'cd %S%p; chmod 666 range leds/*/brightness; chmod 777 leds/ leds/*'"
|
|
|
|
# Logitech G PRO Racing Wheel for Xbox One and PC
|
|
ATTRS{idProduct}=="c272", RUN+="/bin/sh -c 'cd %S%p; chmod 666 range leds/*/brightness; chmod 777 leds/ leds/*'"
|
|
|
|
# Logitech G923 Racing Wheel for Xbox One and PC
|
|
ATTRS{idProduct}=="c26e", RUN+="/bin/sh -c 'cd %S%p; chmod 666 range leds/*/brightness; chmod 777 leds/ leds/*'"
|
|
|
|
# Logitech G920 Driving Force Racing Wheel
|
|
ATTRS{idProduct}=="c262", RUN+="/bin/sh -c 'cd %S%p; chmod 666 range'"
|
|
|
|
GOTO="end"
|
|
|
|
LABEL="logitech-driver"
|
|
|
|
# Logitech G923 Racing Wheel for PlayStation 4 and PC
|
|
ATTRS{idProduct}=="c266", RUN+="/bin/sh -c 'cd %S%p; chmod 666 alternate_modes combine_pedals range gain autocenter spring_level damper_level friction_level ffb_leds peak_ffb_level leds/*/brightness; chmod 777 leds/ leds/*'"
|
|
|
|
# Logitech G29 Driving Force Racing Wheel
|
|
ATTRS{idProduct}=="c24f", RUN+="/bin/sh -c 'cd %S%p; chmod 666 alternate_modes combine_pedals range gain autocenter spring_level damper_level friction_level ffb_leds peak_ffb_level leds/*/brightness; chmod 777 leds/ leds/*'"
|
|
|
|
# Logitech G27 Driving Force Racing Wheel
|
|
ATTRS{idProduct}=="c29b", RUN+="/bin/sh -c 'cd %S%p; chmod 666 alternate_modes combine_pedals range gain autocenter spring_level damper_level friction_level ffb_leds peak_ffb_level leds/*/brightness; chmod 777 leds/ leds/*'"
|
|
|
|
# Logitech G25 Driving Force Racing Wheel
|
|
ATTRS{idProduct}=="c299", RUN+="/bin/sh -c 'cd %S%p; chmod 666 alternate_modes combine_pedals range gain autocenter spring_level damper_level friction_level ffb_leds peak_ffb_level'"
|
|
|
|
# Logitech Driving Force GT Racing Wheel
|
|
ATTRS{idProduct}=="c29a", RUN+="/bin/sh -c 'cd %S%p; chmod 666 alternate_modes combine_pedals range gain autocenter spring_level damper_level friction_level ffb_leds peak_ffb_level'"
|
|
|
|
# Logitech Driving Force Pro Racing Wheel
|
|
ATTRS{idProduct}=="c298", RUN+="/bin/sh -c 'cd %S%p; chmod 666 alternate_modes combine_pedals range gain autocenter spring_level damper_level friction_level ffb_leds peak_ffb_level'"
|
|
|
|
# Logitech Driving Force Racing Wheel
|
|
ATTRS{idProduct}=="c294", RUN+="/bin/sh -c 'cd %S%p; chmod 666 alternate_modes combine_pedals range gain autocenter spring_level damper_level friction_level ffb_leds peak_ffb_level'"
|
|
|
|
# Logitech Momo Force Racing Wheel
|
|
ATTRS{idProduct}=="c295", RUN+="/bin/sh -c 'cd %S%p; chmod 666 combine_pedals range gain autocenter spring_level damper_level friction_level ffb_leds peak_ffb_level'"
|
|
|
|
# Logitech MOMO Racing USB
|
|
ATTRS{idProduct}=="ca03", RUN+="/bin/sh -c 'cd %S%p; chmod 666 combine_pedals range gain autocenter spring_level damper_level friction_level ffb_leds peak_ffb_level'"
|
|
|
|
# Logitech WingMan Formula Force GP USB
|
|
ATTRS{idProduct}=="c293", RUN+="/bin/sh -c 'cd %S%p; chmod 666 combine_pedals range gain autocenter spring_level damper_level friction_level ffb_leds peak_ffb_level'"
|
|
|
|
# Logitech Racing Wheel USB
|
|
ATTRS{idProduct}=="ca04", RUN+="/bin/sh -c 'cd %S%p; chmod 666 combine_pedals range'"
|
|
|
|
# Logitech WingMan Formula GP
|
|
ATTRS{idProduct}=="c20e", RUN+="/bin/sh -c 'cd %S%p; chmod 666 combine_pedals range'"
|
|
|
|
# Logitech WingMan Formula (Yellow) (USB)
|
|
ATTRS{idProduct}=="c202", RUN+="/bin/sh -c 'cd %S%p; chmod 666 range'"
|
|
|
|
# Logitech Speed Force Wireless
|
|
ATTRS{idProduct}=="c29c", RUN+="/bin/sh -c 'cd %S%p; chmod 666 combine_pedals range'"
|
|
|
|
LABEL="end"
|
|
'';
|
|
|
|
virtualisation = {
|
|
libvirtd.enable = true;
|
|
docker.enable = true;
|
|
podman.dockerCompat = false;
|
|
};
|
|
|
|
services.trezord.enable = true;
|
|
|
|
services.ollama = {
|
|
enable = false;
|
|
acceleration = "rocm";
|
|
environmentVariables = {
|
|
HSA_OVERRIDE_GFX_VERSION = "10.1.0";
|
|
};
|
|
};
|
|
|
|
/*
|
|
environment.sessionVariables = {
|
|
LIBVA_DRIVER_NAME = "iHD";
|
|
# NIXOS_OZONE_WL = "1";
|
|
# DRI_PRIME = "pci-0000_24_00_0";
|
|
DRI_PRIME = "pci-0000_00_02_0";
|
|
};
|
|
*/
|
|
|
|
system.stateVersion = "25.11";
|
|
}
|