Is it possible to have Global Modal Input using Input Method Engine?

64 Views Asked by At

Prelude: Part-1:

I have pain in my little fingers and wrists if I have to repeatedly press key combinations such as Ctrl+Shift+<key>.

I found some respite in using vi's modal editing which largely eliminated the need for such key combinations. More recently I have been using the God-mode in Emacs and it also works great. Here is a short description of God-mode (adapted from their github page):

God-mode is an global minor mode for entering Emacs commands without modifier keys. For example in this mode one can do the following:

Before: C-p C-k C-n M-^ ) C-j C-y M-r C-x z z M-2 M-f C-x C-s
After:    p   k   n g ^ )   j   y g r     . .   2 g f   x   s

(You may check out their key-mapping section for an explanation of the framework).

So far so good! However a lot of applications (outside of the nice Emacs and vi/vim world) require me to press key combinations such as Ctrl+Shift+Tab or Ctrl+Alt+u etc, which are hurting my wrists and little fingers.

Prelude: Part-2:

I am aware of the Input Method framework/ Input Method Engine that allows users to enter foreign characters and glyphs with key combinations. Here is an Youtube video demonstrating the use of fctix5 to input Japanese characters/ glyphs.

I am also aware of Plover project from the Open Steno Project which is an open-source stenography engine, that can translate key-chords on an N-key rollover-keyboard into English words via a predefined dictionary. I also know that Plover supports modifier keys such as Ctrl, Alt, Shift etc.

Questions:

I wish to have an Emacs's God-mode like framework system wide everywhere that works across applications, so that I wouldn't ever have to press Ctrl+Shift+<key> and instead I can simply press G <Key> etc.

  1. Does there already exist something like this?

  2. If no, will it be possible to build something like this? I am thinking of a Plover like daemon that would translate G <key> to Ctrl+Shift+<key> etc.

  3. Will Plover qualify as an Input Method Engine (in the same sense that fcitx5 is an Input Method Engine)? If no, how are Plover and fcitx different?

  4. I use i3 as my window manager. I would want that my Global Modal Input translator should intercept and process my keybindings before my window manager does. Will that be possible?

0

There are 0 best solutions below