|
|
|
|
Hi everrrrrrrrrrry body,
Je cherche une commande (de préférence en shell bash), capable de me renvoyer les coordonnées de la souris...
Je m'explique.
Je voudrais donc récupérer les coordonnées de la souris sur mon bureau (en environnement X), afin de les exploiter pour ouvrir une console (Eterm) en lui appliquent les coordonnées adéquates (position x,y et dimension largeur/hauteur) ainsi que divers paramètres.
Donc j'ai essayé avec "xev", mais ce n'est pas l'idéal. En fait j'ai rien pu en tirer de bon ;-((
Donc si vous avez un semblant de piste ou une solution tout court, je vous en serai gré.
Merci d'avance et bon week-end.
Z'@+...che.JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Bon, j'ai un peu avancé et je vais essayer de vous faire part de mon état d'avancement...
xev | tee fich.txtpour récupérer à la fois la sortie sur l'écran et dans un fichier. Malheureusement ça ne marche pas! Non seulement je n'ai aucune sortie sur l'écran, mais de plus le fichier reste désespérément vide !!! ;-((( Si quelqu'un sait pourquoi... merci de m'en informer. Comme je n'arrivais à rien avec "xev", je me suis tourné vers la commande "import" de l'excellentissime suite d'outils d'"Imagemagick". Je pensais bien tenir la solution, mais il y a un hic ! D'abord je vous expose mes manips et mes "moulinettes". Je lance une console "Eterm" (tout ce qu'il y a de plus simple, avec juste une taille et une position prédéfinies) : Eterm -g 100x10+95+10&Je lance ensuite la commande "xwininfo" pour récupérer les infos relatives à cette fenêtre (id, longueur, hauteur, etc...) : xwininfo xwininfo: Please select the window about which you would like information by clicking the mouse in that window. xwininfo: Window id: 0x3200046 "jp@MDK: /home/jp" Absolute upper-left X: 98 Absolute upper-left Y: 39 Relative upper-left X: 0 Relative upper-left Y: 0 Width: 624 Height: 161 Depth: 24 Visual Class: TrueColor Border width: 0 Class: InputOutput Colormap: 0x20 (installed) Bit Gravity State: ForgetGravity Window Gravity State: NorthWestGravity Backing Store State: NotUseful Save Under State: no Map State: IsViewable Override Redirect State: no Corners: +98+39 -302+39 -302-568 +98-568 -geometry 100x10+95+10Jusque là pas de problèmes, quoi que vous me direz, la taille et la géométrie diffèrent quelque peu !!! ;-\ Ben vous ne pensez pas si bien dire, c'est bien là que se situe le "hic" !!! Qu'à cela ne tienne, je lance donc la "moulinette" dont j'ai le secret absolu, qui me permet de récupérer les coordonnées (enfin c'est ce que je croyais) : 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:01qui me renvoie bien (à quelques pixels prés) les coordonnées des axes (+95+13) ainsi que celles de la taille (631x193) (la différence étant dûe au style de décoration des fenêtres sous KDE). Je disais donc que c'est à ce niveau que se situe le "hic". Je n'arrive pas à déterminer comment est exprimé le paramètre "-g" (géométrie) d'Eterm, dont voici un extrait du "man" : -g geom, --geometry geom Window geometry as Width x Height+X coord+Y coord, i.e 100x200+0+100celui-la même renvoyé par la commande "wininfo" (-geometry 100x10+95+10), par rapport à la taille exprimée par "wininfo" : Width: 624 Height: 161et la commande "import" : /dev/null PS 631x193 1024x768+95+13 DirectClass 0.000u 0:01 ??? Je sais pas si j'ai été clair là, mais si une bonne âme charitable voudrait bien essayer de m'expliquer quelle fonction mathématique (ça n'a jamais été mon fort ;-( ) peut résoudre cette équation (s'il en existe une... of course). Merci d'avoir pris le temps de me lire et merci à ceux qui tenteront de m'aider. Bonne fin de week-end z'@toutes z'et @ tous. Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |
Re- tout le monde,
longueur (624) --------------------- = 6 (arrondi) nbre colonnes (100) idem pour la hauteur et le nombre de lignes : hauteur (161) -------------------- = 16 (arrondi) nbre de lignes (10) Donc en déduction pour mon histoire, je n'ai plus qu'à diviser ma longueur par 6 et la hauteur par 14 (c'est le résultat le plus approchant sur de nombreux essais que j'ai effectués), et j'obtiens l'effet escompté pour ma moulinette ;-))) Bon je suppose qu'il doit y avoir un moyen plus accadémique de calculer le rapport longueur/hauteur/colonne/ligne, donc s'il y a des connaisseurs... merci d'avance. Bonne soirée z'@ toutes z'et @ tous. Z'@+...che. JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |
Re,
|
Salut Phiphi,
|
J'avais z'oublié au cazou vous seriez intéressé par mes bétises ;-)) #! /bin/bash
## script.sh
## Usage : sh script.sh [paramètre]
## paramètre étant une couleur "noir-rouge-vert-jaune-bleu-magenta-cyan-blanc"
# Récupération dans une variable des valeurs avec la commande "import"
recup="$(import -verbose /dev/null)"
# Tri des valeurs obtenues
coord="$(echo $recup | sed -e 's/D.*//;s/[^0-9x+]//g;s/1024x768/ /g;s/[+x]/ /g')"
# Envoi des valeurs récupérées dans un fichier temporaire sous forme de liste
for i in $(echo $coord)
do
echo $i >> fich.tmp
done
# Récupération de chaque valeur dans une variable
i=1
for ligne in `cat fich.tmp`
do eval V$i="$ligne"
i=$(expr $i + 1)
done
# Définition des variables finales
L="$(expr $V1 / 6)"
H="$(expr $V2 / 14)"
x="$V3"
y="$V4"
# La commande et ses paramètres
Eterm -O0x --buttonbar 0 --scrollbar 0 --app-cursor -f "${1:-white}" -g "$L"x"$H"+"$x"+"$y"&
# Effacement du fichier temporaire
rm -f fich.tmp
exit 0Amusez-vous bien ;-))
Z'@+...che.JP : Zen, my Nuggets ! ;-) Le savoir n'est bon que s'il est partagé. |
Le logiciel "super macro" permet (entres autres) de connaitre la position de ton curseur.
|