Недавно я перешел с SUSE, который использует KDE в качестве среды рабочего стола по умолчанию. В KDE можно архивировать такую настройку с помощью параметров GUI, но не в XFCE.
Я попробовал настроить ~/.Xmodmap
файл следующим образом:
clear Lock
clear Control
clear Mod2
clear Mod5
keycode 77 = Caps_Lock Num_Lock Caps_Lock Num_Lock
keycode 66 = ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift
keycode 37 = Control_L NoSymbol Control_L NoSymbol Multi_key Multi_key
add Control = Control_L Control_R
add Lock = Caps_Lock
add Mod2 = Num_Lock
add Mod5 = ISO_Level3_Shift
Что происходит:
- Caps Lockфункциональность переходит кNum Lock
- Num Lockфункциональность переходит в Shift+Num Lock
Чего я ожидал, но не произошло:
- Caps Lockкнопка должна быть
ISO_Level3_Shift
(она есть, согласноxev
, но она имеет функциональность обычной Shiftпочему-то) - Нажатие Caps Lock+ Влево Ctrlдолжно выполнять функцию клавиши «Написать» (не работает).
Что я делаю не так? Xubuntu 18.04, новая установка
решение1
Назначьте клавишу Shift третьего уровня <CAPS>
(Caps Lock) и используйте третий уровень левой клавиши Control в качестве клавиши создания сообщения ( Multi_key
):
setxkbmap -option compose:lctrl-altgr \
-option lv3:caps_switch \
-layout "us(intl)"
Для клавиши NumLock вы можете создать файл символов в качестве оболочки для любой используемой вами раскладки (я собираюсь использовать us(intl)
). Создайте файл символов с именем custom
:
xkb_symbols "basic" {
// The layout that you want to use.
include "us(intl)"
key <NMLK> { [
Caps_Lock, Num_Lock, Caps_Lock, Num_Lock
] };
};
Сохраните custom
файл в дереве каталогов, которое отражает структуру /usr/share/X11/xkb
. Таким образом, если ваш каталог хранится в /home/<user>/my-xkb/
, custom
файл должен быть в /home/<user>/my-xkb/symbols/custom
.
(Видетьздесь(для получения общих инструкций по созданию и использованию пользовательских файлов Xkb.)
Вместо того, чтобы просто использовать , setxkbmap
вам придется использовать -print
опцию для передачи выходных данных в xkbcomp
. xkbcomp
есть -I
опция, которую вы будете использовать, чтобы указать путь к вашему пользовательскому дереву каталогов Xkb.
setxkbmap -option compose:lctrl-altgr \
-option lv3:caps_switch \
-layout "custom" \
-print |
xkbcomp -I"/home/<user>/my-xkb" \
- "$DISPLAY"