** Cataclysm DDA, Vim & WASD - Implications For Generalist Translations Of Qwerty Layouts To The Steam Deck
The “fun” challenge we face with trying to adapt as much of the QWERTY keyboard as we can to the onboard steam deck controls (without the use of the touchscreen keyboard) is that while it is certainly possible given the array of input options and buttons on the deck, any given mapping that sufficiently stuffs everything you need for a particular game or software onto the deck is going to take a lonnng time to memorize and likely will look like utterly indecipherable chaos to somebody else. Especially if use lots of mode shifts and clever custom commands that all have to be individually committed to memory.
Further, as an enterprising Steam Deck owner who wants to experiment with trying different types of games on the deck, where does one even start? Any particular complex strategy game or software is going to have its own set of keyboard bindings, any particular game then that you choose to tackle first isn’t reallllly going to help you make keybindings for the next complicated game you try… and if anything making lots of keybindings for complex games in a short time is a recipe for never actually being able to absorb and commit any particular game’s control scheme to memory unless an immense amount of time is invested fighting your way over that difficulty curve.
If we take a step back, the problem of computer text input when a physical keyboard is impractical or impossible has largely been sidelined with the proliferation of autocorrect on touchscreen devices (essentially freezing in place any real capacity for innovation in the basic design considerations of the touchscreen keyboard).
In general, given the focus on monetizing individual software products and franchises, there has been little evolution of pseduo-standardized layouts for text input and keyboard shortcuts in general…
…exceptttt for two places. Vim and Video Games!
It is important to understand why I chose to build a mapping of the qwerty keyboard onto the onboard steam deck controls starting from Vim and WASD. The biggest problem we face in this space, again, is one of memory and conceptualization of 26+ individual keys with individual mappings to a control surface that has suggests no obvious or intuitive methodology. The only intuitive way to map the qwerty keyboard to the steam deck is through the context of a specific game’s controls and what they usually map to on a keyboard. In controller shooters, the x facebutton on a controller is almost always mapped to reload, so mapping the x facebutton to the r keyboard key is intuitive.
This method creates the massive problem though that you are always dependent on the game you are mapping controls to already having established informal standards and expectations for how controls should be mapped. It also leaves one with little shared knowledge to hold on to to keep oneself oriented when moving between different steam deck mappings for different types of games or software.
If you excuse my egregious abuse of metaphor here, in a way looking at the translation of the qwerty keyboard to the steamdeck onboard controls is like looking up at the stars arranged chaotically in the sky with no clear reference points to establish orientation or relations and trying to commit their arrangement to memory. How do we remember the arrangement of the stars in the sky then? Constellations! We look up at an arbitrary arrangement of stars, say “well that kind of vaguely looks like a dipping scoop, let’s call that the big dipper”, come up with a story to help cement the memory in our collective knowledge and then weave it into our collective shared knowledge.
*** Vim From this perspective, the Vim hjkl keys (along with the diagonals y,u,n and b because this is CDDA and we need those diagonals) provide us with a clear idea we can ground our Steam Deck mapping in, and unlike a Vimmer with a qwerty keyboard, we can unfold the keys into the navigational ring (up down left right) Vimmer’s imagine in their head to understand Vim qwerty controls.
(insert photo of Vim Ring)
Not only does this provide an easy way to remember our first choice in dividing the qwerty keyboard into Steam Deck mappings, because this first mapping is based on a conceptual perspective projected onto the qwerty keyboard made literal in the form of a navigational ring, it means that the control scheme we are building has plug and play compatibility with a dizzying array of software and games that all are part of Vim’s ~40 year? tradition and evolution of keyboard controls. Once you memorize the Vim Ring on your Steam Deck you will be able to use it for the rest of your life on joysticks and touchpads, and you can rest assured that other people will be developing vim hjkl based controls for software and games for the rest of your life. *** WASD WASD is probably one of the most well known “conceptual projections” onto the qwerty keyboard.
(insert photo of WASD ring)
It might seem a bittt confusing at first that z and x are the diagonals, but if you remember that this navigational ring is based on WASD, than s has to be down, and thus it becomes intuitive that z and x would be the downward diagonals. The letters q and e are almost without fail where left-lean, right-lean controls are for tactical shooters (for leaning out of cover to shoot) but even to someone unfamiliar with these control schemes, q and e are pretty intuitive.
*** Center Column Notice here, that between the Vim and WASD rings is 2x6 column of unbound letters on the keyboard, those being c v, f g, and r t. The natural place for these letters which are frequently used by games and software is the four Steam Deck back buttons L5, R5, L4, R4 and the bumpers R1 and L1. True, vim prioritizes the horizontal home row, but given the accessibility of the other homerow keys in the VIM and WASD rings I don’t think this is a serious flaw especially because it is easy to visualize how this column maps to your Steam Deck. *** Number Ring Now for our last navigational ring. This ring was inspired by reading about players admitting to making the extremely chaotic-neutral choice of using the number row rather than the numberpad for navigation. We could just recreate the numberpad in a menu, but we already have two rings, and if anything nudging the numberpad into a ring shape makes activation from a touchpad or a joystick much more intuitive, it also expresses directly the meaning of the numberpad in terms of navigation while allowing quick access to each number for rapid input. Importantly, the number row keys not the numberpad keys are used here so that in conjunction with shift this ring can be used to activate the alt number row commands !@#$%^&*().
*** Caboose Board The Caboose Board is where the rest of the letters and punctuation keys go. I call this a “board” not a “ring” because more keys can be fit onto steam’s menu system by making two rows then making a ring, which provides a natural place for extensibility for additional critical keys needed only for a specific game or program. *** Controller Face Buttons, and Left & Right Triggers. At this point all the letters from the qwerty keyboard are mapped onto the onboard Steam Deck controls. We just need to tidy up and map a few remaining keys outside of the main 3 rows of the keyboard and make some quality of life mappings for important controls in Cataclysm DDA.
Notice that up until this step, other than starting from the assumption that mouse control is unneeded for this mapping, I haven’t made any keyboard mappings that are only memorable or salient in the context of Cataclysm DDA. Only after this point am I actually assigning keys to the facebuttons of the Steam Deck based on the specific requirements of Cataclysm DDA. Think about how much easier this makes it to create and memorize the muscle memory of mappings for the next complicated game you want to tackle creating Steam Deck bindings for, if it is a roguelike or other game/software that can be played without a mouse than at least 85% of these mappings don’t need to be changed. If mouse control is needed, it is easy to imagine slotting the number ring into a toggleable alternate menu that shares the same control binding. Or the caboose.
These final mappings are pretty intuitive to anybody who has used a gamepad a lot (especially xbox controller). Escape is mapped to the menu face button, tab to the view face button, backspace maps to the x facebutton of course and thus its counterpart, spacebar, naturally slots into the b facebutton, enter should go nowhere else than right trigger and shift on the left trigger allows the shift key to easily be held like it is intended to be on a qwerty keyboard.
Some final quality of life tweaks for CDDA, a single press of the y facebutton activates the / key to bring up the advanced inventory management screen (absolutely amazingly powerful utility in CDDA) and a double press of the y facebutton activates they ? key to bring up list of commands with plain english search. A single press of the a facebutton is mapped to " which brings up the movement toggle (run, walk, crouch, prone). A double press brings up the mutations menu with [ (a somewhat tenous mapping to remember I concede, this is a draft tho). For now I have the thumbstick buttons mapped to + and -.
**** A Final Note On Menus It is important to adjust the in menu sensitivity especially for navigational rings like the Vim Ring, WASD Ring and Number Ring. Typically for a ring assigned to a joystick one might want to set menu button activation to continous (with these repeat turbo settings) and tweak sensitivity so it is easy to reach the menu buttons on the far edges of the menu without it being uncomfortable or resulting in accidental activations of other keys.
(insert screenshot of repeat turbo settings)
TropicalDingdong@lemmy.world 6 months ago
This is ABSOLUTELY what I’ve wanted from the steam deck from the first minutes I got my first deck. Being able to work in the desktop mode without having to use the onscreen keyboard has been a fundamental limiting factor for me.
So I do have to push back against this statement:
Case in point, I want to use the steam deck as a productivity device. I need a ‘generalized’ mapping of keys.
I’m interested in knowing what you think of the oldschool T9 keyboard mapping. I’ve been thinking for a long time that something similar to this would work for the deck.
supersquirrel@sopuli.xyz 6 months ago
Same!
The point I was trying to make in a somewhat obtuse and convoluted fashion is that this is a generalist mapping of keys, especially if you don’t need a mouse. You can drop this same control scheme into qutebrowser… a normal text editor, emacs in evil mode, vim and any number of programs that either have factory inbuilt vim controls or have had vim style controls added by the community.
Obviously entering text is faster with a physical keyboard or even a touchscreen keyboard, but for general, low intensity text input this mapping is extremely easy to remember and you can pick it up quick especially if you have experience with vim and wasd controls.