A lot is happening on desktop Linux right now, and I've found rolling release distros to be nice for that reason. Debian or Arch with KDE Plasma Desktop is a nice combination.
Regarding minimal installations, if you're new to Linux, I think you should try to use a popular Linux desktop distribution, Debian has several, there's Ubuntu, EndeavorOS for Arch, and others.
You can also boot live Linux instances from a flash drive and try things out before you install.
To answer your first question, I went from Linux to macOS back to Linux again.
Check this if you want to use macOS keybindings on Linux: https://github.com/rbreaves/kinto
That surge of viewers also resulted in a distinct up take of stars for days, almost a full week following the event lol. Word of mouth definitely kept it getting attention, but typically I see a few new stars a day. I don't really watch it that closely now though.
I am happy to have created an app that really resonates with a lot of tech users and programmers though.
https://github.com/rbreaves/kinto
The proper way is remap the modifier keys and then remap further based on the app on focus. Gives you coverage whether you explicitly remapped an individual app or not.
https://github.com/mooz/xkeysnail
https://github.com/k0kubun/xremap
https://github.com/autokey/autokey
My advice is to skip the last one unless you need something truly complicated and a config syntax that is just insane regardless of your level of complexity imo.
Of course if you just want mac based keybinds to be done for you then use my kinto app.
I also use JetBrains’s products extensively. I used to have on intellij settings repository for all products (PHPStorm, PyCharm, Webstorm), but I found the same issue that the settings wouldn’t sync in the way I wanted. I now have separate settings repositories for each product. This seems to be working better, although, it does require copying new shortcuts to each product.
I haven’t tried solely using IntelliJ Ultimate, so maybe I will see if I can configure that to work for different programming languages. I have been reluctant to do so, because the appeal of IntelliJ for me is that it makes it easy to work with a programming language. I don’t want to have to configure IntelliJ Ultimate when I want to use Kotlin or want to use Python. Maybe it has a nice way of handling that?
I run Wayland, and libinput[4] gives you pretty much all of the trackpad features and gestures you get in macOS like adaptive acceleration, tapping, multitouch gestures etc. Xorg works well, as well, except its gesture support is limited compared to Wayland's.
Depending on the model, WiFi has open source and closed source driver support that both work well, and have Bluetooth support.
This is a good reference to see how well your model is supported on Linux[1]. This project will remap your keyboard shortcuts to match the ones you're familiar with from macOS[2].
I've also posted about making Linux and Plasma Desktop act like macOS on HN[3].
[1] https://github.com/Dunedan/mbp-2016-linux
[2] https://github.com/rbreaves/kinto
[3] https://news.ycombinator.com/item?id=25473702
[4] https://wayland.freedesktop.org/libinput/doc/latest/features...
I am the author of kinto btw. https://github.com/rbreaves/kinto
> With Linux, you can achieve almost the same feature set, but it is harder and more limited.
> For example. To customize your keyboard, you will need a combination of xdotool, xbindkeys, xcape, xmodmap and setxkbmap to capture some event and then run a shell script. There is a Gnome Shell plugin that allows you to tweak your keyboard, but it's nowhere near Karabiner.
Much of what you said is true, but you may also want to checkout my mac-style shortcut keys for linux project over here https://github.com/rbreaves/kinto. It takes a lot of the effort and annoyance of remapping out of the equation imo.
Generally it is more difficult to find working alternatives on changing basic linux behaviors quickly, whether those solutions be free or cost money.
And yes libinput-gestures can be difficult to work w/ I spent over an hour until I realized I needed to log off and back on -.-. Also it is concerning that you say screen tearing is back under Wayland - I haven't spent much time in Wayland because I have not yet worked out a good solution for porting my kinto project to it.
Ubuntu Budgie + https://github.com/rbreaves/kinto makes this a great experience by letting me re-use muscle memory (the key left of space + space => global menu; the furthest-left key + arrows => workspace switching).
The repo is located here.
https://github.com/rbreaves/kinto
Screenshot of the system tray and wizard is here.
https://user-images.githubusercontent.com/10969616/97070698-...
I know in the past I had seen confusion during the setup process so I believe this new GUI wizard will clear that up.
Additionally I have removed all system level shortcut modifications (even though the previous uninstall would undo the half dozen rebinds). Most rebinds have always been part of the xkeysnail config.
If the Overlay key is set then Kinto will undo it so that you will have 3 unhindered modifier keys. (Overlay key is of course mapped to Cmd+Space) If you remove Kinto the Overlay key will be set back to Super of course.
All remaps are self contained in the ~/.config/kinto/kinto.py config file and ran as part of the xkeysnail service that Kinto sets up for you. In the config file the Left side is the physical keys you press on either side of the spacebar, and the right side are the keys you are virtually pressing.
Also note that the Left side, in the config, is impacted by a modifier swap that occurs early on in the file, so you may not immediately recognize that but the 1st key left of the Spacebar is RC (Right Control), 2nd key is M (Alt) and the 3rd key is Super.
During terminal usage the 3rd key, Super, is swapped out with LC (Left Control), but some Super keybinds will still appear to work on LC just fine - like Virtual Desktop switching.
There are other, simpler ways of doing a lot of that stuff. If you want accented characters, enable the Compose key.
E.g. https://www.setphaserstostun.org/posts/setting-the-compose-k...
If you want Mac-style keystrokes, try Kinto: https://github.com/rbreaves/kinto
But there are other ways: https://medium.com/@petrstepanov/a-macos-like-keyboard-remap...
Me, I use old Apple mechanical keyboards on my Macs, and IBM mechanical keyboards on my PCs. The different feel engages different muscle memory, and I use Cmd-C etc on macOS and Ctrl-C on Linux without thinking about it. For terminal emulators, use Ctrl+Shift+C etc. I personally find this a much simpler solution, but YMMV.
If you want an easier life, dump GNOME. I've tried every blasted desktop out there and XFCE makes my life easier and happier than any of them.
Just to name a few:
- CMD+left/right: start/end of line
- CMD+up/down: start/end of file
- CMD+Shift+arrows: corresponding selection
- Alt+left/right: word movement
- Alt+Shift+arrows: corresponding word selection
- CMD+a: select all
- CMD+1,2,3: switch between tabs in browsers/iterm/IDEs/editors
(surprisingly and infuriatingly, this does not apply to native macOS tabs; e.g. in Finder Cmd+1/2/3 changes the view, but not tabs)
All that + the fact that clipboard, undo/redo, app and windows switching are ALL done via CMD makes it truly a modern hyper button. And you still have Control for Emacs bindings, which also work in most Cocoa text fields.
If you're interested, this [1] is one of the best attempts to bring macOS keybindings to Linux (in particular, Elementary OS). It's a set of settings for Autokey [2].
There is also Kinto [3], which solves one particular problem: copy-paste from terminal with consistent shortcuts.
1. https://github.com/roymckenzie/macos-autokey-phrases
2. https://github.com/autokey/autokey
3. https://github.com/rbreaves/kinto
UPD: edit formatting
It works perfectly.