Utilisation du verrouillage des majuscules comme Esc dans Mac OS X


449

Comment faire Caps Lockfonctionner comme Escsous Mac OS X?


31
Cela semble être une tâche standard pour un programmeur qui utilise vim; d'où mon vote de réouverture
Jeromy Anglim

4
Une alternative consiste à mapper le verrouillage des majuscules au contrôle (Préférences Système> Clavier> Touches de modification) et d'exécuter la séquence d'échappement Ctrl + [pour esc. Utile pour Vim.
thelostspore

2
Solution native qui fonctionne dans macOS Sierra: stackoverflow.com/a/41004544/1940276
Kevin Roth

1
La solution native qui fonctionne dans macOS Sierra est la deuxième meilleure réponse ici (de @rkusa)
Marián Černý

Réponses:


394

Modifier: comme décrit dans cette réponse , les nouvelles versions de MacOS ont désormais une prise en charge native pour la reliure Caps Lockvers Escape. Ainsi, il n'est plus nécessaire d'installer un logiciel tiers pour y parvenir.


Voici ma tentative de réponse visuelle complète (avec liens) sur la façon d'y parvenir en utilisant Seil (anciennement connu sous le nom de PCKeyboardHack).

  1. Tout d'abord, allez dans les Préférences Système , choisissez Clavier , puis l' onglet Clavier (premier onglet) et cliquez sur Touches de modification :

Étape 1

Dans la boîte de dialogue contextuelle, définissez la clé de verrouillage des majuscules sur No Action:

ne choisissez aucune action

2) Maintenant, cliquez ici pour télécharger Seil et l'installer:

3) Après l'installation, vous aurez une nouvelle application installée (Mountain Lion et plus récent) et si vous êtes sur un ancien système d'exploitation, vous devrez peut-être vérifier un nouveau volet Préférences Système:

ouvrir le voile ou le volet des préférences

4) Cochez la case "Change Lock Lock" et entrez "53" comme code pour la touche d'échappement:

définir le code du clavier

Et tu as fini! Si cela ne fonctionne pas immédiatement, vous devrez peut-être redémarrer votre ordinateur.

Impressionné? Vous voulez plus de contrôle?

Vous pouvez également consulter KeyRemap4MacBook, qui est en fait l'outil de remappage de clavier phare pqrs.org- il est également gratuit.

Si vous aimez ces outils, vous pouvez faire un don . Je n'ai aucune affiliation avec eux mais j'utilise ces outils depuis longtemps et je dois dire que les gars là-bas ont fait un excellent travail pour les maintenir, ajouter des fonctionnalités et corriger des bugs.

Voici une capture d'écran pour montrer quelques-unes des (centaines de) options présélectionnables:

Image 1.png

PQRS possède également un excellent utilitaire appelé NoEjectDelay que vous pouvez utiliser en combinaison avec KeyRemap4MacBook pour reprogrammer la clé d'éjection. Après quelques ajustements, j'ai le mien réglé pour basculer l'AirPort Wifi.

Ces utilitaires offrent une flexibilité illimitée lors du remappage du clavier Mac. S'amuser!


3
J'aimerais préciser que j'utilise PCKeyboardHack seul sans KeyRemap4Macbook depuis près de 2 ans pour faire exactement cela.
rossipedia

13
Notez que si vous utilisez un clavier externe, vous devez répéter la première étape (c.-à-d. Verrouillage des majuscules = aucune action) pour chaque clavier. J'ai échoué à effectuer cette étape pour mon clavier externe et, par conséquent, le verrouillage des majuscules n'a pas répondu aux pressions très rapides des touches en raison d'une protection accidentelle du verrouillage des majuscules. superuser.com/questions/317900/eliminate-macbook-capslock-delay
Jeromy Anglim

11
Grand tutoriel. J'ai mappé Caps Lock à Esc pendant environ un an. C'était extrêmement efficace. Un jour, cependant, je faisais équipe avec un développeur senior. Je lui ai dit que j'avais utilisé Vim comme rédacteur principal. Moi aussi, dit-il. Il a ouvert sa machine et nous avons commencé à travailler. Lorsque mon tour est venu de modifier le code, j'ai tâtonné et j'ai trébuché partout parce que son verrouillage des majuscules n'était pas mappé. J'ai continué à essayer de remonter jusqu'à Esc, mais j'avais frappé Caps de temps en temps et puis mes commandes normales changeaient. Il m'a appris que Ctrl-c vous ramènera également en mode visuel. Rendez-vous service et commencez à utiliser Ctrl-c.
campeterson

7
(En apprendre plus chaque jour) CTRL-[est en fait l'équivalent approprié de l'ESC. stackoverflow.com/questions/5030164/…
campeterson

5
Ce serait formidable si vous pouviez également modifier et mentionner en haut qu'il s'agit désormais d'une fonctionnalité native dans macOS 10.12.1 selon la réponse de @ rkusa afin que les nouveaux utilisateurs n'aient pas à télécharger de logiciel tiers
edhurtig

309

Depuis macOS 10.12.1, il est possible de remapper Caps Locken Escnatif (Préférences Système -> Clavier -> Touches de modification).

entrez la description de l'image ici


11
Impressionnant! J'ai trouvé cela après avoir entendu que le nouveau MBP n'aurait pas de clé d'échappement. On dirait qu'Apple a anticipé un contrecoup.
Andy E

1
Exécution d'El Capitan 10.11.6 et ce paramètre est déjà disponible.
zool

1
Dieu merci pour cela; après que Sierra ait brisé Seil / Karabiner, je pensais que j'étais condamné.
Philip

4
Curieusement, je suis sur 10.11.6 et je n'ai pas cette option. Je ne suis autorisé à remapper esc qu'en majuscules, ctrl, opt ou commande. Cela est vrai pour mes claviers WASD v2.
Benny Powers,

1
Existe-t-il un moyen de le faire via la ligne de commande? Peut-être dans une méthode similaire à celles-ci? github.com/herrbischoff/awesome-osx-command-line#keyboard
Jordan Eldredge

40

Je n'étais pas satisfait de l'une des réponses ici et suis allé à la recherche d'une solution en ligne de commande .

Dans macOS Sierra 10.12, Apple a introduit une nouvelle façon pour les utilisateurs de remapper les clés.

  • Pas besoin de jouer avec les interfaces graphiques du système
  • Aucun privilège spécial n'est requis
  • Entièrement personnalisable
  • Pas besoin d'installer des conneries tierces comme PCKeyboardHack / Seil / Karabiner / KeyRemap4MacBook / DoubleCommand / NoEjectDelay

Si cela vous convient, jetez un œil à hidutil.

Par exemple, pour remapper le verrouillage des majuscules à l'échappement, reportez-vous au tableau des clés et recherchez que le verrouillage des majuscules a le code d'utilisation 0x39 et que l'échappement a le code d'utilisation 0x29. Mettez ces codes or'd avec la valeur hexadécimale 0x700000000 dans la source et dest comme ceci:

hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x700000029}]}'

Vous pouvez ajouter d'autres mappages dans la même commande. Personnellement, j'aime remapper le verrouillage des majuscules au retour arrière et remapper le retour arrière pour le supprimer:

hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000002A}, {"HIDKeyboardModifierMappingSrc":0x70000002A,"HIDKeyboardModifierMappingDst":0x70000004C}]}'

Pour voir le mappage actuel:

hidutil property --get "UserKeyMapping"

Vos modifications seront perdues au redémarrage du système. Si vous voulez qu'ils persistent, mettez-les dans un script et configurez un hook de connexion:

sudo defaults write com.apple.loginwindow LoginHook /path/to/login_script.sh

3
+! c'est la façon moderne et correcte de remapper des clés sur macOS
Fanckush

2
Le problème de Karabiner avec la répétition des clés m'a amené à chercher une solution native pour le remappage des clés. Ce message et un autre sur apple.stackexchange.com ont beaucoup aidé.
chb

Merci pour cela, +1! J'ai ajouté quelques notes tangentielles à l'article d' Apple qui, espérons-le, ajoutent de la valeur pour nous, pauvres gens qui ne veulent pas de touche Échap, mais pas sur le verrouillage des majuscules.
tripleee

Excellente méthode pour les MacBooks qui ont des problèmes avec le clavier intégré. Le mien posait des problèmes avec les paramètres du clavier, je ne pouvais donc pas remapper les touches.
Igor

Je n'ai pas pu faire fonctionner correctement la LoginHookméthode - je suppose que quelque chose après avoir exécuté sélectionne mes paramètres de clavier local pour un clavier scandinave? Quoi qu'il en soit, stackoverflow.com/a/22872222/874188 note qu'il LoginHookest déconseillé et préconise l'utilisation à la launchdplace.
tripleee

34

C'est possible.

Solution 1

D' un arcticle sur TrueAffection.net.

  • Téléchargez PCKeyboardHack et installez-le.
  • Accédez à PCKeyboardHack dans les Préférences Système.
  • Activez `` Changer le verrouillage des majuscules '' et définissez le code clé sur 53.

Solution 2

Cette solution n'implique pas de patcher le pilote du clavier, mais vous offre une solution spécifique à Vim.

OS X prend en charge le mappage de la touche de verrouillage des majuscules sur un tas de clés, mais vous devez le faire «à la main», en éditant les fichiers .plist. Le processus est décrit dans cet article . En complément de cet indice, je vous suggère de définir d'abord le verrouillage des majuscules sur Aucun dans les Préférences Système, puis il vous suffit de modifier une valeur dans le fichier .plist. En outre, vous pouvez bien sûr utiliser l'éditeur de liste de propriétés au lieu de suivre les étapes de conversion XML.

L'astuce consiste à mapper la touche de verrouillage des majuscules à la touche d'aide (code 6), qui n'est pas sur la plupart des claviers. Mais si c'est le cas, elle sera traitée comme la clé d'insertion, que vous n'utiliserez probablement pas de toute façon, car vous demandez de remapper votre verrouillage des majuscules pour éviter d'étirer vos mains;)

Vous pouvez ensuite mapper l'aide et la Insertclé dans Escin vim.

map  <Help> <Esc>
map! <Help> <Esc>
map  <Insert> <Esc>
map! <Insert> <Esc>

Cela fonctionnera pour gvim (Vim.app). Je ne l'ai pas fait fonctionner avec vim dans le terminal et je ne l'ai pas testé avec MacVim.

Donc, c'est plutôt une solution compliquée à moitié cuite ou l'installation d'un piratage tiers. Votre choix ;)

Edit: Je viens de remarquer la solution 3, si vous utilisez MacVim, vous pouvez utiliser Ctrl, Optionet Commandcomme Esc. Avec les préférences système, il est trivial de mapper le verrouillage des majuscules à l'une de ces clés.


1
Solution 3: Comment utilisez-vous Ctrl, Option ou Commande comme Esc dans MacVim? Je ne trouve pas ce paramètre dans les préférences.
clizzin le

Vous le mappez dans les préférences système => clavier.
maletor

9
Où est l'indice auquel vous faites allusion?
Matthew Schinckel

2
Maletor - il n'y a aucun endroit pour dire à macvim d'utiliser le contrôle comme évasion
Scott Schulthess

1
@MatthewSchinckel voici un de ces liens: hints.macworld.com/article.php?story=20060825072451882
Ben Challenor

33

Il est désormais beaucoup plus facile de mapper la Caps Lockclé Escavec macOS Sierra.

  1. Ouvrez les Préférences Système → Clavier.

  2. Cliquez sur le bouton Clés de modification dans le coin inférieur droit.

  3. Cliquez sur la liste déroulante à côté de la clé matérielle que vous souhaitez remapper, puis sélectionnez Échap.

  4. Cliquez sur OK et fermez les Préférences Système.

entrez la description de l'image ici

https://9to5mac.com/2016/10/25/remap-escape-key-action-macbook-pro-macos-sierra-10-12-1-modifier-keys/


30

La seule chose que je sais faire est de mapper le verrouillage des majuscules au contrôle, à l'option ou à la commande. Cela peut être fait via le volet Clavier et souris des Préférences Système. Cliquez sur "Touches de modification" en bas à gauche et vous pourrez remapper le verrouillage des majuscules, le contrôle, l'option et la commande à n'importe lequel d'entre eux.

@Craig: Cela suggère que le verrouillage des majuscules peut être utilisé comme une clé normale, c'est-à-dire sans basculement. Sur mon MacBook, depuis que j'ai remappé Caps Lock à Control, le voyant Caps Lock ne s'allume jamais. Il agit simplement comme la touche Contrôle.

entrez la description de l'image ici



1
Malheureusement pas avec les claviers Logitech, donc pas de touche d'échappement sur CapsLock, pas de clavier de retour vim == me
Enric Ribas

14

Seil n'est pas encore disponible sur macOS Sierra (10.12 beta). En tant que tel, j'utilise Keyboard Maestro avec ces paramètres:entrez la description de l'image ici

Crédit à ce commentaire github: https://github.com/tekezo/Seil/issues/68#issuecomment-230131664


2
J'utilise github.com/tekezo/Karabiner-Elements (qui fonctionne sur Sierra). Fonctionne très bien jusqu'à présent, même si j'aurais aimé qu'il "Control_L to Control_L (+ lorsque vous tapez Control_L uniquement, envoyez Escape)"
atomkirk

1
@atomkirk Pourriez-vous partager la configuration Karabiner JSON que vous avez utilisée?
LandonSchropp

1
{"profiles": [{"name": "Default profile", "selected": true, "simple_modifications": {"caps_lock": "escape"}}]}
atomkirk


Karabiner a fait l'affaire pour moi avec le JSON d'Atomkirk. Malgré la capture d'écran ci-dessus, l'interface utilisateur du clavier Maestro est une pagaille et je n'ai pas pu la configurer.
Paul

10

Après avoir essayé plusieurs de ces solutions, j'ai quelques notes:

DoubleCommand va pas vous permettre de esc d'échange et de verrouillage des majuscules.

PCKeyboardHack va vous permettre de cartographier capslock d'échapper,mais n'a pas la capacité de mapper l'évasion au verrouillage des majuscules. Les versions récentes vous permettront d'effectuer un échange complet en modifiant les deux touches.

Cela peut ou non être suffisant pour vos besoins (je sais que c'est pour le mien).


1
PCKeyboardHack ne vous permet pas de mapper l'échappement à capslock, mais l'application compagnon KeyRemap4MacBook le fait. Il vous permet de mapper «Escape to CapsLock» et «Shift + Escape to CapsLock».
Rory O'Kane

9

Si vous ne souhaitez pas installer une application tierce et que vous ne vous souciez que de vim dans iTerm, les opérations suivantes fonctionnent:

Remappez CapsLock à l'aide comme décrit ici .

Version courte: utilisez plutil ou similaire pour éditer ~/Library/Preferences/ByHost/.GlobalPreferences*.plist, cela devrait ressembler à ceci:

<key>HIDKeyboardModifierMappingDst</key>
<integer>6</integer>
<key>HIDKeyboardModifierMappingSrc</key>
<integer>0</integer>

Redémarrer! Une déconnexion et une connexion simples n'ont pas fonctionné pour moi.

Dans iTerm, ajoutez un nouveau mappage de clé pour l'aide: envoyez le code hexadécimal 0x1b, qui correspond à Escape.

Je sais que ce n'est pas exactement ce qui a été demandé, mais je suppose que l'intention de nombreuses personnes à la recherche d'une solution comme celle-ci est en fait cette variante plus spécialisée.


4

Afin d'échanger réellement la touche d'échappement avec la touche de verrouillage des majuscules (pas seulement de mapper l'une à l'autre) en utilisant à la fois PCKeyboardHack et KeyRemap4MacBook, vous devez suivre les instructions de ce fil , mappant la clé de verrouillage des majuscules à un code clé non utilisé par le clavier mais représenté par KeyRemap4MacBook (par exemple 110). Ensuite, dans PCKeyboardHack, sélectionnez l'option appropriée qui mappe ce code de clé pour s'échapper (dans le cas de 110, c'est "Application Key to Escape"). Voici à quoi devraient ressembler vos préférences KeyRemap4MacBook (à condition que vous ayez coché la case "Afficher uniquement activé").

entrez la description de l'image ici

À l'origine, j'ai tenté de publier ces informations en tant que modification dans l'excellente réponse de cwd , mais elle a été rejetée. J'encourage toute personne qui souhaite suivre la voie que je décris à lire d'abord sa réponse.


2

Seil ne fonctionne pas encore sur macOS Sierra, donc j'utilise Karabiner Elements , téléchargez à partir de https://pqrs.org/latest/karabiner-elements-latest.dmg .

Utilisez l'interface graphique ou placez ce qui suit dans ~/.karabiner.d/configuration/karabiner.json:

{
  "profiles" : [
    {
      "name" : "Default profile",
      "selected" : true,
      "simple_modifications" : {
        "caps_lock" : "escape"
      }
    }
  ]
}

Notez que les éléments Karabiner cassent la barre tactile et la touche fn
mperrin


1

Ouvrez les préférences du clavier et cliquez sur les touches de modification ... vous pouvez changer la touche de verrouillage des majuscules en contrôle, option, échappement ou commande.

entrez la description de l'image ici


9
Aucun d'entre eux n'est "Esc", sur lequel l'affiche a posé des questions. Probable pour l'utilisation de Vim.
Rafi Jacoby

1
@RafiJacoby Quelle est la différence entre Escet Escape? (question sérieuse)
byxor

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.