If I use keyboard-driven programs in my system, where letters like h, j, k, l, i, d, w, o, a multiple times a second, how can I write text in non-latin alphabet across all applications?

Longer version

The reason for this question is simply that I'm learning russian in my spare time and wanted to start using a computer rather than a phone for the purpose of making exercise.

So I set up a keyboard shortcut to switch between my ordinary layout (italian querty) to a phonetic russian layout. Good.

But then the obvious question started as soon as I was not able to enter insert mode in by bash session: how in the world am I gonna use my system at all, considering that I have every single program keyboard-driven?

Here's a list of just a few:

  • text editor: Vim
  • web browser: qutebrowser
  • file explorer: ranger
  • window manager: i3
  • shell: bash with vi-editing-mode
  • ...

In each of those, having access to latin letters like h, j, k, l, i, d, w, o, a, is vital. Fundamental.

But if I'm using a non-latin layout... I'm lost! Initially, when experimenting, I had a hard time even just changing back to italian layout. In order to run sudo I even had to compose my own password harvesting letters and symbols from the terminal output via mouse (select-the-letter-and-then-hit-the-wheel-to-paste-it)!

I mean, I want to type cyrillic letters only when I'm inserting text, not when I'm not.

1 Answer 1


Well, the obvious solution - add a layout switcher.

For example, a standard switch (which was introduced in Windows and migrated to many Linux systems) - Left Alt + Left Shift. So you would type commands on Latin layout, hit i to switch into insert mode of vi. Hit lAlt+lShift type anything you like on a second layout. Switch again and use letter-commands of vi again.

Yes, it would be kind of pain, but I never heard about using non-latin keyboards with vi. Multilingual texts are for GUI editors (LibreOffice Write for example is perfect for school exercises), not for console editors.

The xkb also has ability to do a temporary switch, while a special key is pressed (Left Alt, or Left Win, or Right Alt, etc) So 'LeftAlt+a' become 'ф'.

And yes, in the time before X11, we did write multilingual texts, but in a normal text editors, like a builtin into Midnight Commander, or emacs, even nano is better suited for that.

  • Probably the least worst switcher I can use is CapsLock. I don't use it often by itself, and it's only one key, rather than a combination.
    – Enlico
    Nov 6, 2022 at 10:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .