Как эмулировать нажатие правой кнопки мыши на сенсорном экране?

Мой новый ноутбук с сенсорным экраном не имеет кнопки меню (то есть та, которая ведет себя как щелчок правой кнопкой мыши) - та, что обычно рядом с правой клавишей 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.

Любая помощь будет наиболее ценной ...

9
задан 16 September 2013 в 15:18

6 ответов

Просто продолжайте прикасаться к экрану в течение 2 или 3 секунд, и должно появиться так называемое «правильное меню». Это нормальный способ эмулировать щелчок правой кнопкой мыши на любом сенсорном экране.

0
ответ дан 16 September 2013 в 15:18

Вам нужно включить вторичный клик (как прокомментировал АлиНа) с помощью gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true" или с помощью редактора dconf.

Тогда возможно, что Ubuntu обрабатывает сенсорный экран частично как тачпад, когда прикосновение не вызывает нажатия мыши. Вместо этого вам нужно нажать + коснуться и удерживать.

0
ответ дан 16 September 2013 в 15:18

Если у Вас будет сенсорный экран Wacom (использование драйвера xf86-input-wacom), и это способно к, по крайней мере, с двумя пальцами мультисенсорный, то следующее произведет щелчок правой кнопкой:

  1. Касаться-и-держаться-одинаковых-взглядов первый палец.
  2. Теперь касание со вторым пальцем.

, Если это еще не работает, узнайте название продукта своего сенсорного экрана от xinput --list и затем активируйте эту опцию с:

xsetwacom --set "[your touchscreen product id]" Gesture on

Для внесения этого изменения постоянным см. мой другой ответ для техники.

В отличие от длинного нажатия щелкает правой кнопкой под Gnome / Ubuntu Shell, это работает во всех настольных средах, потому что это - функция уровня драйвера (прежней версии). Просто знайте, что это может вызвать проблемы с щелчком левой кнопкой сенсорным экраном в некоторых программах, который является, почему я должен был отключить его в своей системе.

1
ответ дан 10 October 2019 в 10:22

Для тех, кто имеет в‰Ј Клавиша меню на их клавиатуре, примечание в вопросе об использовании этого для создания щелчка правой кнопкой является на самом деле прекрасной идеей. Так как это не очевидно, вот то, как это работает:

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

  2. Нажатие и выпуск в‰Ј Клавиша меню. Уже на событии нажатия клавиши, щелчок правой кнопкой инициирован.

, Очевидно, эта техника нужна в двух руках и абсолютно невозможна на конвертируемых ноутбуках в режиме планшета. Таким образом, это имеет ограниченное практическое применение.

0
ответ дан 10 October 2019 в 10:22

Из моих ответов на этот вопрос это - мой любимый.

Если у Вас есть сенсорный экран, который поддерживает, по крайней мере, мультисенсорный вход с двумя пальцами, можно установить touchegg и настройте его для интерпретации (например), касания с двумя пальцами как щелчка правой кнопкой. Я попробовал это под Lubuntu 18.10, и он работает.

1. Установка

touchegg доступно в репозиториях Ubuntu 18.10, таким образом, можно установить его просто как это:

sudo apt install touchegg

Для запуска его выполниться touchegg. При выполнении его в терминале можно проверить от его вывода, если это обнаруживает мультисенсорные жесты правильно.

Сделать touchegg запустите автоматически для каждой сессии LXQt, просто добавьте его для Автозапуска (меню LXQt → Предпочтения → LXQt Настройки → настройки Session → Автоматический запуск).

2. Способы настроить 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
    

3. Конфигурация для эмуляции щелчка правой кнопкой

Для конфигурирования щелчка правой кнопкой с двумя касаниями пальца можно использовать этот файл конфигурации для ~/.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 без интерференции. Конечно, они не должны быть настроены, чтобы быть инициированными теми же событиями.

4. Поиск и устранение неисправностей

  • 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 распознать.

0
ответ дан 10 October 2019 в 10:22

Можно использовать easystroke создать щелкает правой кнопкой с модификатором плюс касание, такое как Ctrl + Высокий звук + касание. С дополнительной конфигурацией к этому можно получить доступ единолично только с сенсорным экраном, видеть ниже.

Это довольно хорошо, как "модификатор плюс касание", поскольку щелчок правой кнопкой не может быть настроен ни с одним из touchegg (не распознает модификаторы), mouseemu (не распознает касания, поскольку они испытывают недостаток в scancodes), или xsetwacom "…" set Button 1 … (не распознает касания, поскольку палец ввел, не событие кнопки в драйвере).

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

2. Конфигурация

  1. Запустите программу с easystroke.

  2. Под второй вкладкой "Preferences" нажмите "Gesture Button" и Ctrl +, Высокий звук + наслаждается серым полем. Ctrl + Высокий звук, кажется, лучший выбор модификатора, по крайней мере, под LXQt, потому что:

    • Оба Сдвига + щелчок и Ctrl + щелчок уже используется для мультивыбора и стал бы недоступным этому, если присвоено easystroke.
    • Высокий звук, Супер и любая комбинация, включающая Супер, не будут замечены easystroke. Это - вероятно, LXQt или проблема Openbox coniguration, но я не мог разрешить его до сих пор.
  3. Под первой вкладкой "Actions" нажмите "Add Action".

  4. Настройте свое действие с "Типом: Команда" и "Детали: xdotool keyup ctrl alt; xdotool click 3". Адаптируйтесь согласно своим выбранным модификаторам.

    В зависимости от модификаторов, очищая модификаторы сначала важно для предотвращения побочных эффектов. Например, Сдвиг + щелкает правой кнопкой в Chrome, привел бы к текстовому выбору. Кроме того, очистка модификаторов явно необходима для предотвращения застрявших модификаторов при инициировании этих нажатий клавиш с программным обеспечением (см. раздел 3 ниже). Очистку модификаторов самостоятельно прежде, чем выполнить команду можно было считать ошибкой в easystroke.

  5. Нажмите "Record Stroke" и запишите единственное касание.

  6. Можно отключить (здесь довольно бесполезный) всплывающие окна под "Предпочтениями → Появление → Выставочные Всплывающие окна".

  7. Можно ограничить это распознавание жеста только сенсорным экраном и возможно перьевым устройством ввода данных под "Усовершенствованными → Устройствами".

Теперь, Ctrl + Высокий звук + касание создаст щелчок правой кнопкой.

Отметьте это easystroke имеет большое распознавание жеста для одно-сенсорных жестов ("тянущий формы на экране"), который можно использовать для автоматизации многих задач при использовании сенсорного экрана. Это - ее основная цель, в то время как щелкают правой кнопкой по эмуляции, просто побочный эффект.

3. Улучшение: щелчки правой кнопкой только для касания

Теперь давайте улучшим эту конфигурацию так, чтобы можно было инициировать, щелкает правой кнопкой всего одной рукой и сенсорным экраном путем (1) ответвления по специальной экранной кнопке, которая будет означать, что "следующее касание является щелчком правой кнопкой" и (2) затем касаясь по экрану просто обычно.

Вот рецепт для Lubuntu (LXQt) и использования Ctrl + модификатор Высокого звука, выбранный выше, но принцип является тем же во всех настольных средах и со всеми модификаторами: пользовательская quicklaunch запись в панели.

  1. Создайте пользовательский значок для своей quicklaunch записи и сохраните ее как ~/.icons/default/rightclick.png.

  2. Создайте пользовательское .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
    
  3. Добавьте другой quicklaunch виджет к своей панели LXQt. В то время как в принципе можно также изменить существующий, я нашел, что один помещенный в правом нижнем угле экрана является самым естественным для операции, выполненной правой рукой, и также случайный misclicks только покажет дату (если это будет тем, что рядом с левыми, как в моем случае) вместо того, чтобы запустить некоторое крупное приложение.

  4. Открытый ~/.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
    
  5. Перезапустите панель LXQt для внесения изменений эффективными. Для этого:

    1. Войдите "в меню LXQt → Предпочтения → LXQt Настройки → настройки Session".
    2. Выберите "основные настройки → LXQt модули → панель".
    3. Нажмите "Stop".
    4. Нажмите "Start".

    (Вы могли также выполниться killall lxqt-panel && lxqt-panel в Высоком звуке + F2 запускают диалоговое окно, но это вмешается в состояние панели, распознанное в вышеупомянутом диалоговом окне, и если бы Вы смешиваете оба метода, у Вас было бы две панели, работающие друг на друге с одним отсутствием некоторых значков панелей. Настолько лучше не делайте. Это все еще ошибочно.)

Кроме того, если у Вас есть кнопки специального оборудования со стороны сенсорного экрана, Вы могли бы присвоиться xdotool keydown ctrl alt управляйте одному из них вместо этого.

4. Другие улучшения и поиск и устранение неисправностей

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

  • Когда Вы настраиваете другие жесты в easystroke, знайте о следующей ошибке: easystroke не очищает наши выбранные модификаторы прежде, чем сделать настроенное действие. Действие вводит "Ключ" и "текст" весь результат в сочетаниях клавиш вместе с Ctrl + Высокий звук в случае выше, который делает их неприменимыми. Как обходное решение, выберите тип действия "Команда" вместо этого и очистите модификаторы сами тот же путь как выше. Таким образом для инициирования Ctrl + V команда была бы:

    xdotool keyup ctrl alt; xdotool key "ctrl+v"
    

    ( xdotool опция --clearmodifiers не помогает здесь, поскольку это только отключает модификаторы во время сочетания клавиш для выполнения и повторно применяет их впоследствии. Который в этом случае сделал бы следующее касание щелчком правой кнопкой согласно технике выше, но мы не захотим это в этом случае.)

  • Если Вы когда-нибудь засовывали модификаторы во время тестирования, нажатие и выпуск модифицирующих клавиш на физической клавиатуре зафиксируют условие.

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

  • Самый чистый способ реализовать сделанную без посторонней помощи операцию только для касания в easystroke, включая для случая щелчков правой кнопкой как требуется здесь, был бы то, что касание на easystroke значок панелей приносит его в то же внутреннее состояние как наш пользовательский значок панелей, настроенный выше, но на самом деле не изменяя состояние модификатора клавиатуры, потому что это может привести к застрявшим модификаторам и т.д. Показать easystroke окно, нужно было бы затем использовать контекстное меню его значка панелей. Очевидно, это требует некоторых изменений в easystroke код.

0
ответ дан 10 October 2019 в 10:22

Другие вопросы по тегам:

Похожие вопросы: