nixcfg/systems/x86_64-linux/amd/default.nix
Harald Hoyer fd2c7e1867 feat(amd): add Logitech racing wheel udev rules from oversteer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 10:40:27 +01:00

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";
}