中マウスボタンのエミュレーションを使用するのが好きです。これは、中マウスボタンがスクロールホイールであり、クリックを記録するのに多くのプレッシャーがかかるためです。これはかなりすぐに肉体的に苦痛になります。
マウスの左ボタンと右ボタンを同時にクリックする方がはるかに簡単です。そして、私はいつもこの機能を使用しています。
これを行うスクリプトが~/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
も試しました。ありがとう@PRATAPif [[ -n ${DISPLAY} ]]; then
状態を削除しようとしましたExec=/usr/bin/xterm -e /home/david/.scripts/mouse.sh
を使ってみた-運も悪い私のために働いたのは以下のスクリプトです
/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
を追加しました。