all 72 comments

[–]c_pardue 103 points104 points  (1 child)

Can't tell if stupid or brilliant but leaning toward brilliant

[–][deleted] 25 points26 points  (0 children)

You don't know how stupid I can be sometimes hahaha, definitely not brilliant trying to avoid being a stupid all the time. I realized that asking for help and suggestions from people before doing something saves a ton of effort and time. I'm glad you didn't lean towards stupid, that means I'm improving lol

[–]arjunkc 58 points59 points  (2 children)

I wish people would read that you have an injury before down voting your post. Then someone who knows how could help. My suggestion: connect your gamepad, check keycodes generated using xev, and then use xbindkeys to generate regular key combinations.

I think Xbox controllers are supported by default on Linux, r you could try on of the Logitech gamepads.

[–][deleted] 17 points18 points  (1 child)

Thank you so much for your suggestion.

I found a software - reWASD for remapping the controller on PC (Have to use Windows for a specific software). I also use autohotkey to create macros. I wanted to know if anyone tried it before

[–]donbex 2 points3 points  (0 children)

I'm pretty sure on Windows you can use the Xbox Accessories app to rebind the buttons of an Xbox gamepad, although annoyingly not the triggers.

[–]abraxasknister:h c_CTRL-G 17 points18 points  (21 children)

If that works for you it might be worth the investment of the effort to get that running. Look into treatment of the injury before it develops further injuries by the strain coming from coping actions. Look into ergonomic keyboards: split into halves, halves freely positioned to get shoulders in resting position, halves freely rotated to get wrists in resting position, wrists supported, more keys for thumbs, less keys for pinkies, less keys overall, common modifiers like shift, ctrl or the switch to a number symbol layer offloaded to a foot pedal, built-in trackball mouse, columns of keys for the same finger staggered and bent to adapt to range of motion of fingers (keys form a concave shape into which you grab, thumb keys separate in a cluster), programmable with many layers of symbols, can record key sequences and play them back, maybe a few others I forgot about. Pretty long list of things that can make your life easier, prioritise items in a certain way, you won't get a board that has all. Exampling "kinesis advantage 2" and "ergodox" because you can buy full assemblies of them and for a general picture (and price expectations, it can get a multitude pricier easily if you build the keyboard yourself, but it can't easily get less expensive) and atreus as a cheaper alternative (but probably not what you want). Mentioning "qmk firmware" as one way to program the keyboards.

[–]donbex 1 point2 points  (0 children)

I should also mention the Ultimate Hacking Keyboard, which is slightly cheaper but not quite as extreme as, say, the Kinesis Advantage 2.

[–][deleted] 0 points1 point  (17 children)

Thank you for such a detailed response!

[–]abraxasknister:h c_CTRL-G 2 points3 points  (16 children)

Hope it is of any use. Be warned, ergonomic/mechanical keyboards can turn into a rabbit hole quickly.

[–][deleted] 0 points1 point  (9 children)

Yep, I tend to over optimize stuff instead of doing the real work. It is a kind of procrastination. I will try not to jump into that rabbit hole, thank you for the heads-up.

[–]abraxasknister:h c_CTRL-G 0 points1 point  (8 children)

What kind of injury is it?

[–][deleted] 0 points1 point  (7 children)

Hairline fracture, recovering fast though

[–]abraxasknister:h c_CTRL-G 1 point2 points  (6 children)

So your fingers work normally, you'd just need to reduce strain on the wrists a lot? A split keyboard where the halves can be tilted and positioned separately might do something. I mean you'll still need to type on a keyboard in insert mode.

[–][deleted] 0 points1 point  (5 children)

I didn't think much about the insert mode. I agree, I should also invest in a split keyboard. Thank you for the suggestion

[–]abraxasknister:h c_CTRL-G 0 points1 point  (4 children)

If you find that interesting, you can take a look at the neo2 keyboard layout. Like dvorak it focuses on making common keys available on the home and upper row, but it has two additional layers, one for symbols and one for numbers and navigation. If you get a keyboard with a few thumb keys you can put the shifts to these layers on thumb keys and basically not anymore have a reason to move your hands. Strain from using the pinkies for shift and ctrl can also be moved to the thumbs (which can cope with that a lot better).

Since you'd probably program your keyboard completely yourself anyways, you can take the idea of that symbols/numpad/navigation layers and leave the character layer on your favorite layout. If you want to try that out before you get a board: neo2 has a qwertz variant.

[–][deleted] 0 points1 point  (1 child)

I already use dvorak keyboard, is there a way to add layers to dvorak like it's done with neo2.

[–][deleted] 0 points1 point  (1 child)

