![Включить эмуляцию средней кнопки мыши при входе в Gnome (Ubuntu)](https://rvso.com/image/912797/%D0%92%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%20%D1%8D%D0%BC%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D1%8E%20%D1%81%D1%80%D0%B5%D0%B4%D0%BD%D0%B5%D0%B9%20%D0%BA%D0%BD%D0%BE%D0%BF%D0%BA%D0%B8%20%D0%BC%D1%8B%D1%88%D0%B8%20%D0%BF%D1%80%D0%B8%20%D0%B2%D1%85%D0%BE%D0%B4%D0%B5%20%D0%B2%20Gnome%20(Ubuntu).png)
Мне нравится использовать эмуляцию средней кнопки мыши, потому что моя средняя кнопка мыши — это колесо прокрутки, и для регистрации щелчка требуется сильное нажатие. Это довольно быстро становится физически болезненным.
Мне гораздо проще просто нажать левую и правую кнопки мыши одновременно. И я пользуюсь этой функцией постоянно.
У меня есть скрипт, ~/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
.
Ничего из этого не сработало. Это беспокоит меня уже много лет!
Спасибо, что заглянули :-)
Редактирует
- Тоже попробовал
Exec=/bin/bash /home/david/.scripts/mouse.sh
. Спасибо @PRATAP - Ubuntu 19.04, хотя это также не работало в последних нескольких версиях, включая 18.04
- Попробовал удалить файл .desktop и использовать графический интерфейс запуска приложений
- Попробовал убрать
if [[ -n ${DISPLAY} ]]; then
условие - У меня было озарение, и я попробовал использовать
Exec=/usr/bin/xterm -e /home/david/.scripts/mouse.sh
- тоже безуспешно.
решение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
в настройки запускаемых приложений.