Tengo una computadora portátil con pantalla táctil y quiero ocultar el puntero cada vez que toco la pantalla. Soy consciente de soluciones como unclutter y startx -nocursor
pero quiero que el puntero para ocultar / mostrar dinámicamente, escondite si uso de la pantalla táctil y que muestra cuando se utiliza un ratón de hardware.
Pensé en hacer dos punteros separados y aplicar una de las dos soluciones anteriores al puntero de la pantalla táctil, pero ninguna de esas soluciones menciona cómo apuntar a un solo puntero, y tener múltiples punteros hace que las cosas actúen de manera extraña, y eso no ocultaría el hardware cursor del ratón.
Me imagino que puedo hacer esto de manera más razonable haciendo algo como esto , haciendo un seguimiento del mecanismo de entrada actual y ejecutándolo xinput -cursor [transparent cursor]
cada vez que se usa la pantalla táctil y xinput -cursor [normal cursor]
cada vez que se usa un mouse normal.
Sin embargo, miré a xinput y parece que tanto el mouse de hardware como la pantalla táctil están esclavos en el mismo puntero, ambos registran los mismos eventos en xev, así que no estoy realmente seguro de dónde obtendría la información necesaria para diferenciar un toque desde un clic del mouse. ¿Es posible?
Supongo que usa la pantalla táctil cuando no tiene un mouse y conecta uno en el sistema cuando desea usarlo. En este caso, puede usar
udev
reglas para administrar su puntero en consecuencia:Las condiciones utilizadas para distinguir un mouse se toman prestadas de esta respuesta .
Tenga en cuenta que las aplicaciones individuales son libres de redefinir el cursor dinámicamente, por lo que su cursor puede volver a ser visible cuando pase el cursor sobre sus ventanas. En su lugar, puede iniciar / detener
unclutter
si desea que todos los cursores estén ocultos en todas partes:Personalmente, también deshabilitaría la pantalla táctil por completo cuando el mouse esté enchufado, de modo que tocarlo accidentalmente no perturbe el cursor cuando se espera que siga al mouse.
fuente
udev
como eliminado cuando lo deshabilita con el botón Fn (suponiendo que tenga uno).Hay una bifurcación de la herramienta de corrección de clutter de nowrep disponible aquí . Esta versión agrega una
-touch
opción para ocultar automáticamente el cursor cada vez que se detecta una entrada táctil. (El repositorio original de unclutter-xfixes está aquí )Una cosa a tener en cuenta es que todavía incluye el comportamiento de ocultar el cursor después de un período de tiempo específico. Simplemente puede establecer la
--timeout
opción en un valor muy alto para evitar eso.Esto debería funcionar perfectamente para ti. En mi caso, tenía una pantalla táctil conectada externamente y cuando vuelvo al monitor normal, el cursor estará en la pantalla táctil, así que tengo que moverlo al monitor desde donde toqué. Lo bueno es que después de comenzar a mover el mouse, aparecerá el cursor para saber dónde está.
Un buen beneficio de esta opción es que aún puedo usar mi mouse como de costumbre en la pantalla táctil si lo deseo, pero lo oculta cuando no lo hago.
fuente