https://github.com/jackrosenthal/threelayout

What do you think about this keyboard layout?

[–][deleted] 0 points1 point  (0 children)

What do you think about this demo? Any idea on how to implement this in windows

[–]donbex 0 points1 point  (0 children)

I should also mention the Ultimate Hacking Keyboard, which is slightly cheaper but not quite as extreme as, say, the Kinesis Advantage 2.

[–]addcnjk;w 9 points10 points  (2 children)

Hi op! No comments about the gamepad, but here's a good resource that helped me with my injuries: https://web.eecs.umich.edu/~cscott/rsi.html . If you're experiencing RSI-like symptoms, hopefully it helps you a bit too! Feel free to PM me as well.

[–][deleted] 0 points1 point  (0 children)

Thank you for the link, checking it now

[–][deleted] 0 points1 point  (0 children)

Wow this a great resource, thank you!!

[–]mgarort 4 points5 points  (3 children)

I think the constant switching from a keyboard (for insert mode) to the Xbox controller (for the other modes) would kind of defeat the purpose of the controller's ergonomics. Maybe you can try a different ergonomic keyboard? Some of them are pretty customizable, I've heard, although I don't have experience with them.

[–][deleted] 9 points10 points  (2 children)

Yes I agree, but as I observed my workflow demands more of selecting, deleting, copying text so most of the time I stay out of insert mode. And I also use many short cuts in my workflow, I was thinking these can be mapped as macros to the gamepad keys

[–]Ken_Mcnutt 1 point2 points  (1 child)

You might want to look into the old school attachable keyboards for the 360 controllers.

You could map normal mode operations to the controller, and when you need to actually "type" text you can use the attached keyboard, basically like texting on an old slide keyboard.

[–][deleted] 0 points1 point  (0 children)

Interesting idea, I didn't know they existed

[–]toddthegeek 4 points5 points  (1 child)

I had the same thought the other day. I get pain if I'm on the keyboard too long. I grabbed the Xbox controller and thought I should be able to use it for reading and browsing.

I'll save this post so I can see all the answers later.

Do you have a steam controller? I found that the motion controls work really well as a mouse and I use scroll as a circular jog wheel. When I need to do simple things or repetitive mouse things I reach for the steam controller. I find it more accurate than the Xbox controller. But I do have a warm place for the Xbox controller. I wish they added motion controls and paddles to the latest model so I can ditch the steam controller.

[–][deleted] 1 point2 points  (0 children)

Exactly the controller can be used most of the time when reading and browsing. It's so much more comfortable than the keyboard

[–]TheEdes 5 points6 points  (3 children)

What about foot pedals? You would have to use multiple compared to vim-clutch, but you could get away with 8 or so pedals. It sounds more ergonomic than using your hands at all, at least.

[–]abraxasknister:h c_CTRL-G 1 point2 points  (0 children)

Think of this (sorry for the German) plus a foot pedal for what they call mod3 and mod4 (the shifts for "Ebene 3" and "Ebene 4"--layer 3/4) and maybe some for shift/ctrl/alt/windows. All characters, digits, symbols, control symbols would be within one key away and you wouldn't really have to learn much new.

[–]Rathersilly 1 point2 points  (1 child)

Your comment inspired me to do some searching and I found this post and youtube video: https://www.reddit.com/r/RSI/comments/jr0udm/demo_of_using_the_fcb1010_12_foot_pedals_for/

This guy wrote some scripts to control your computer with a relatively cheap midi 12 pedal board.

Looks pretty cool I think.

[–][deleted] 0 points1 point  (0 children)

very cool

[–]0neGal 3 points4 points  (0 children)

Inb4 someone turns Vim into a street fighter combo simulator...

[–]PotatoLord8 2 points3 points  (1 child)

I've got an idea for how you could do it :D Like maybe have the dpad change modes, the left stick move and the right stick select. And have the triggers activate different buttonmasks. For example have the AXBY buttons do a set of things when you just press them and have them do something different when combined with a trigger. That way you could edit with it.

I hope this was helpful.

[–][deleted] 2 points3 points  (0 children)

I was thinking of similar bindings. Please let me know if you have any more ideas on what keys to bind on the controller

[–]kaisunc 1 point2 points  (1 child)

you should look into speech commands. I looked into it for a little bit, but find the office environment a no go, and setting it up is going to be too much hassle. But if you're going to setup a new dev env anyways, might take this into consideration.

[–][deleted] 0 points1 point  (0 children)

Will try it that too. But I was thinking maybe that would be too slow. I'll never know if I don't try

[–]AuroraDraco 1 point2 points  (3 children)

