Hacker News new | past | comments | ask | show | jobs | submit login
QMK and Keyboards (getreuer.info)
126 points by akaralar 10 months ago | hide | past | favorite | 99 comments



The most common misconception I see about QMK keyboards (especially keyboards which stray far from the traditional form, like in OP's) is about small keyboards.

The most common kind of small keyboards are just like laptop keyboards, and try and fit a keyboard into a smaller space (and the omitted keys get relegated to being behind Fn key). These tend to retain the impractically big spacebar of a typical keyboard, out of familiarity.

Whereas, many non-traditional keyboards ditch the big spacebar, and instead give the thumbs two or three keys to use each. This allows bringing the full functionality of the keyboard within easy reach of the hands on home row (similar to how Vimmers would rather use hjkl than the cursor keys). It also allows reducing usage of the pinky fingers.

I've seen OP post some neat code which works with QMK firmware. (The orbital mouse looks interesting). But stuff like "Caps Word", etc. are also neat.


When I first saw a ferris I thought they were a nerdy joke. I ended up buying one though due to severe RSI and wanting a programmable keyboard so I could reduce how far I was reaching for symbols etc.

I'm now a convert to programmables. My glove80 is more ergonomic, but I use equivalent keymaps on both and they're a game changer. It feels so clunky now if I use my laptop keyboard to actually have to reach for symbols, numbers, etc.

Home row modifiers, number, symbol, nav layers, colemak & qwerty... Just awesome. They've helped my RSI no end.


I’m still quite new to my glove80 and I’m still a bit slow on the modifier keys. I was looking for something a little more aesthetic in the beginning but everything else is amazing about it. I look forward to unpacking it from it’s case everyday. I did not know you could feel that way about a keyboard. :)

Great ergonomics and a great experience. They have an active discord and the two founders are active as well.


I made one with four thumb keys and I love it:

https://www.stavros.io/posts/george-i-made-a-keyboard/finish...

I should write up how I did it, it's now years I've been sitting on that post.


I didn't make my own but I have a UHK v2 with a similar setup, this photo isn't my own (so don't ask me about the mapping choice of the keys shown) but it's identical to this:

https://kagi.com/proxy/uhk60v2-gmk-oblivion-scaled.jpeg?c=4N...


How'd you pick UHK over the moonlander and ergodox?


Price ridiculously wasn't something I considered, once that out of the way it was mostly aesthetics, customisation, reliability and repairability.

I preferred how chucky the UHK was vs the ErgoDox kits. Also preferred the hot swappable mods you can take in and out of the UHK were pretty compelling too. These are all listed here: https://ultimatehackingkeyboard.com/shop

Though admitedly, I haven't swapped them out once since I settled on what works for me.

The UHK has a strong community behind it's parts, and speaking from sone one who can and does spill even the best unspillable coffee cups.

The risk of me breaking the UHK is a lot closer to an unacceptable number than zero. And being able to swap out coffee broken parts is easy with UHK.

Erodox and ZSA easily could have been too but I couldn't find as strong of a compelling argument as with the UHK. It was more likely a coffee rinse of the Ergofox or ZSA keyboards would mean buying a new one which meant the upfront cost of the UHK was in some part, insurance against my own clumsiness.

The customisable and awesome software that came with UHK was very high up there too but I got the impression those features were almost as prominent in the competition too.


after having tried various splits, including the ergodox and the kinesis - I'm gonna hold out for something like (1) so I can adjust the dam thumb clusters. My thumbs are too short otherwise. It doesn't use via/qmk by default, but VIA can be installed. Only other thing I'd like is it to have curved wells like a dactyl(2) (but the dactyl's don't have adjustable thumb clusters sigh )

1 https://www.zsa.io/moonlander/ 2 https://bastardkb.com/product/charybdis-prebuilt-preorder-2/


Have you looked at all at the ZSA Voyager and if so, what were your thoughts? I realise it cuts down on the number of thumb buttons compared to the Moonlander but I saw quite a few Moonlander users who have used both saying they'd opt for the Voyager[0] or have got both and prefer the Voyager. Many people seem to have issues with the Moonlander's thumb cluster especially with smaller hands.

[0] https://www.reddit.com/r/ErgoMechKeyboards/comments/17ee1tr/...


I actually haven't tried either of them yet... but the Voyager thumb cluster isn't adjustable, so I figured I'd like the moonlander better ?

btw - I'd _really_ rather have a dactyl (especially one with a track ball) but there don't seem to be any with adjustable thumb cluster, and I'm worried they'd be too big for my thumbs...


Most dactyl designs are parametric, meaning you measure your hands and the design is automatically created to adjust your hands.


yeah - there's even some ocaml code for generating 'custom fit' dactyls. Problem in, the shells take hours to print and it a very finicky 'fitting' process. I stopped after like 3 'test' dactyl shells.


I see, not sure how far you're willing to pursue this but you _might_ find help on Reddit or Discord. I would be very surprised if you are the first person with short thumbs to want a Dactyl. Someone might have paved the way with a hand similar to yours.

Some subreddits that I know: r/ErgoMechKeyboards r/MechanicalKeyboards r/olkb

Also I know about these on Discord: SliceMK KBDFans BastardKB SplitKB QMK


Thanks! I generally make the rounds every 6 months or so... But I've been building keebs for a few years now, and I gotta cut back :-P The biggest issue is it takes forever to print a shell to 'test fit' it. It would actually be cool if you could print the shells upside down so you don't have to print the whole thing to see how it feels.

Oh! looks like there's a OpenSCAD parametric dactyl now (1) I think this was the clojure one I was playing with before: (2)

1: https://github.com/pseudoku/Dactyl-It-Yourself-Editor

2: https://github.com/l4u/dactyl-manuform-mini-keyboard


I hadn't seen the first one, nice! Well, the only way to cut back is to make the end-game kb, which will also be a Dactyl for me but I think I’ll buy it from either ohkeycaps[1] or cyboard[2]. cyboard also does measure-to-build[3], it might entice you if you decide to buy it ready-made instead of building yourself.

[1] https://ohkeycaps.com/products/built-to-order-dactyl-manufor...

[2] https://www.cyboard.digital/

[3] https://www.cyboard.digital/product-page/imprint


I hadn't seen the cyboard - Thanks!


100% agree with having more keys accessible via the thumb, I used to have the KBD75 (with spacebar 3 way splits, so I have shift and ctrl right under the thumb) but they discontinued it.

https://cdn.shopify.com/s/files/1/1473/3902/files/75_v2_c821...

I recently learned that there are these from system76

https://system76.com/accessories/launch


What's the misconception, then?


I frequently see comments saying things along the lines of "I'm a programmer, and so my keyboard needs the Function keys", "why do these keyboards not have F1-F12 keys", etc.

That seems to have the "laptop-style keyboard" model in mind: where pressing keys like F5 is cumbersome on a laptop keyboard since it involves holding a Fn key with the pinky finger.

Whereas, with small keyboards like the Ferris (that one of the other replies mentioned).. the keyboard can be so small because it doesn't need to be any bigger. People see "34 keys" and think "104 keys - 70 keys".. whereas the more significant detail is the Ferris allows each thumb to use two keys each. -- With these 40%-and-smaller keyboards, the Fn keys can be put on the thumb keys, and this makes it as easy to type F5 as it is to type an uppercase 'A'.

Similarly: although 40%-and-smaller keyboards will be more complicated to use than a typical keyboard, people discount the cost of moving the hand. With your hands rested on home row, in order to use nav keys, your hands will either have to move from home row, or you'll need to hold down some kind of Fn modifier. -- I see "move hand and hit the key" stated as "just hit the key".


Gotta give a shoutout to kanata[1] which I have used daily for years at this point after giving up on QMK-powered keyboards.

QMK itself is great, but I was never able to find a non-columnar split ISO keyboard to use it with. Eventually I reluctantly settled on the Logitech K860[2] and I'm now happily using my favourite features from QMK with kanata at the software level.

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

[2]: If I'm behind the times and there is now a QMK-compatible keyboard that looks like this, please let me know!


> QMK itself is great, but I was never able to find a non-columnar split ISO keyboard to use it with.

https://keychron.de/products/keychron-q11-qmk-custom-mechani...


This looks excellent! I have gone down a bit of a rabbit hole and I'm considering once of the Alice ISO keyboards[1], perhaps even waiting until the low-profile Alice variants are available in ISO layouts[2].

[1]: https://keychron.de/products/keychron-v10-alice-layout-qmk-c...

[2]: https://keychron.de/products/keychron-k15-pro-alice-layout-q...


Both Q10 and Q11 are good. I have one of each in their respective uses.

Q11 may possibly be even better for someone prone to RSI, because you can set the halves up angled even wider apart. Just make sure to get a good wrist support to go with the keyboards, no matter which you go with: they are thick, and that makes them positionally elevated from the surface they are on.

With two more things they would be pretty much perfect. An embedded USB port on both sides, so you could slot a YubiKey nano on your chosen edge. And a double-sized Esc-key. The latter is the single thing I miss from Kinesis Freestyle's form factor.


or https://nullbits.co/snap/ if you don't mind a more DIY approach


I have also used the K860 and I like it. I stumbled across Chad Austin’s Microsoft Sculpt wired conversion [1] and I have been using it for some time now. Apart from the abysmal function keys it’s a decent keyboard, and with QMK you can make it do whatever you want.

[1]: https://chadaustin.me/2021/02/wired-sculpt/


I use a Keychron Q11, a split row staggered keyboard. On the laptop, I use Kmonad on linux with home row mods but I think I will switch to Kanata because it seems more compatible with Windows (work OS). I have been using home row mods for a few days now and I feel that it has greatly alleviated the pain I have on the left pinky finger (remapping caps lock to control and using Emacs keybindings for years did that I think). I am tempted to switch to a columnar staggered keyboard, specifically ZSA's voyager, but I don't know if I will adapt to the layout. Maybe someone with more experience can give advice here...

I tried to change the keyboard layout to a more "ergonomic" layout (optimot), but after months of training, I could never gain the proficiency I have in AZERTY. I think it's not worth it to switch.


I have both an Ergodox and a Ferris which are both now gathering dust. In my experience, columnar layouts are not worth it for me as a developer, because there is nothing that I can gain from a layout that changes the position of the {};'<>() keys that will ever offset the productivity and familiarity lost by those keys never being where I expect them to be.


Designing a symbol specific layer[1] that includes all the symbols without needing to shift the keys made programming much more pleasant for me. It took a bit of getting used to but since programming and typing symbols is something we do quite frequently during the day, the brain gets used to it rather quickly.

[1] https://configure.zsa.io/ergodox-ez/layouts/v56OO/latest/10


I feel like it took a month to get fully used to and then I haven’t looked back. I did have an RSI motivation.


Are you able to switch back and forth between staggered and columnar?


Yes. Without even thinking about it.


So what do you use Kanata for if you don't mind the question?


I have a bunch of home row mods, and I also have layers with dedicated app-specific utility-mappings that I have automatically toggle on when the relevant app window is focused so that I don't have to waste extra keys to toggle/switch between different layers.



If you're interested in QMK, you might want to give ZMK a shot as well. The big differences are that it's wireless-first (cognizant of power consumption, supports various wireless modes, etc), it's built around ARM (doesn't support Atmel), and is a much newer codebase.

