タッチスクリーン使用時にマウスカーソルを動的に非表示にする


21

タッチスクリーンのラップトップを持っているので、画面に触れるたびにポインターを非表示にしたい。私のようなソリューションを認識していのunclutterstartx -nocursor私は非表示にポインタをしたい/私はタッチスクリーンを使用する場合隠し、私は、ハードウェアのマウスを使用する際に示す、動的に表示されます。

2つの個別のポインターを作成し、上記の2つのソリューションのいずれかをタッチスクリーンポインターに適用することを考えましたが、どちらのソリューションも単一のポインターをターゲットにする方法について言及していません。マウスカーソル。

私は、私が最も合理的にこのようなものやってくださいすることができます理解し、これを現在の入力機構を追跡し、実行し、xinput -cursor [transparent cursor]タッチスクリーンを使用するたびにとxinput -cursor [normal cursor]通常のマウスが使用されるたびに。

しかし、xinputを見て、ハードウェアのマウスとタッチスクリーンの両方が同じポインターに従属しているため、両方がxevに同じイベントを登録しているので、タッチを区別するために必要な情報をどこで取得できるのか本当にわかりませんマウスクリックから。出来ますか?

回答:


5

使用できます

使用するには、インストールしてください

sudo apt-get install unclutter

それを実行します

unclutter -idle 0.01 -root

アイドル後の数字は、非表示になるまでの時間を意味することに注意してください。この場合、1/100秒に設定されます。常に非表示になる値に変更してみてください。

これにより、カーソルを移動しないときに非表示になります。完全に非表示にするオプションもあると確信しています。


アンクラッターを使用したソリューションを見てきましたが、これはタッチスクリーンとマウスの使用を区別しません。
erp

2

マウスをお持ちでない場合はタッチスクリーンを使用し、使用したい場合はシステムにプラグインすることを想定しています。この場合、udevルールを使用してポインターを適切に管理できます。

ACTION=="add", ATTRS{bInterfaceProtocol}=="02", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceSubClass}=="01", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/user/.Xauthority", ENV{REMOVE_CMD}="/usr/bin/xinput -cursor [transparent cursor]", RUN+="/usr/bin/xinput -cursor [normal cursor]"

マウスを区別するのに使用される条件はこの答えから借りられます

個々のアプリケーションはカーソルを動的に再定義できるため、ウィンドウにカーソルを合わせるとカーソルが再び表示される可能性があることに注意してください。unclutterすべてのカーソルをどこでも非表示にする場合は、代わりに開始/停止できます。

ACTION=="add", ATTRS{bInterfaceProtocol}=="02", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceSubClass}=="01", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/user/.Xauthority", ENV{REMOVE_CMD}="/bin/sh -c unclutter&", RUN+="/usr/bin/killall unclutter"

個人的には、マウスが接続されたときにタッチスクリーンを完全に無効にします。これにより、誤ってタッチスクリーンに触れても、マウスに追従すると思われるときにカーソルが邪魔されません。


これは、プラグインマウスだけでなく、トラックパッドにもこの動作が必要なことを除けば、良いオプションです。udevは、動的に追加/削除されたデバイスにのみ影響すると思いますか?
erp

トラックパッドは「ハードウェアマウス」ですか?私はあなたがそれが機能するかどうか試してみる必要があると言うでしょう。udevFnボタンを使用してタッチパッドを無効にすると、タッチパッドが実際に削除されたように見える場合があります(ある場合)。
ドミトリーグリゴリエフ

1

あり、ここでnowrep利用できることでのunclutter・修正ツールのフォーク。このバージョンでは、-touchタッチ入力が検出されるたびにカーソルを自動的に非表示にするオプションが追加されています。(元のunclutter-xfixesリポジトリはこちらです

留意すべきことの1つは、指定された期間が過ぎるとカーソルを非表示にする動作が含まれることです。この問題を--timeout回避するには、オプションを非常に高い値に設定するだけです。

これはあなたにとって完璧に機能するはずです。私の場合、外付けのタッチスクリーンがあり、通常のモニターに戻るとカーソルがタッチスクリーン上にあるので、タッチした場所からモニターに戻す必要があります。良い点は、マウスの移動を開始すると、カーソルが表示されるので、どこにあるかがわかります。

このオプションの優れた利点は、タッチスクリーンで通常どおりにマウスを使用できますが、使用しない場合は非表示にすることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.