I prefer to have my index fingers resting on F and J all the time when I type. It causes me much distress whenever I have to run to the Ctrl key or the End key or the Home key or the arrow keys! It is worse when you have to press a combination - something like: Super+Shift+S.

Is there a way where instead of pressing the key combinations, I can activate some mode at the OS level (i.e. - not application specific and works everywhere) where I type in the key combination in words. For example I would type in something like control shift s to mean the key combination Ctrl+Shift+S, without actually pressing the combination.

That is, I am willing to press more keys if needed, but I would not prefer to move my hands from my resting place!

Is there a solution for a Linux based OS, say Ubuntu?

EDIT: I would like this to work across applications. For example it should work on my browser, on my editor etc. It should work on any future application that I may ever install.

That is I need an interface/filter/translator between my keyboard and the OS, that will translate what I type into appropriate commands or key combinations.

For example say I am in Libre Office where Ctrl+P is used for Print command.

Then I would want to do something like this: Type control p instead of pressing Ctrl and P together. And that should get translated to the correct key combination and fed into Libre Office.

In particular it shouldn't matter what application I am using. I want to create verbose aliases for some difficult to reach keys and when I just type out those aliases, the machine should behave as if I had pressed the key combination instead.

This is how I imagine it to work (I am adding all these details to explain more clearly what I am looking for):

  1. Say I want to press Ctrl+Shift+R
  2. Press a special key combination say Alt+[ and that would activate this "translation" mode.
  3. Type control shift r. While typing I may use backspace. For example the key strokes may be: com(backspace)ntri(backspace)ol S(backspace)shift,(backspace) r. Then that should just mean control shift r because if I were to type that out on an editor, it would be that.
  4. Press a special key combination say Alt+]. That would then "translate" everything that was typed between the first special key Alt+[ and the last special key Alt+] and send the key combination Ctrl+Shift+R to the machine.
  • 2
    The answer you got was for terminal (bash specifically) because you didn't specify. If your question is about the Graphical Interface, you should state that. – Jonathan Cross Apr 15 '17 at 11:07
  • Does this need to be in X or plain old terminal? The ways od doing this would be different. – Aibobot Apr 15 '17 at 11:51
  • @JourneymanGeek has killed my answer where I was proposing using speech recognition for typing in bash and applications. If you like that idea you will need to research it - a comment is too short to contain all the links I listed for you. – harrymc Apr 15 '17 at 12:21
  • @Inspired_Blue have you checked the "Accessibility" options for Unity/KDE/Gnome whatever you're using? – Michael D. Apr 15 '17 at 13:05
  • @MichaelD. I guess I have and I didn't find what I was looking for. I don't think sticky key solves my problems entirely. I want my keys to be remapped as well. And there should be a convenient way to toggle between the usual keyboard and remapped keyboard with sticky mode. Do you know of a way to achieve this? – Inspired_Blue Apr 15 '17 at 13:10

It is unclear what you are trying to do here, but it sounds like the vi editor might do what you want. It has 3 modes:

  1. An "Insert mode" for simply typing your document
  2. Then there is a "Command mode" where all letters have a meta meaning and are used to send commands to the program.
  3. The final mode is a so called "Last line" mode which is a subset of the "Command" mode and lets you search for text, save the file, etc.


vi normally uses a single key esc to toggle between modes, but this can probably be remapped to another key.

In general, you will probably need to use some special key for toggling commands, otherwise there is no way for the computer to know if you are typing words or telling it to do something.

  • Well I would like this to work across applications and not just on vi. It should work even on my browser. It should work on any future application that I may ever install. The idea is that it is possible to remap keys, or use sticky keys to type key combinations one key at a time. So I need an interface/ filter between my keyboard and the OS, that will translate what I type into appropriate commands. I want this dictionary to be something as simple as a text file. – Inspired_Blue Apr 15 '17 at 12:21

You can create aliases in your



alias ll='ls -l'

or to open a picture with gimp

alias g='gimp $@'

# open myimage.jpg
g myimage.jpg
  • hmm. Can an alias have a space? Is there something that will generate a key combination that would work in conjunction with this? – Journeyman Geek Apr 15 '17 at 11:48
  • Yes this is very useful. But I am looking for a solution that would work beyond the terminal or command line. – Inspired_Blue Apr 15 '17 at 12:45

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.