Мой новый ноутбук с сенсорным экраном не имеет кнопки меню (то есть та, которая ведет себя как щелчок правой кнопкой мыши) - та, что обычно рядом с правой клавишей Ctrl.
, поскольку вы не можете щелкнуть левой кнопкой мыши на ощупь, я пытаюсь создать настраиваемое сочетание клавиш для Alt GR для этой функции (в разделе «Система»> «Клавиатура»> «Сочетания клавиш»> «Настраиваемые сочетания клавиш»)
При использовании команды xev
с помощью встроенной клавиатуры (у которой есть кнопка меню) я обнаружил, что информация о кнопке:
KeyRelease event, serial 42, synthetic NO, window 0x4800001,
root 0xab, subw 0x0, time 2544690, (1236,607), root:(1302,1050),
state 0x0, keycode 135 (keysym 0xff67, Menu), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Однако я понятия не имею, что делать с этой информацией ...
Кстати, я использую Ubuntu 13.04.
Любая помощь будет наиболее ценной ...
Просто продолжайте прикасаться к экрану в течение 2 или 3 секунд, и должно появиться так называемое «правильное меню». Это нормальный способ эмулировать щелчок правой кнопкой мыши на любом сенсорном экране.
Вам нужно включить вторичный клик (как прокомментировал АлиНа) с помощью gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true"
или с помощью редактора dconf.
Тогда возможно, что Ubuntu обрабатывает сенсорный экран частично как тачпад, когда прикосновение не вызывает нажатия мыши. Вместо этого вам нужно нажать + коснуться и удерживать.
Если у Вас будет сенсорный экран Wacom (использование драйвера xf86-input-wacom
), и это способно к, по крайней мере, с двумя пальцами мультисенсорный, то следующее произведет щелчок правой кнопкой:
, Если это еще не работает, узнайте название продукта своего сенсорного экрана от xinput --list
и затем активируйте эту опцию с:
xsetwacom --set "[your touchscreen product id]" Gesture on
Для внесения этого изменения постоянным см. мой другой ответ для техники.
В отличие от длинного нажатия щелкает правой кнопкой под Gnome / Ubuntu Shell, это работает во всех настольных средах, потому что это - функция уровня драйвера (прежней версии). Просто знайте, что это может вызвать проблемы с щелчком левой кнопкой сенсорным экраном в некоторых программах, который является, почему я должен был отключить его в своей системе.
Для тех, кто имеет в‰Ј Клавиша меню на их клавиатуре, примечание в вопросе об использовании этого для создания щелчка правой кнопкой является на самом деле прекрасной идеей. Так как это не очевидно, вот то, как это работает:
Касаться-и-содержать экран с одним пальцем. не выпускают палец, поскольку это инициировало бы щелчок левой кнопкой, который мог бы иметь нежелательные эффекты в Вашем приложении. Касаться-и-содержать однако похож на нажатие и не отпускание левой кнопки мыши, и обычно никакое действие в приложении не следует из этого. Но, положение указателя мыши уже сменилось туда, где мы хотим щелкнуть правой кнопкой, который является, почему мы делаем этот шаг.
Нажатие и выпуск в‰Ј Клавиша меню. Уже на событии нажатия клавиши, щелчок правой кнопкой инициирован.
, Очевидно, эта техника нужна в двух руках и абсолютно невозможна на конвертируемых ноутбуках в режиме планшета. Таким образом, это имеет ограниченное практическое применение.
Из моих ответов на этот вопрос это - мой любимый.
Если у Вас есть сенсорный экран, который поддерживает, по крайней мере, мультисенсорный вход с двумя пальцами, можно установить touchegg
и настройте его для интерпретации (например), касания с двумя пальцами как щелчка правой кнопкой. Я попробовал это под Lubuntu 18.10, и он работает.
touchegg
доступно в репозиториях Ubuntu 18.10, таким образом, можно установить его просто как это:
sudo apt install touchegg
Для запуска его выполниться touchegg
. При выполнении его в терминале можно проверить от его вывода, если это обнаруживает мультисенсорные жесты правильно.
Сделать touchegg
запустите автоматически для каждой сессии LXQt, просто добавьте его для Автозапуска (меню LXQt → Предпочтения → LXQt Настройки → настройки Session → Автоматический запуск).
touchegg
Можно настроить touchegg
двумя альтернативными способами:
Конфигурация с файлом конфигурации. Отредактируйте файл ~/.config/touchegg/touchegg.conf
. Для внесения изменений эффективными выполните следующее в терминале или через Высокий звук + F2 выполненное диалоговое окно:
killall touchegg; touchegg
Конфигурация с GUI. touchegg
имеет хорошую конфигурацию названный GUI touchegg-gui
, который замечен здесь. Однако это не часть touchegg
Пакет Ubuntu. С другой стороны, можно установить GUI touchegg-gce
как описано здесь. touchegg-gce
работы, но необходимо вручную перезапустить touchegg
после сохранения изменений в его конфигурационном файле, снова путем выполнения:
killall touchegg; touchegg
Для конфигурирования щелчка правой кнопкой с двумя касаниями пальца можно использовать этот файл конфигурации для ~/.config/touchegg/touchegg.conf
:
<touchégg>
<settings>
<property name="composed_gestures_time">0</property>
</settings>
<application name="All">
<gesture type="TAP" fingers="2" direction="">
<action type="MOUSE_CLICK">BUTTON=3</action>
</gesture>
</application>
</touchégg>
Комментарии touchegg
конфигурация:
Два касания пальца, щелкающие правой кнопкой как показано выше, в настоящее время уже содержатся в конфигурационном файле по умолчанию, который идет touchegg
. (Ubuntu 18.10 здесь.)
Программа будет ожидать composed_gestures_time
(данный в миллисекундах), чтобы Вы завершили свои действия для жестов, которые состоят из нескольких частей (как касания touble) и только затем интерпретируют их. Таким образом, при использовании touchegg
только для жестов единственной части, таких как щелчок правой кнопкой с двумя касаниями пальца, мы можем установить это на 0
предотвратить любую значимую задержку действий. Это - также значение по умолчанию в файле конфигурации, созданном touchegg
.
По крайней мере, с моим сенсорным экраном, два ответвления пальца не распознаны при касании экрана с обоими пальцами в точно то же время. Но когда существует даже очень небольшой разрыв времени (так, чтобы два касания можно было услышать, вероятно, ≥10 мс), он работает надежно. Таким образом, я просто перемещаю указательный палец и средний палец с небольшим вертикальным разрывом к экрану, и он работает надежно.
Щелчок правой кнопкой будет инициирован в местоположении того пальца (из двух в этом жесте), который касается экрана сначала.
touchegg
позволяет всем событиям, что это не было настроено для пузыря до appication под курсором, который будет интерпретироваться там. Это хорошо, потому что собственное масштабирование повышения, и т.д. реализованное в Хроме, Chrome, Проявляет, например, прокладывает себе путь более гладкий, чем через touchegg
.
touchegg
может использоваться рядом (очень рекомендуемый!) одно-сенсорное программное обеспечение распознавания жеста easystroke
без интерференции. Конечно, они не должны быть настроены, чтобы быть инициированными теми же событиями.
touchegg
может остановиться для работы после цикла приостанавливать-и-возобновлять. Я все еще должен найти путь так, чтобы он перезапустил автоматически.
По крайней мере, для меня и других, touchegg
только интерпретирует сенсорные события на сенсорном экране, не на сенсорной панели. В этом случае это желаемо. Это может быть, потому что моя сенсорная панель использует драйвер, который не выставляет мультисенсорные события X-серверу (synaptics
вместо libinput
). Можно проверить который устройства touchegg
связывает с путем запуска его с GEIS_DEBUG=3 touchegg
.
Если touchegg
вызывает своего рода "застрявшую половину щелчка" для всех программ, куда касания переместят указатель мыши, но больше не инициируют, щелкает левой кнопкой: это не его нормальное поведение. В соответствии с Ubuntu 18.10 с LXQt, я не имел этого сначала, но затем имел его через несколько перезапусков touchegg
и даже перезапуски целого компьютера. Это исчезло после запуска рабочего стола Ubuntu по умолчанию и затем возврата LXQt.
Фиксация в touchegg
конфигурационный файл путем установки дополнительного жеста для ответвления с одним пальцем зафиксирует "застрявшую половину щелчка", но другого проступка touchegg
это идет с этой ошибкой, остается, таким образом, это не реальная фиксация. Тот проступок включает тот (1) touchegg
теперь также использует все события, что это не настроено для, по крайней мере, события для одного пальца, и (2) некоторые основанные на Java программы (freemind
например), теперь пострадает от обратной проблемы с "застрявшей половиной щелчков", где позиция курсора застрянет, но щелчки левой кнопкой мыши зарегистрируются. Это временно фиксируется путем выполнения действия с двумя пальцами в основанной на Java программе, для touchegg
распознать.
Можно использовать easystroke
создать щелкает правой кнопкой с модификатором плюс касание, такое как Ctrl + Высокий звук + касание. С дополнительной конфигурацией к этому можно получить доступ единолично только с сенсорным экраном, видеть ниже.
Это довольно хорошо, как "модификатор плюс касание", поскольку щелчок правой кнопкой не может быть настроен ни с одним из touchegg
(не распознает модификаторы), mouseemu
(не распознает касания, поскольку они испытывают недостаток в scancodes), или xsetwacom "…" set Button 1 …
(не распознает касания, поскольку палец ввел, не событие кнопки в драйвере).
easystroke
программа только минимально сохраняется прямо сейчас, но в информации о версии они связываются с недавним пакетом Ubuntu, основывался на Ubuntu 18.04. Это работало хорошо на меня (Ubuntu 18.10 здесь). Можно установить его следующим образом:
wget http://openartisthq.org/easystroke/easystroke_0.6.0-0ubuntu8_amd64.deb
sudo apt install ./easystroke_0.6.0-0ubuntu8_amd64.deb
Запустите программу с easystroke
.
Под второй вкладкой "Preferences" нажмите "Gesture Button" и Ctrl +, Высокий звук + наслаждается серым полем. Ctrl + Высокий звук, кажется, лучший выбор модификатора, по крайней мере, под LXQt, потому что:
easystroke
.easystroke
. Это - вероятно, LXQt или проблема Openbox coniguration, но я не мог разрешить его до сих пор.Под первой вкладкой "Actions" нажмите "Add Action".
Настройте свое действие с "Типом: Команда" и "Детали: xdotool keyup ctrl alt; xdotool click 3
". Адаптируйтесь согласно своим выбранным модификаторам.
В зависимости от модификаторов, очищая модификаторы сначала важно для предотвращения побочных эффектов. Например, Сдвиг + щелкает правой кнопкой в Chrome, привел бы к текстовому выбору. Кроме того, очистка модификаторов явно необходима для предотвращения застрявших модификаторов при инициировании этих нажатий клавиш с программным обеспечением (см. раздел 3 ниже). Очистку модификаторов самостоятельно прежде, чем выполнить команду можно было считать ошибкой в easystroke
.
Нажмите "Record Stroke" и запишите единственное касание.
Можно отключить (здесь довольно бесполезный) всплывающие окна под "Предпочтениями → Появление → Выставочные Всплывающие окна".
Можно ограничить это распознавание жеста только сенсорным экраном и возможно перьевым устройством ввода данных под "Усовершенствованными → Устройствами".
Теперь, Ctrl + Высокий звук + касание создаст щелчок правой кнопкой.
Отметьте это easystroke
имеет большое распознавание жеста для одно-сенсорных жестов ("тянущий формы на экране"), который можно использовать для автоматизации многих задач при использовании сенсорного экрана. Это - ее основная цель, в то время как щелкают правой кнопкой по эмуляции, просто побочный эффект.
Теперь давайте улучшим эту конфигурацию так, чтобы можно было инициировать, щелкает правой кнопкой всего одной рукой и сенсорным экраном путем (1) ответвления по специальной экранной кнопке, которая будет означать, что "следующее касание является щелчком правой кнопкой" и (2) затем касаясь по экрану просто обычно.
Вот рецепт для Lubuntu (LXQt) и использования Ctrl + модификатор Высокого звука, выбранный выше, но принцип является тем же во всех настольных средах и со всеми модификаторами: пользовательская quicklaunch запись в панели.
Создайте пользовательский значок для своей quicklaunch записи и сохраните ее как ~/.icons/default/rightclick.png
.
Создайте пользовательское .desktop
файл и сохраняет его как .local/share/applications/rightclick.desktop
, со следующим содержанием. Обратите внимание, что необходимо предоставить username
для полного пути.
[Desktop Entry]
Name=Rightclick
Comment=Next tap is a rightclick via Ctrl + Alt + easystroke gesture.
Icon=/home/matthias/.icons/default/rightclick.png
Exec=xdotool keydown ctrl alt
Type=Application
Categories=System;Utility;
StartupWMClass=localdomain.rightclick
Добавьте другой quicklaunch виджет к своей панели LXQt. В то время как в принципе можно также изменить существующий, я нашел, что один помещенный в правом нижнем угле экрана является самым естественным для операции, выполненной правой рукой, и также случайный misclicks только покажет дату (если это будет тем, что рядом с левыми, как в моем случае) вместо того, чтобы запустить некоторое крупное приложение.
Открытый ~/.config/lxqt/panel.conf
и скорректируйте новое [quicklaunch2]
раздел для обращения к пользовательскому .desktop
файл. Снова, необходимо предоставить username
. Пример, как это может посмотреть:
[quicklaunch2]
alignment=Left
apps\1\desktop=/home/username/.local/share/applications/rightclick.desktop
apps\size=1
type=quicklaunch
Перезапустите панель LXQt для внесения изменений эффективными. Для этого:
(Вы могли также выполниться killall lxqt-panel && lxqt-panel
в Высоком звуке + F2 запускают диалоговое окно, но это вмешается в состояние панели, распознанное в вышеупомянутом диалоговом окне, и если бы Вы смешиваете оба метода, у Вас было бы две панели, работающие друг на друге с одним отсутствием некоторых значков панелей. Настолько лучше не делайте. Это все еще ошибочно.)
Кроме того, если у Вас есть кнопки специального оборудования со стороны сенсорного экрана, Вы могли бы присвоиться xdotool keydown ctrl alt
управляйте одному из них вместо этого.
Как хороший побочный эффект, вышеупомянутая техника для щелчков правой кнопкой только для касания также включает сделанный без посторонней помощи доступ ко всем другим жестам, в которых Вы, возможно, настроили easystroke
. Это - довольно мощная функция для автоматизации использования с сенсорным экраном.
Когда Вы настраиваете другие жесты в easystroke
, знайте о следующей ошибке: easystroke
не очищает наши выбранные модификаторы прежде, чем сделать настроенное действие. Действие вводит "Ключ" и "текст" весь результат в сочетаниях клавиш вместе с Ctrl + Высокий звук в случае выше, который делает их неприменимыми. Как обходное решение, выберите тип действия "Команда" вместо этого и очистите модификаторы сами тот же путь как выше. Таким образом для инициирования Ctrl + V команда была бы:
xdotool keyup ctrl alt; xdotool key "ctrl+v"
( xdotool
опция --clearmodifiers
не помогает здесь, поскольку это только отключает модификаторы во время сочетания клавиш для выполнения и повторно применяет их впоследствии. Который в этом случае сделал бы следующее касание щелчком правой кнопкой согласно технике выше, но мы не захотим это в этом случае.)
Если Вы когда-нибудь засовывали модификаторы во время тестирования, нажатие и выпуск модифицирующих клавиш на физической клавиатуре зафиксируют условие.
Иногда во время тестирования этих вещей, мой LXQt мои события клавиатуры и события от нажатия мыши стали бы очень испорченными. В таком случае, только регистрирующемся из графической среды и входящем в систему снова, помог.
Самый чистый способ реализовать сделанную без посторонней помощи операцию только для касания в easystroke
, включая для случая щелчков правой кнопкой как требуется здесь, был бы то, что касание на easystroke
значок панелей приносит его в то же внутреннее состояние как наш пользовательский значок панелей, настроенный выше, но на самом деле не изменяя состояние модификатора клавиатуры, потому что это может привести к застрявшим модификаторам и т.д. Показать easystroke
окно, нужно было бы затем использовать контекстное меню его значка панелей. Очевидно, это требует некоторых изменений в easystroke
код.