Як емуляція клацання правою кнопкою миші на сенсорному екрані?


9

У мого нового ноутбука сенсорного екрана немає кнопки меню (тобто той, який поводиться як клацання правою клавішею миші) - звичайно поруч із правою клавішею 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

Однак я не маю уявлення, що робити з цією інформацією ...

btw Я використовую Ubuntu 13.04.

Будь-яка допомога буде дуже вдячна ...


У мене точно така ж проблема з моїм aspire p3, ubuntu 14.04, функції правого клацання миші не працюють з сенсорним екраном :(
user65390

@ user65390 Ви спробували відповідь Фредді Шіллера ...
Ісмаїл Могул

1
ви повинні відредагувати це питання, щоб видалити видовище. Просто скажіть, як правою кнопкою миші натиснути на сенсорні екрани? Питання, на яке зараз відповіли, здається занадто технічним, щоб насправді відповідати на відповіді
Bhikkhu Subhuti

Відповіді:


12

Вам потрібно включити вторинний клік (як коментував AliNa) за gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true"допомогою редактора dconf або з ним.

Тоді можливо, що Ubuntu обробляє сенсорний екран частково, як тачпад, де дотик не викликає натискання миші. Натомість вам потрібно коротко торкнутись + торкнутись і утримувати.


На жаль, ця методика обмежена настільними середовищами на основі Gnome3, такими як Ubuntu. Довге натискання правою кнопкою миші також працює в Chrome / Chromium поза коробкою, але лише тому, що воно власно обробляє події, що торкаються.
таніус

6

Просто продовжуйте торкатися екрана протягом 2 або 3 секунд, і повинно з’явитися те, що називається "правильне меню". Це звичайний спосіб емуляції клацання правою кнопкою миші на будь-якому сенсорному екрані.


1
Ви, ймовірно, повинні ввімкнути спочатку вторинний клік, безпосередньо gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true"або через редактор Dconf
AliN

Я ввів вищезгадану команду в термінал, а потім навіть перейшов до універсальних налаштувань і зменшив затримку прийняття до хв. проте це все ще не вирішує проблему - коли я використовую мишу, меню все-таки з’являється, але при використанні сенсорного екрану воно не працює ...
Ісмаїл Могул

1
@IsmailM Тоді я думаю, що ви повинні поговорити про це з продавцем / виробником ...
Radu Rădeanu

@ RaduRădeanu Я приніс цей ноутбук від John Lewis із Windows 8 на ньому (а сенсорний екран належним чином працює у Windows 8). Ви все ще думаєте, що я повинен спілкуватися з ними, тому що я сам встановив ubuntu ...
Ісмаїл Могул

@IsmailM Так, слід.
Radu Rădeanu

1

Якщо у вас є сенсорний екран Wacom (за допомогою драйвера xf86-input-wacom) і він здатний принаймні двома пальчиком мультитач, тоді наведено наступне:

  1. Першим пальцем торкніться і утримуйте його.
  2. Тепер торкніться другим пальцем.

Якщо це ще не працює, дізнайтеся назву продукту свого сенсорного екрана xinput --listта ввімкніть цю функцію за допомогою:

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

Щоб зробити цю зміну постійною, дивіться мою іншу відповідь щодо техніки.

На відміну від довгих натискань правої клацання правою кнопкою миші в Gnome / Ubuntu Shell, це працює у всіх робочих середовищах, оскільки це (застаріла) функція на рівні драйвера. Просто пам’ятайте, що це може спричинити проблеми з клацанням лівою кнопкою миші на сенсорному екрані в деяких програмах, тому мені довелося вимкнути це в моїй системі.


0

Для тих , хто має на клавішу Меню на їх клавіатурі, нота в питанні про використання , що для створення правою кнопкою миші на насправді відмінна ідея. Оскільки це не очевидно, ось як це працює:

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

  2. Натисніть та відпустіть клавішу Меню. Вже під час події натискання клавіші спрацьовує правою кнопкою миші.

Очевидно, що ця техніка потребує двох рук, і зовсім неможливо на конвертованих ноутбуках у планшетному режимі. Тож воно має обмежене практичне використання.


0

З моїх відповідей на це запитання, це мій особистий фаворит.

Якщо у вас сенсорний екран, який підтримує щонайменше двопальцевий вхід з декількома дотиками, ви можете встановити toucheggта налаштувати його для інтерпретації (наприклад) двократного натискання правою кнопкою миші. Я спробував це під Lubuntu 18.10, і це працює.

1. Установка

touchegg доступний у сховищах Ubuntu 18.10, тому його можна встановити просто так:

sudo apt install touchegg

Щоб почати його, виконайте touchegg. Виконуючи його в терміналі, ви можете перевірити його вихід, чи правильно він виявляє ваші мультитач-жести.

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

2. Способи налаштування touchegg

Ви можете налаштувати toucheggдвома альтернативними способами:

  • Конфігурація з конфігураційним файлом. Відредагуйте файл ~/.config/touchegg/touchegg.conf. Щоб зміни були ефективними, виконайте такі дії в терміналі або через діалогове вікно Alt+ F2запуск:

    killall touchegg; touchegg
    
  • Конфігурація з графічним інтерфейсом. toucheggмає приємну конфігурацію GUI touchegg-gui, що називається , що видно тут . Однак він не є частиною toucheggпакету Ubuntu. Крім того, ви можете встановити графічний інтерфейс, 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(дається в мілісекундах) для завершення ваших дій для жестів, які складаються з декількох частин (як, наприклад, торкніться дотику), і лише потім інтерпретуватиме їх. Тож, використовуючи toucheggлише для одночасних жестів, таких як натискання правою кнопкою миші двома пальцями, ми можемо встановити це, 0щоб запобігти помітній затримці дій. Це також за замовчуванням у конфігураційному файлі, створеному компанією touchegg.

  • Принаймні з мого сенсорного екрана натискання двома пальцями не розпізнається при дотику до екрана обома пальцями точно в один і той же час. Але коли є навіть дуже невеликий часовий проміжок (так що можна почути два крани, ймовірно, ≥10 мс), він працює надійно. Тому я просто переміщую вказівний і середній палець з невеликим вертикальним зазором у напрямку екрана, і він працює надійно.

  • Клацніть правою кнопкою миші в місці розташування цього пальця (з двох у цьому жесті), який першим торкнеться екрана.

  • toucheggдозволяє інтерпретувати там усі події, які не були налаштовані для міхура до програми під курсором. Це добре, тому що вбудований "pinch-zoom" тощо, реалізований у Chromium, Chrome, Evince, наприклад, працює більш плавно, ніж через 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

Ви можете easystrokeстворювати клацання правою кнопкою миші за допомогою модифікатора плюс натискання, наприклад Ctrl+ Alt+ натискання. За допомогою додаткової конфігурації це доступ можна отримати одним рухом, лише за допомогою сенсорного екрана, див. Нижче.

Це дуже приємно, оскільки "модифікатор плюс торкніться", як клацання правою кнопкою миші не може бути налаштовано ні з одним touchegg(не розпізнає модифікаторів), mouseemu(не розпізнає дотики, оскільки у них відсутні скан-коди) або 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. На другій вкладці "Налаштування" натисніть "Кнопка жестів" і Ctrl+ Alt+ натисніть на сіре поле. Ctrl+, Altздається, найкращий вибір модифікатора, принаймні під LXQt, тому що:

    • І Shift+ клацання і Ctrl+ клацання використовуються для мульти-вибору вже і стане недоступним для цього , якщо призначені easystroke.
    • Alt, Superі будь-яка комбінація із залученими Superне буде помічена easystroke. Ймовірно, це проблема конігуляції LXQt або Openbox, але поки що я не міг її вирішити.
  3. На першій вкладці "Дії" натисніть "Додати дію".

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

    Залежно від модифікаторів, для попередження побічних ефектів спочатку важливо очистити модифікатори. Наприклад, Shift+ клацання правою кнопкою миші в Chrome призведе до вибору тексту. Крім того, очищення модифікаторів необхідне для запобігання застряглим модифікаторам при запуску цих натискань клавіш за допомогою програмного забезпечення (див. Розділ 3 нижче). Якщо не очистити модифікатори самостійно перед виконанням команди, можна вважати помилку easystroke.

  5. Клацніть «Записати обведення» і запишіть один дотик.

  6. Ви можете відключити (тут досить марні) спливаючі вікна в розділі "Налаштування → Зовнішній вигляд → Показати спливаючі вікна".

  7. Ви можете обмежити розпізнавання жестів лише своїм сенсорним екраном і, можливо, пристроєм введення пера в розділі "Додаткові → Пристрої".

Тепер натискання Ctrl+ Alt+ створить клацання правою кнопкою миші.

Зауважте, він easystrokeмає чудове розпізнавання жестів для жестів одним натисканням ("малювання фігур на екрані"), які можна використовувати для автоматизації багатьох завдань під час використання сенсорного екрану. Це його головне призначення, тоді як емуляція правою кнопкою миші - лише побічний ефект.

3. Покращення: натискання правою кнопкою миші лише на дотик

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

Ось рецепт Lubuntu (LXQt) та використання модифікатора Ctrl+, Altвибраного вище, але принцип однаковий у всіх середовищах настільних комп’ютерів та у всіх модифікаторах: спеціальна запис швидкого запуску на панелі.

  1. Створіть власну піктограму для запису швидкого запуску та збережіть її як ~/.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. Додайте ще один віджет для швидкого запуску на панель LXQt. Хоча в принципі ви також можете змінювати існуючий, я виявив, що розміщений у нижньому правому куті екрана є найбільш природним для праворуч, а також випадкові помилки відображатимуть лише дату (якщо це те, що знаходиться поруч із ліворуч, як у моєму випадку) замість того, щоб почати якесь велике застосування.

  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 → Налаштування сесії".
    2. Виберіть "Основні настройки → Модулі LXQt → Панель".
    3. Натисніть "Зупинити".
    4. Натисніть "Почати".

     

    (Ви також можете виконати killall lxqt-panel && lxqt-panelв діалоговому вікні Alt+ F2запуск, але це буде заважати статусу панелі, розпізнаваному у вищезгаданому діалоговому вікні. Якщо ви змішите обидві методи, у вас буде дві панелі, що працюють один на одного, причому на одній відсутній деяка панель Значок краще. Не краще. Це все ще баггі.)

Крім того, якщо у вас є спеціальні апаратні кнопки збоку від сенсорного екрану, ви можете призначити xdotool keydown ctrl altкоманду одному з них.

4. Інші вдосконалення та усунення несправностей

  • Як приємний побічний ефект, вищенаведена техніка для натискання правою кнопкою миші також дає можливість одноручним доступом до всіх інших жестів, які ви, можливо, налаштували easystroke. Це досить потужна функція для автоматизації використання сенсорного екрану.

  • Коли ви налаштовуєте інші жести easystroke, пам’ятайте про наступну помилку: easystrokeне очищає вибрані нами модифікатори, перш ніж робити налаштовану дію. Типи дій "Ключ" і "Текст" призводять до комбінацій клавіш разом із Ctrl+ Altу випадку, що є вище, що робить їх непридатними. В якості вирішення замість цього виберіть тип дії «Command» та очистіть модифікатори самостійно так само, як вище. Отже, щоб запустити Ctrl+ V, командою було б:

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

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

  • Якщо ви коли-небудь стикалися з модифікаторами під час тестування, натискання та звільнення клавіш модифікатора на фізичній клавіатурі виправить умову.

  • Іноді під час тестування цих речей мої LXQt події на клавіатурі та миші дуже сильно заплуталися. У такому випадку допомогло лише вихід із графічного середовища та вхід знову.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.