diff --git a/hosts/MONSTER/default.nix b/hosts/MONSTER/default.nix index ba1007e..b89ceaa 100644 --- a/hosts/MONSTER/default.nix +++ b/hosts/MONSTER/default.nix @@ -49,8 +49,7 @@ cc1.enable = true; fv43u.enable = true; virtual-camera.enable = true; - # https://github.com/NixOS/nixpkgs/pull/300682 - # hid-fanatecff.enable = true; + hid-fanatecff.enable = true; }; fonts = { diff --git a/modules/home-manager/desktops/hyprland/default.nix b/modules/home-manager/desktops/hyprland/default.nix index e83629f..3f3faa3 100644 --- a/modules/home-manager/desktops/hyprland/default.nix +++ b/modules/home-manager/desktops/hyprland/default.nix @@ -83,7 +83,7 @@ disable_hyprland_logo = true; background_color = "0x000000"; force_default_wallpaper = 0; - vrr = 1; + vrr = 2; }; layerrule = [ "blur, anyrun" diff --git a/modules/home-manager/programs/nixvim/default.nix b/modules/home-manager/programs/nixvim/default.nix index 4898717..b31fc29 100644 --- a/modules/home-manager/programs/nixvim/default.nix +++ b/modules/home-manager/programs/nixvim/default.nix @@ -341,7 +341,7 @@ in ]; }; - nixd.enable = true; + nil_ls.enable = true; lua-ls.enable = true; bashls.enable = true; }; diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index d1562e2..62972fb 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -10,6 +10,7 @@ ./fonts/noto-sans.nix ./fonts/nerdfonts.nix + ./hardware/hid-fanatecff.nix ./hardware/audio.nix ./hardware/gbmonctl.nix ./hardware/nvidia-proprietary.nix diff --git a/modules/nixos/hardware/hid-fanatecff-pkg.nix b/modules/nixos/hardware/hid-fanatecff-pkg.nix new file mode 100644 index 0000000..430975f --- /dev/null +++ b/modules/nixos/hardware/hid-fanatecff-pkg.nix @@ -0,0 +1,41 @@ +{ + lib, + stdenv, + kernel, + fetchFromGitHub, +}: + +stdenv.mkDerivation rec { + pname = "hid-fanatecff"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "gotzl"; + repo = "hid-fanatecff"; + rev = "0.1"; + hash = "sha256-1Nm/34Er/qfel9LJp++IWd7cTh2Wi93Kgd28YLMVvWo="; + }; + + nativeBuildInputs = kernel.moduleBuildDependencies; + + makeFlags = kernel.makeFlags ++ [ + "KVERSION=${kernel.modDirVersion}" + "KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + ]; + + installPhase = '' + mkdir -p $out/etc/udev/rules.d + cp ${src}/fanatec.rules $out/etc/udev/rules.d/99-fanatec.rules + mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/hid + cp hid-fanatec.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/hid + ''; + + meta = with lib; { + description = "Driver to support FANATEC input devices, in particular ForceFeedback of various wheel-bases"; + homepage = "https://github.com/gotzl/hid-fanatecff"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ theaninova ]; + platforms = platforms.linux; + broken = stdenv.isAarch64; + }; +} diff --git a/modules/nixos/hardware/hid-fanatecff.nix b/modules/nixos/hardware/hid-fanatecff.nix new file mode 100644 index 0000000..a7a7843 --- /dev/null +++ b/modules/nixos/hardware/hid-fanatecff.nix @@ -0,0 +1,41 @@ +{ + pkgs, + lib, + config, + ... +}: + +with lib; + +let + cfg = config.hardware.hid-fanatecff; + kernelPackage = pkgs.callPackage ./hid-fanatecff-pkg.nix { + kernel = config.boot.kernelPackages.kernel; + }; +in +{ + options.hardware.hid-fanatecff = { + enable = mkOption { + type = types.bool; + default = false; + example = true; + description = lib.mdDoc '' + Enables the Linux module drivers for Fanatec wheel bases. + Works with the CSL Elite and CSL/ClubSport DD/DD Pro, + and has experimental support for the ClubSport V2/V2.5, + Podium DD1/DD2 and CSR Elite. + ''; + }; + }; + + config = lib.mkIf cfg.enable { + boot = { + extraModulePackages = [ kernelPackage ]; + kernelModules = [ "hid-fanatecff" ]; + }; + }; + + meta = { + maintainers = with maintainers; [ theaninova ]; + }; +}