If Sublime can see the key event, and it’s bound to a key binding, then it will handle the key and try to do something with it. The fact that you can see the key when using log_input()
verifies that Sublime can indeed see the key. Using the log_commands()
function (which operates the same as log_input()
) you can see what command gets executed in response to the key.
One way to resolve the issue is to get things into a state where log_input()
doesn’t report that you pressed the key. This is usually the problem people have when they want to use a key binding that the OS thinks is special. In that case the key gets captured and handled before it ever gets to Sublime. I’m not sure if that’s possible in your case though (that’s one aspect of MacOS I’ve never investigated).
Failing that, possibly if you can get things into a state where log_input()
says that it sees the key but log_commands()
doesn’t tell you that it’s doing anything, things will work the way that you want them to; the caveat here is that I don’t have any direct experience with this in a way that’s caused a conflict before so I’m not entirely sure.
The thing that might be confusing you is that the default key bindings are always in effect, and any bindings added by packages or by you in your user key bindings are applied in addition to the default bindings. That part is bolded because it’s fairly important.
Adding your own binding to super+l
in your user package replaces the one in the Default
package with yours so that the key does something different (including nothing, if you bind it to a command that doesn’t exist such as noop
), but it’s still bound to something so when the event happens, Sublime still handles the key.
Adding a binding to the command that super+l
is bound to on a different key adds an additional binding to the same command, but still leaves the original in the Default
package there; thus you now have two ways to run the same command, and the default still applies, so when the key is seen Sublime handles it.
Thus in order to resolve your problem you may need to resort to directly editing the default key bindings in the Default
package directly to remove the default binding. You mention other bindings that don’t seem to take effect; they may or may not be an issue (it’s possible to bind keys only in certain situations, for example).
You can use PackageResourceViewer to edit the default key bindings file to directly remove the binding to super+l
.
Doing so would remove the default (make sure you have a bind on an alternate key if you care about that functionality), and if there are no other bindings on that key (log_commands()
does not display anything), that may allow the service to see the key.