Keyshift QWERTY ↔ AZERTY · local · private

Keyshift

Remote consoles forward the position you pressed, not the character you meant. A guest set to Belgian AZERTY reads those positions with its own layout, so hello world lands as hello zorld and a backslash never arrives at all. Keyshift does the position round trip for you, in both directions.

Translate

Try:

What to watch for

Keystroke by keystroke

# Wanted Press on your keyboard Note

The two keyboards

same positions, different legends

Keys used by your current text are lit on both boards. They are the same physical keys, which is the whole trick. A greyed key does not exist on that keyboard at all.

Remote:

Yours:

x Shiftx plainx AltGr

? Why this happens

Characters versus positions

A normal clipboard paste moves characters and is safe. A console that emulates hardware moves scancodes. Proxmox noVNC, iDRAC, iLO, VMware Remote Console and most KVM over IP devices fall in the second group, which is why the same paste works in one window and fails in another.

The unreachable backslash

Belgian AZERTY hides the backslash behind AltGr on the extra key next to the left Shift. That key only exists on 105 key ISO boards. From a 104 key ANSI keyboard there is no position to press, so no amount of remapping helps. Keyshift marks these in red rather than pretending.

Dead keys bite twice

US International turns the apostrophe, quote, backtick, tilde and caret into dead keys, and Belgian does the same for the caret, diaeresis and tilde. They print nothing until the next keystroke, then quietly accent it. Press Space after one to get the bare character.

The real fix

Setting the guest layout to match your own keyboard solves this permanently: localectl set-keymap us on systemd, setxkbmap us for a session, or the region panel on Windows. Keyshift is for the machines you cannot change, or cannot log in to yet because the password has a backslash in it.