Est-il possible de désactiver le sélecteur d'application d'onglet de commande dans Mac OS X Lion?

11

Ce raccourci me rend fou. Je voudrais remapper l'onglet de commande pour l'insertion d'extraits de code lors du codage, mais le sélecteur se met en travers ...

Sean Mackesey
la source
doublon possible. superuser.com/questions/548146/…
Daniel Dropik

Réponses:

6

Vous pouvez mapper l'onglet de commande à une autre combinaison de touches avec KeyRemap4MacBook :

<autogen>__KeyToKey__ KeyCode::TAB, VK_COMMAND | ModifierFlag::NONE, KeyCode::F19</autogen>

Cela désactiverait l'onglet de commande et l'onglet de commande de décalage:

<autogen>__KeyToKey__ KeyCode::TAB, VK_COMMAND | ModifierFlag::NONE, KeyCode::VK_NONE</autogen>
<autogen>__KeyToKey__ KeyCode::TAB, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::VK_NONE</autogen>
Lri
la source
Merci, c'est une bonne piste. Il est également bon de savoir que le remappage via DefaultKeyBinding.dict est une impasse. Je vais essayer KeyRemap4MacBook
Sean Mackesey
1
Cela a très bien fonctionné, merci. Dans le cas où cela ne serait pas clair pour les autres, vous devez ajouter ces définitions private.xmldans sa propre <item>balise sous <root>. Ensuite, rechargez private.xmlet basculez la nouvelle option.
jrhorn424
Assurez-vous d'ajouter un nom et un identifiant à l'entrée <item> <name>Disable Command Tab</name> <identifier>private.disable_command_tab</identifier>
Willem D'Haeseleer
1

Vous pouvez le faire comme niveau d'assemblage. Pour ML 10.8.3, cet enregistrement Cmd+ Tabse produit dans le sous-programme à l'adresse 0x10000b258. En pseudo-code, cela ressemble à:

rax = CPSRegisterForKeyOnConnection(*(int32_t *)rbx, 0x1002cd078, 0x1, 0x1);
if (rax != 0x0) {
    fprintf(**__stderrp, "Error registering cmd-tab key, %d\\n");
}
rax = CPSRegisterForKeyOnConnection(*(int32_t *)0x1002ccda8, 0x1002cd078, 0x2, 0x1);
if (rax != 0x0) {
    fprintf(**__stderrp, "Error registering cmd-shift-tab key, %d\\n");
}

Donc, si vous remplacez les codes d'octets suivants:

488D35691C2C008B3BBA01000000B901000000E85CD71B0085C0741A488B0DD5FC2400488B39488D355B341C0089C230C0E892C51B00488D0563192C008B38488D352A1C2C00BA02000000B901000000E81FD71B0085C0741A488B0D98FC2400488B39488D3541341C0089C230C0E855C51B00

avec:

9090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090

Et démissionnez de votre Dock.app, cela fonctionnera. Vous devez également déprotéger le binaire Dock avant de le faire car le binaire Dock est crypté.

user2199684
la source
5
pouvez-vous s'il vous plaît sauvegarder votre réponse avec une sorte de source s'il vous plaît? tout ce code peut prêter à confusion et faire l'objet de méfiance de la part des futurs lecteurs. J'espère que tu as compris.
Lorenzo Von Matterhorn
1
Ajoutez également ce que fait le code d'origine, et le remplacement (le démontage serait bien pour moi)
vonbrand
3
Ceci est une réponse assez cool. Bien que la préoccupation dans les deux autres commentaires soit probablement valable, c'est une offre triste que tous les commentaires la remettent en question, mais personne ne souligne que c'est assez cool. Comment savez-vous quelle adresse de sous-routine et quel est le 090909? (pas d'opération?)
Gal
0

Une réponse acceptable consisterait - elle à la modifier ?

Mac OS X Lion (10.7) a du mal à détecter la disposition du clavier lorsque je l'ai branché pour la première fois. Mais après avoir suivi les instructions (c'est-à-dire appuyer sur la touche à droite de Left Shift, etc.), il identifie correctement la disposition.

Dans les Préférences Système, Lion possède un magnifique panneau de clavier:

Capture d'écran du clavier du Lion

Ensuite, allez aux touches de modification…

entrez la description de l'image ici

Bingo, maintenant CapsLock se comporte comme un contrôle.

Ou, vous pouvez essayer d'effectuer les raccourcis clavier:

Modifiez le fichier de raccourcis clavier par défaut, ~ / Library / KeyBindings / DefaultKeyBinding.dict. Créez le répertoire et / ou le fichier s'ils ne sont pas déjà là, et faites-le ressembler à ceci:

{
  /* Remap Home / End to be correct */
  "\UF729" = "moveToBeginningOfLine:"; /* Home */
  "\UF72B" = "moveToEndOfLine:"; /* End */
  "$\UF729" = "moveToBeginningOfLineAndModifySelection:"; /* Shift + Home */
  "$\UF72B" = "moveToEndOfLineAndModifySelection:"; /* Shift + End */
}

S'il existe déjà des entrées dans DefaultKeyBinding.dict, ajoutez simplement les 4 nouveaux mappages ci-dessus à la section principale de votre fichier. Un redémarrage peut être nécessaire pour qu'il prenne effet.

Vous devrez ajuster le code ci-dessus pour ce que vous essayez de faire

Everett
la source
1
Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure ici les parties essentielles de la réponse et de fournir le lien de référence.
Canadian Luke
3
D'accord avec le commentateur ci-dessus - cette réponse est beaucoup trop détournée. J'apprécie votre tentative de réponse, mais veuillez être plus directe. J'ai l'impression que cette entrée risque de dérouter ceux qui trouveront cette question à l'avenir. En outre, le remappage de la clé de commande entière vers quelque chose d'autre n'est pas une solution acceptable pour moi, car j'utilise la clé de commande pour beaucoup d'autres choses. Je ne peux pas dire si le code que vous montrez dans la deuxième partie de votre solution me permettrait de désactiver sélectivement CMD + TAB, mais s'il peut s'il vous plaît expliquer de manière explicite.
Sean Mackesey
Le remappage de la touche de commande sur Caps Lock est probablement la meilleure idée que je puisse offrir. Vous obtenez toujours la touche de commande, et je serais stupéfait d'apprendre que vous utilisez réellement le verrouillage des majuscules pour quelque chose. La deuxième option était de démontrer la quantité de travail que vous alliez devoir faire si vous avez une raison pour laquelle la méthode simple ne fonctionnera pas. En dehors de ces deux, je n'ai rien d'autre pour vous. J'ai fourni les pièces essentielles selon les recommandations de Luke.
Everett
En fait, CapsLock a déjà été remappé sur Escape (essentiel si vous utilisez Vim!). Merci pour vos efforts, encore une fois, je vais vous recommander de modifier votre message. Veuillez simplement créer un lien vers quelque chose sur le remappage des touches de modification, afin que les futurs navigateurs n'aient pas à parcourir l'intégralité de l'explication lorsqu'ils savent que cette solution ne fonctionnera pas pour eux.
Sean Mackesey