But I have to give it to QMK as well, they have been reworking / refactoring a major wart in how you config keyboards, with the move to info.json and away from custom C and make files.


The downside to ZMK is no copyleft protection. So when you buy a keyboard that advertises "ZMK", you're getting a binary blob you can't customize or audit.

OTOH, QMK has successfully forced-open proprietary keyboards that were sold with QMK forks and then repeatedly, emmphatically refused to release the source. This includes the awesome non-Bluetooth 1000hz-rate Nordic Semiconductor wireless feature of the NuPhy Air keyboards!

https://github.com/qmk/qmk_firmware/pull/21949#issuecomment-...

Copyleft works. In spite of all its haters.


> This includes the awesome non-Bluetooth 1000hz-rate Nordic Semiconductor wireless feature of the NuPhy Air keyboards!

It seems like the code doesn't actually contain the RF firmware, though - it's just the glue to talk to an external chip which essentially acts as a "modem".

The reason ZMK uses the MIT license - and proper RF support cannot be added to QMK - is that Nordic's RF stack drivers use a license which isn't compatible with GPL. This means if you want to do wireless stuff inside the actual keyboard firmware you can't use QMK.

There is of course a fork out there doing exactly this because nothing is technically stopping you, but you're legally not allowed to combine the two.


Couldn't they use GPL with a linking exception, LGPL, or MPL to retain copyleft protection?


Does that NuPhy QMK codebase include the wireless code, or are they doing the old trick of running QMK on one microcontroller and the wireless stack on a separate microcontroller? QMK has very limited wireless support so AFAIK wireless QMK boards usually use the dual MCU arrangement, and the wireless MCU firmware is probably still closed even if they release their QMK source.


It includes the wireless code.

I think you're confusing this with WiFi. The Nordic Semiconductor chips don't require a firmware upload; the protocol they run is vastly simpler than wifi -- it's like UART-over-2.4ghz-GFSK-radio plus some error correction.

https://www.sparkfun.com/datasheets/Components/nRF24L01_prel...

The block diagram doesn't show any kind of CPU in there.


Oh of course, I'm confusing it with Bluetooth boards which need a hefty wireless firmware stack. Boards using a dongle don't necessarily need that complexity.


Yeah the NuPhy Air is the first wireless keyboard I've ever been willing to use, specifically because it is non-bluetooth (and I can recompile the firmware to guarantee that it isn't using bluetooth!)

Bluetooth keyboards were a horrible idea.


Separate wireless controller, see the glue code at [0]

[0]: https://github.com/qmk/qmk_firmware/compare/master...nuphy-s...


> when you buy a keyboard that advertises "ZMK", you're getting a binary blob you can't customize or audit

You've got a fine argument for preferring GPL software, but I'd be shocked if there was a ZMK keyboard out there you couldn't flash.

a.) That's how you configure it

b.) Upstream (including the platforn, Zepher) is moving quickly, with frequent performance, feature, security, battery life, and usability improvements-- eg. a recent commit touts support for bitlocker screens

c.) I had to hack on it to get the behavior I wanted, which.. oh, that means a company might want to hack on it too, i see

but this all to say that it would be a remarkable tragady for a company to not support mainline provide you with the sources, if just for integrating upstream updates, and thankfully I can't think of a product that does so. I'd prefer it was copyleft too (so we didn't have to worry about it), but I wouldn't go so far as to proclaim that's what "you're getting" as if it's endemic to the platform.


> I'd be shocked if there was a ZMK keyboard out there you couldn't flash.

MoErgo Glove80 is ZMK based. Extensible and flashable, too.


Oh huh. This might sound silly, but your commend nudged my opinion on copyleft. My previous take was more cynical - I remember, ages ago, seeing a lack of enforcement around some less popular gnu / fsf software.


IMHO copyleft is mostly about the balance between hardware manufacturers and free software.

It's important to remember that. It forces the hardware vendors to stay on "their side of the line" -- or at least to give up control over any part of their product which extends into the software space. This is why it's much more important for the hardware-touching parts of the stack (Linux, GRUB, GCC) to be copyleft than the rest of the software we use.

A lot of the anti-copyleft people think only in terms of software-company/software-company interactions.


See the crud around john deer tractors. Not being able to modify your word processor is one thing, being unable to repair thousands of dollars of agriculture equipment is much worse.


Also worth noting GPLv3 has an anti-tivoization clause, which guarantees your freedom to actually modify the software in practice as opposed to only theoretically.


> it's wireless-first

Sounds like a security nightmare. Input devices, and especially keyboards, are something that absolutely needs to be wired-only in my book.


> Input devices […] need to be wired-only.

That's just like, your opinion, man.


Personally I have a Keychron V6, witch is just ok for it's price, but my complaint is that QMK have enough power to simply read a text file on a small flash memory even a raw memory flashed via `dd` wrapped by a simple script and made the customization much more comfy, without the need of recompile the fw, downloading ~1.5Gb of stuff simply mapping a physical key or key combination to a set of keycodes.

Second RANT to ALL keyboards OEMs: please add a damn service to print easily custom keycaps, a small example, being from the EU writing in few languages every day I've chosen the EurKey layout, witch actually does not exists on sales in some pre-build keycaps set. I have mapped differently some keys, MOST of them I know from memory, but sometimes being able to see the key is a very nice to have thing. Ok, keycaps normally are not really printed, meaning it's not cheap to produce custom ones, but if you damn ask 300+€ for a keyboard and someone buy it I'm pretty sure a custom keycap set does not change the game much.

Third RANT please STOP making cherry, OSA etc profiles. Very old IBM keyboards have solved the height issue with a simple parabolic support, there is NO DAMN REASON to make flat support and different height keycaps making limited room to move them on the keyboard.


> made the customization much more comfy, without the need of recompile the fw

Get someone to write a profile for https://get.vial.today/ support.

> add a damn service to print easily custom keycaps

https://www.wasdkeyboards.com/custom-text-cherry-mx-keycaps....

> please STOP making cherry, OSA etc profiles

They are making them because people keep buying them. Turns out most people actually like typing on them.


People buy them because they like a curved layout. OP is asking for more curved circuit boards with keys all the same height so that they can use whatever layout they want. It makes sense to me, but I'm - like most people - stuck with what I can get which means QWERTY keyboard layout.


> Third RANT please STOP making cherry, OSA etc profiles. Very old IBM keyboards have solved the height issue with a simple parabolic support, there is NO DAMN REASON to make flat support and different height keycaps making limited room to move them on the keyboard.

Some of us like to experiment with various profiles (my favorites are MT3 and Cherry and I rotate them every couple months on my keyboards). You can try XDA and DSA profiles, they're qute flat.


I have a newbie question around Keyboard firmware: I built a simple Macro-Pad based on the RP2040. I want to use it under macOS for application-specific functionality. However, I cannot find a firmware that allows me to change/define Macros during runtime. I find it very cumbersome to always compile and flash a new firmware, whenever I want to change a simple Macro.

What am I missing?


You might want to look into Vial[0]. It's essentially an addition to QMK which allows you to do exactly that.

[0]: https://get.vial.today/


You might want to try via (https://www.caniusevia.com) instead, actually. I know at least Bastard Keyboards switched from vial to via because vial-qmk (the vial fork of qmk_firmware) was lagging 9+ months behind upstream qmk at one point.


One feature that made me prefer vial for custom macropads is being able to embed the keyboard definitions that via/vial needs within the firmware. A lot more setup and forget rather than having to deal with additional files to be able to change my keymap. Especially when I'm gifting these to friends.


Thanks! That looks really good!


Configure the macropad to send uncommon key combinations and use something like Keyboard Maestro to do the rest.


When I started getting some RSI from coding all day, I looked for solutions. I ultimately settled on a split keyboard (separating the left and right hand more, less cramped in front at odd wrist angles) with a bunch of thumb keys (to act as modifiers, much easier to use than pinkie based mods) and a folding tripod stand for each so i could "tent" each keyboard out at an angle that matched my natural resting hand posture. That and a wrist pad completely resolved any RSI/tension I had.

With QMK, I was able to setup a nice set of keyboard layers for regular use, gaming, and multimedia control. For any keyboard power users, it's a dream! My hands are always in home row and everything is a simple finger movement/chord away.

Link to the build kit I used: https://splitkb.com/products/kyria-rev3-pcb-kit


Hmm that's interesting to me. I'm currently on a Planck EZ, I like it but would like my hands a little further apart, and the idea of using my thumb for more modifiers is definitely interesting.

Had a look at the Corne but didn't want to lose keys (not interested in homerow mods, and I like having keys like ctrl on both sides of the board). Kyria might be the thing for me..


Yes exactly! All my mods are mirrored on both keyboards (except left pinkie shift).

You lose the number row with the Kyria, but I have all my numbers and symbols available with a simple thumb press. A fair trade.


What language programming gives you RSI? I spend around 50 times the time thinking and navigating than typing code. And with LLM completion I barely type nowadays.

I thought RSI was mostly for documentation writers and emails people.

Ref: programming for 25+ years. I only had problems when my posture was bad. Lucky I guess.


I was writing mainly JavaScript all day. The main culprit was my wrist posture. They were squeezed together in front of me and at an awkward, flat angle while typing. Even with a sit/stand desk, multiple breaks, etc. the pain would build up over the day.


if everything you do is move over stuff from the whiteboard to the computer yeah you wont type much.

but that’s not the kind of programming that exists, there’s a lot of trench digging.


I feel the mk community died during the pandemic and all the commercialization that happened. People just stole stuff community built on goodwill. At least I was turned off by it and stop caring.


For example?


I considered using something like that, but my concern that it is going to ruin my muscle memory for the situations when I cannot use it - eg locked down environments at work. So I stick to whatever can be done with standard OS capabilities.


Behold, an inline USB QMK controller. Just carry one on your keychain

https://yaowei.dev/posts/usb-to-usb-converter/


There are some places that do not allow USB connections. People have been fired over it.


Works great on laptops and Bluetooth keyboards.


I've got a weird split thumb board like OP, and the muscle memory for a normal keyboard is fine. I think it helps that I mostly left qwerty intact, and messed with meta keys.


I'll throw another anecdote to the pile. I use a split, angled keyboard with a nonstandard keyboard layout for over a year now and I can use normal keyboards just fine.


It doesn't, I use a standard laptop keyboard and my weird-ass custom keyboard very interchangeably with zero trouble. Hell, I'm typing on a MacBook right now.


It's been a non-issue for me. I work on a standard qwerty laptop keyboard once or twice a month, but use a colemak split keyboard the rest. The worst thing that happens is I hit the wrong keys in my vim motions until my hands adjust to the standard keyboard again, but that stops happening after 5 minutes of typing.


I feel like with keyboards and QMK there is only so much you can do before its probably worth your time to learn some steno instead unless you really need to repeat keys a lot. There is a bit of a learning curve, but its not much harder than messing with all the layers and layouts. The main benefit is that its a lot easier to make a new dictionary that adds more functionality without having to modify the keyboard letters at all.

Basically, you pick a cluster of letters to act as the modifier on one hand, and then a pattern you want to enter for the command on the other hand. For example, all my symbol commands start with ASDR + a pattern from UIOJKL. So like ASDR+UJ, ASDR+UIO ASDR+UJOL etc. If you just look at the shape of the letters that you make when you press them it makes more sense. My movement commands start with QWER or ASDF (for selection) and then (you guesssed it) UIOJKL. So say you happen to install a new Emacs package and want to make chords for all the commands. I make AWD + and then (you guesssed it) UIOJKL. And then, I don't have to type the command again.

You can also type individual letters (and should practice until you can hit 30-40WPM) and don't need to memorize that many words if you don't want to. I actually stopped after like 200 or so because I don't feel the need to.


This made no sense to me at all and I doubt I'm alone.


I built a midi controller out of an ortholinear keyboard kit and QMK. It really is a fun way to dabble in C and embedded hardware!


No velocity though, right?


Probably not, but there is a lot of intersting stuff you could switch/trigger/activate without velocity.


If they are analog/hall effect switches then in theory you could do it.


Electro-capacitive boards (EC) could also do this, with the caveat that EC switches in general are tactile rather than linear as most hall-effect (HE) switches are.

When it comes to QMK, it seems that there is a greater number of EC keyboard projects out there. Some examples below.

For a MIDI device, I imagine an ortholinear boards may be the best layout. Unfortunately there isn't much out there for EC ortholinear boards. A group buy for a 47-key EC ortho board ran a few years ago, but the price was an outrageous $500-600:

https://www.ashkeebs.com/product/conundrum/

More recently, a handful of QMK-compatible EC PCBs have popped up on AliExpress. Unfortunately, I haven't been able to locate the actual QMK firmware source for them. Perhaps in the minds of the creators, it is simply enough to provide VIAL compatibility for user customization. The drawback here is it does not expose the necessary feedback for velocity:

https://www.aliexpress.us/item/3256806073672667.html

https://www.aliexpress.us/item/3256806010654548.html

https://www.aliexpress.us/item/3256806009306496.html

https://www.aliexpress.us/item/3256805431878689.html


I use Oryx by ZSA which is built on top of QMK, but not with all the features. It is great still though.

I use a lot of MO keys on my keyboard. Too many accidental layer-locking with TT and OSL. So I would love it if/when ZSA adds the QMK "layer lock" feature to Oryx. Currently, I use a layer lock intermediate layer. But that is one extra key press and finger travel.


Caps Word: Nice idea, something I might go implement with AHK.

Orbital Mouse: This reminds me of Logo turtle graphics.

Word selection: Using Ctrl+(Shift+)Left/Right, this doesn’t work at the edge of a word, or only on one side. You need to be able to look at the characters to implement it fully. Editors that don’t support “select word” at both word boundaries always frustrate me.


This is surprising to me https://getreuer.info/posts/keyboards/non-english/index.html...

I wonder why a better solution hasn't been implemented in QMK. Is it a technical limitation?


The HID protocol used by keyboards to talk to the OS doesn't support Unicode.

In fact, it doesn't even support letters: you're sending key positions instead. If you press the letter "A" on an Azerty keyboard, your keyboard will essentially send a "Q Down" event - because that "A" is placed in the "Q" position.

Getting Unicode out of that is really tricky due to half a dozen abstraction layers, most of which are unique for that OS. Mapping a specific Unicode character to a position isn't too bad (just use a custom keymap), but adding generic Unicode support is a nightmare.


My understanding is that unicode is just not part of the hid spec. Keyboards send scancodes that the pc interprets into window events. That translation is not part if the spec, and therefore os dependent.


Oh neat! I didn't know it could do this. I use U+202F (Narrow No-break Space) all the time to separate numbers from their unit (as in "20 kg" which I'm sure won't display correctly here), but I haven't found a convenient way to enter that on macOS.


Is a modifier+space not convenient?


Which modifier+space produces U+202F? Alt+Space produce No-Break Space (NBSP) U+00A0 which is different and lacks the appropriate narrowness.

EDIT: I tried alt+space, alt-shift+space, alt-ctrl+space, alt-shift-control+space, shift+space. All produce either U+00A0 or U+0020 and other combinations, such as including Cmd doesn't work at all.


Sorry, I meant adjusting your layout with Ukelele or using a keyboard remapping tool like Karabiner Elements, where you can bind any modifier + space to insert any space (and KE can include Cmd and differentiate between left and right sides). You could even have a Ctrl+Space deadkey for less frequently used spaces, where any subsequent letter will print a mnemonic space (m-em space, f-figure space, b-no-break etc).

(And with KE even have a delayed notification to remind you which letter means which space if you don't complete this deadkey within, say, a second)


Thanks, good suggestion -- I usually try to avoid extensions as much as possible for many reasons (incl. that Apple actually discourages it), but I'll look into it.


Where does Apple discourages using your own keyboard layout (not KE)?

Though I personally would be easily discouraged if they made good native keybinding support


I wrote extension, not layout. I succeed finally with Ukelele thanks.


It is an OS limitation/inconsistency. QMK allows to toggle mode for linux/win/mac. There is nothing else QMK can do.

I personally just use some layout (us-intl with no dead keys), which works for the integrated laptop keyboards too.


I am quite in love with the touchpads on my Steam Deck. Has anyone here seen a keyboard that incorporates such devices? (1.5” square haptic feedback pads, one under each thumb.)


I only know of the Dilemma keyboard by bastardkb, but it's round touchpads. I'm not sure how similar they are to the SteamDeck ones.

https://bastardkb.com/dilemma/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: