diff --git a/hosts/darwin/home-default.nix b/hosts/darwin/home-default.nix index 9508a8a..a244b53 100644 --- a/hosts/darwin/home-default.nix +++ b/hosts/darwin/home-default.nix @@ -21,6 +21,7 @@ ../../modules/claude-code.nix ../../modules/tex.nix ../../modules/fonts.nix + ../../modules/linearmouse.nix ]; nixpkgs.config.allowUnfree = true; diff --git a/modules/homebrew.nix b/modules/homebrew.nix index b384745..eaeaee6 100644 --- a/modules/homebrew.nix +++ b/modules/homebrew.nix @@ -35,6 +35,7 @@ "hiddenbar" "localsend" "calibre" + "linearmouse" ]; taps = [ # Additional repositories if needed diff --git a/modules/linearmouse.nix b/modules/linearmouse.nix new file mode 100644 index 0000000..69c023f --- /dev/null +++ b/modules/linearmouse.nix @@ -0,0 +1,35 @@ +{ config, pkgs, lib, ... }: + +{ + # LinearMouse configuration - reversed scrolling and no acceleration for mouse + home.file.".config/linearmouse/linearmouse.json".text = builtins.toJSON { + "$schema" = "https://schema.linearmouse.app/0.10.2"; + schemes = [ + { + "if" = { + device = { + category = "mouse"; + }; + }; + scrolling = { + reverse = { + vertical = true; + }; + }; + pointer = { + disableAcceleration = true; + }; + } + ]; + }; + + # Auto-start LinearMouse on login + launchd.agents.linearmouse = { + enable = true; + config = { + ProgramArguments = [ "/Applications/LinearMouse.app/Contents/MacOS/LinearMouse" ]; + RunAtLoad = true; + KeepAlive = false; + }; + }; +}