Можно проверить источник на FreeBSD из управления версиями здесь. Руководство разработчика отвечает на большое количество вопросов о разработке FreeBSD. Почему Вы не создающий его из самого FreeBSD? Это кажется отчасти... нечетным для создания из Ubuntu.
Хотя другие ответы с использованием xmodmap верны, есть гораздо более простой способ. Вместо:
Option "XkbOptions" "ctrl:nocaps"
Просто используйте:
Option "XkbOptions" "caps:hyper"
Вы можете найти все опции в /usr/share/X11/xkb/rules/base.lst
Это может быть легче сделать с xmodmap. Поместите следующее в свой .xsession или .xinitrc:
xmodmap -e "keysym Caps_Lock = Hyper_L"
Необходимо будет также удостовериться, что Hyper_L присвоен карте модификатора, не совместно использованной с другими ключами, иначе он может генерировать модификатор для тех ключей вместо этого (или те ключи могут стать Hyper). Выполненный xmodmap
с не параметры (Ваш вывод может отличаться):
> xmodmap
xmodmap: up to 3 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock
control Control_L (0x25), Control_L (0x42), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0x4e)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
В этом примере Hyper_L присваивают тому же modifer как Супер ключи и так рассматривают как Супер ключ. Эти команды удалят его из mod4 и поместят его в пустую mod3 карту модификатора:
xmodmap -e "remove Mod4 = Hyper_L" -e "add Mod3 = Hyper_L"
Если Hyper_L не появляется в списке карт модификатора, удалить команда не может быть необходимой.
Карта модификатора arcanity происходит из-за того, как X11 связывается, снижается ли модификатор. Это отправляет однобайтовое битовое поле, каждый бит, соответствующий одной из карт модификатора, вместо того, чтобы отправить "Hyper" или "Супер". Приложения должны пойти и посмотреть на карту модификатора и выяснить то, что на самом деле означал конкретный бит. Если Вы имеете, например, и ключи Super и Hyper, присвоенные mod4, приложение не имеет никакого способа сказать, удерживаются ли Super или Hyper (или оба).
xev
берет CapsLock как Hyper_L)..., но его действие больше как Сдвиг, чем Ctrl/Alt и Emacs не берет его как модификатор. Действительно ли там что-то дополнительно, я могу сделать? Действительно изящный
– bitflips
21.09.2013, 23:10
xmodmap -e "remove shift = Hyper_L" -e "add mod3 = Hyper_L"
может быть тем, в чем это нуждается, или возможно mod1
или mod4
вместо shift
.
– wingedsubmariner
22.09.2013, 00:03
xmodmap
.
– Gilles 'SO- stop being evil'
22.09.2013, 02:06
urxvt
) это отбрасывало меня. Большое спасибо!
– bitflips
22.09.2013, 03:10
Это работало для меня:
keycode 66 = BackSpace
remove Mod4 = Hyper_L
add Mod3 = Hyper_L
keycode 66 = Hyper_L