Как настроить ввод спецсимволов { } [ ] < > @ # $ ^ & | ~ ` в ru-раскладке Linux

Прокачиваем ru-раскладку в Linux. Добавляем спец символы { } [ ] < > @ # $ ^ & | ~ ` , которых нет в оригинальной русской раскладке. Всё под пальцами через правый Alt и правый Ctrl.
Кратко: патчим блок winkeys в файле /usr/share/X11/xkb/symbols/ru. Добавляем AltGr (правый Alt) и правый Ctrl как модификаторы. После перезагрузки { } [ ] < > @ # $ ^ & вводятся правым Alt, ~ и | — правым Ctrl. Обратный апостроф ` так же добавлен на комбинацию “ё” и правого Alt.
1. Резервная копия
Сохраняем копию оригинальной раскладки.
sudo cp /usr/share/X11/xkb/symbols/ru /usr/share/X11/xkb/symbols/ru.orig
2. Открыть файл
sudo nano /usr/share/X11/xkb/symbols/ru
Сохранить: Ctrl+S. Выйти: Ctrl+X.
3. Найти блок winkeys
В файле несколько вариантов раскладки. Нас интересует winkeys — «Russian (Windows)», выбираемый по умолчанию. Он находится в самом начале:
// Windows layout
default partial alphanumeric_keys
xkb_symbols "winkeys" {
include "ru(common)"
name[Group1]= "Russian";
key <AE03> {[ 3, numerosign ]};
...
key <BKSL> {[ backslash, slash ]};
};
4. Заменить блок winkeys целиком
// Windows layout
default partial alphanumeric_keys
xkb_symbols "winkeys" {
include "ru(common)"
name[Group1]= "Russian";
key <AE03> {[ 3, numerosign ]};
key <AE04> {[ 4, semicolon ]};
key <AE05> {[ 5, percent ]};
key <AE06> {[ 6, colon ]};
key <AE07> {[ 7, question ]};
key <AE08> {[ 8, asterisk, U20BD ]}; // ruble
key <AB10> {[ period, comma ]};
key <BKSL> {[ backslash, slash ]};
// --- фигурные скобки на AltGr: х → {, ъ → } ---
key <AD11> {
type[Group1] = "FOUR_LEVEL",
symbols[Group1] = [ Cyrillic_ha, Cyrillic_HA, braceleft, braceleft ]
};
key <AD12> {
type[Group1] = "FOUR_LEVEL",
symbols[Group1] = [ Cyrillic_hardsign, Cyrillic_HARDSIGN, braceright, braceright ]
};
// --- квадратные скобки на AltGr: ш → [, щ → ] ---
key <AD08> {
type[Group1] = "FOUR_LEVEL",
symbols[Group1] = [ Cyrillic_sha, Cyrillic_SHA, bracketleft, bracketleft ]
};
key <AD09> {
type[Group1] = "FOUR_LEVEL",
symbols[Group1] = [ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, bracketright ]
};
// --- угловые скобки на AltGr: б → <, ю → > ---
key <AB08> {
type[Group1] = "FOUR_LEVEL",
symbols[Group1] = [ Cyrillic_be, Cyrillic_BE, less, less ]
};
key <AB09> {
type[Group1] = "FOUR_LEVEL",
symbols[Group1] = [ Cyrillic_yu, Cyrillic_YU, greater, greater ]
};
// --- дополнительные символы на AltGr ---
// @ на "2" (цифровой ряд)
key <AE02> {
type[Group1] = "FOUR_LEVEL",
symbols[Group1] = [ 2, quotedbl, at, at ]
};
// # на "3"
key <AE03> {
type[Group1] = "FOUR_LEVEL",
symbols[Group1] = [ 3, numerosign, numbersign, numbersign ]
};
// $ на "4"
key <AE04> {
type[Group1] = "FOUR_LEVEL",
symbols[Group1] = [ 4, semicolon, dollar, dollar ]
};
// ^ на "6"
key <AE06> {
type[Group1] = "FOUR_LEVEL",
symbols[Group1] = [ 6, colon, asciicircum, asciicircum ]
};
// & на "7"
key <AE07> {
type[Group1] = "FOUR_LEVEL",
symbols[Group1] = [ 7, question, ampersand, ampersand ]
};
// ` (обратный апостроф) на "ё" (клавиша с тильдой)
key <TLDE> {
type[Group1] = "FOUR_LEVEL",
symbols[Group1] = [ Cyrillic_io, Cyrillic_IO, grave, grave ]
};
// ` (тильда) на Right Ctrl + ё
key <TLDE> {
type[Group1] = "EIGHT_LEVEL",
symbols[Group1] = [ Cyrillic_io, Cyrillic_IO, grave, grave, asciitilde, asciitilde, NoSymbol, NoSymbol ]
};
// | (вертикальная черта) на Right Ctrl + клавиша под Backspace
key <BKSL> {
type[Group1] = "EIGHT_LEVEL",
symbols[Group1] = [ backslash, slash, backslash, slash, bar, bar, NoSymbol, NoSymbol ]
};
include "level3(ralt_switch)"
include "level5(rctrl_switch)"
};
5. Перезагрузка
sudo reboot
6. Таблица добавленных комбинаций
Клавиша | Правый Alt (AltGr) | Правый Ctrl |
|---|---|---|
2 | @ | |
3 | # | |
4 | $ | |
6 | ^ | |
7 | & | |
ш | [ | |
щ | ] | |
х | { | |
ъ | } | |
б | < | |
ю | > | |
ё | ` | ~ |
\ | \ | | |
7. Пояснения
Квадратные скобки добавлены на ш и щ в силу того, что данные клавиши визуально воспринимаются как сдвоенная пара, наравне с 9 и 0, или же х и ъ.
Обратный апостроф ` редко используется, но применим на хабре для выделения блоков кода в статьях или комментариях.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.