move karabiner-elements to homebrew, add macfuse and sshfs-mac

nix-darwin's karabiner module is broken with 15.7+ - the karabiner_grabber
and karabiner_observer binaries no longer exist, causing system daemons to
fail with exit code 78. Moved karabiner-elements to homebrew cask which
handles its own service registration correctly.

Also adds macfuse cask and gromgit/fuse/sshfs-mac brew, updates
agentcomputer-cli flake input, and tweaks zsh alias.
This commit is contained in:
Harivansh Rathi 2026-03-27 23:27:42 -04:00
parent 9c9640cfa1
commit 09d138e992
5 changed files with 10 additions and 33 deletions

4
flake.lock generated
View file

@ -8,8 +8,8 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1774217644, "lastModified": 1774656030,
"narHash": "sha256-MnSCnEYGMZyfj42/8+frNDktCIpj5RUkGY50r29KirQ=", "narHash": "sha256-9wurVeFSma2w1sFb/ybWKORCWH+TZRuBmE5k+czKLxk=",
"path": "/Users/rathi/Documents/GitHub/companion/agentcomputer/apps/cli", "path": "/Users/rathi/Documents/GitHub/companion/agentcomputer/apps/cli",
"type": "path" "type": "path"
}, },

View file

@ -2,7 +2,6 @@
imports = [ imports = [
./common.nix ./common.nix
./colima.nix ./colima.nix
./karabiner.nix
./rectangle.nix ./rectangle.nix
]; ];
} }

View file

@ -38,7 +38,7 @@
ld = "lumen diff"; ld = "lumen diff";
lg = "lazygit"; lg = "lazygit";
nim = "nvim ."; nim = "nvim .";
sshnet = "ssh -i ~/.ssh/atlas-ssh.txt rathiharivansh@152.53.195.59"; net = "rathiharivansh@152.53.195.59";
# nix helpers # nix helpers
nr = "nix profile remove"; # nr <index> - remove from profile nr = "nix profile remove"; # nr <index> - remove from profile

View file

@ -9,17 +9,20 @@
}; };
taps = [ taps = [
# riptide-dev is still sourced from this tap.
"humanlayer/humanlayer" "humanlayer/humanlayer"
"gromgit/fuse"
]; ];
brews = [ brews = [
"bitwarden-cli" "bitwarden-cli"
"gromgit/fuse/sshfs-mac"
]; ];
casks = [ casks = [
"cap" "cap"
"codex" "codex"
"karabiner-elements"
"macfuse"
"rectangle" "rectangle"
"raycast" "raycast"
"riptide-beta" "riptide-beta"

View file

@ -1,33 +1,8 @@
{ {...}: {
lib,
pkgs,
...
}: let
karabinerAgentsDir =
"${pkgs.karabiner-elements}/Library/Application Support/org.pqrs/Karabiner-Elements/"
+ "Karabiner-Elements Non-Privileged Agents v2.app/Contents/Library/LaunchAgents";
in {
security.pam.services.sudo_local.touchIdAuth = true; security.pam.services.sudo_local.touchIdAuth = true;
services.karabiner-elements.enable = true; # Karabiner-Elements is managed via Homebrew cask because nix-darwin's
# built-in module is broken with 15.7+ (missing karabiner_grabber/observer binaries).
# Upstream nix-darwin still expects Karabiner's old agent layout. Override it
# here until the built-in module catches up to the 15.7+ bundle structure.
# Karabiner-Elements 15.7.0 moved its user launch agents into the
# Non-Privileged Agents v2 bundle and renamed karabiner_grabber.
# nix-darwin's built-in module still points at the old top-level paths.
environment.userLaunchAgents."org.pqrs.karabiner.agent.karabiner_grabber.plist".enable =
lib.mkForce false;
environment.userLaunchAgents."org.pqrs.karabiner.agent.karabiner_observer.plist".enable =
lib.mkForce false;
environment.userLaunchAgents."org.pqrs.karabiner.karabiner_console_user_server.plist".enable =
lib.mkForce false;
environment.userLaunchAgents."org.pqrs.service.agent.Karabiner-Core-Service.plist".source = "${karabinerAgentsDir}/org.pqrs.service.agent.Karabiner-Core-Service.plist";
environment.userLaunchAgents."org.pqrs.service.agent.Karabiner-NotificationWindow.plist".source = "${karabinerAgentsDir}/org.pqrs.service.agent.Karabiner-NotificationWindow.plist";
environment.userLaunchAgents."org.pqrs.service.agent.Karabiner-Menu.plist".source = "${karabinerAgentsDir}/org.pqrs.service.agent.Karabiner-Menu.plist";
environment.userLaunchAgents."org.pqrs.service.agent.karabiner_console_user_server.plist".source = "${karabinerAgentsDir}/org.pqrs.service.agent.karabiner_console_user_server.plist";
environment.userLaunchAgents."org.pqrs.service.agent.Karabiner-MultitouchExtension.plist".source = "${karabinerAgentsDir}/org.pqrs.service.agent.Karabiner-MultitouchExtension.plist";
system.defaults = { system.defaults = {
dock.autohide = true; dock.autohide = true;