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.
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
Windows is way WAY more customizable than Gnome 3. As an example all the issues the GP mentions are things Windows support out of the box (among many other stuff).
Gnome 3 is the result of arrogant programmers pretending to be "UX designers" and act as if they were Steve Jobs without having an ounce of his skills/taste while ignoring that even Steve Jobs took advice from others.
What? Last time I've tried it I couldn't even set CAPSLOCK for layout switching. Even Gnome is WAY more customizable than that nonsense.
The mac ecosystem now has _multiple_ viable indesign and photoshop alternatives.
AppKit, Cocoa, UIKit and all those frameworks gradually added all the features third party app developers hacked into their own UI libraries.
GTK is something developers frequently curse about and theme developers frequently abandon because the gnome team keeps breaking their themes.
QT while great is nowhere near the ease of use of the cocoa frameworks and for every 20 cocoa books you find one QT book.
Bottom line is, as much as you may hate Xcode it's exponentially easier to make a good looking application on a mac compared to any linux counterpart. At the end of the day, people want to use (for example) photoshop or something similar without dual booting.
For digital painting I usually suggest people check out something like Krita or Affinity (they are already aware of Photoshop). I just don't have much firsthand experience with them since I felt like my needs were met with other software.
Sidenote: After actually downloading Krita it is more Photoshop-like than expected. I'll check it out as a replacement for myself. There's also been a huge, but very rare, need for Photoshop at my job (we use Linux) which has always been a problem (usually in modifying textures where Nuke isn't a good fit). The current plan was to try and find a CS6 license and either dual-boot Windows or use WINE or to buy Elements. Gimp was always too much to ask of them. I'll see if Krita fits that need.
Given that macOS has a reputation, deserved or not, of being the de facto OS for graphic designers, why do you think you have so relatively few Mac users?
This could be one of those places where the efficient market hypothesis is wrong because of incomplete information. The reputation of macOS for graphic designers is well known, but if the result of that is that everyone makes graphics design programs for macOS and not Linux then the macOS market gets saturated with supply and each supplier has to share the market with many competitors. Meanwhile the opposite on Linux, less competition so more volume per supplier.
It implies that Linux may be a good market for graphic design software because there is currently less supply there than demand. At least until more of the suppliers figure that out and release their software for it. (But that may itself cause more graphic designers to switch to Linux, which would then still justify the porting effort even as other suppliers move there too.)
For people who do it for their job, they're willing to invest in the hardware and software. I can't speak directly to painting software, but in my industry people really cling to the software they know or the rest of the industry uses. It's an uphill battle even if the software is better or cheaper to get adoption.
Let's compare comparable. Neither Cocoa nor Win32 do support third-party themes; for the exactly same reason why GTK is breaking them.
For OSX, there were also hacks that changed the system appearance, and Apple took increasingly harder stance against them. Again, they break more than they solve.
The reason why platform vendors do not support third-party theming is, that it limits their ability for further development. They would need to preserve compatibility for something, that is internal implementation detail. For first party themes, they can keep them in lockstep with the rest of framework. For third party, they cannot. So they prevent third parties from existing.
FOSS development can of course be funded via Patreon, donations, etc. But IMHO those models doesn’t seem to work so well for sophisticated GUI applications. (With some exceptions here and there.)
This might seem counter intuitive, but configuring your own desktop kinda achieves "out of the way" on Linux... it gives you something persistent and reliable, it's a worthwhile investment. Like the parent, I use i3wm, it might seem a bit too spartan at first, but that's part of the beauty... less to configure, less gui in the way, less opinions, config a single text file, defaults are sane! I have hardly changed anything beyond my initial dot file setup about 5 years ago, yet have taken them through many desktop installs without any messing around.
Also configuring your desktop is not the same as Linux in 2000, you don't need to sift through thousands of lines of x11 config. Just pick the bits of desktop you like and stick it in a shell script, copy some config files here and there that you deem worthwhile configuring (smaller DEs or WM make this a far more minimal tasks than the big all signing all dancing KDEs and Gnomes).
... it's a small investment in time to pay for sanity and persistent experience over many years, the macOS days I could not bear the random changes pushed on users which became more and more heavy handed towards later versions.
TL:DR I like my custom configured linux desktop... because of how it prevents me from having to continually configure my desktop.
I'm fairly happy with what I have. I add the odd alias to my dotfiles and a few things I pick up but for the most part I've had my config for half a decade or so now.
By contrast I could never figure out how to like, get Windows to fuck off with the telemetry ads bullshit. It always felt like I would disable it and then behind my back some randoservice would enable it again or install an update that brings back OneDrive or some madness.
The best bit about my Linux setup is that it's all just files. Home folder, few flat text files with the odd bit of json, we're home.
Knowledge is power, so learning should increase your power. If learning is necessary to just keep being able to do the same things you were doing, you're not increasing your power, you're struggling to stay where you are.
You have the free time since you're not tinkering, right? :P
You're talking about problems that "piss you off", whereas Linux has problems that not only piss you off, but completely stop you from being able to do what you need to do.
It's easy to talk about these things in abstract terms, but frankly I've run across two problems with Mac ever that I actually had to fix in order to do what I needed to do:
1. Get "gcc" to point to "gcc" instead of clang.
2. Get Valgrind to work (which problem is admittedly still not solved).
The problems that I've had to fix in Linux often start immediately upon booting up for the first time and attempting to connect to wireless, and end with me emailing documents to a Mac to print them because I needed the document printed within an hour, not after 8 hours of tinkering.
Upgrading macOS and Xcode is a pain, especially with Homebrew and Macports. You'll have to recompile most of your installed applications and it's all managed with a hacked together package manager. Virtualenvs won't survive updates if Python is sideloaded because of linking issues. It's just a mess.
The result is having to spend an unknown amount of time fixing things that upgrades break on macOS, meanwhile upgrades on Ubuntu just work.
Then I stopped. These days rarely go beyond setting terminal font (I built mine, so it's only fair I play lab rat with it) and some Emacs settings. The effort spent in customizing every detail of every app is very rarely, if ever, recovered.
I feel a bit embarrassed I recently added overline support to tmux because I wanted proper overlined status lines on my terminals. In my defense, I did it for fun, not to improve my performance.
I suspect what you mean when you say "it didn't work" is actually, "they didn't like it", which is actually not the same thing. I see a lot of people saying they didn't like things on Macs, not a lot of people saying things didn't work on Macs.
Unless we're talking about 15+ years ago before Linux had driver support for most stuff, or trying to like, just install Mac OS on an unsupported platform without hackintosh workarounds.
I transitioned from GNOME to i3wm quite a while ago (after like 15 GNOME upgrade cycles, where I always had to figure out what changed, and fix what broke), and it was basically a day or two figuring out what I want and inventing/learning the shortcuts (not fulltime days, mind you). And maybe 2-3 instances of "this feels stupid, how can I improve it".
Certainly orders of magnitude less time than I ever spend making Windows do what I want on every damn re-install.
Now that I had my configs, I just copied them to all my 4 or so desktop/laptop machines, and it's such a timesaver. i3wm being ultra stable, there's no ongoing maintenance.
For me, window managers are mostly just a convenient way to arrange a baroque collection of web browsers and terminals... Occasionally, I use file organization/navigation or a couple other programs that are helpful in my job. But ultimately, I just need a minimal window manager that gets the hell out of the way. (in fact, after setting up awesome rotating Moebius wallpapers, I mostly don't see them, as they're almost entirely buried under the web browsers and terminals.)
You'll need to copy some config if you want your volume buttons, brightness buttons, etc to work. But as far as I am concerned it is the only good Linux display manager.
Go ahead and tinker but leave some space for others to do the same their way. It’s not “crap” it’s “not my preference”
“Delicate users”. The bravado of someone getting good at organizing text really well. You’re such a mans man.
I use i3 and basically everything is configured via text files. Keyboard shortcuts are trivial etc. You don't need Karabiner to "rebind" because you can directly bind.
You don't need to go scary tiling WM, Xfce probably works well, it's been years since I last used it.
If apt is out of date that's probably because you're using a stable rather than rolling release distro.
All of this requires some research and tinkering. If you're me, you prefer research to being told what to do.