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

15

В Windows я использовал для привязки Ctrl+ Leftк Homeи Ctrl+ право на Endчерез ахк.

Сейчас я изо всех сил пытаюсь добиться такого поведения в Ubuntu. Я пробовал редактировать /etc/inputrc:

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

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

xmodmap -e "keycode 113=Left NoSymbol Home"

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

xmodmap -e "keycode 113=Left Home"

Я предполагаю, что поведение по умолчанию Ctrl+ Left(пропуск слов) каким-то образом получает приоритет над привязками xmodmap.

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

Я на Ubuntu 12.04

acid009
источник
Получаете ли вы xevвыходные данные для ключей, которые хотите изменить?
Сет
Я делаю. Я получил ключевой код 113 = слева от вывода xev.
acid009
Можете ли вы добавить весь xevвывод, пожалуйста?
Сет
состояние 0x0, код ключа 113 (keysym 0xff51, слева)
acid009
и состояние 0x4, код клавиши 113 (keysym 0xff51, слева) при нажатии с Ctrl - состояние изменяется на 0x4, как и ожидалось
acid009

Ответы:

11

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

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

AutoKey GUI

cscarney
источник
Ницца. Это также может быть хорошим ответом здесь, а также askubuntu.com/questions/254424/…
Кевин Боуэн
1
Расширенная, более общая версия: askubuntu.com/a/304834/194 Делает ли это этот вопрос дубликатом?
Скарни
Это возможно, но вы все равно должны получить награду. ;-)
Кевин Боуэн
этот метод не работает.
acid009
1
@JeffDror это <page_up> и <page_down> ( code.google.com/p/autokey/wiki/SpecialKeys )
cscarney
1

Я использую алюминиевую клавиатуру 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, поэтому левая клавиша управления не нужна. Поскольку он расположен там, где клавиша Fn находится на клавиатуре MacBook, переключение между клавиатурой MacBook и настольным компьютером не влияет на мышечную память.

Питер Квитек
источник
0

Autokey работал для меня. Поведение Autokey по умолчанию будет таким: отображать оба right ctrl+ arrowи left ctrl+ arrow. И я хотел только right ctrl, потому что я использовал left ctrlдля навигации по словам.

Вот скрипт, который я использовал в Autokey:

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

PS Я установил Autokey из GitHub, потому что пакет в Ubuntu Software не работает.

wibotwi
источник