{ inputs, config, lib, pkgs, system, ... }: let cfg = config.hardware.bosto-touchpad; in { options.hardware.bosto-touchpad.enable = lib.mkOption { type = with lib.types; uniq bool; default = false; description = "Enable Bosto Touchpad Support"; }; config = lib.mkIf (cfg.enable) { # boot.kernelModules = [ "hid-magicmouse" ]; # Add Driver Options to extra ModprobeConfig, to support reloading hid-magicmouse boot.extraModprobeConfig = '' options hid-magicmouse emulate_scroll_wheel=Y emulate_3button=Y middle_click_3finger=Y scroll_acceleration=Y scroll_speed=10 ''; # Service to load Driver with options systemd.services."bostoService" = { description = "Bosto Touchpad Service"; path = [ pkgs.kmod ]; serviceConfig = { Type = "oneshot"; ExecStart = '' ${pkgs.kmod.out}/bin/modprobe -r hid-magicmouse ${pkgs.kmod.out}/bin/modprobe hid-magicmouse emulate_scroll_wheel=Y emulate_3button=Y middle_click_3finger=Y scroll_acceleration=Y scroll_speed=10 ''; }; wantedBy = [ "multi-user.target" ]; }; }; }