Включить эмуляцию средней кнопки мыши при входе в Gnome (Ubuntu)

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

Я считаю, что гораздо проще просто щелкнуть левой и правой кнопками мыши одновременно. И я использую эту функцию все время.

У меня есть скрипт в ~/scripts/mouse.sh, который делает это:

#!/bin/bash

# Enable middle button emulation
# from https://askubuntu.com/a/201825/54278
if [[ -n ${DISPLAY} ]]; then
    pointer1="MX Master"
    id1=$(xinput | awk -F= "/$pointer1.*pointer/ {print \$2}" | cut -f1)
    xinput set-prop "${id1}" "libinput Middle Emulation Enabled" 1
fi

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

Я создал ~/.config/autostart/mouse.sh.desktop. Это содержимое:

[Desktop Entry]
Type=Application
Exec=/home/david/.scripts/mouse.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_AU]=Mouse
Name=Mouse
Comment[en_AU]=Middle button emulation
Comment=Middle button emulation

Моя проблема в том, что мой скрипт ничего не делает при входе в систему .

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

Я попытался удалить условие if [[ -n ${DISPLAY} ]]; then и попытался добавить sleep в начале сценария.

Я также попытался добавить содержимое моего скрипта в ~/.profile.

1125 Ничего из этого не сработало. Это беспокоило меня годами!

Спасибо, что посмотрели: -)


Правки

  1. Также пробовали Exec=/bin/bash /home/david/.scripts/mouse.sh. Спасибо @PRATAP
  2. Ubuntu 19.04, хотя он также не работал в последних нескольких версиях, включая 18.04
  3. Попытался удалить файл .desktop и использовать графический интерфейс запуска приложений
  4. Попытался снять условие if [[ -n ${DISPLAY} ]]; then
  5. У меня была вспышка вдохновения и попытался использовать Exec=/usr/bin/xterm -e /home/david/.scripts/mouse.sh - тоже не повезло
1
задан 17 June 2019 в 04:08

1 ответ

То, что сработало для меня, это следующий сценарий

/home/user/mouse.sh

#!/bin/bash

    pointer1="Logitech USB Receiver Mouse"
    id1=$(xinput | awk -F= "/$pointer1.*pointer/ {print \$2}" | cut -f1)
    xinput set-prop "${id1}" "libinput Middle Emulation Enabled" 1

некоторые из результатов xinput

$ xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=11   [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver Consumer Control    id=16   [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver Mouse               id=18   [slave  pointer  (2)]

и добавил команда /bin/bash /home/user/mouse.sh в настройках запуска приложений.

enter image description here

1
ответ дан 17 June 2019 в 04:08

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

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