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
The best part of these kinds of keyboards is they provide each thumb two keys each.
That allows for the keyboards to be much more expressive, as well as not needing the pinky for keys like backspace/enter/esc.
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).
My issue was tendon overuse in my fingers, so low force switches & column splay worked for me
(splay is where the columns are not aligned, mapping to the fan out of the human hand, see TOTEM https://github.com/GEIGEIGEIST/TOTEM)
(I have a dactly I kind of finished wiring, but didn't get around to programming it yet)
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.
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).
The downside from the 'state' from Caps Lock is you have to keep track of whether it's active or not.
Whereas with layers, typically a layer will only be active if you're holding down some kind of "activate layer" key.
https://en.wikipedia.org/wiki/Mode_(user_interface)#Quasimod...
Keyboard layers work more like the Shift key.
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 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 really like the composable shorthand of vim's command set though, even if the only one I have in muscle memory is <esc>:wq
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.
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.
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.
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.
It's only natural on the actual display itself.
Anothe affront to nature by Apple, along with killing the headphone jack.
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.
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.
For whatever reason this persists to touchpads even though they would seem closer to a touchscreen.
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.
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.
It's totally a matter of personal taste, both are objectively right depending on what one thinks the thing being manipulated is.
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.
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.
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.
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.
No it isn't.
Both examples match perfectly physically:
- Touchpad is like dragging the piece of paper directly.
- Scroll wheel is like having the paper on the other side of the wheel.
> 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.
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...
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.
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.
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 :(
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.
Lenovo is the only weird excemption I experienced.
So I believe people like me are the vast majority and you should maybe rather blame them, for introducing this weirdness in the first place.
I would presume most people buying a thinkpad don’t want to buy “the vast majority” of laptops.
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.
If that key would not have been switchable I would have returned it, though ..
But seriously. Who would want that excemption, unless they have already been trained in the non standard way?
Ctrl key I have to use very often. Bottom left is easy to find, even blind.
But the fn Key? Only needed at very rare occasions, so why waste the special ergonomic place for it?
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.
Glad for you. But the moment you need to hit Ctrl+Break...
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.
HandleSuspendKey=ignore
in /etc/systemd/logind.conf
(No idea how if you're on Windows/Mac/Devuan but it's probably possible there as well)
Or the "Model F" keyboard with the two vertical rows of 5 keys on the left edge of the keyboard?
For me, full-size function keys are the minimum. Granted that real-estate is at a premium on laptops but this isn't an impossible ask IMO.
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.
One of the many cases where physical buttons/switches are superior to software-only options.
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.
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
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.
Why are en_US ISO 105-key layout keyboards so hard to find?
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.
Products like Tactus or Tanvas were going in the right direction.
When holding Alt, the F4 key always acts as that rather than its special action (backlight brightness down).
enjoy
Back in 2000s, there were some popular cheap external keyboards with three extra buttons between the delete/end/pgdown row, and the arrows.
The first of those buttons was "power off" sitting just below "Delete".
Example: https://www.flickr.com/photos/hendry/330827330
It was pure madness because it was guaranteed to push this button by accident on a daily basis.
I can't imagine someone using computers for more than 5 minutes could have designed this.
One Windows software to do that: https://github.com/randyrants/sharpkeys / https://apps.microsoft.com/detail/xpffcg7m673d4f?hl=en-US
On Linux, heck it's Linux, for sure it's doable.
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.
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)
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 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.
Nobody suffer in this worldly existence as much as hackers do.
Oh. I thought by "I Hate (Most) Keyboard 'Fn' Keys" he meant the opposite - many people don't ever use F1-F12 for their intended purpose.
More curious.. are there people that use the caps lock key? Its great real-estate…
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...
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.
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 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.
https://web.archive.org/web/20111115202457/http://www.lenovo...
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.
One of the only mass-produced keyboards that has Ctrl in this position today is the Apple Japanese keyboard: https://www.apple.com/shop/product/mxcl3j/a/magic-keyboard-u...
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.
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.
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.
F5 is for save game
F9 is load :)
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.
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.
Mac is not a Microsoft platform though.
> 11 points by speckx 13 minutes ago | flag | hide | 1 comment
this is currently #1 on HN gaining 11 points in 13 mins. never seen this before.