add linearmouse module

This commit is contained in:
Yan Lin 2026-02-04 12:12:47 +01:00
parent 48b0aa2ef6
commit ca4f1226b7
5 changed files with 50 additions and 18 deletions

View file

@ -20,6 +20,7 @@
../../modules/media-process.nix
../../modules/fonts.nix
../../modules/aerospace.nix
../../modules/peripheral/home.nix
../../modules/env.nix
];
@ -229,6 +230,15 @@
};
};
launchd.agents.linearmouse = {
enable = true;
config = {
ProgramArguments = [ "/Applications/LinearMouse.app/Contents/MacOS/LinearMouse" ];
RunAtLoad = true;
KeepAlive = false;
};
};
# File associations configuration (macOS equivalent of xdg.mimeApps)
# Uses duti to set default applications for file types via Launch Services
home.activation.setFileAssociations = config.lib.dag.entryAfter ["writeBoundary"] ''

View file

@ -3,6 +3,7 @@
{
imports = [
../../modules/homebrew.nix
../../modules/peripheral/system.nix
nix-homebrew.darwinModules.nix-homebrew
];
@ -131,22 +132,4 @@
/System/Library/PrivateFrameworks/SystemAdministration.framework/Resources/activateSettings -u
'';
# Key remapping using hidutil via launchd agent
# This swaps Control and Caps Lock keys bidirectionally
launchd.user.agents.remap-keys = {
serviceConfig = {
ProgramArguments = [
"/usr/bin/hidutil"
"property"
"--set"
''{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x7000000E0},{"HIDKeyboardModifierMappingSrc":0x7000000E4,"HIDKeyboardModifierMappingDst":0x700000039}]}''
];
RunAtLoad = true;
KeepAlive = false;
Label = "org.nixos.remap-keys";
StandardErrorPath = "/tmp/remap-keys.err";
StandardOutPath = "/tmp/remap-keys.out";
};
};
}

View file

@ -42,6 +42,7 @@
"aerospace"
"hiddenbar"
"keycastr"
"linearmouse"
"localsend"
"maccy"
"snipaste"

View file

@ -0,0 +1,17 @@
{ config, pkgs, ... }:
{
home.file.".config/linearmouse/linearmouse.json".text = builtins.toJSON {
"$schema" = "https://app.linearmouse.org/schema/0.10.0";
schemes = [{
"if" = {
device.category = "mouse";
};
scrolling.reverse.vertical = true;
pointer = {
acceleration = 0;
speed = 0.6;
};
}];
};
}

View file

@ -0,0 +1,21 @@
{ config, pkgs, ... }:
{
# Key remapping using hidutil via launchd agent
# Swaps Caps Lock -> Left Control, Right Control -> Caps Lock
launchd.user.agents.remap-keys = {
serviceConfig = {
ProgramArguments = [
"/usr/bin/hidutil"
"property"
"--set"
''{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x7000000E0},{"HIDKeyboardModifierMappingSrc":0x7000000E4,"HIDKeyboardModifierMappingDst":0x700000039}]}''
];
RunAtLoad = true;
KeepAlive = false;
Label = "org.nixos.remap-keys";
StandardErrorPath = "/tmp/remap-keys.err";
StandardOutPath = "/tmp/remap-keys.out";
};
};
}