my new keyboard layout has “caps word” functionality (think caps lock but just for a single word) and my god traditional keyboard manufacturers need to get with the times

where has this been all my life

#keyboards

@molly0xfff What keyboard are you using again? now i'm curious.
@gangrif MoErgo Glove80, but a lot of keyboards support custom firmware!
@molly0xfff Thanks! I've got the Kinesis freestyle edge. and like it. And it's got programmable firmware/macros. so it's possible i could make this happen. I'm just always curious about a good keyboard. ;)
@molly0xfff Daaaang thats a serious chunk of change for a keybaord. I am still intrigued though. Make the 200-ish i recall dropping for this Kinesis feel cheap! Looks like i has all the things i wanted in the kinesis (split, and adjustable for my wrists) plus better keystroke reach, or whatever you call it, with that concave deck. Definitely putting it on my list for whenever i do need a new keyboard. Thanks for the info!
@gangrif my last keyboard gave me ten good years of use (and no RSI) so it’s easier to justify expensive keyboards when i amortize it 😁

@molly0xfff That's how i've come to look at the kinesis. i felt it was expensive at the time. But it's 6 years in and still working like new. Plus i can pull it apart for maintenance and cleaning. Cherry keys that im pretty sure are replaceable (haven't had to find out). So i expect it to last a long time.

Some of us spend a LOT of time at a keyboard. a good one is almost priceless.

@gangrif yep, for those of us who type for a living good keyboards (and chairs!) are worth the expense
@molly0xfff I don't really want to talk about how much my chair cost.... Lol
@molly0xfff @gangrif https://docs.qmk.fm/features/caps_word, I presume? If I can map this to shift-capslock on my Keychron I will be SO HAPPY.
Caps Word | QMK Firmware

Documentation for QMK Firmware

@molly0xfff @Meyerweb @gangrif One of my favorite QMK functions for sure. I like that in this mode numbers still come out as numbers but dashes get turned into underscores—perfect for typing environment variable names.

@Meyerweb @molly0xfff @gangrif

I use it via that QMK feature on my own Keychron V4, mapped to double-tapping shift.

Looks like you can use the QK_CAPS_WORD_TOGGLE keycope or CW_TOGG for short to toggle it with any key/combo you like, so shift+caps should be possible.

@Meyerweb @molly0xfff The robot overlords tell me that my Kinesis keyboard can run QMK. I had no idea this existed, Thank you for mentioning it!
@molly0xfff and they say the left isn't excited about tech innovation!
@molly0xfff Oooh, that's a brilliant feature! 99% of the time, that's what I want to accomplish.
@molly0xfff hot DAMN i would use this all the time
@molly0xfff what would one do with such a function? So One Can Type Like This?

Edit: I see. Now that I read it, it makes a lot of sense and I think I need to go turn this...
@projectmoon no, it capitalizes the whole word. great for typing abbreviations, writing SQL, etc
@molly0xfff Yes, I just read the documentaton on QMK website. I think I will need to go enable that...
@molly0xfff @projectmoon
But it also DESTROYS the competition when writing YOUTUBE descriptions.
@molly0xfff —molly i’m retroactively upset at every keyboard i’ve ever used
@beep same!!
@molly0xfff @beep In 1994, I was in a high school keyboarding class (we were using PCs), and the guy next to me was unaware of the shift key, so he would press caps lock, type a capital letter, and press caps lock again to resume lowercase typing. That’s how he thought you got capital letters. I showed him what the shift key does, and he didn’t like it because he’d have to press both keys at the same time. Dude needed a “caps letter” key!

@ramsey @molly0xfff @beep

Funny that our phones now use a virtual shift key that locks only until the next key is pressed.

Your classmate may have anticipated this development... or caused it.

@ramsey

Apparently typing this way is not that uncommon?? I ran across a question on superuser that was someone typing this way and having trouble because caps lock doesn't release fast enough and they keep getting the second letter of a word capitalized too. 🤯

(Also a whole section in the xkbdcmp docs targeted at the caps lock release behavior for such typists!)

@ramsey @molly0xfff @beep OMG. I‘ve seen that recently and the reason I noticed was that when typing their password the warning label regarding the caps lock key would briefly flash next to the input field.
@ramsey @molly0xfff @beep My wife still does that. She's aware of the shift key.
@derickr @ramsey @molly0xfff @beep if i am doing a lot of coding with SNAKE_CASED_CONSTS after like an hour or so i'll catch myself doing that for an entire day for normal things 🤣
@molly0xfff I will not be able to unthink this idea, it's as simple as it has been necessary for the last 50 years or so
@molly0xfff I don’t know how to do this myself, but maybe someone could code a way for an alt/option caps lock combo to provide this functionality on less advanced keyboards.

@molly0xfff that's...really darn clever.

Is that a specific key, or do you have that on a layer or chord or something? Like how does it know to go into "caps until I hit space" mode?

@dave it’s a chord
@molly0xfff that's really cool, thanks for sharing!
@molly0xfff

I vaguely recall that there is — or at least used to be — a system-level setting in Windows or OSX that allowed you to do similar?
@ferricoxide @molly0xfff I’ve never tried it, but there’s a recipe for Karibiner (OS X)that achieves this. https://ke-complex-modifications.pqrs.org/#modifier-keys
Karabiner-Elements complex_modifications rules

