Author: @IndigoGollum@lemmy.world
Some background. Typing on game consoles sucks most of the time. Some games are well enough made that one player can type without hijacking everyone's controls in local multiplayer, but for the most part you still type by selecting letters from a table, either in alphabetical order or QWERTY (at least for English). This was how we typed on consoles way back in the 1980s. This is still how most games make us type 40 years later.
The only game i've seen that does this better is Scribblenauts Showdown, the PlayStation version. You type in it by selecting a group of letters with one stick (or dpad/face buttons) and then select a letter from that group with the other stick. I think, it's been a couple years since i last played. Anyway, this is a reasonably comfortable way to type. It's not as good as a real keyboard but it's a lot better than the standard method.
I want to know if this design can be applied to other places. For example, TV remotes where typing technology is (in my experience) still about where it was on the NES, or phones where people might prefer a physical keyboard with larger keys to a tiny touchscreen board. Also devices where being able to type to search would be nice, but there's not room for a full keyboard, like non-touchscreen music players and ereaders.
So i figured, i have a PlayStation controller and a computer with Kanata set up. It should be simple enough to make a layout using my controller's thumbsticks and a lot of layers. So over the course of a couple hours i did just that.
This is the layout i designed, based on English letter and bigram frequency. Because it's a 2-finger layout (technically 4, with the shoulder buttons) SFBs are pretty unavoidable. Instead i focused on rolls. If i'm holding L← and press R← to type "t", i should be able to then slide R up and right over "h" & "e" to type "the" in a single fluid motion. It should also be possible to type "t" this same way then move L (the stick defining the current layer/letter group for R) from up to right, so the key under the right stick's position changes from "t" to "o" and i can type "to" without moving R between the letters.
I don't know if that's how it works, because AntiMicroX, the program i use to convert controller inputs to keyboard inputs to make other programs interpret them at all, overrides Kanata, the program i use to make custom keyboard layouts. It might be possible to skip AntiMicroX and make Kanata take controller inputs, but i don't know how. I'll be back if that changes.
The layout itself probably isn't great because it is only a first try. My other ideas (which i decided not to code because i don't have a way to try them) were 1. simple alphabetical, ignoring digraphs but having all letters and some punctuation on the base layer, and also leaving room for numbers; and 2. one shot layers where you select one of 8 key groups that are set up as one shot layers, then each layer has 8 keys because both sticks are free to select letters. I think that last one is closest to how Scribblenauts does it.
The file for this layout, for anyone curious about it, is on my website. https://indigogolem.neocities.org/inventions/keyboard
I've considered problems similar to this.
IIRC, what I landed on was (1) if I could only use a d-pad, I'd try pushing the characters deeper into a maze-like tree structure (three d-pad presses [even reserving the direction you came from] easily gives you 36 possibilities: a-z + 0-9... more if you have push best-guess into the closer intersections), and (2) if I had an analog device (like the joystick in your example) I'd go with something like dasher... but I'm sure you could get dasher to work with a d-pad too, but it would be sub-optimal, methinks.