Как назначить нажатие средней кнопки на определенную клавишу в моем ноутбуке?

8

Как я могу прикрепить нажатие средней кнопки к определенной клавише на моем ноутбуке? Я могу сделать среднюю кнопку, если коснусь в верхнем правом углу сенсорной панели, но я бы хотел связать ее с клавишей, например клавишей «windows» или клавишей «menu».

Есть способ сделать это?

Текущий ответ не работает для Ubuntu 11.10 с классическим рабочим столом gnome-failsafe. Мне нужно, чтобы кто-нибудь выяснил, как это можно сделать для обновленной версии Ubuntu.

719016
источник

Ответы:

10

Чтобы переназначить клавишу меню, вам нужно сделать следующее.

установить предпосылки

Установить пакет xkbset:

sudo apt-get install xkbset

определить раскладку клавиатуры

Далее вам нужно определить, какую раскладку клавиатуры вы используете. В моем случае гб для британца / единого макета королевства клавиатуры или нас для Соединенных Штатов

setxkbmap -layout gb

Примечание: если вы запускаете

setxkbmap -query

это даст вам следующий вывод: если модель и раскладка - ваша клавиатура, то вы используете правильную раскладку

rules:      evdev
model:      pc105
layout:     gb

Далее определим, что у нас будут следующие сопоставления клавиш мыши:

xkbset m
xkbset exp =m

найти Menuключ-код

Карта Menuключ. Для этого нам нужен Menuкод ключа. При запуске терминала xevпереместите указатель мыши внутрь квадрата и нажмите Menuклавишу.

введите описание изображения здесь

Конечный результат

В моем случае мой Menuкод ключа - это значение 135, и оно будет сопоставлено с кнопкой мыши 2

xmodmap -e "keycode 135 = Pointer_Button2"

Проверено следующим образом:

  1. Скопируйте некоторый текст в терминал - начато действие Вставить
  2. Наведите указатель мыши на строку заголовка - окно переместится на фон

Собираем все это вместе:

Хорошо, как только мы разработали правильные коды клавиш, мы можем собрать их вместе, чтобы начать с входа в систему.

Сначала создайте файл в вашей домашней папке с именем remapkeys

gedit ~/remapkeys

Теперь скопируйте и вставьте следующее

#!/bin/sh
setxkbmap -layout gb
xkbset m
xkbset exp =m
xmodmap -e "keycode 135 = Pointer_Button2"

Сохранить. Дайте файлу права на выполнение

chmod +x ~/remapkeys

Затем из Dash найдите Startup Applications или, если вы используете Gnome Classic - Applications - Other - Startup Applications

Добавить новую запись приложений запуска

введите описание изображения здесь

Команда должна быть:

bash -c "sleep 5 && ~/remapkeys"

Команда спит в течение 5 секунд, чтобы позволить вашему рабочему столу появиться перед запуском нового скрипта - если ваш рабочий стол не появится в течение 5 секунд (возможно, вы используете медленный нетбук?), То увеличьте это время ожидания до 10 или 15 секунд. Выйдите и войдите, чтобы проверить.

свобода ископаемых
источник
Могу ли я спросить, после выполнения этих шагов, обязательна ли привязка быть постоянной или я должен положить ее куда-нибудь, чтобы она загружалась при каждой перезагрузке?
719016
конечно, не постоянный - я бы добавил операторы в скрипт и запускал его как часть запускаемых приложений, чтобы он запускался при входе в систему.
Работает
это работает, но, как вы говорите, не навсегда
719016
... просто на тот случай, если я не дал понять, я добавил, как начать это с логина в ответ.
fossfreedom
Допускается ли перетаскивание?
Витор Абелла
5

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

sudo apt-get install xautomation

Вы можете отправить событие среднего щелчка, используя xte:

xte 'mouseclick 2'

Вы можете создать собственный ярлык для этого в Предпочтения -> Сочетания клавиш (или «Сочетания клавиш» из поиска Unity). Нажмите «Добавить», введите имя и указанную выше команду и нажмите «Применить». Прокрутите вниз и установите ярлык, как для любого другого действия.

Когда я попробовал это, я не смог связать действие только с ключом Windows. Вы можете попробовать это, выполнив следующее, но, похоже, есть ошибка, которая мешает этому работать:

Откройте терминал и запустите

gconf-editor

Нажмите Ctrl + f, выберите поле «Искать также по ключевым значениям» и введите в поле поиска следующее:

xte 'mouseclick 2'

В нижней панели должен быть только один результат. Если есть еще, выберите тот, который содержит «/ desktop / gnome / keybindings / custom * / action» в названии. В правой верхней части введите «» (без кавычек) рядом с полем «привязка». Если вы получите тот же результат, что и я, все ваши окна будут изменены, и новая привязка клавиш ничего не изменит. Измените его обратно на то, что было (или сделайте его пустым) и откройте «Внешний вид» («Настройки» -> «Внешний вид» или «Внешний вид» в разделе поиска единства). Это должно решить проблему.

sentythee
источник
Большой! Мне не нужно было делать бит gconf-editor, пока он работает, я буду перепроверять после перезагрузки. Спасибо!
719016
Это больше не работает в Ubuntu 11.10 с классическим рабочим столом gnome-failsafe. Я уверен, что должен быть способ сделать то же самое.
719016
1

Для других (поскольку я обнаружил это несколько раз при поиске собственной мыши), у некоторых мышей Logitech есть несколько кнопок (на моем MX1100 они по умолчанию были кнопками «DPI +/-»), которые не отправляют сигнал на USB-приемник.

Это можно переопределить и заставить отчет мыши нажимать кнопку на вашем драйвере мыши, но этот процесс даже не близок к удобному для пользователя (или даже легко тиражируемому, так как он кажется различным для каждой мыши). Пакет «lomoco», очевидно, будет работать для некоторых пользователей, но некоторое время не обновлялся для более новых мышей.

Icehawk78
источник