J'ai un problème étrange et très spécifique lorsque j'utilise mon clavier USB tiers avec mon MacBook Pro : option + left-shift + right-arrow
(qui, comme les programmeurs Mac le savent, signifie "mettre en surbrillance le mot à droite du curseur") ne fonctionne pas. Les raisons de ce problème ne sont pas claires, mais je sais qu'il ne s'agit pas de préférences logicielles au niveau de l'utilisateur, ni directement d'un problème matériel de bas niveau (cf. ma question initiale sur le superutilisateur pour la logique complète de dépannage).
Je dois préciser qu'il s'agit d'un clavier conçu pour Windows : un Thinkpad USB Keyboard with Trackpoint, en fait - le trackpoint étant la raison pour laquelle je l'aime tant et que je le garde malgré ses problèmes. Donc, la touche que j'utilise est la suivante option
dans les Préférences Système est en fait la touche "Logo Windows".
Il fait fonctionne si j'utilise option + RIGHT-shift + right-arrow
mais c'est une position de main très maladroite pour se déplacer rapidement dans mes documents. J'aimerais donc essayer d'intervertir l'interprétation par le Mac des touches de déplacement gauche et droite. . Est-ce possible, et si oui, comment ?
Mise à jour :
Sur la suggestion de Tetsujin J'ai essayé le Karabiner mais il semble que le problème se situe à un niveau inférieur. L'événement clavier pour la flèche droite n'atteint même pas Karabiner si l'événement clavier pour la flèche droite est activé. Windows-logo
et (physique) left-shift
sont maintenues enfoncées (et il importe peu que les touches Windows logo
est associé à un autre modificateur : le problème est lié à ce modificateur spécifique. physique combinaison de touches).
En réponse au commentaire de Insomniac Software Voici ce que dit l'EventViewer de Karabiner lorsque j'appuie sur :
Windows-logo + left-shift + left-arrow
:
eventType:keyMod code:0x3a name:Option_L flags:Opt misc:KeyCode::OPTION_L characters:
eventType:keyMod code:0x38 name:Shift_L flags:Shift Opt misc:KeyCode::SHIFT_L characters:
eventType:keyDown code:0x7b name:Left flags:Shift Opt NumPad Fn misc:KeyCode::CURSOR_LEFT characters:
eventType:keyUp code:0x7b name:Left flags:Shift Opt NumPad Fn misc:KeyCode::CURSOR_LEFT characters:
eventType:keyMod code:0x38 name:Shift_L flags:Opt misc:KeyCode::SHIFT_L characters:
eventType:keyMod code:0x3a name:Option_L flags: misc:KeyCode::OPTION_L characters:
Windows-logo + left-shift + right-arrow
:
eventType:keyMod code:0x3a name:Option_L flags:Opt misc:KeyCode::OPTION_L characters:
eventType:keyMod code:0x38 name:Shift_L flags:Shift Opt misc:KeyCode::SHIFT_L characters:
eventType:keyMod code:0x38 name:Shift_L flags:Opt misc:KeyCode::SHIFT_L characters:
eventType:keyMod code:0x3a name:Option_L flags: misc:KeyCode::OPTION_L characters:
Windows-logo + right-shift + right-arrow
:
eventType:keyMod code:0x3a name:Option_L flags:Opt misc:KeyCode::OPTION_L characters:
eventType:keyMod code:0x3c name:Shift_R flags:Shift Opt misc:KeyCode::SHIFT_R characters:
eventType:keyDown code:0x7c name:Right flags:Shift Opt NumPad Fn misc:KeyCode::CURSOR_RIGHT characters:
eventType:keyUp code:0x7c name:Right flags:Shift Opt NumPad Fn misc:KeyCode::CURSOR_RIGHT characters:
eventType:keyMod code:0x3c name:Shift_R flags:Opt misc:KeyCode::SHIFT_R characters:
eventType:keyMod code:0x3a name:Option_L flags: misc:KeyCode::OPTION_L characters:
(NB : windows-logo + right-shift + left-arrow
fonctionne également, au cas où vous vous poseriez la question).
Notez que dans le cas spécifique de windows-logo + left-shift + right-arrow
Karabiner voit moins d'événements en premier lieu. Je constate la même chose (du moins, d'après ce que je peux voir) dans le journal de débogage de Karabiner : moins d'événements générés par cette combinaison problématique spécifique. J'ai supprimé tout ce qui allait jusqu'à --Debug--
sur chaque ligne, pour les trois mêmes cas :
# Windows-logo + left-shift + left-arrow
KeyboardEventCallback [ caught]: eventType 12, flags 0x80080020, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00080020, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 12, flags 0x800a0022, key 0x0038, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x000a0022, key 0x0038, kbdType 40, repeat = 0
UpdateEventFlagsCallback [ caught]: flags 0x002a0022
KeyboardEventCallback [ caught]: eventType 10, flags 0x802a0022, key 0x007b, kbdType 40, repeat = 0
UpdateEventFlagsCallback [sending]: flags 0x002a0022
KeyboardEventCallback [sending]: eventType 10, flags 0x002a0022, key 0x007b, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 11, flags 0x802a0022, key 0x007b, kbdType 40, repeat = 0
UpdateEventFlagsCallback [ caught]: flags 0x000a0022
KeyboardEventCallback [sending]: eventType 11, flags 0x002a0022, key 0x007b, kbdType 40, repeat = 0
UpdateEventFlagsCallback [sending]: flags 0x000a0022
KeyboardEventCallback [ caught]: eventType 12, flags 0x80080020, key 0x0038, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00080020, key 0x0038, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 12, flags 0x80000000, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00000000, key 0x003a, kbdType 40, repeat = 0
# Windows-logo + left-shift + right-arrow
KeyboardEventCallback [ caught]: eventType 12, flags 0x80080020, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00080020, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 12, flags 0x800a0022, key 0x0038, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x000a0022, key 0x0038, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 12, flags 0x80080020, key 0x0038, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00080020, key 0x0038, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 12, flags 0x80000000, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00000000, key 0x003a, kbdType 40, repeat = 0
# Windows-logo + right-shift + right-arrow
KeyboardEventCallback [ caught]: eventType 12, flags 0x80080020, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00080020, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 12, flags 0x800a0024, key 0x003c, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x000a0024, key 0x003c, kbdType 40, repeat = 0
UpdateEventFlagsCallback [ caught]: flags 0x002a0024
KeyboardEventCallback [ caught]: eventType 10, flags 0x802a0024, key 0x007c, kbdType 40, repeat = 0
UpdateEventFlagsCallback [sending]: flags 0x002a0024
KeyboardEventCallback [sending]: eventType 10, flags 0x002a0024, key 0x007c, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 11, flags 0x802a0024, key 0x007c, kbdType 40, repeat = 0
UpdateEventFlagsCallback [ caught]: flags 0x000a0024
KeyboardEventCallback [sending]: eventType 11, flags 0x002a0024, key 0x007c, kbdType 40, repeat = 0
UpdateEventFlagsCallback [sending]: flags 0x000a0024
KeyboardEventCallback [ caught]: eventType 12, flags 0x80080020, key 0x003c, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00080020, key 0x003c, kbdType 40, repeat = 0
KeyboardEventCallback [ caught]: eventType 12, flags 0x80000000, key 0x003a, kbdType 40, repeat = 0
KeyboardEventCallback [sending]: eventType 12, flags 0x00000000, key 0x003a, kbdType 40, repeat = 0
0 votes
Une pensée tardive - que diriez-vous de Mousqueton ?
0 votes
Merci - c'est une bonne réponse à cette question, même si elle ne s'avère pas utile. J'ai essayé Karabiner, et il me permet effectivement de remapper les touches modificatrices les unes aux autres, y compris les touches shift gauche et droite - plutôt cool ! Malheureusement, il s'avère que mon approche ne permet pas de résoudre le problème initial. Je suppose que ce problème très spécifique de Windows-logo + left-shift + right-arrow se produit à un niveau inférieur (c'est-à-dire que l'information n'atteint jamais Karabiner). Il est donc étrange que cela échoue alors que Windows-logo + right-shift + right-arrow fonctionne, et que Windows-logo + left-shift + left-arrow fonctionne. Ah bon.
1 votes
Avez-vous essayé de l'échanger contre n'importe quel vieux clavier Win, juste pour vérifier si c'est très spécifique à ce modèle ? [Cela ne résoudrait pas le problème, mais pourrait réduire un peu les possibilités.]
0 votes
Oui, tout fonctionne bien sur un clavier logitech K120.
0 votes
A ce stade, je l'aurais frappé avec un marteau - j'admire votre ténacité et votre patience. Je vous souhaite vraiment bonne chance, mais je suis à court d'idées, désolé.
0 votes
Merci. J'utilisais des solutions de contournement (par exemple, sauter à la fin d'un mot, puis le mettre en surbrillance à l'envers) et le fait d'avoir un point de repère est une bonne chose. juste à peu près qui vaut cet ennui. Grâce à votre suggestion précédente, j'ai une nouvelle solution de contournement à essayer : appuyer sur la touche right-shift au lieu de la gauche. Peut-être que ma main va s'y habituer :)
0 votes
Dans Karabiner, lancez la fonction Event Viewer. Que montre-t-il lorsque vous appuyez sur chacune des touches séparément, puis que montre-t-il lorsque vous appuyez sur
option + left-shift + right-arrow
? S'il n'envoie pas les bons codes, essayez d'activer l'option mode débogage pour obtenir les codes bruts. Vous pouvez peut-être configurer Karabiner pour qu'il envoie les codes appropriés pouroption + left-shift + right-arrow
0 votes
@InsomniacSoftware J'ai modifié la question pour inclure toutes les sorties de mousquetons. AFAICS il n'y a rien à re-cartographier : l'événement n'atteint tout simplement pas Karabiner.
2 votes
Puisque la sortie de débogage montre que le système ne reçoit même pas les codes de la clé, vous ne serez pas en mesure de remapper. C'est quelque chose d'unique au clavier et à cette combinaison de touches. J'ai un problème similaire avec le clavier Microsoft Sculpt. Certaines touches et combinaisons envoient des codes étranges qui fonctionnent sous Windows avec le pilote approprié mais pas sur le Mac. Avez-vous essayé le USB Overdrive Le conducteur est déjà arrivé ? Enfin, regardez discussions.apple.com/thread/4693176 et demander à Bill s'il a aussi ce problème. Si c'est un problème de code USB, il mentionne un nouveau modèle Bluetooth qui pourrait fonctionner.
1 votes
J'ai le même problème avec deux claviers USB Lenovo TrackPoint (55Y9003 et 0B47190), il ne s'agit donc pas d'un défaut de fabrication mais d'un problème matériel (fonctionnalité ?). J'ai découvert que les touches de page avant/arrière du 55Y9003 (pour la navigation sur Internet - tellement années 1990) font également quelque chose de bizarre, et je ne peux pas les mapper de manière fiable en utilisant USB Overdrive. Légèrement hors sujet, mais avez-vous une idée de la façon dont je peux augmenter la sensibilité du TrackPoint ? J'ai augmenté la vitesse et l'accélération dans USB Overdrive, mais le TrackPoint n'est toujours pas aussi sensible (c'est-à-dire qu'il faut plus de force pour qu'il soit enregistré comme un mouvement) que lorsque j'utilise le clavier.