Markov Keyboard: keyboard layout that changes by Markov frequency (2019)
github.com
github.com
Look at PPM. Your prediction model would work better with personalised data. PPM is efficient (nb. I see you are using python - look at this https://github.com/willwade/pylm - although be warned - i think my code is not quite right..)
Layout shifting for finger movement - well its great if you didnt have to look. The time for visual processing the letters adds a significant lag (its why typical word prediction isnt used that much and when it is - not over 3 predictions (I have papers on this if you are interested). But its not all bad..
Switch users who need next letter prediction this could dramatically support their rate of input. (view https://youtu.be/Bhj5vs9P5cw?si=VnytfH_vdEUWuLok&t=73 - now note how the keyboard blocks the scan up. But imagine if it just scanned each letter first by next most likely - or heck - like this repo - actually changes button position and kept the scan pattern the same. It would be a ton more efficient)
(and a bit of a rabbit hole.. What if keys had word predictions on them? This is basically the end result of ACE-LP: https://discovery.dundee.ac.uk/en/publications/ace-lp-augmen...)
We should extend this concept of constant automatic optimization to all aspects of everyday life- for example your workplace location should physically relocate each day to an optimal location based on where each person coming in that day lives. An algorithm should tell you where to put away the dishes in your kitchen based on a constantly changing optimization algorithm, so that your dinner plates are in a different cabinet each day. Language itself should be radically redesigned daily to keep it optimal, with changelogs pushed out to be learned and memorized each morning before communicating with anyone.
Air gapping is a legitimate security technique. However, in this case the air gap would be between the ears of whoever designed it.
So look for the clean keys and try combinations from there. In a 4 digit (0-9) keypad, knowing the clean numbers drops the possible codes from 9999 to 24 (if my early morning math holds up).
Also helps the issue of someone looking over the shoulder of a valid person. Chances are they are just seeing the position and not the character pressed. So the keyboard changes and you actually need to know the character not just the old position.
It actually drops from 10^4=10000 to 4^4=256 combinations
1. You have lots of spy-data samples that reveal which physical key is pressed (perhaps they sound different) and the precise timing of those strikes, but you don't know what scrambled numbers were actually being shown. (And it's always the same code.)
2. The trick is that users take longer to press a number when it's displayed far away from its "normal" position, because they had to seek longer to find it.
3. This means you can infer the true numbers based on how quickly or slowly presses happen versus which physical key is struck.
For a simple example, assume a two-digit code where there are nine keys. If the fastest first press is always the top left corner, and the fastest second press is always the middle, we can guess the code is either 15 or a 75, depending on if the user is accustomed to phones or keyboard numpads.
One mitigation might be to get the user to enter digits at a consistent pace, by forcing a delay between showing the random layout versus accepting a button press. There would need to be some penalty for early presses, to keep lazy users from just tapping the desired button repeatedly until it became active.
Or have a keyboard with oled or e-ink keys, like the Optimus Maximus [0] promised to deliver. It's kinda weird that nobody else seems to have picked up on this concept since then. Probably just impractical or too expensive.
I read that its patents expired in 2016; around 2015 there was a concept for an e-ink button keyboard, but that site is now a plain gambling ad. There's also https://www.nemeio.com/ that still works, but its buttons look like sunken screens under plastic domes.
It also takes ~5s to render the page on my PC, no idea WTF it's doing during that time, probably mining crypto.
Hmm actually, it doesn't rearrange on every digit, it's a static but random layout every time you go to that page.
I can't help but feel like it's less secure than the default layout - I'm quite good at hiding my PIN and typing quickly, but when the positions of the numbers are randomised, I feel like I practically end up saying my PIN out loud as I try and remember it.
What I don’t understand is why not go all the way. Why not also change the concept of what’s needed to enter a character? It would make sense that keys aren’t the ideal affordance to express a key every time.
Use a volume slider for a letter, use radio buttons, on/off toggles. What if I could draw the letter on my trackpad?
I hope this opens the door for a thriving ecosystem of expansions.
I have been proposing to adapt Shorthand* to computer tactile input many times. Touchpads and touchscreens can use it. It seems faster and easier for both the computer and the person than having to recognize slow handwriting.
Secretaries used this for many decades, because it allowed them to record speech in real-time.
There is always a dismissive comment about how this is not a good idea for one reason or another, but I still think it would be a great feature to have.
The Apple Newton did that!
(Google's gboard offers a handwriting keyboard, but it's on the touch screen and doesn't count. Also, it's not graffiti, so a bit more error prone. It does recognize joined-up handwriting though.)
There's also some keyboards on f-droid for braille text input and morse code input.
(In iMessage, as one easy example app, there's an entry box to send a new message. If you tap into that and get a keyboard click the keyboard icon in the bottom corner and there's a "moving finger" icon you can tap to get a trackpad to draw letters on. Older and smaller Watches won't even have the keyboard and will just have the trackpad.)
Why are key switches only press?
What about analog partial key press? There are Hall effect keyboard switches that do that, I want to try some.
What about finger twist for input? I don't think anything exists? Would that be a volume knob on a key switch?
That sounds fun, now I really want to try out a keyboard where half press is lowercase and full press is UPPERCASE! No more pinky strain from shift presses.
What would be a cool use case for thumb controls here? Is this something you could do with those gamer keypads?
I switched to a Kinesis Advantage keyboard and now I have control, alt, hyper, super, backspace, and shift under my left thumb. My right thumb has control, alt, hyper, super, enter, and space.
I don't know anything about gamer keypads, is there one you suggest I investigate?
You absolutely do not and it even hampers your ability to quickly learn to type efficiently if you rely on key legends or layout references.
Also, it is not difficult to use other peoples computers. You can switch keyboards pretty easy these days on windows and mac. In fact, my very first computer (Apple IIc) had a mechanical switch to flip between qwerty and dvorak.
As a Colemak touch typer I envy that some days. Colemak is available easily everywhere but Windows. macOS, iOS, Android, and Linux all have it similarly out of the box with Dvorak, but Windows it still requires an install and that install still requires Admin approval because keyboard layouts are needed by kernel-level drivers. But I knew that when I switched, took a few years to realize there's no shame in hunt-and-pecking on QWERTY when using someone else's machine.
(I was also privileged when I switched to know that I didn't need to use shared machines. I was far enough along in grad school where I was allowed/encouraged to do everything on a personal laptop, and the few remaining "lab classes" with shared machines all allowed Remote Desktop. That took advantage of things like if you remote desktop back to one of your own machines, your remote machine still responds to your chosen layout once you've logged in. Just have to hunt and peck long enough to type your machine's address, username, and password.)
1. Using a shared machine for something important. I've had to hand write and then hunt-and-peck essays on shared machines when I was still in college.
2. Typing something on a friend's computer when I'm inebriated. Not a huge problem nowadays with phones and being older, but in college trying to change the playlist when I was inebriated on a friend's QWERTY layout was... tough to put it mildly.
3. Piloting the Media PC with my partner. She types QWERTY and I don't. I keep Dvorak around as a second layout and switch if I need to do a lot of typing on the Media PC.
There's lots of both pros and cons of using Dvorak in my experience but at this point I'm so locked in that I'm not going to switch. But in my adult life, I never have to use a shared machine either so I'm always a few feet away from a Dvorak keyboard.
Also, Apple Music's SharePlay is such an interesting modern approach too, where multiple people can control the same playlist from multiple devices.
For hunt and peck typists.
i probably am not making much sense. Look at where I'm coming from in the world of Assistive Tech - https://docs.acecentre.org.uk/products/echo (go to around 5 min mark in the vide)
I'd be quite interested in trying that. Maybe as a learning aid. But if you get your typing speed up, I can see it being visually very noisy.
https://scanningmvp.netlify.app/ - it’s more for my needs of an AT keyboard for scanning than your backlit one but you get the idea.
Not only that, people just change them to suit their needs! They use things like Hands Down [0] as a guide, and make up their own layout.
Wild.
I will promptly forget it exists and keep typing on the random layout I learned to touch type on 20 years ago, all the while suffering from terrible finger acrobatics and wishing for a better layout every single day.
[0]: https://www.jonashietala.se/series/t-34/
[1]: https://www.jonashietala.se/blog/2024/11/26/the_current_cybe...
(I do believe that the best for you is a custom layout.)
So all those "0.00001%" stats aren't as precise as they seem, and you still see the frequently used backspace/enter in the awful pinky position despite the official philosophy of "Hands Down is easy on the pinkies"
Have you seen any design that is based on actual human input?
[1] https://www.neo-layout.org/Layouts/
[2] https://maximilian-schillinger.de/keyboard-layouts-neo-adnw-...
Changed to US qwerty 30 years ago, never looking back.
site is a bit awkward to browse though.
Of course you still have to type text and at the time you couldn't easily switch between different layouts, so after a time I got bored of it and gave up.
I bought a keyboard last year that has a small embedded CPU that I can reprogram with QMK [1]. I designed an objective/score function for key placement, based on frequency of letters (and groups of 2 and 3 letters) and finger movement (in the case of strings of letters). Each finger was weighted by how much I didn't want to move it haha. I used this function to optimize my "perfect" keyboard and reprogramed the keyboard to match it. I'm still sometimes trying to learn it to this day, I don't use it often enough. My biggest problem with it is that it is an ortholinear keyboard... Not confortable enough. Anyways.
I had plans in the future to make a small keylogger on my PC to follow my ACTUAL usage of keys, and run the optimization again automatically. Then the software could message me what would be changed and upload the layout on the keyboard every X month (not too often, y'know).
I'm waiting to get another keyboard for this, probably a split keyboard.
3d resin printers might be a good option, my background leans to injection molding so I didn't think of it until now. Here you would print two pieces and then snap them together.
Both of the above have the letter molded through the key and so whatever chemicals are in my fingers won't destroy the lettering after a year of use. Though plastic selection is also important otherwise my fingernails will destroy the key anyway in a short time. Not everyone has fingers/skin chemistry like mine and so some won't understand why I care while others are all in with me.
(though really what I want is dabbrev/pabbrev to sort predictions by markov order at least 2 or even a tiny recurrent network)
https://www.kickstarter.com/projects/fluxkeyboard/flux-keybo...
https://www.tomshardware.com/news/Optimus-Keyboard-LCD-Scree...
Before that they had some designs with little displays in each key, instead of a big display behind all of them
https://old.reddit.com/r/Jokes/comments/2o4rkq/english_to_be...
> (…) In the first year, "s" will replace the soft "c". Sertainly, this will make the sivil servants jump with joy. The hard "c" will be dropped in favour of "k". This should klear up konfusion, and keyboards kan have one less letter. (…)