Comment puis-je mapper les axes de la souris sur les touches de mon clavier dans le Terminal Mac OSX 10.6 ? Par exemple, déplacer la souris vers le haut (x positif) déclenche une pression sur la touche W. Est-ce intégré, ou ai-je besoin d'un logiciel supplémentaire ? Les seuls résultats de recherche que j'ai trouvés étaient pour mouse-driver
, que je n'ai pas sur mon système.
Réponses
Trop de publicités?Vous pourriez également utiliser KeyRemap4MacBook.
Vous pouvez attribuer d'autres touches aux actions de la souris en créant un private.xml. Le dossier de test contient un fichier XML avec toutes les remappages prédéfinies.
Il y a Divvy, et SizeUp, et Flexiglass - ils ne font pas exactement ce que vous recherchez, mais ils offrent un contrôle plus flexible du clavier sur la gestion des fenêtres. Ils valent probablement tous la peine d'être regardés.
http://www.irradiatedsoftware.com/sizeup/
http://www.nulana.com/flexiglass
Bonne chance!
En tant que solution de contournement, vous pourriez écrire un outil en ligne de commande pour déplacer le curseur de la souris, puis utiliser les options de liaison de touches programmables de votre shell pour exécuter cet outil en ligne de commande lorsque une séquence de touches spécifiée est saisie.
/*
Fichier:
mvright.m
Compiler avec:
gcc -Wall -Wextra -framework ApplicationServices -framework Foundation -o mvright mvright.m
Compilé avec succès sur:
Mac OS X 10.6.8
Utilisation:
./mvright
# dans .bashrc; appuyez sur les touches ctrl-h pour déplacer le curseur de la souris vers la droite
bind -x '"\C-h": /usr/local/bin/mvright'
Références:
- "Contrôler la souris depuis Python dans OS X",
http://stackoverflow.com/questions/281133/controlling-the-mouse-from-python-in-os-x,
http://synergy-foss.org
- "Déplacer et cliquer la souris via du code",
http://hints.macworld.com/article.php?story=2008051406323031
*/
#import
#import
int main(void) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// Obtenir l'emplacement actuel de la souris
CGEventRef ourEvent = CGEventCreate(NULL);
CGPoint ourLoc = CGEventGetLocation(ourEvent);
//NSLog(@"Emplacement? x= %f, y = %f", (float)ourLoc.x, (float)ourLoc.y);
// La structure de données CGPoint représente un point dans un système de coordonnées bidimensionnel
// Ici, la distance X et Y depuis le coin supérieur gauche, en pixels.
CGPoint pt;
pt.x = (float)ourLoc.x + 10.0;
pt.y = (float)ourLoc.y;
//NSLog(@"Emplacement? x= %f, y = %f", (float)pt.x, (float)pt.y);
CGEventRef eventRef;
eventRef = CGEventCreateMouseEvent(NULL, kCGEventMouseMoved, pt, kCGMouseButtonCenter);
// Apparemment, un bug dans xcode nécessite la ligne suivante
//CGEventSetType(eventRef, kCGEventMouseMoved);
CGEventPost(kCGSessionEventTap, eventRef);
//CGEventPost(kCGHIDEventTap, eventRef);
CFRelease(eventRef);
CFRelease(ourEvent);
[pool release];
return 0;
}
Pour recevoir des événements de souris dans Terminal.app, jetez un œil à des outils tels que MouseTerm, USBOverdrive ou ControllerMate!
Si vous préférez utiliser un outil en ligne de commande, consultez également altermouse.c (... éventuellement prolongé en utilisant AppleScript).
Pour quelques outils X11, consultez xdotool et xautomation (le premier étant disponible via MacPorts).