Dynamisches Ausblenden des Mauszeigers bei Verwendung des Touchscreens

21

Ich habe einen Touchscreen-Laptop und möchte den Zeiger immer dann ausblenden, wenn ich den Bildschirm berühre. Ich kenne Lösungen wie Unclutter und startx -nocursormöchte, dass der Mauszeiger dynamisch ein- und ausgeblendet wird, wenn ich den Touchscreen verwende, und angezeigt wird, wenn ich eine Hardwaremaus verwende.

Ich dachte darüber nach, zwei separate Zeiger zu erstellen und eine der beiden oben genannten Lösungen auf den Touchscreen-Zeiger anzuwenden, aber in keiner dieser Lösungen wird erwähnt, wie ein einzelner Zeiger ausgerichtet werden soll, und durch das Vorhandensein mehrerer Zeiger werden die Dinge merkwürdig, und das würde die Hardware nicht verbergen Mauszeiger.

Ich denke , ich kann die meisten vernünftigerweise tun dies etwas zu tun , wie diese , die Verfolgung des aktuellen Eingabemechanismus und die Ausführung , xinput -cursor [transparent cursor]wenn der Touchscreen verwendet wird und xinput -cursor [normal cursor]immer dann , wenn eine normale Maus verwendet wird.

Ich habe mir xinput angesehen und es sieht so aus, als ob sowohl die Hardware-Maus als auch der Touchscreen auf denselben Zeiger eingestellt sind. Beide registrieren dieselben Ereignisse in xev, sodass ich nicht wirklich sicher bin, woher ich die Informationen zur Unterscheidung von Berührungen nehmen kann von einem Mausklick. ist es möglich?

erp
quelle

Antworten:

5

Du könntest benutzen

Installieren Sie es, um es zu verwenden

sudo apt-get install unclutter

dann starte es

unclutter -idle 0.01 -root

Beachten Sie, dass die Zahl nach dem Leerlauf die Zeit angibt, bevor sie ausgeblendet wird. In diesem Fall ist es auf 1/100 Sekunde eingestellt. Sie können versuchen, den Wert so zu ändern, dass er immer ausgeblendet ist.

Dadurch wird der Cursor ausgeblendet, wenn Sie ihn nicht bewegen. Ich bin sicher, es gibt auch eine Option, um es vollständig zu verbergen.

КодСерфинг145
quelle
Ich habe Lösungen mit Unclutter gesehen, aber dies unterscheidet nicht zwischen der Verwendung eines Touchscreens und einer Maus.
Erp
2

Ich nehme an, Sie verwenden den Touchscreen, wenn Sie keine Maus haben, und schließen eine an das System an, wenn Sie sie verwenden möchten. In diesem Fall könnten Sie udevRegeln verwenden, um Ihren Zeiger entsprechend zu verwalten:

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]"

Bedingungen, die zur Unterscheidung einer Maus verwendet werden, sind aus dieser Antwort entlehnt .

Beachten Sie, dass einzelne Anwendungen den Cursor dynamisch neu definieren können, sodass der Cursor möglicherweise wieder sichtbar wird, wenn Sie den Mauszeiger über das Fenster halten. Sie können unclutterstattdessen starten / stoppen, wenn Sie möchten, dass alle Cursor überall ausgeblendet werden:

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"

Persönlich würde ich den Touchscreen auch ganz deaktivieren, wenn die Maus eingesteckt ist, damit ein versehentliches Berühren den Cursor nicht stört, wenn Sie erwarten, dass er der Maus folgt.

Dmitry Grigoryev
quelle
Dies ist eine gute Option, außer dass ich dieses Verhalten für mein Trackpad möchte, nicht nur für eingesteckte Mäuse. Ich glaube, udev betrifft nur Geräte, die dynamisch hinzugefügt / entfernt werden?
erp
Sie meinen, Ihr Trackpad ist Ihre "Hardware-Maus"? Ich würde sagen, Sie müssen versuchen, zu sehen, ob es funktioniert. Das Touchpad wird möglicherweise tatsächlich udevals entfernt angezeigt, wenn Sie es mit der Taste Fn deaktivieren (vorausgesetzt, Sie haben eine).
Dmitry Grigoryev
1

Hier finden Sie eine Abspaltung des Unclutter-Fixes-Tools von nowrep . Diese Version -touchbietet eine Option zum automatischen Ausblenden des Cursors, wenn eine Berührungseingabe erkannt wird. (Das ursprüngliche Unclutter-xfixes-Repository ist hier )

Beachten Sie, dass der Cursor nach einem bestimmten Zeitraum immer noch ausgeblendet wird. Sie können die --timeoutOption einfach auf einen sehr hohen Wert setzen, um das zu umgehen.

Dies sollte für Sie perfekt funktionieren. In meinem Fall hatte ich einen extern angeschlossenen Touchscreen. Wenn ich zum normalen Monitor zurückkehre, befindet sich der Cursor auf dem Touchscreen. Daher muss ich ihn von der Stelle, an der ich ihn berührt habe, zurück auf den Monitor bewegen. Das Schöne ist, dass nach dem Bewegen der Maus der Cursor angezeigt wird, damit ich weiß, wo er sich befindet.

Ein netter Vorteil dieser Option ist, dass ich meine Maus weiterhin wie gewohnt auf dem Touchscreen verwenden kann, wenn ich möchte, sie aber ausblenden kann, wenn ich dies nicht tue.

bpedman
quelle