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

7

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

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

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

    
задан 719016 25.05.2011 в 23:13
источник

3 ответа

10

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

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

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

sudo apt-get install xkbset

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

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

setxkbmap -layout gb

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

setxkbmap -query

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

rules:      evdev
model:      pc105
layout:     gb

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

xkbset m
xkbset exp =m

найдите

Отобразите меню . Для этого нам понадобится Menu key-code. В терминальном прогоне xev переместите указатель мыши в квадрат и нажмите клавишу Menu .

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

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

xmodmap-e"keycode 135 = Pointer_Button2"

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

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

Объединяя все это:

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

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

gedit ~/remapkeys

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

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

Сохранить. Предоставьте права на выполнение файла

chmod +x ~/remapkeys

Затем из поиска Dash для Запуск приложений или при использовании Gnome Classic - Приложения - Другое - Запуск приложений

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

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

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

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

    
ответ дан fossfreedom 26.10.2011 в 23:41
источник
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» в его имени. В верхней правой панели введите «» (без кавычек) рядом с полем «привязка». Если вы получите тот же результат, что и я, все ваши окна появятся, и новый keybinding ничего не сделает. Измените это до того, что было (или сделайте его пустым), и откройте «Внешний вид» («Настройки» - «Внешний вид» или «Внешний вид») в режиме поиска единства. Это должно решить проблему.

    
ответ дан sentythee 26.05.2011 в 02:57
1

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

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

    
ответ дан Icehawk78 10.08.2012 в 21:39