Як прив’язати стрілки Ctrl + до клавіш Home та End? xmodmap не працює


15

У Windows я звикав Ctrl+ Leftдо Homeта Ctrl+ Вправо Endчерез ahk.

Зараз я намагаюся досягти такої поведінки в 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


Ви отримуєте xevвихід для ключів, які хочете змінити?
Сет

Я згоден. Я отримав код клавіші 113 = Зліва від виводу xev.
acid009

Чи можете ви, xevбудь ласка, додати весь вихід?
Сет

стан 0x0, клавішний код 113 (keyym 0xff51, зліва)
acid009

та стан 0x4, код клавіші 113 (keyym 0xff51, зліва), якщо натиснути клавішу Ctrl - стан зміниться на 0x4, як очікувалося
acid009

Відповіді:


11

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

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

GUI AutoKey


Приємно. Це також може бути гарним підходом
Кевін Боуен

1
Розширена, більш загальна версія: askubuntu.com/a/304834/194 Це робить це запитання дублікатом?
cscarney

Мабуть, так і є, але ви все-таки отримаєте щедроту. ;-)
Кевін Боуен

цей метод не працює.
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 працював на мене. Типовою поведінкою автоматичної клавіші було б: відобразити 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 порушено.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.