not have function key
/ fn そのために:(.
何か案は?たぶん設定やコマンドがありますか?
他の主題は役に立たなかった:
gpointing-device-settings
(自動無効化設定はチェックされません);kde-config-touchpad
(単独ではインストールできません);udevd
.解決策-自動ではない
以下のスクリプトを実行すると、マウスが接続されている場合はタッチパッドを無効にしますが表示され、通知が表示されます。
touchpad_id=$(xinput | grep -i "touchpad" | cut -f2 | cut -d '=' -f2);
if xinput | grep -i "mouse" | grep -i "pointer"
then xinput set-prop $touchpad_id "Device Enabled" 0 |
notify-send "Disabling the touchpad..." ""
else xinput set-prop $touchpad_id "Device Enabled" 1 |
notify-send "The touchpad is now enabled." ""
fi
私の場合、とにかくマウスの切断時にタッチパッドが有効になりますが、逆の状況も追加されました。スクリプトをファイルに保存し、マウスを接続するたびにUnity Launcher
Terminal
セクションから実行しています。
高度な
他のマウス?
mouse
デバイスリストに基づいた名前、"mouse"
フラグメントの値を展開して、タッチパッドを無効にするxinput
を明確にします。
怖がっているマウスがエッジからエッジに走りますか?
マウスに対して追加のコマンドを実行する必要がありました-cursor acceleration
を減らすと、接続ごとに狂って10に設定されるためです。実際、しばらくしてから自動検出スクリプトを作成しました(マウスIDと速度のプロップを取得します。cut
のパフォーマンスについては知らない)...
touchpad_id=$(xinput | grep -i "touchpad" | cut -f2 | cut -d '=' -f2);
mouse_id=$(xinput | grep -i "mouse" | grep -i 'pointer' | cut -f2 | cut -d '=' -f2);
mouse_prop=$(xinput list-props $mouse_id | grep -i "velocity" | cut -f2 | cut -d '(' -f2 | cut -d ')' -f1 );
if xinput | grep -i "mouse" | grep -i "pointer"
then xinput set-prop $touchpad_id "Device Enabled" 0 |
xinput set-prop $mouse_id $mouse_prop 3 |
notify-send "Disabling the touchpad..." ""
else xinput set-prop $touchpad_id "Device Enabled" 1 |
notify-send "The touchpad is now enabled." ""
fi
上記を作るために今日多くのことを学んだ:D。
SOMEONE PRO?
自動化する方法を知っていると便利でしょう。
また、なぜマウス設定が保存されないのか興味があります(2.)。
ソリューション-自動
エサモと彼の作品に感謝します。
起動時にマウスを接続するための自動トリガーを追加するには:
ファイルを作成します:/etc/udev/rules.d/10-local.rules
このコンテンツを埋めます:($ USERをユーザー名に置き換えます)
ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/$USER/scripts/touchpad_switcher.sh false"
ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/$USER/scripts/touchpad_switcher.sh true"
例:
ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/dawid/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/dawid/scripts/touchpad_switcher.sh false"
ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/dawid/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/dawid/scripts/touchpad_switcher.sh true"
次に、スクリプトを好きな場所に配置します。 〜/ scriptsに配置しました
touchpad_switcher.sh
#!/bin/sh
enabled=$1
touchpad_id=$(xinput | grep -i "touchpad" | cut -f2 | cut -d '=' -f2);
if $enabled
then
xinput set-prop $touchpad_id "Device Enabled" 1 | notify-send "The touchpad is now enabled." ""
else
xinput set-prop $touchpad_id "Device Enabled" 0 | notify-send "Disabling the touchpad..." ""
fi
実行許可を追加することを忘れないでください:
chmod +x touchpad_switcher.sh
今すぐ再起動してください! (単にudevを再起動しても機能しないようです...)
その他の便利なもの:
dev rules に関するいくつかの情報
@David Drozdが投稿したものは、Ubuntu 16.04では機能しませんでした。
xinput
のトリックのように思えますが、udev
では機能しません。 synclient TouchpadOff=[0|1]
のみが機能しました。また、ACTION="remove"
は単独では機能しませんでした。
ENV{REMOVE_CMD}="/bin/sh -c '/usr/bin/synclient TouchpadOff=0'"
を追加すると、ようやくわかりました
完全なソリューション:次の行を使用してファイル/etc/udev/rules.d/10-local.rules
を作成します($ USERをユーザー名に置き換えます)
ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{REMOVE_CMD}="/bin/sh -c '/usr/bin/synclient TouchpadOff=0'", RUN+="/bin/sh -c '/usr/bin/synclient TouchpadOff=1' "