Karabiner-Elements complex_modifications predefined rules by community

@adamrice @ferricoxide i’ve not used this setting but i can vouch for karabiner broadly speaking!

@molly0xfff

I keep forgetting I set this up when I designed my layout in QMK! I set it to double-tapping shift. It would be particularly useful if I wrote C code frequently, I suppose, since it also converts hyphens to underscores for writing long uppercase variables.

@molly0xfff

Oh, I just realized—environment variables in the shell! I use those all the time and am not taking full advantage of the caps word available to me!

@molly0xfff
I have longed for this "caps word" keyboard functionality ever since taking a touch-typing class many years ago, Molly.
Thank YOU for telling an old man that even though technology hasn't yet delivered the practical flying car, it has given us THIS truly miraculous gift.
@molly0xfff I always imagined a keyboard with out a Caps Lock key. I have never found it useful.
@nieuemma @molly0xfff
On Linux I make "Caps Lock" be Compose and added a custom .Xcompose with greek, prime, double prime etc added to the regular keys.
Both shift = Caps Lock (though I never use that and either cancels).
Caps Lock is from Carriage Lock because Shift was really sore on a mechanical typewriter as it shifted the entire carriage up. Caps probably dates from 1928 on electronic / electrical keyboards, later in 1940s used on Computers. The IBM PC layout was obsolete, see Sun etc.

@nieuemma @molly0xfff

On my Mac I have CAPS set to generate the Fn/Globe action.

I modified the FreeBSD keyboard driver to do typewriter-style capslock, so you had to hit shift-caps to enable caps-lock and either shift or caps would turn it off. Unfortunately this was post-1.1.5 but before they completely re-rebased on 4.4BSD in 2.0 so I never released it.

On mechanical keyboards I used to put a "louder" switch under capslock so I notice if I've hit it.

@molly0xfff that ... that could be an OS or driver level feature for any keyboard. what the heck
@molly0xfff A nice feature of the Android keyboard is that you can select a word, and then tap the shift key to cycle between lowercase, Initialcap, and ALLCAPS. I miss that on my desktop.
@molly0xfff Has to be a feature of the keyboard driver for the OS used, not in the keyboard itself. Keyboards don't even have any sense of what is printed on the keycaps, it's the OS to give a meaning to pressed (and released) keys.
@luc0x61 this is not true, ZMK caps word is implemented entirely in the keyboard firmware
@molly0xfff How curious, this kills the conventional flexibility in keyboards. But it clearly enhances the features like the one you're enjoying 😀

@luc0x61 i’m not sure it does. the firmware modifies the keyboard behavior and the HID keycodes it sends to the OS. the OS still has the opportunity to interpret the HID keycodes.

for example i change some behavior on the keyboard (caps word, other macros) and some on my OS (remapping ctrl <-> cmd on OSX). this means i can swap the keyboard between operating systems and enjoy the same functionality

@molly0xfff @luc0x61

https://github.com/zmkfirmware/zmk/blob/main/app/src/behaviors/behavior_caps_word.c

Looks like it sends caps-lock on caps lock and sends it again when you hit the end of the word, and depends on the capslock state on the computer behaving predictably (eg, you haven't mapped CAPS to GLOBE on Mac and don't have any other HID devices that could mess with it).

zmk/app/src/behaviors/behavior_caps_word.c at main · zmkfirmware/zmk

ZMK Firmware Repository. Contribute to zmkfirmware/zmk development by creating an account on GitHub.

GitHub
@resuna @molly0xfff Honestly, I have no experience with Apple hardware devices interface.
With PC HW, the kb originally sent only scan codes, both for press and release. With the exception of a couple of keys, all the rest were just "keys", assignable by the OS to any function, without any lowercase/uppercase distinction.
The last kbs I've seen with assigned character code were on terminals in the 80s.
USB devices maybe both return character codes and scan codes, with an HID profile.

@luc0x61 @molly0xfff

The USB HID protocols (there are two common ones, one that sends an array of up to 6 keys plus a bitmap for mods, and one that sends a bitmap for the whole keyboard) still just send keycodes. QMK has a hack to send Unicode by doing some OS recognition at boot and effectively defining macros that (for example) send ALT-KEYPAD-N-N-N on Windows. It's awful and I don't recommend it. I don't know what if anything ZMK does.

When I refer to capslock I mean the keycode.

@resuna @molly0xfff I'm quite sure the capslock-word behavior can easily be instructed by software (and maybe someone already did), reading the keys event and putting a ghost caps lock pressure to OS keyb driver. At that point I would expect it to turn off the caps LED, in response.
This should work for any kb, although actual code to handle kb events is OS dependant.
@molly0xfff I’d never heard of this but now I want it so bad..!

@molly0xfff As in, releases on space... and some punctuation? (Useful to at least have underscore as a WORD-character for tech stuff)

I don't use caps-lock – I have it mapped to backspace, and use that _all_ the time – but I'd definitely try a caps-word binding!

@molly0xfff Caps word is a life changer. It’s the only reason I updated my keyboards firmware after the initial re-compile to get rid of webusb support.
@molly0xfff oh nice! I’m still waiting for a comma in the number pad.
@molly0xfff neat! My keyboard has a similar mod that goes back into letters automatically after whitespace at the end of a number.