Almost all macos applications use it everywhere, so globally modifying keyboard bindings in all applications in all circumstances is easy. If I want to bind Meta-f to jump a word forward, I can have that behavior in every single text box or editing region in every single application. Url bars, forms, everything!
Accomplishing the same thing in linux typically means descending into the hoary netherworld of xkb mappings. <shiver/>
My experience: Karabiner breaks on every Mac OS X release, and unlike xmodmap, I have never been able to get the following setup completely working in Mac OS X (some combination of: not being able to rebind the modifier keys, not being able to exchange () and [], and one time not even being able to rebind caps lock after an OS update):
https://oneofus.la/have-emacs-will-hack/2018-04-08-lisp-mach...
The X Window System is not Linux. It is not even GNU/Linux. But at least it is better than Mac OS X for things that I want to do, like running on different operating systems, and avoiding unwanted breaking updates shoved on me by multinational corporations.
That's why bspwm uses a WM independent tool for all keybindings:
For bspwm, where all it’s functionality is exposed to shell commands it can very narrowly achieve something similar, but again, Karibiner’s scope of operation is all apps system-wide.
What people are wishing for when they wish for “a karibiner equivalent” isn’t a hotkey mapping app per se — there’s obviously dozens and dozens of half-baked versions of those. What people are actually wanting is a system for setting globally-consistent keybindings such that they can set it once and universally every app respects it. That would require either a system wide protocol for agreeing on keybindings no matter what wheel-reinventing UI/desktop toolkit an app was built in, or an Uber-keybindings app that knew how to write defaults to the 20 different preference files that control this stuff for different toolkits.
Or a VIM plugin
This is the kind of hyperbole that Linux advocates like to throw around a lot, and it’s unfortunate, because it shows a fundamental misunderstanding of what people are asking for when they say things like “I wish there was a decent replacement for Karabiner”.
i3’s config files let you bind i3’s config. That’s not the same thing at all.
With Karabiner, in 3 seconds, I can have ^w bound to “delete word backwards” functionality in every single application globally. You can’t even remotely accomplish that in i3’s config by itself — you need to venture into X config files, and special gtk config files for gtk/gnome apps, and some other set of config for KDE stuff, and then after that you still have to deal with the occasional one-off app like Firefox closing a window when you went to delete a word out of force of habit, and so you get to spend time discovering yet another way to tell it to respect a key binding.
And then at some point during some random update some random set of apps will break all over again. It’s a far fucking cry from Karibiner.