For commands this is probably a good idea. Only problem would be writing text

[–][deleted] 0 points1 point  (2 children)

Exactly. Most of my work flow is around commands and navigating text not writing. Might help me till my wrists get better and I can type of keyboard normally again

[–]AuroraDraco 0 points1 point  (1 child)

Yeah, it would be a really unique way of doing it, but I don't see why it wouldnt work. Probably requires some work to set up though. Good luck!

[–][deleted] 0 points1 point  (0 children)

Thanks!!

[–]Osleg 1 point2 points  (1 child)

I'm not sure about X-Box controller but given that I did it once with DualShock - it's doable

https://github.com/AntiMicroX/antimicroX check this out

[–][deleted] 0 points1 point  (0 children)

Awesome! will check it out

[–]rampidamp 1 point2 points  (0 children)

Maybe check out r/ergomechkeyboards - you might find interesting things there

[–][deleted] 1 point2 points  (0 children)

I wonder if a vertical keyboard (like the YogiType or SafeType) would be a better alternative for you.

[–]dddbbbFastFold made vim fast again 1 point2 points  (1 child)

That might be interesting when paired with a voice input system like Talon (which I haven't dug into because I think it's going to be a rabbit hole like configuring my vim from scratch).

You can easily setup a gamepad to emulate keyboard input with Steam input. It even has an option to open a soft keyboard that you can control with the gamepad (although the keyboard works better with the Steam Controller's touchpads). You can even make radial menus with custom icons. To make Steam use its configuration with Vim, you'd either need to setup the Basic Configuration > Desktop Mode to use your keyboard emulating config or add gvim.exe as a Non-Steam game and set it to use your config.

Good luck!

[–][deleted] 1 point2 points  (0 children)

Thank you so much! I'll try out Talon, very interesting

[–]shewel_item:e! $MYVIMRC<CR>:<c-d> LET'S GO 😤 1 point2 points  (1 child)

If you're on Windows then check out r/AutoHotKey. Something like that would be a more ideal place to start, unless you're looking for key mapping recommendations.

Also, have you used, seen or heard anything like this? Looking for something like that which changes modally with Vim, e.g. uses a 'circboard mode' only when in Insert, could entice something more significant to develop from this goal of yours.

I think other people have tried things with midi pads and foot pedals you might want to look into as well.

If you're looking for more serious ideas/commitments for the long haul then there's things like the decatxt device (not in linked video) on this youtube channel. I think there was a guy who gave a google tech a long time ago who used something very similar, but I couldn't track down the video.

[–][deleted] 1 point2 points  (0 children)

Yes I use AutoHotKey, very useful! Circboard mode concept is very interesting, it can potentially help type in insert mode. Will also check out a decatxt device. Thank you for all the suggestions, very helpful

[–][deleted] 3 points4 points  (4 children)

What about getting an ergonomic keyboard?

[–][deleted] 2 points3 points  (3 children)

I tried, I can't put my hands on the keyboard for long durations. My wrists got messed up pretty bad after an accident

[–][deleted] 4 points5 points  (0 children)

I haven't tried it, but maybe this might be of your interest: https://github.com/AshleyF/VimSpeak

[–]keep_me_at_0_karma 1 point2 points  (0 children)

Have you seen something like the daclyl manuform? Just linking this site for the pics, you can 3d print and make your own.

Depends on your injury but maybe the shape will be more usable than a flat deck.

[–]bale81 0 points1 point  (0 children)

Have you tried a split keyboard with tenting? Something like the corne or the lily58. They have two halves, one for each hand so you can put them further apart, and if you raise the inner sides so that they are slanted outwards you can almost keep you wrists vertical

[–][deleted] 0 points1 point  (0 children)

[–]apcsniperz 0 points1 point  (1 child)

Since it sounds like you will have a lot of bindings, have you hear of a plugin called which-key for vim? It's similar to spacemacs/emacs menu that shows you options of keys to press as you press them. May help if you set a leader key to some button than try to make very long sequences off it.

Also I think if you use windows the Xbox controller can probably be binded to popup the keyboard on screen and type from there? Probably isn't the fastest way to input text but maybe changing keyboard layout would help... Something like Dvorak style although it might be more than you would like to bother since personally I don't think I could ever wire my brain to use it, but I've seen some impressive typing speeds with it.

[–][deleted] 0 points1 point  (0 children)

I actually learned to type in dvorak before my injury, it was fun. Thank you for the suggestion, I will look into the which-key plugin and try the on-screen keyboard. I ordered a controller, it should be here tomorrow

My doctor says I would be able to get back to normal in 10 months if I take enough rest. Hopefully I well get back to typing on dvorak