Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Kanata supports early tap-hold dispatch based on key overlap, which is all I need. There's an open issue for more advanced conditions: https://github.com/jtroo/kanata/issues/128
The maintainer has been very responsive in my experience and would probably add more advanced conditions if someone wanted them.
> There are way too many interactions for me to list
Sounds like mostly hackarounds for non-keyboard-friendly software. I generally prefer to use keyboard-friendly software (of which there is no shortage on linux) and just make application-specific keybindings directly in each application. Anything else is inevitably a hack. Window management, browsing, anything related to text or programming, etc. all have good keyboard-friendly options. I have to use some stuff like excel and teams for work, but I'll just use the mouse more in those cases. I don't spend a significant amount of time dealing with applications like that though, and e.g. for Teams I'd try set up a matrix bridge or just use warpd before trying anything else.
Teams no longer supports linux, but for other apps that have non-customizable key shortcuts, it's definitely possible hack around that and create your own in linux. E.g. When I used to use libreoffice regularly, I set up modal keybindings that sent the corresponding chords to libreoffice.
As long as I can use my editor to type anything non-trivial, I'm good. For example, you have generic software like sketchyvim on mac to essentially use vim in any input field. I don't think there's a linux equivalent that lets you essentially embed an editor like vim inside any input field, but you can use a generic keybinding to open one and then have the text sent back when you're done.
A lot of the examples you list don't seem to need any app-specific or context-aware functionality (e.g. your launcher example). I don't have enough of an idea of what you actually want to know if what's available on linux would support your use cases, but in addition to the numerous basic hotkey daemons there are programs like keyszer that support application-specific keybindings ootb or hawck which is scriptable in lua and supports conditional keybindings (allowing you to script per-application keybindings). You have some context available but only what is externally available, i.e. unless the program provides some way to interact with it like a cli utility or ipc socket, all you're going to be able to do is send input to it.
Tangential: I'm currently looking for a way to map Mac-style shortcuts on Linux (e. g. Meta + C/V for copy / paste). The only thing I know is https://kinto.sh/, but it looks a bit too janky to my taste. Any other ideas?
I'm using this successfully: https://github.com/k0kubun/xremap
I was looking for the same thing. This is what I hacked together to scratch the itch: https://github.com/davidkellis/mackeys
I really like https://github.com/jbensmann/mouseless as it will also let you remap keys to control the mouse. I went down a rabbit hole of key remapping, and can't remember exactly why I settled on it, but posting as an alternative for others to look at.
I thrive off caplock as a toggle for remapped keys. I turn my sdf-234 into a numpad and jkl; for arrows and some other text navigation binds so I never need to veer far from the home row. caps-/ for ~ I can't live without.