Как сопоставить Ctrl/Shift с кнопками большого пальца мыши?

У меня есть мышь Microsoft Sidewinder X8, и я хочу использовать 8 для Shift и 9 для Control. Кто-нибудь может сказать, пожалуйста, как?

5 ответов

Установите xdotool и xbindkeys

sudo apt-get install xdotools xbindkeys

Затем скопируйте следующий код в ~/.xbindkeysrc

"xdotool keydown shift"
        b:9
"xdotool keyup shift"
        release + shift + b:9
"xdotool keydown ctrl"
        b:8
"xdotool keyup ctrl"
        release + control + b:8

где b:x - номер вашей кнопки, которую вы можете узнать с помощью xev. Поскольку я не хочу, чтобы этот bindig был постоянным каждый раз, когда он мне нужен, я запускаю терминал и набираю xbindkeys -n, Когда мне это больше не нужно, я просто закрываю терминал.

Сначала установите xdotool

sudo aptitude install xdotool

Затем вы можете создать скрипт для имитации нажатия клавиши Ctrl. Откройте gedit и скопируйте и вставьте следующее:

#! /bin/bash

xdotool keydown ctrl

while [MOUSEKEYDOWN == 1]; do  #TODO change the while test.
sleep 30 
   #decrease sleep if script doesn't react fast enough on releasing the key, 
   #increase sleep if the computer uses to many CPU when pressing the button.
done

xdotool keyup ctrl # Lift the key back up after no button is pressed.

Я не большой программист Bash. Мне нужно найти способ определить, нажата ли ваша кнопка, и я могу иметь (более одной) синтаксической ошибки, но я предполагаю, что программист bash понял эту идею.

Если кто-то исправил скрипт, сохраните его в ctrl.sh и сделайте его исполняемым

chmod +x ctrl.sh

Затем, как сказал Натвилл, перейдите в систему -> настройки -> клавиатура. Добавьте пользовательскую команду, выберите добавление команды ~/ctrl.sh и нажмите кнопку мыши в качестве ярлыка.

Это должно сделать это.

http://linux.derkeiler.com/Newsgroups/comp.os.linux.x/2003-07/0010.html объясняет, как этого добиться, используя xbindkeys и xmacroplay (из пакета xmacro). Оба эти приложения доступны в репозиториях Ubuntu.

Вот пример с сайта, который объясняет, как сопоставить кнопку мыши 6 с комбинацией клавиш Alt + Left.

Поместите это в ~/.xbindkeysrc и нажатие кнопки мыши 6 отобразит комбинацию клавиш Alt + Left на X-сервере, который отображается на "назад" в Konqueror и Mozilla:

"echo -e 'KeyStrPress Alt_L\nKeyStrPress Left\nKeyStrRelease Left\n KeyStrRelease Alt_L' | xmacroplay &"
b:6

Существует Shift_L и Control_L (а также Shift_R и Control_R, если вы предпочитаете правильные версии клавиш вместо левых версий). Просто замените эти клавиши в приведенной выше команде, замените b: 6 на фактическую кнопку мыши, которую вы хотите сопоставить с клавишей, и введите команду в ~/.xbindkeysrc, и у вас должно быть все готово.

СистемаНастройкиСочетания клавиш позволяют сопоставить клавиши / кнопки с командами; если это не сработает xbindkeys еще одно отличное приложение для сопоставления клавиш.

Возникает повторяющийся вопрос: сопоставить Ctrl и Alt с кнопками большого пальца мыши

так вот копия ответа на этот вопрос, используя Easystroke:

я нашел рабочее решение здесь. он использует Easystroke (sudo apt install easystroke). слава @stuartr от ubuntuforums!

хотя была одна проблема - повторное сопоставление щелчка мышью время от времени вызывало исходное (в моем случае "назад") событие. чтобы избежать этого, кнопку мыши можно переназначить на какой-то неиспользуемый номер с помощью xinput set-button-map (sudo apt install xinput). я положил это в свой .xsessionrc (взято из этого ответа @Maxim):

mi_mouse_id=$(xinput | grep 'GTech MI wireless mouse.*pointer' | sed 's/.*\tid=\([0-9]*\)\t.*/\1/')
xinput set-button-map $mi_mouse_id 1 2 3 4 5 6 7 20 9 10 11 12 13 14 15 16 17 18 19 20

это отображает кнопку мыши 8 на кнопку 20. надеюсь, кнопка 20 не имеет смысла. по крайней мере, это не имеет абсолютно никакого эффекта для меня. Теперь пришло время переназначить кнопку 20 на Ctrl:

  1. Вкладка "Предпочтения": дополнительные кнопки -> добавить -> переключатель "Мгновенные жесты" -> щелкнуть мышью по выбранной кнопке в серой области (для меня кнопка "назад, большой палец" стала "(мгновенно) кнопка 20")
  2. Вкладка "Настройки": выберите "Автозапуск Easystroke"
  3. Вкладка Действия: Добавить действие
    Имя: все, что вам нравится (например, "Мышь 20 -> Ctrl")
    Тип: "Игнорировать"
    Подробности: щелкните один раз, чтобы изменить "Игнорировать" на "Комбинация клавиш...". затем нажмите Ctrl + a. "а" не имеет значения и игнорируется. "Комбинация клавиш" будет заменена на "Ctr"
  4. С новым выделенным / выделенным действием -> нажмите "Записать ход" -> нажмите кнопку мыши, которую вы хотите использовать снова (для меня это было "20 -> 20" в столбце "Обводка")
  5. Теперь нажатие и удержание моей кнопки мыши вызывает на экране странное 'Ctr' и действует так, как будто кнопка удерживается до тех пор, пока кнопка мыши
Другие вопросы по тегам