Dynamiczne ukrywanie kursora myszy podczas korzystania z ekranu dotykowego


21

Mam laptopa z ekranem dotykowym i chcę ukryć wskaźnik za każdym razem, gdy dotykam ekranu. Zdaję sobie sprawę z rozwiązań takich jak porozrzucane i startx -nocursorale chcę wskaźnik, aby ukryć / pokazać dynamicznie, ukrywania, jeśli mogę użyć ekranu dotykowego i pokazuje, kiedy używać myszki sprzętu.

Myślałem o stworzeniu dwóch oddzielnych wskaźników i zastosowaniu jednego z dwóch powyższych rozwiązań do wskaźnika na ekranie dotykowym, ale żadne z tych rozwiązań nie wspomina o tym, jak celować w pojedynczy wskaźnik, a posiadanie wielu wskaźników powoduje, że wszystko działa dziwnie, a to nie ukrywałoby sprzętu kursor myszki.

Ja mogę zrozumieć najbardziej rozsądnie zrobić coś jak ten , śledzenie aktualnego mechanizmu wejściowego i wykonywania xinput -cursor [transparent cursor], gdy ekran dotykowy służy i xinput -cursor [normal cursor]kiedy jest używana normalna mysz.

Spojrzałem na xinput i wygląda na to, że ponieważ zarówno mysz sprzętowa, jak i ekran dotykowy są podporządkowane temu samemu wskaźnikowi, oba rejestrują te same zdarzenia w xev, więc nie jestem pewien, skąd otrzymam informacje potrzebne do odróżnienia dotyku od kliknięcia myszką. Czy to możliwe?

Odpowiedzi:


5

Możesz użyć

Aby użyć, zainstaluj go

sudo apt-get install unclutter

następnie uruchom to

unclutter -idle 0.01 -root

Pamiętaj, że liczba po bezczynności oznacza czas, po którym się ukrywa. W tym przypadku jest ustawiony na 1/100 sekundy. Możesz spróbować zmienić go na wartość, która zawsze będzie ukryta.

To ukryje kursor, gdy go nie przesuniesz. Jestem pewien, że istnieje również opcja całkowitego jej ukrycia.


Widziałem rozwiązania wykorzystujące porządek, ale to nie odróżnia korzystania z ekranu dotykowego i myszy.
erp

2

Podejrzewam, że używasz ekranu dotykowego, gdy nie masz myszy, i podłączasz go do systemu, kiedy chcesz go używać. W takim przypadku możesz użyć udevreguł do odpowiedniego zarządzania wskaźnikiem:

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

Warunki użyte do odróżnienia myszy są zapożyczone z tej odpowiedzi .

Należy pamiętać, że poszczególne aplikacje mogą dynamicznie zmieniać definicję kursora, dzięki czemu kursor może stać się ponownie widoczny po najechaniu kursorem na jego okno. Zamiast tego możesz uruchomić / zatrzymać, unclutterjeśli chcesz, aby wszystkie kursory były wszędzie ukryte:

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"

Osobiście wyłączałbym również ekran dotykowy całkowicie, gdy mysz jest podłączona, aby przypadkowe dotknięcie go nie przeszkadzało kursorowi, gdy oczekuje się, że podąży za myszą.


jest to dobra opcja, z wyjątkiem tego, że chcę takie zachowanie dla mojego gładzika, nie tylko dla podłączonych myszy. Uważam, że udev wpływa tylko na urządzenia, które są dynamicznie dodawane / usuwane?
erp

Masz na myśli, że gładzik jest „myszą sprzętową”? Powiedziałbym, że będziesz musiał spróbować sprawdzić, czy to działa. Touchpad może być postrzegany udevjako usunięty po wyłączeniu go za pomocą przycisku Fn (zakładając, że go masz).
Dmitrij Grigoriew

1

Widoczne jest narzędzie do usuwania niepotrzebnych poprawek od teraz dostępne tutaj . Ta wersja dodaje -touchopcję automatycznego ukrywania kursora po wykryciu wprowadzania dotykowego. (Oryginalne repozytorium unclutter-xfixes jest tutaj )

Należy pamiętać, że nadal obejmuje zachowanie ukrywania kursora po określonym czasie. Możesz po prostu ustawić --timeoutopcję na bardzo wysoką wartość, aby obejść ten problem.

To powinno działać idealnie dla Ciebie. W moim przypadku miałem podłączony zewnętrznie ekran dotykowy, a kiedy wracam do zwykłego monitora, kursor będzie na ekranie dotykowym, więc muszę przenieść go z powrotem na monitor z miejsca, w którym go dotknąłem. Fajną rzeczą jest to, że kiedy zacznę poruszać myszą, pojawi się kursor, więc wiem, gdzie on jest.

Zaletą tej opcji jest to, że nadal mogę normalnie używać myszy na ekranie dotykowym, jeśli chcę, ale chowam ją, gdy tego nie robię.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.