Obtener coordenadas del ratón en la pantalla
jipicy
Mensajes publicados
40842
Fecha de registro
Estado
Moderador
Última intervención
-
jipicy Mensajes publicados 40842 Fecha de registro Estado Moderador Última intervención -
jipicy Mensajes publicados 40842 Fecha de registro Estado Moderador Última intervención -
Hola a todos,
Estoy buscando un comando (preferiblemente en shell bash) que pueda devolverme las coordenadas del ratón...
Me explico.
Quisiera recuperar las coordenadas del ratón en mi escritorio (en entorno X), para poder utilizarlas para abrir una consola (Eterm) aplicándole las coordenadas adecuadas (posición x,y y dimensiones ancho/alto) así como diversos parámetros.
Así que he intentado con "xev", pero no es lo ideal. De hecho no he podido obtener nada bueno ;-((
Así que si tienen alguna pista o una solución, se los agradecería.
Gracias de antemano y buen fin de semana.
--
Z'@+...che.
Estoy buscando un comando (preferiblemente en shell bash) que pueda devolverme las coordenadas del ratón...
Me explico.
Quisiera recuperar las coordenadas del ratón en mi escritorio (en entorno X), para poder utilizarlas para abrir una consola (Eterm) aplicándole las coordenadas adecuadas (posición x,y y dimensiones ancho/alto) así como diversos parámetros.
Así que he intentado con "xev", pero no es lo ideal. De hecho no he podido obtener nada bueno ;-((
Así que si tienen alguna pista o una solución, se los agradecería.
Gracias de antemano y buen fin de semana.
--
Z'@+...che.
JP : Zen, mis Nuggets ! ;-) El conocimiento solo es útil si se comparte.
7 respuestas
-
Bueno, he avanzado un poco y voy a intentar compartir con ustedes mi estado de progreso...
Así que empiezo con "xev", que si bien resulta muy útil en lo que respecta al teclado (reconocimiento de teclas), es un poco menos útil (a menos que yo no sepa manejarlo bien) en lo que respecta al ratón.
Si se ejecuta tal cual sin ningún parámetro, muestra una ventana (50x50) que al pasar el ratón sobre ella devuelve efectivamente las coordenadas del ratón en tiempo real, los clics, etc... pero ¡solo dentro de dicha ventana! ¿Qué me dirán, por qué no ampliarla, o mejor aún, pasarle el tamaño y la posición como parámetros?
Sí, pero pensé en eso, pero aún así hay un borde considerable y además la salida es tan verbosa que ¡se pierde uno fácilmente en los resultados!
Además, intenté recuperar la salida en un archivo de texto (xev > fich.txt), pero como se dijo anteriormente, demasiado verboso :-(
También intenté con el comando "tee" a través de un pipe:xev | tee fich.txt
para recuperar tanto la salida en la pantalla como en un archivo. Desafortunadamente, ¡no funciona!
No solo no tengo salida en la pantalla, sino que además el archivo sigue desesperadamente vacío!!! ;-(((
Si alguien sabe por qué... gracias por informarme.
Como no lograba nada con "xev", me dirigí al comando "import" de la excelente suite de herramientas de "Imagemagick".
Pensé que tenía la solución, ¡pero hay un inconveniente!
Primero, les expongo mis manipulaciónes y mis "moulinettes".
Lanzaré una consola "Eterm" (lo más simple, con solo un tamaño y una posición predefinidos):Eterm -g 100x10+95+10&
Luego ejecuto el comando "xwininfo" para recuperar la información relativa a esta ventana (id, longitud, altura, etc...):xwininfo xwininfo: Por favor seleccione la ventana sobre la que desea información haciendo clic con el ratón en esa ventana. xwininfo: ID de ventana: 0x3200046 "jp@MDK: /home/jp" Esquina superior izquierda absoluta X: 98 Esquina superior izquierda absoluta Y: 39 Esquina superior izquierda relativa X: 0 Esquina superior izquierda relativa Y: 0 Ancho: 624 Alto: 161 Profundidad: 24 Clase visual: TrueColor Ancho del borde: 0 Clase: InputOutput Mapa de colores: 0x20 (instalado) Estado de gravedad de bits: ForgetGravity Estado de gravedad de ventana: NorthWestGravity Estado de almacenamiento: NotUseful Estado de guardado bajo: no Estado de mapa: IsViewable Estado de redirección de anulación: no Esquinas: +98+39 -302+39 -302-568 +98-568 -geometría 100x10+95+10
Hasta aquí no hay problemas, aunque ustedes me dirán, el tamaño y la geometría difieren un poco!!! ;-\
Bueno, no piensen que lo digan en broma, ¡esa es precisamente la cuestión!
Sin embargo, lanzo la "moulinette" que guardo celosamente, que me permite recuperar las coordenadas (al menos eso pensé):import -verbose /dev/null /dev/null PS 631x193 1024x768+95+13 DirectClass 0.000u 0:01 /dev/null PS 631x193 1024x768+95+13 DirectClass 0.210u 0:01
lo que me devuelve bien (a algunos píxeles de diferencia) las coordenadas de los ejes (+95+13) así como las de tamaño (631x193) (la diferencia se debe al estilo de decoración de ventanas en KDE).
Así que decía que es en este punto donde está el "hic".
No puedo determinar cómo se expresa el parámetro "-g" (geometría) de Eterm, que aquí se muestra en un extracto del "man":-g geom, --geometry geom Geometría de la ventana como Ancho x Alto+Coordenada X+Coordenada Y, es decir, 100x200+0+100
que se devuelve mediante el comando "wininfo" (-geometry 100x10+95+10), en comparación con el tamaño que expresa "wininfo":Ancho: 624 Alto: 161
y el comando "import":/dev/null PS 631x193 1024x768+95+13 DirectClass 0.000u 0:01
???
No sé si he sido claro, pero si alguien de buen corazón quiere explicarme qué función matemática (eso nunca fue mi fuerte ;-( ) puede resolver esta ecuación (si es que existe una... por supuesto).
Gracias por tomarse el tiempo de leerme y gracias a aquellos que intenten ayudarme.
Que tengan un buen fin de semana z'@todas z'et @ todos.
--
Z'@+...che.JP : Zen, mis Nuggets! ;-) El conocimiento solo es útil si se comparte.
-
Re- todo el mundo,
Bueno, ya estoy ;-))))
En realidad he encontrado una solución a mi problema.
Así que para resumir, en realidad "Eterm" no utiliza el "pixel" para definir el tamaño (longitud/altura) de la ventana como lo hacen otras aplicaciones, sino que, como en los viejos buenos terminales (VT100), utiliza el número de "columnas" y de "líneas".
Lo que justifica entonces mi enigma en el post anterior, a saber, la relación entre:
Width: 624
Height: 161
y
-geometry 100x10
que se resume entonces a:
100 columnas
sobre
10 líneas
La relación entre la longitud y el número de columnas es entonces:
longitud (624) --------------------- = 6 (redondeado) nbre columnas (100)
idem para la altura y el número de líneas:altura (161) -------------------- = 16 (redondeado) nbre de líneas (10)
Así que deduciendo para mi historia, solo tengo que dividir mi longitud por 6 y la altura por 14 (es el resultado más aproximado de muchos ensayos que he realizado), y obtengo el efecto esperado para mi moulinette ;-)))
Bueno, supongo que debe haber una forma más académica de calcular la relación longitud/altura/columna/línea, así que si hay conocedores... gracias de antemano.
Buenas noches z'@ todas z'et @ todos.
--
Z'@+...che.JP : Zen, my Nuggets ! ;-) El saber solo es bueno si se comparte.
-
Hola,
no sé si esto puede ayudar, pero imagino que hay una incógnita más en tu problema: el tamaño de la fuente utilizada... ¿no?
con una fuente pequeña debes tener más líneas y columnas en el mismo 624x161 ...
Phiphi -
Re,
con un poco de Google, parece que hay una "función" mouse-pixel-position relacionada con Emacs (o XEmacs)
http://www.gnu.org/
quizás podrías lograr utilizarla??
espero que pueda ayudar un poco...
Phiphi -
Hola Phiphi,
Gracias por tu interés.
Efectivamente, es una (el tamaño de los caracteres) eventualidad a la que también había pensado (de hecho, al principio pensé en tener en cuenta la resolución), pero no sabía muy bien cómo interconectar todo (lo he dicho más arriba, las matemáticas y yo ... ;-[).
El enlace parece efectivamente hablar sobre la posición del ratón, pero me parece que se refiere a dentro de la ventana de Emacs, ¿no? Bueno, eso es lo que he entendido (mi inglés es algo básico).
De todos modos, gracias de nuevo por tus publicaciones, pero seguramente me quedaré aquí (a menos que un alma caritativa me lo saque todo hecho), y con lo que he "producido", me parece perfecto para el uso que quería darle, es decir, trazar un paralelogramo en cualquier parte del escritorio y abrir un "Eterm" con las dimensiones requeridas y opciones predefinidas (solo el color de la fuente se pasó como parámetro).
Eso es todo, gracias de nuevo.
;-))
--
Z'@+...che.JP : Zen, my Nuggets ! ;-) El conocimiento no es bueno si no se comparte.
-
No lo había olvidado por si acaso estuvieras interesado en mis tonterías ;-))
#! /bin/bash ## script.sh ## Uso : sh script.sh [parámetro] ## parámetro siendo un color "negro-rojo-verde-amarillo-azul-magenta-cian-blanco" # Recuperación en una variable de los valores con el comando "importar" recup="$(importar -verbose /dev/null)" # Ordenación de los valores obtenidos coord="$(echo $recup | sed -e 's/D.*//;s/[^0-9x+]//g;s/1024x768/ /g;s/[+x]/ /g')" # Envío de los valores recuperados a un archivo temporal en forma de lista for i in $(echo $coord) do echo $i >> fich.tmp done # Recuperación de cada valor en una variable i=1 for línea in `cat fich.tmp` do eval V$i="$línea" i=$(expr $i + 1) done # Definición de las variables finales L="$(expr $V1 / 6)" H="$(expr $V2 / 14)" x="$V3" y="$V4" # El comando y sus parámetros Eterm -O0x --buttonbar 0 --scrollbar 0 --app-cursor -f "${1:-blanco}" -g "$L"x"$H"+"$x"+"$y"& # Eliminación del archivo temporal rm -f fich.tmp exit 0Diviértanse bien ;-))
--
Z'@+...che.JP : Zen, ¡mis Nuggets! ;-) El saber solo es bueno si se comparte.
-
El software "super macro" permite (entre otras cosas) conocer la posición de tu cursor.
En la ventana estándar, seleccionas "Movimiento del ratón".
Se abre una ventana que te pregunta si quieres activar la captura, presiona Alt+c.
Aquí puedes ver las coordenadas del cursor que se muestran en esta ventana.
Para fijar estas coordenadas, presiona nuevamente ALT+C.
¡Listo!