I've always hated stateful control. Always ripped out caps lock key from my boards (or later figured out remapping), same for insert mode
That's carried over, even with options like one shot mods, & cutting down to under 40 keys (& playing with 28, yesterday received a https://github.com/kilipan/zilpzalp), I still don't find stateful control necessary. More layers, combos, & tap-hold go far
I wish I could remove the insert key, but unlike the caps-lock that no application rebinds, insert does get rebound. I wish there was an OS level control "pressing insert by accident should not turn on mangle-my-text-mode".
I think the distinction __s is making is between layer toggles (layer is active between layer key presses, described as stateful) vs layer modifiers (layer is active while layer key is held).
And there are definitely reasons to minimize keyboard state. I've been playing around with programmable keyboards (running RMK in my case) with several thumb keys. My thumb was getting fatigued, so I tried using a layer toggle to avoid having to hold it while using the nav layer. I would hit it by accident and then get confused about why my keyboard isn't doing what I expect ("mode confusion"). That gets awkward, unproductive, and embarrassing real fast. You can display the mode via per-key LEDs and/or an OLED display, but those only help if you actually look down at the keyboard, which is not my habit. (I have thought about using a companion app to display an overlay on my computer's screen when in a non-default layer.)
fwiw, I think most of my thumb fatigue was from using my thumb on modifier keys beneath z/x/c and equivalent on the right, which required folding my thumb underneath my palm. Bad idea.
These keyboard designs have some really interesting ideas, but the ideas aren't all unambiguously good. Some of what are described as thumb keys really shouldn't be used with the thumb. I'm still on the fence about column stagger. I think a lot of the reason people avoid the number row on these keyboards is because the purely vertical reach on a column-staggered keyboard is more awkward than the diagonal movement you make on a row-staggered keyboard. And the idea that column stagger is better because it forces you to use e.g. the ring finger for "c" is based on an idea that it's bad to use the index finger for "c" even with a row-staggered keyboard, and I disagree with that. I also think they're undervaluing muscle memory (or maybe were made for people who never learned to type well on a row-staggered keyboard and are really committed to always using the column-staggered keyboard).
I'm typing on a SoflePLUS2 right now. It's based on the Sofle v2 design, which is described as having a 5-key thumb arc per side. But I try to limit thumb use to the innermost 2 or 3 keys per side after experiencing fatigue. I use the outermost 2 or 3 as opposite-hand modifiers (ctrl, opt, cmd) and try to pull my whole arm in to use them with the same-column finger, instead of treating them as a thumb key that requires folding my thumb underneath my palm as I keep my hand in the home position.
It seems like many in the ergo keyboard crowd are trying to never move their hands from the home position, and I think that might be a mistake. Use a variety of muscles, avoid unnatural positions. More broadly, my understanding is that the research behind using a tented/splayed split keyboard is solid (better shoulder through wrist positioning) but there's nothing really but anecdotal experience supporting the idea that vastly reduced key counts (and associated need for complex layer setups) or column-staggered layouts reduce pain and plenty of confounders (going from unibody to split simultaneously, maybe switching from QWERTY at the same time too, reducing speed, often learning decent form for the first time, often regression to the mean because people switch when they are having problems).
My previous keyboard was a split with traditional row stagger (Goldtouch) that Google's ergo team advised me to try forever ago. I switched recently because I wasn't liking the mushy feel of the keys, that the two "space bars" weren't distinguishable, that it doesn't have an integrated pointing device, and that after such long use I'd worn down the homing indicator on the f/j keys and was struggling to orient my hands correctly. But row-staggered layout was fine IMHO. Made it easier to learn, to switch between it and other keyboards when I had to, and to hit keys further from the home position.
Here's something from Kinesis, who have been designing split ergonomic keyboards for a long time: https://kinesis-ergo.com/wp-content/uploads/Advantage360-ZMK... search for "If your thumbs are sensitive" and "Guidelines for using your thumbs". And note that while they have keys under z/x/c they do not describe them as thumb keys.
Possibly, depending on how they're activated. If the layer is only activated while another key is pressed, that's not stateful (i.e. no different from yet another Fn key). I'd say that layer toggles and one-shot key modifiers are stateful control, yes.
Personally, I've found that I prefer layer shift keys over layer toggles. It takes more mental effort to track in which layer I'm working than to hold a key while pressing another. The only persistent layer toggles I use is to switch the entire keyset to a different layout (qwerty vs workman vs single-handed, or switch the right half to numpad).
Caps Lock is stateful control. The function of the keys changes depending on the internal state of the system. The "Fn" key on the keyboard in the article is also stateful (ish), and defaults to treating the F row as the special macros, rather than just F1-12.
Emacs key sequences are similarly stateful, and GP may hate that just as much, even if the state is temporary.
For my part, in emacs I would often try ctrl-x-s to save, but miss the x. When I repeat the attempt, emacs register the complete but unknown key sequence ctrl-s-x followed by the start of a new key sequence with ctrl-s. I consider this similarly stateful because the behavior of "ctrl-s" changes entirely depending on what keystroke (if any) preceded it.
I don't like that aspect of emacs, but if you are a heavy-duty editor user it becomes difficult to arrange a consistent set of emacs shortcuts that aren't modal that don't conflict with anything else, because there's so many things you might want to do and so many pre-existing keyboard shortcuts that you can conflict with, not just in emacs but in your window manager. As a simple for-instance, I've got four or five keyboard shortcuts I added in the last year for dealing with the Claude windows in emacs that I've been using (the package defines a couple dozen, it's just about five I use a lot), and I didn't even try to figure out how to make them anything other than "C-c c $something" because it's hard to find somewhere they can go in any sort of pattern that makes any sense and doesn't conflict with anything. Fortunately most Unix window managers seem to leave the Windows key alone, but of course if I try to bring that to Windows it would fail miserably.
I did remap my heaviest hitters a long time ago to single strokes, though. Most notably, start macro, end macro, and replay macro all got coveted non-modal shortcuts.
I mostly agree with GP on stateful controls, but emacs has never clicked for me like vim did. Perhaps it's because switching between modes feels more natural than a simple toggle.
Whereas I cut my teeth on emacs in the early 90's, so modal is what felt awkward. I wouldn't dislike vim's modes so much if it just had one combination insert/append mode that worked like every other editor out there (including a couple other modal editors I've used), but even after adding various hacks to my vimrc to help unify the two modes, I still stumble over the behavior differences in other places.
I really like the composable shorthand of vim's command set though, even if the only one I have in muscle memory is <esc>:wq
Honestly, there are more "modern" editors with even more intuitive flows. Helix being one. I think the ideal editor for me would be something like a mix of Helix's shortcuts with structural regexp like in vis.
> I wouldn't dislike vim's modes so much if it just had one combination insert/append mode that worked like every other editor out there (including a couple other modal editors I've used), but even after adding various hacks to my vimrc to help unify the two modes, I still stumble over the behavior differences in other places.
To be fair, for most values of "every other editor out there," they came after vi (if not after vim), so it's not like vi was discarding existing wisdom.
Actually, there are a number of full-screen editors that pre-dated vi. They were for mainframe operating systems, or were confined to some university or other, or were commercial products for something like CP/M made by some tiny company somewhere, and are largely forgotten; with the last magtapes or floppy discs that had copies of them long since thrown away. Unix and vi, and what escaped UCB, got remembered. But there was other stuff around.
Certainly! I was intentionally hedging my bets with 'most' in "for most values of 'every other editor out there.'" I'd still argue that, for very large values of 'most,' most editors in widespread use today came after vi.
For sure, I'm saying that vi stuck with its design rather than follow the trend of other modal editors that converged on one insert mode, and so did its follow-ups like vim.
I just tried out helix and I'm really liking the features like its single insert mode. Still taking some getting used to, since it's selection-first, not command-first, so `dd` just deletes two chars and not the line. And shift-V doesn't select lines... grr.
"I've always hated stateful control. Always ripped out caps lock key from my boards (or later figured out remapping), same for insert mode"
You want some real fun, try the Microsoft Surface keyboard. Maybe they've fixed in a very recent version, but given how long the product line has had this problem, probably not. It has a stateful Fn key. That's right, a Fn key that works like capslock. There is no conceivable way this is a good idea. It means that if you actually want to use both "sides" of the Fn'd keys, you literally can not build muscle memory. If you hold the Fn key and press one of those keys, it'll do the "other" function, but if you just tap the Fn key, including because you had meant to press one of the keys but decided not to halfway through (which happens all the time, you just don't normally notice it because it's a completely normal thing to do that normally carries no consequences), you flip the polarity of the entire Fn key set. Now a normal press and a Fn-press do the opposite things. Until you flip it again.
This is not a "oh, as a multi-decade key user I have opinions about whether key strokes should be 68dB or 72dB" question. This is basic functioning of the keyboard. It's insane.
And, naturally, the key is "magic" and the OS can't see it. While I'm bitching, what is the deal with keyboards on new laptops needing special drivers? What the fuck is so special about your keyboard that you need drivers for it? I'll tell you what's so special about it: stuff you shouldn't be doing anyhow. My OS should be able to see and address all keys so I can remap them as needed. Your stupid special key that does your stupid special thing doesn't need to be a stupid special key. Make it a normal key and trigger your behavior in Windows, not in the hardware. Then I can use your stupid special key at least as a Meta or a Hyper or something. You don't need special drivers to have normal keys, you only need special drivers if you're doing something stupid.
So there's no fixing the Fn key on these systems because it's one of the magic keys that can't be seen by the OS at all, so it can't be remapped, it can't be turned off, it can't be locked into one state, you can't do anything. You're just stuck with a keyboard that, from your brain's point of view, randomly swaps a couple of dozen keys around.
Now I'm also on a programmable keyboard. This guy, to be precise: https://mistelkeyboard.com/products/0a26d32ac1e3b1d2af2896e0... which I split across my chair so I've got one half under each hand when it is resting comfortably. That's something you can't get a laptop keyboard to do.
I agree about the special keys. There are so many HID usages on the Consumer page for keyboards covering so many things, from application launchers to extra editing functions, and it is absurd how often almost none of them are used in favour of vendor-private usage numbers that then require vendor-specific software support.
I have a mac, and I wouldn't mind a fn-lock feature, but only from a different key combo, maybe fn+capslock. The behavior of fn (media keys or function keys) is a control panel setting, so I could probably whip up something with hammerspoon. But right now I just remap most things in my IDE so they don't require function keys.
Anyway, keyboards have needed drivers since we stopped using BIOS to read them, and fancy keyboards with macros tend to need at least a userspace daemon, but yeah this kind of thing should be as much a commodity as a VGA framebuffer is, something you just shouldn't have to fuss with. Far as I know though, USB and the *HCI zoo pretty much are that, so along with the OS's own built-in support, it should support the basic functionality of any keyboard, and provide standard means for extension. I believe the main reason any company ships a 1GB keyboard "driver" these days is the bundled shovelware and spyware.
Speaking of "natural scrolling" it is horrible because most scrolling is downward and "natural" is an ergonomically inferior pushing action instead of pulling.
It's only natural on the actual display itself.
Anothe affront to nature by Apple, along with killing the headphone jack.
On a Macbook, natural scrolling feels right on the touchpad. The real crime is not having a separate setting for a mouse. I had to use applescript tied to a keybind so I can use natural scrolling on the touchpad and toggle to regular scrolling when using a mouse wheel.
I love Macbook trackpads, even use a Magic Trackpad at my desk, and "natural" scrolling has never felt right for me.
I suspect my mental model is locked into the "drag scrollbar handle down" mode from the early mouse era rather than "drag page up" mode that is intuitive to people who's first computing device had a touchscreen.
Another recommendation is LinearMouse. It lets you fix pretty much every problem that MacOS inflicts on mouse users: pointer acceleration, scroll behavior, click/button behavior. This and Karabiner make the OS much more usable for me.
I must be the only person in the world who actually likes pointer acceleration. Karabiner is a must though: I use it solely for "remap capslock to hyper/esc", but that's still reason enough.
It's just a hardwired list of targets, and doesn't support the fun combination of bucky bits that I remap capslock to (in lieu of an actual hyper key, which macOS has no concept of). Also, when I tap capslock as opposed to holding it, it sends an ESC, which I'm pretty sure I would need Karabiner for.
Check out Scroll Reverser; it's a tiny, open source app that solves exactly this.
There are some other alternatives like BetterTouchTool if you want some other changes like gestures, but as far as this specific problem goes you can just `brew install scroll-reverser`, set up the settings you want and forget about it. Life is too short to deal with this nonsense which is clearly designed to sell the Magic Mouse.
It's not just the ergonomics - in my head I'm moving the cursor (and with it my view) down through the document, not moving the document up. Which is mentally different from a touchscreen, though I expect people who grew up with touchscreens never built that mental association that we're moving the cursor. Fortunately Apple allows be to change it. <end old-man-mode>
For me it's completely different with the same result: I imagine the scroll wheel is on the paper (screen), so my finger going down rolls the wheel and the bottom of the wheel pushes the paper (screen) under it upwards.
For whatever reason this persists to touchpads even though they would seem closer to a touchscreen.
It makes sense on a trackpad too which is what the majority of sold Macs come with. You’re “pushing” the document, not moving the scroll bars. Seems perfectly natural to me. My fingers move up, the document moves up; just like what would happen to a piece of paper being slid up a table.
Yes, it’s less direct than touching the screen, but it makes more sense for the model of UI they’ve been going for over the last 20 years where the content of the window is more meaningful than the window itself, which is to say worrying about where the scroll bars are rather than what part of the document you’re looking at is what’s not natural.
No, it doesn't. Trackpads always worked fine until "they" reversed the motion. Now it's always a guessing game for the initial scroll. It's terrible, unintuitive, and doesn't make sense. "Natural" is unnatural.
So why doesn't the mouse pointer work that way on an Apple trackpad?
Surely if that's the case then when you move your finger to the upper left then the pointer should move to the bottom right. Because that's how it would work if it was a real object and you were pushing the pointer around with your finger. Why is scrolling a special case?
Honestly though, I wouldn't mind that much if Apple hadn't decided to call it "natural" scrolling, like you're weird if you prefer up for scroll up and down for scroll down. It's both smug and reeks of the same kinda of discriminatory attitude that made life hard for left handers.
The pointer represents your (pointer) finger. Single-finger motions affect the pointer. Scrolling motions affect a representation of the document. When I move my (real) finger up, my (real) finger moves up. When I put my (real) finger on a (real) document and move it up, the paper of the document moves up, causing new text from the bottom to appear in my field of view.
Or scrolling represents a viewpoint, such as a frame, or a finger pointing at the document. Then it's the other way round again. You can't just declare what the metaphor is, it's arbitrary.
What I did when I introduced my very non-technical partner to a mac was leave it at "natural" scrolling, show her the two-finger scroll gesture, let her try it out, then I turned off natural scrolling and asked her which she liked better. She picked the latter hands down. I knew there's a reason I'm with her :)
It's totally a matter of personal taste, both are objectively right depending on what one thinks the thing being manipulated is.
Apple, to my knowledge, never sold a mouse with a wheel. Their first mouse with scrolling was the Mighty Mouse, which used a small trackball to simulate a touch surface. It was spring mounted and would fall flush when scrolling oven a sensation similar to the Magic Mouse (this is my favortite mouse and the one I still use today). The Magic Mouse extended on this idea by replacing the ball with a multitouch trackpad.
In either scenario, “natural scroll” feels like you’re pulling on the surface which maps directly to sliding on the screen.
It makes less sense if you think about a wheel pulling the page beneath it.
All mice supported scrolling. In the before times, you use the mouse to drag the scroll thumb, which was located on the scrollbar. And you'd drag it down to see information further "down" in the document.
Of course they support scrolling with on screen controls. So has the keyboard. I said they’ve never made a mouse with “scroll wheel” which is a very specific device for physical input.
Apple is hardly the first to have used "natural" scrolling.
While I have no idea who was, I do know that John Ousterhout's text editor and terminal emulators Mx and Tx used "natural scrolling", made pre-1989. Their scroll mechanism is shift + left/right click then drag, using "natural scrolling", e.g. push mouse up to scroll down. Left click scrolls normally, right click scrolls quickly.
I go out of my way to enable "natural scrolling" on every device I use (it is possible on Windows!) because I've never been able to stand the opposite.
Reasonable-sounding arguments always come up in these debates, but in reality it all comes down to what you’re used to.
Disabling natural scrolling used to be the first thing I did on a new system. Until I once was too lazy to do it, got used to it, and now I can’t imagine ever going back.
So I was a Mac user for years and accepted and adapted to natural scrolling after it appeared as the default in 2011. When I switched back to a Windows laptop for work around 2018, I kept it on natural mode.
But then two years ago I got a desktop computer with an external mouse again and.... natural scrolling doesn't work for me on a physical wheel. With a trackpad, the metaphor is direct, that the page or document is being moved by the motion of your fingers; but with a wheel, I still want to pull it toward me to scroll down, because that feels like rolling the little wheel along the document, or turning it to advance the document beneath, like a printer finishing a page.
Maybe that's all silly, but for me it's natural scrolling on trackpads and conventional scrolling on mice with scrollwheels.
Apple's just doing what's on the agenda, plugging the analog hole. Your TV doesn't have a headphone jack any more either. TVs haven't had this in decades.
My TV does have an audio jack. It's a cheap dumb TV. And almost all of my electronic devices have a 3.5 mm jack.
You won't find it in top flagship models, but plenty of budget devices still have it.
My LG OLED TV does have a headphone jack, and I send that through a mixer (combined with my CRT gaming setup's output, my record player, and my PC's output) to my stereo.
I think "natural" feels right on a touch pad but, I have a standard/wired KBM setup for working and a wireless keyboard with "touch pad" for sitting on the couch. That "touch pad" registers itself as a "mouse". OSes let you pick different scroll directions for mouse and touch pad, not specific devices. I have to switch manually when it bugs me enough. Just can't win. There is no perfect keyboard. Someone please prove me wrong.
Important keyboard design note the author would agree with but didn't point out: Function keys are supposed to be divided into groups of four with a distinct gap between each group. This makes it much easier for the wayward touch-typist to find things.
BTW I've gone back to wired keyboard because most companies assume people who prefer wireless prefer as many unnecessary bells and whistles as possible to the point of compromising the design. There is no concept of some features being better than others, just a black/white everything/nothing.
Also refer to automobiles, tv's, all modern design...
> And so, because I don’t want to hold Fn every time I want to press an F-key for its intended purpose, I used the arcane shortcut Fn+Caps to “lock” the keyboard into “standard” mode, where multipurpose F-keys remain multipurpose F-keys unless I hold down the special magic button that transforms them into rarely-used single-purpose special function keys.
> But here’s where the problem occurs. If the batteries get changed, or if the keyboard gets turned-off for an extended period, or sometimes – seemingly – just randomly… that function-lock gets switched off.
I have this problem with my Microsoft Natural keyboard; my favourite ever Microsoft product which helps me keep my RSI at bay.
Every now and again the Fn lock key gets pressed by accident. I then look very confused for some time as to why none of the Fn keys are working before I remember the dratted Fn lock key.
The Fn lock key is next to F12 so well in the range of accidental presses.
Maybe not many people drive their setup with function keys any more, I don't know.
One of my favorite things about my custom mechanical keyboard, is being able to remap the entire key set in the firmware with VIA. I have fn+arrow keys for media, fn+space for play/pause fn+end for calculator, and a bunch of random others. It is so useful I could never get another keyboard that doesn’t have a similar functionality.
> It is so useful I could never get another keyboard that doesn’t have a similar functionality.
I do it at the software level (Linux / Xorg): complete remapping, with an "hyper" key modifier etc.
The reason I do it at the software level is that you can pry my Topre switches from my cold dead hands and the HHKB Pro JP I'm using doesn't have, by default, a programmable controller. Now I know some people mod their Topre keyboards to add a programmable controller but I never got to that point.
Doing so in hardware using .xkb files is... Something. I know way more about .xkb files than I should but, thankfully, so far I've just been able to brink my .xkb file to every new Linux version (supporting Xorg, I'm not on Wayland).
I take at some point I'll look more into how to mod my HHKB keyboards with programmable controller.
I put a Hasu controller[1] in my Leopold F660C (Topre switches) and couldn't be happier. Though it voids the warranty, installation was very easy and it allows total control of the keymap via TMK. Looks like there are similar controllers by Hasu for HHKB[2]. If you can manage to order one I highly recommend it!
Missing the zeroth option in the "doing Fn right" suggestion list: don't use Fn.
I have a keyboard here with a handful of extra keys at the top which do all these functions that the author is showing as Fn functions on their keyboard. Isn't that simply the right option?
Also on laptops: yes, I want to change the brightness regularly, but also I use the function keys in applications that support them. There's already like 100 keys on there! How much do the extra ones cost? I don't buy the cheapest laptops anyway, I'll buy what I think will work the best. No manufacturer offers this option though. Even Framework has only half-height escape and function keys shared with Fn triggers :(
I tend to go for keyboards that don't need all of that messing about with the Fn key, too.
By the way: It's a lot more than 100 keys. People tend to accept that because they have what is called a '105-key' keyboard that it actually has 105 keys. One of my '105-key' keyboards has 124 physical keys. For approaching a decade now, I've wanted a 127-key keyboard from Brazil. Formally, that's a '107-key' keyboard.
Thinkpad laptops thankfully have a BIOS option to revert the behaviour to normal, where F1-F12 perform their nominal functions. I'd probably pay an extra €50 for a laptop that didn't come with a stupid Fn button at all. Might want to throw some more money at a few more keyboard modifications: my bottom row is Fn CTRL Win Alt Space AltGr PrtSc Ctrl; that PrtSc button clearly has no business being there. Arrows & PgUp/PgDown are too small. Backspace is too short. Etc.
Thinkpad laptops thankfully have the option to switch Fn and Ctrl Key in the bios, because that Fn in the bottem left is reserved by my muscle memory to ctrl and I won't change that.
They switched the Ctrl/Fn position a year or two ago so people like you would stop complaining. Of course this means that instead you have anybody who's used a thinkpad in the last 30 years complaining about the switch. It's a little better now because they made the keys the same size, so after you switch them in the BIOS you can physically switch the keycaps around.
> thinkpads have always had the Fn key on the bottom left
It’s good that after 30 years they’ve realised their error and have finally fixed it. On Windows and Linux, Ctrl is the most-used-modifier-key and bottom-left is the most-easy-to-find-key-position. Putting the most used key in the easiest-to-find position shouldn’t be a hard decision to make.
Yes, normally a BIOS setting on laptops I think. Before changing it I was hitting sleep constantly since they'd put it on F1, jammed up next to escape.
You need Fn anyway because even 16" now come without a navigation block and even if you have it (asus tm420 though they ditched that too) you have no way to make PrtScr, Break, ScrollLock.
The real atrocity is placing it on the left side when 90% of the most used combos are on the right eg Fn+arrows for paging and home/end.
It could be way better if Fn was on the place of ContextMenu - Thinkpad already used it for the stupid PrtScr and now even more stupid Copilot key.
I wouldn't buy a laptop that requires the use of Fn for any key I commonly use. I don't particularly care about PrtScr, Break or ScrollLock. Can't remember the last time I used either of those. But Home/End/PgUp/PgDown are requirements.
In registry "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout"
Create Binary value named "Scancode Map"
Put in there: 00 00 00 00 00 00 00 00 02 00 00 00 3E 00 5F E0 00 00 00 00
That changes scancode E05F (Sleep key) into scancode 3E (F4 key).
Then logout or reboot for the change to apply. I actually looked up what would be necessary to do this change without a reboot, and it turns out that only WinLogon.exe is allowed to make the Scancode Map change.
A tool to help manage these kinds of rebindings is the Keyboard Manager in PowerToys.
As I recall it uses multiple approaches, so it isn't "just" a straight manager of scancode maps, but that also helps it avoid logout/reboot for the initial change to take place.
You can configure whether you prefer the standard behavior or to use the actions assigned to the F keys by default, I think in the BIOS, and then you can use fn lock to switch at runtime. That's nice in itself but that's not all.
In the latter mode, holding a modifier key like Alt makes the F key act standard, so Alt+F4 works in any mode as expected.
Thanks for the idea! Now I'm going to mash the Fn key whenever I feel the urge to strongly emphasize something but can't actually type it out because, well, it would be Fn NSFW.
Traditional keyboards are dead to me, get something programmable with zmk or qmk and a bunch of extra thumb buttons so they can do something more than just the spacebar. I have ctrl and alt in the outer column inline with letters so they're super easy to press without reaching, and shift, return, backspace on thumbs as well as layer switch for function keys, symbols, numpad, and arrows all accessible from the home position. Bonus points for split too so your wrists aren't at a weird angle.
What I hate about keyboards is that you have to select your key layout when you setup your OS. Why isn't that information simply accessible over the USB protocol? Yes, I know why, because they didn't think of it.
I know laptops have a bit of a different standard, but for real keyboards, IBM perfected keyboard design in 1985 and all deviations from that are a mistake.
In general there aren't many great couch keyboards. FN keys aside, some keyboards have dedicated power, sleep, or other keys that are just annoying and dangerous for a couch keyboard.
Instead of using a single menu bar icon “volume control,” I have transferred the lessons of the keyboard to the GUI and placed two buttons in my menu bar: volume down and volume up. I have been using them all the time for about half a year now.
The benefits of this approach, to my knowledge and estimation, include: no waiting for a slider to appear; no nested actions; no need to read the current value; each click does not depend on the current state; Fitts’ Law muscle memory boost (the buttons are effectively infinite-height targets); discoverability compared to scrollwheelable icons.
Only tangentially related, but I've found myself down a rabbit hole with some ancient BigKeys keyboards (designed/manufactured by Greystone Digital), and a small handful of them have a physical switch on their underside that switches them between QWERTY and ASDF layout; it's genuinely perplexing because the code theyre running on the boards is not at all standard PS/2 or USB (save a few later revisions/models). There is a DFK48 V1.2 (mfg 1994) that I have been fighting with for some time now, and it angers me to no end.
The lengths that peripheral manufacturers will go to to create "functionality" is wild, having looked at hardware like this for the first time. Granted, I'm working with what is widely considered an accessibility HID, the fact that "stickey keys" (as theyre known in Windows) is a default function of this keyboard, which breaks all common passive PS/2 -> USB adapters due to encoding differences, significantly fucks up my workflow in using it with modern hardware by using unique encodings AFAICT. It's a wonderful puzzle, but an annoyance for someone trying to accomplish anything.
I'm confident this shit could be oneshot with LLMs, but that's not the point of the work, in case anyone was considering chiming in about them.
Part of me needs to realize that this was made 30+ years ago, before we knew what we now know. But another part of me feels intense animosity for such early, unabashed, and shameless abandon in regards to HID standards/protocols. Using what is effectively Stickey Keys by default and breaking PS/2 -> USB adaptability because of that is annoying as hell, even if the thing is $50 on ebay.
> It was nice that they gave dedicated keys to volume control/toggling muting.
I know it's not an option for certain keyboards (and laptop keyboards) but I appreciated not having to use Fn keys and use physical volume dials like Das Keyboard 4. https://www.daskeyboard.com/daskeyboard-4-professional
The Das keyboard commits the sin of having a sleep button (why is it even on the keyboard??) right next to the media controls. I've accidentally hit that multiple times when trying to change my music.
Something that I'm missing from both the article and the comments - I would remap the sleep button to F4 at OS level. Repeat analogous steps for other keys.
Granted, you'll lose these functions, and likely switching to another keyboard will drive you mad, but I guess this is a good stopgap software based solution.
I have a mechanical keyboard also and like tactile feedback. But I think what we really want is just a touch screen with some kind of next level programmable haptics. Then we can have whatever keys we want
Products like Tactus or Tanvas were going in the right direction.
I would really love to see the state of the fn key on the screen, preferably in the task bar. Maybe that would reduce the times I accidently change the volume and brightness.
Related to this is one and only thing I would say I hate about my Framework Laptop 12: its Airplane Mode key.
I keep Fn-lock enabled at all times and use the Fn/LCtrl-swap option in the UEFI just like the one on ThinkPads, but if I ever accidentally hit non-Fn-locked F10 the key code is interpreted by the EC instead of by the OS, so there's nothing I can do in the OS to disable it.
Even worse is that it's adjacent to PrintScrn, so it's the “oh fuck I wanted to take a screenshot and just dropped myself from the match” panic panic panic key.
We had keyboards like this in several labs in the uni! Except they were even worse, and these three keys were shaped like regular keys. When I accidentally powered down my PC the third time in a row, losing all progress on my assignment, I popped the key out of the keyboard.
At least your keyboard has a Fn lock shortcut. Mine doesn't, so I'm stuck either taping down the Fn key or living in constant fear of accidentally sleeping my PC. Real first world problems but still
You can remap the keys so that "Special: Power" key button does nothing.. Or even to the original function (on my keyboard it would mean Volume Down would be F12 instead).
The article doesn't even touch on the fact that on these types of keyboards, the F-keys often have bastardized keycaps rather than the regular profile. For example on the Microsoft keyboard example, they're much smaller and probably have crappier travel.
The fundamental problems here are the product design pushes to make everything smaller and also to add gimmicky features that seem like they'd be useful but with the constraints just end up taking something else away - note that the examples of good keyboards are made from standard full size keycaps. The rise of bespoke keyboard designers that using off the shelf switches/keycaps is a constraint that pushes away the other two trends.
I'd think you can get mechanical keyboards with reasonable wireless functionality these days. If the range isn't long enough, run an active USB extension cord around the room and put the receiver under your couch. Laptops are of course the age-old space where keyboards are scrutinized to death.
Another VIA/QMK/VIAL nerd, mostly with 40%'s (split or otherwise, Chiri CE and Mercutio being my favorites), I think the main things modern keyboards should flat out adopt:
1. Offer a layout that's swapped CAPS with Ctrl.
2. Split spacebar
3. Remapping on the board
The caps/ctrl thing is just so obvious once you daily drive it for a bit. I personally banish caps to another layer and think even on normal keyboards it'd be better on a function layer, but given inertia and people swearing up and down they NEED capslock in 2026, this seems like an easy compromise.
The split space just flat out gives you an extra button.
Most people hit space with one thumb or the other (and in shockingly consistent spots, I find i use the middle space of 3 key split, which is the 1u). That means the entire other half of the button is wasted real-estate and the thumb on your other hand literally or mostly does nothing.
The final one with on board remapping is where you can customize that extra space to be the function you want. I know some people who swear by tap hold, double tap, toggle, whatever. Even thought those are being yelled about in the comments here, whatever your flavor you can do, and you've got a button for it right there.
If you still want your standard "i need a button for everything layout" cool, fine, this changes nothing.
If one day you decide you want to at least try something new (and if you can already touch type i HIGHLY recommend exploring the space with something cheap), cool. Here's a leaping off point.
Personally, the epiphany for me was realizing during some testing that yes i NEED a numpad/function keys all the time. But instead of that being an argument for a fullsize, it was actually an argument for getting better access to another layer so my numbers/functions are under my fingers at all times (4/5/6 is J/K/L). About an hour after testing that I never wanted to go back, and it feels so much slower and arduous when i'm not on one of my boards (god especially things like vim which love their escape key)
"The default state is the traditional key function"
What is the traditional F-key function? Today, on my laptop, I probably use the media controls most, then the brightness controls, then fn+f5 to refresh a page.
Is it worth defaulting to some tradition from a time when computers didn't play media or have dimmable displays? How many apps recognize the full set of f keys anyway?
I hate the missing home/end/pgup/pgdn keys more (which is the case on basically all laptops, and you obviously can't just buy a different keyboard for a laptop).
I have a bin full of pristine keyboards that never see the light of day because of Fn, arrows, Home, and/or End placement.
I used to work on 3 different laptops, so I kind of got used to thinking about every stroke using those keys, but I never want to go back there, it's so mentally taxing.
I find the "wrong" FN keyboards annoying like OP, but the Home/End to Pgup/Dn grouping of keys is what really makes or breaks a great keyboard layout for me.
I hate laptops now shipping with the Office 365 logo. Apparently the Windows logo wasn't enough. How many more Microsoft symbols will keep polluting keyboards?
I once found that my old Microsoft Ergonomic Keyboard had an option to disable the Caps Lock Key in the settings. I immediately used that. Then after a reboot Caps Lock was ON and the Key was disabled - Shift now also didn't disable Caps Lock...
That taught me that sometimes you need the Caps lock Key badly...
Software can control the state of the key - and you need a way to get rid of that. Back in the day - to enforce only Upper-Case Text in some Text-Field - some software even messed with global Casp Lock State when entering the Text-Field...
The caps lock key is good for binding to F13 and using for push-to-talk. I know some people bind it to escape for Vim usage but I don't like that because I'm likely to also use Vim on machines without that key remapped and that messes with muscle memory.
I for one do. Old habit when typing in longish C constants (ECONNRESET) or shell environment variables. I'm used to typing capitals by holding the Shift with the pinky of the other hand than the one entering the letter, so with long strings of capitals sometimes I'd have to switch for every other letter, which gets old fast. With Caps Lock, I press it, type in the letters, press it again.
Completion mostly works these days if you have it, but you don't always.
Yes, of course. Because I programmed my Keychron for it to be a regular LShift. Works very good for my hands. But when I'm on the regular keyboard I have a real trouble with typing or entering passwords, but it's manageable.
> Cant remember using a function key
I use it for the volume control when I'm in a fullscreen app or with both hands on the keyboard - but only because my Fn is on the right and volume controls on F10-F12.
I definitely hate the G-keys on a Logitech G915 more though.
It's a perfectly good full size mechanical keyboard with low travel...and a row of keys on the left hand side which obliterates the typing ergonomics of it.
Meanwhile they stopped making the K740 which is basically the perfect keyboard (which I am now typing on after buying a replacement key - the Cherry Stream is good but man....this still just feels better overall - the key layout is just subtly right).
Meanwhile whoever at Lenovo thought to the put the function modifier key on the left outermost side, rather then Ctrl, has commited a serious crime against ergonomics.
The rationale behind the Fn-Ctrl layout used on ThinkPads until very recently:
> The Fn key was originally placed by the ThinkPad designers in the lower left hand corner to make the key easier to locate when using the keystroke combinations. There was a rationale. This is especially handy for turning on the ThinkLight in the dark. Aim for the two extreme corners.
IMO, putting Ctrl in the bottom left still isn't great for ergonomics: Ctrl should be where Caps Lock is, in line with the home row. This was the case on the original PC keyboard (IBM Model F) before it was moved to the bottom left in the Model M.
The F1-F12 keys have always felt like one of those things where… it’s like, people who enjoy oldschool interfaces seem very attached to. And I love the terminal, so I feel like I ought to have strong opinions in their favor.
But the only time I need to use them is… what is it, ctrl-alt-F3 to switch to a console if my window manager has fallen apart. This is a very rare event, so I can’t find any strong feeling here.
What do people use these keys for? The volume/brightness keys seem much more useful. Maybe I’ll map the corresponding F-keys to brightness as well, so I can just never care about Fn.
In addition to sibling replies, function keys are very useful in debuggers (to step in/over, set breakpoints, ...). And lots of other things that don't immediately come to mind.
I'm old enough to remember WordPerfect on DOS, with a paper template to put over the function keys on your keyboard as a little cheat sheet for all their functions.
Yeah, when I’ve had to break down and reach for a debugger, it was gdb. I’m sure there are shortcuts but since it was a rare event, I just typed “step” and “continue” like a caveman, haha.
Alt-F4 is the canonical shortcut for closing a window
F2 is the canonical key for renaming
F5 is refresh
F11 is fullscreen
F1 is for help but admittedly I don't use that a lot
I can't think of a very frequent, standard use for the other keys. So I can't really disagree with having so many F keys being kinda unnecessary. But I'm happy to have them and they never bothered me.
Games often bind skills or other game mechanics to the function keys.
Anecdotally, I switched from `ctrl+shift+i` to F12 for opening the web inspector due to many websites capturing that keybinding for their own purpose (claude and code editors) if I didn't have a function row I'd have to find an even more arcane hotkey.
They're just a nice set of purpose-undefined keys that you or the application can bind to useful functions.
MMORPGs and games that have many different mechanics might be more prone to it, versus first-person controlled games? In my experience its pretty common.
The shortcut for toggling fullscreen in Firefox is F11.
Many default shortcuts in JetBrains IDEs also use function keys. The keymap can be changed, of course, so you can design your own keymap to avoid F keys, but that's still a bit of a chore.
Same on a Mac: I've never used a function key in the last … 15 years or so? Where the author uses Alt-F4, I use ⌘W. I didn't even hate the Touch Bar (but not exactly used it either.)
VSCode binds a lot of basic commands to function keys, so I'm always doing Fn-F12. That seems like a weird choice, and if it really bothered me, I could remap it, but so far I haven't.
Your guess is right. My patience for spreadsheets runs out (and I switch to Python or something) before I hit a problem complex enough that effectiveness matters.
No shade! But it's still amazingly effective to know to use F2, F4, F11, F12, etc. Works in LibreOffice as well. F2 to switch to cell edit mode is very useful.
I'm pretty sure I'm the first that upvoted it, when it was #2 on the "new" page, like 3 minutes ago. I was very surprised to see it here when I went back to the main page. I'm sure the topic hits a lot of nerves :)