diff options
Diffstat (limited to 'hosts/mac/m1mba/keyboard.nix')
-rw-r--r-- | hosts/mac/m1mba/keyboard.nix | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/hosts/mac/m1mba/keyboard.nix b/hosts/mac/m1mba/keyboard.nix new file mode 100644 index 0000000..f6b164f --- /dev/null +++ b/hosts/mac/m1mba/keyboard.nix @@ -0,0 +1,53 @@ +{ kmonad, config, lib, pkgs, ... }: + +let cfg = config.y.kmonad; in +{ + options.y.kmonad = { + enable = lib.mkEnableOption "kmonad"; + + config = lib.mkOption { + type = lib.types.lines; + }; + }; + + config = lib.mkIf cfg.enable { + nixpkgs.overlays = [ kmonad.overlays.default ]; + + launchd.daemons.kmonad-default.serviceConfig = { + EnvironmentVariables.PATH = "${pkgs.kmonad}/bin:${pkgs.overlays.Karabiner-DriverKit-VirtualHIDDevice}/Library/Application Support/org.pqrs/Karabiner-DriverKit-VirtualHIDDevice/Applications/Karabiner-DriverKit-VirtualHIDDeviceClient.app/Contents/MacOS:${config.environment.systemPath}"; + KeepAlive = true; + Nice = -20; + ProgramArguments = [ + "/Applications/.Karabiner-VirtualHIDDevice-Manager.app/kmonad-daemon-shim" + "--input" + ''iokit-name "Apple Internal Keyboard / Trackpad"'' + + (toString (builtins.toFile "../../kmonad/mac.kbd" '' + (defcfg + input (iokit-name "Apple Internal Keyboard / Trackpad") + output (kext) + fallthrough true + allow-cmd false + ) + + ${cfg.config} + '')) + ]; + StandardOutPath = "/Library/Logs/KMonad/default-stdout"; + StandardErrorPath = "/Library/Logs/KMonad/default-stderr"; + RunAtLoad = true; + }; + + system.activationScripts.script.applications.text = '' + echo copying dext... + ${pkgs.rsync}/bin/rsync -a --delete ${pkgs.overlays.Karabiner-DriverKit-VirtualHIDDevice}/Applications/.Karabiner-VirtualHIDDevice-Manager.app/ /Applications/.Karabiner-VirtualHIDDevice-Manager.app + echo copying shim... + cp --no-preserve mode ${pkgs.overlays.kmonad-daemon-shim}/bin/kmonad-daemon-shim /Applications/.Karabiner-VirtualHIDDevice-Manager.app/kmonad-daemon-shim + chown root /Applications/.Karabiner-VirtualHIDDevice-Manager.app/kmonad-daemon-shim + chmod u=rx,og= /Applications/.Karabiner-VirtualHIDDevice-Manager.app/kmonad-daemon-shim + echo activating dext... + /Applications/.Karabiner-VirtualHIDDevice-Manager.app/Contents/MacOS/Karabiner-VirtualHIDDevice-Manager activate + printf '\x1b[0;31mPlease grant Input Monitoring permissions to /Applications/.Karabiner-VirtualHIDDevice-Manager.app/kmonad-daemon-shim in System Preferences > Security & Privacy > Privacy > Input Monitoring\x1b[0m\n' + ''; + }; +} |