karabiner

How can I disable Karabiner-Elements for Emacs.app and Emacsclient.app


I am unable to use C- key in Emacs.app or Emacsclient.app gui applications when Karabiner is enabled. C- is backbone to use Emacs all keybindings are dependent on it.

Is it possible to completely disable Karabiner-Elements only for the Emacs.app on Emacsclient.app?

My config file: https://gist.github.com/avatar-lavventura/e13216d2156984dc88b79eb0df555a56


Solution

  • I once fall into your situation but for crossover, then I found a way to disable Karabiner for the crossover app. I dont know the emac bundle id so you search for it :).

    After creating and saving your private.xml, go back to the Karabiner application

    My private.xml

    < ?xml version="1.0"?>
    < root>
      < appdef>
        < appname>UNKNOWN< /appname>
        < !--
            Please modify bundle identifier for your environment.
            You can confirm it by EventViewer.
            https://pqrs.org/osx/karabiner/xml.html.en#appdef-steps
        -- >
        < equal>com.codeweavers.CrossOverHelper.< /equal>
      < /appdef>
    
      < item>
        < name>Disable all settings while you are using Cross Over applications< /name>
        < identifier>private.ignore_crossover< /identifier>
        < only>UNKNOWN< /only>
        < autogen>__PassThrough__< /autogen>
      < /item>
    < /root>
    

    UPDATED: For new Karabiner (JSON config) As long as my understanding is correct, you can exclude your virtual machines by using frontmost_application_if or frontmost_application_unless.

    You can get working examples from https://pqrs.org/osx/karabiner/complex_modifications/ See "Emacs key bindings (rev 13)" which has a exclusion list in it.

    More info: https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/conditions/frontmost-application/