What does HackerNews think of kanata?

Improve keyboard comfort and usability with advanced customization

Language: Rust

#87 in Linux
#93 in Rust
#38 in Windows
Kanata[0] is amazing. It support both Linux and Windows. But I'm yet to try it on windows because my majority work is on linux.

[0] https://github.com/jtroo/kanata

Not yet investigated keyd. I still use good old .Xmodmap tricks on Linux, and AutoHotKey on Windows. Plus some VIA macros directly on my programmable keyboard. And I [plan to] investigate kanata (https://github.com/jtroo/kanata)
Sure, all good ideas in the meantime (and you could use right-thumb cmd/alt modifier or holdSpace as a vim-like cursor mod with the home keys as cursor and with H as backspace and G and delete and I as Enter to free your pinky (qwerty-layout))

But then dvorak is obviously not the best layout for this since it wasn't designed with all of that in mind. And neither were the home row mods themselves, for example, maybe only Shift is useful in the home row, and the others aren't used frequently enough (or maybe it's better to have numpad-mod key on the home row instead of the Windows key).

So I guess the focus of the layout collaboration effort could be on improving the algo/data, but instead we get a bunch of new layouts that only tackle a small(er)(and different) part of the problem without much of an improvement over he previous solutions (and, more importantly, with no good way to compare them). That would only leave you with the black magic of tweaking algo weights in the end :-)

P.S. There is also https://github.com/jtroo/kanata alternative to kmonad And re. homerow mod keys, it seems that there is an even better approach not relying on timings (which I think are impossible to resolve with full accuracy, though with per-key timings you can get pretty close), but that's not implementable within Karabiner, so someone had a homebrew Swift solution I haven't tried

kanata[1] and komokana[2].

kanata is basically like QMK for any keyboard without the firmware requirement. I use kanata with my trusty old iMac keyboard which is to this day my favourite keyboard of all time. But now I have all the cool QMK-style layers with it.

So that is awesome on its own, but where it gets even better for me, and this is where the seconds have really added up to hours, is that I wrote another piece of software which programmatically changes layers on kanata whenever a different window is focused in my tiling window manager.

This has honestly changed -everything- for me. I no longer have to waste keys on my keyboard to switch layers, I no longer have to -think- about switching layers, I just focus another window with alt+hjkl and whatever keyboard layer I expect for any given application is automatically applied. Definitely one of those "you can never go back" experiences for me.

[1]: https://github.com/jtroo/kanata

[2]: https://github.com/LGUG2Z/komokana

I have an Ergodox EZ sitting collecting dust these days. I got a great deal of use out of it and before long I was compiling my own firmware and making use of various advanced QMK features that were not available through the online visual layer configuration tool.

The keyboard has great build quality, the customer service is great (I got a free replacement for the right half after an issue with one of the keys), the ortholinear layout isn't that difficult to get used to, but ultimately the issue for me was that my hands aren't big enough to use the keyboard comfortably or to type as accurately as I'd like / as I'm used to typing.

I'm now back on my Apple Magic Keyboard and happier than ever, though with a few tweaks and improvements taken from my time using the Ergodox EZ.

I am now using kanata[1] which allows me to have multiple QMK-style layers on my regular old keyboard. This is already a huge step up from my pre-Ergodox days! I also like that I can have my layer configurations version controlled in a plain old git/dotfiles repo.

Since the layers are handled at the software level, I wrote my own integration with kanata, called komokana[2] to switch keyboard layers programmatically based on different state events emitted from my tiling window manager[3].

What that means in practice is that my keyboard can automatically switch to an app-specific layer when that app's window is focused, or to a workspace specific layer, or to a browser tab-specific layer, or really just switch on any event emitted by the window manager or any specific window manager state.

For me, this is really the killer feature of my setup now, and one that I don't think would be anywhere near as easy to implement with QMK which sits at the hardware level.

The jump from having to trigger layer changes via key presses or holds to having my keyboard automagically switch to the layer I want for a given application is almost as big as the jump from having no layers to having layers. There is just no going back once you've experienced it.

[1]: https://github.com/jtroo/kanata

[2]: https://github.com/LGUG2Z/komokana

[3]: https://github.com/LGUG2Z/komorebi