Как связать Ctrl+arrows с клавишами Home и клавишами End? xmodmap не работает

В Windows я раньше связывал Ctrl+Left с Home и Ctrl + Право Закончиться через ahk.

Теперь я изо всех сил пытаюсь достигнуть этого поведения в Ubuntu. Я попытался редактировать /etc/inputrc:

"\e[1;5C": end-of-line
"\e[1;5D": beginning-of-line

Это работает, но только в окне терминала. Я также попробовал xmodmap:

xmodmap -e "keycode 113=Left NoSymbol Home"

но это не работает.
Странная вещь здесь состоит в том, что, если я связываю для Смещения + Левый в xmodmap, он работает:

xmodmap -e "keycode 113=Left Home"

Мое предположение здесь - то, что поведение по умолчанию Ctrl + Левый (пропускают слова) так или иначе получает приоритет над xmodmap привязкой.

Где я могу найти, где привязка по умолчанию расположена и как удалить его? Или, возможно, я мог просто связать необходимое поведение там?

Я нахожусь на Ubuntu 12.04

15
задан 4 June 2013 в 18:20

3 ответа

Я использую клавиатуру алюминия Apple на рабочей станции Ubuntu, и следующие команды xmodmap сделали это для меня:

# remap Ctrl_L to ModeSwitch, then use it to map arrow keys so that
# they act like on the MacBook keyboard with Fn key pressed 
xmodmap -e "keycode 37=Mode_switch"
xmodmap -e "keycode 113 = Left NoSymbol Home"
xmodmap -e "keycode 114 = Right NoSymbol End"
xmodmap -e "keycode 111 = Up NoSymbol Prior"
xmodmap -e "keycode 116 = Down NoSymbol Next"

Это работает отлично, потому что моя клавиша Caps Lock повторно отображается на Функции управления с помощью предпочтений клавиатуры Ubuntu, таким образом, левая Клавиша CTRL не нужна. Так как это расположено, где ключ Fn найден на клавиатуре MacBook, переключающийся между рабочим столом и клавиатурами MacBook не влияет на память мышц.

1
ответ дан 4 June 2013 в 18:20

AutoKey может сделать привязку как это, но он требует выполнения сервиса в фоновом режиме (как ahk, но в отличие от xmodmap).

Настройте "фразу", где текст <home>, метод вклеивания Keyboard, и горячая клавиша <ctrl>-<left>:

AutoKey GUI

11
ответ дан 4 June 2013 в 18:20

Автоключ работал на меня. Автоключевое поведение по умолчанию было бы: отобразите и исправьте ctrl+arrow и оставленный ctrl+arrow. И я хотел только право ctrl, потому что я использовал оставленный ctrl для навигации по словам.

Вот сценарий, который я использовал в Автоключе:

output = system.exec_command('xinput query-state "AT Translated Set 2 keyboard" | grep down', getOutput=True)
# 105 is right ctrl
if 'key[105]=down' in output:
    keyboard.send_keys('<end>')
else:
    keyboard.send_keys('<ctrl>+<right>')

Примечание: у Вас могло бы быть другое название клавиатуры. Попробуйте всех их. У меня было 3 устройства, но только один работал

xinput list --name-only | grep -i keyb
Virtual core keyboard
Virtual core XTEST keyboard
AT Translated Set 2 keyboard

P.S. Я установил Автоключ от GitHub, потому что пакет в программном обеспечении Ubuntu повреждается.

0
ответ дан 23 November 2019 в 02:49

Другие вопросы по тегам:

Похожие вопросы: