You can do something similar with AutoHotKey on Windows, though I don't have a config for it.
Very likely from Steve Losh (I did this too, and it helped a lot): http://stevelosh.com/blog/2012/10/a-modern-space-cadet/#shif....
For me, when recently trying to remap the left-shift key I found out that it was not a problem for the supposed best practice of using it for C-g/x/c etc, but that instead I had been using a worse practice for typing ":" or """ when the wrong characters turned up al over the place.
Anyway, I suppose the left option key would be pretty good to map to control for emacs, since it's rarely more needed than the right option key.
You have no idea what I am doing with the esc, capslock, and control keys on the left side of my keyboard, but none of them are default.
On the right however I'm just trying to make sure I get a forward delete somewhere. In fact using Karabiner or Seil, the right shift is now shift if pressed as a modifier, but forward delete if pressed alone.
[1] - https://www.kickstarter.com/projects/70308014/kings-assembly...
Looking forward to reading some reviews once they are available. They look very promising.
Seriously, I know this won't appeal to everyone, but there is a solution to worrying about key combos causing RSI. Just don't touch type. Do embarrassing hunt-and-peck typing. I'm a professional programmer and long-time emacs user and I can't touch type for shit and it doesn't affect my career and my hands and wrists have been completely free of any trouble whatsoever (to current age of 36). If hunt-and-peck leaves you typing slower than you can design software solutions in your head then find a more challenging job.
Edit: Not you, particularly. But I have met bad typists, and that is how many of them behaved. Don't be that guy.
I can't touch type but my code reads:
def snmp_command(session, oid, media_servers):
result = list()
for host_name in media_servers:
snmp = SNMP_CMD.format(host=host_name, oid=oid)
snmp_reply = [x for x in session.cmditer(snmp)]
if len(snmp_reply) == 0:
log.warning("No data for EMS Media Server SNMP cmd {0} for host {1}".format(snmp, host_name))
continue
# add the Media Server host from which we got this reply to the list of snmp reply
snmp_reply.append(host_name)
result.append(snmp_reply)
return resultThat said, where's your docstring? Why are your lines longer than 80 chars? Why is your indent 2 chars instead of 4? What does `oid` mean? http://legacy.python.org/dev/peps/pep-0008/
In addition, the life of a programmer is much more than programming. You have to type documentation, you have to type e-mails, etc. I agree that typing speed is not a key for programming "interesting stuffs", but for everything else, touch-typing is an important skill.
I also find touch typists introduce less typos, because they're looking all the time at the screen and mistakes are noticed immediately.
Also as a Unix/terminal/VIM user, touch typing is a must. VIM is not worth it if one isn't able to touch-type, period.
What if it has an effect on your career and you don't realise it? Sounds way more likely to me.
"Any time you are pressing two keys at once, with the same hand, hundreds of times per day, you are setting yourself up for repetitive stress injury"
People: learn to type. One hand for the modifier key, and the other hand for the other key. This is why there are two sets of modifier keys. This is typing 101