41 votes

Comment rendre les touches ^ et ` non mortes sur Windows 7 avec une disposition de clavier allemande

Dans la disposition par défaut du clavier allemand ^ et le backtick/forwardtick sont des touches mortes.

Cependant, en tant que programmeur, je n'ai généralement pas besoin d'écrire des accents, mais les caractères eux-mêmes. Devoir appuyer deux fois sur la touche et revenir en arrière ou sur la touche et l'espace est assez ennuyeux dans ce cas.

Je voudrais donc savoir s'il est possible (et comment) de changer ces touches pour qu'elles créent immédiatement le caractère au lieu d'attendre un deuxième caractère.

41voto

Tobias Plutat Points 5435

Vous pouvez utiliser le Créateur de Disposition de Clavier de Microsoft pour modifier votre disposition. Une fois que vous l'avez téléchargé et installé, suivez ces étapes :

  1. Cliquez sur "Fichier" puis sur "Charger un Clavier Existant".
  2. Les touches mortes sont affichées en gris - en faisant un clic droit sur n'importe quelle touche, vous pouvez attribuer ou supprimer le comportement des touches mortes :

entrer la description de l'image ici

  1. Lorsque vous avez fini d'attribuer et de supprimer des touches mortes, allez sur "Projet" -> "Propriétés" et modifiez la description. La "Nom" est limitée à 8 caractères (pour une raison quelconque), alors contentez-vous de mettre "Deutsch" et la description à quelque chose comme "Deutsch - Pas de touches mortes" ou ce que vous préférez.

  2. Lorsque vous avez terminé, allez sur "Projet" et choisissez "Créer DLL et Package d'Installation". Lors de la création, il vous indiquera quelques avertissements dans le fichier journal, mais vous pouvez probablement les ignorer. La prochaine invite vous demandera si vous souhaitez ouvrir le répertoire dans lequel les fichiers ont été écrits - si vous le faites, vous pouvez simplement installer votre disposition en un clic.

  3. Ouvrez les Paramètres du Clavier dans Windows pour vérifier si la nouvelle disposition de clavier a été ajoutée à la liste des claviers de Windows. I

Fini !

0voto

kdb Points 1721

Je n'ai pas pu faire fonctionner la méthode basée sur le créateur de clavier. À la place, j'ai créé un script AutoHotKey. La méthode de détection du layout de clavier actuel est tirée de Comment savoir quel est le layout de clavier actuel?.

L'idée est d'automatiser l'envoi de la séquence "dead key + espace". Comme cela aura un effet incorrect pour les layouts sans dead keys, je filtre en fonction de l'ID de localité, qui pour le clavier allemand respecte le modèle 0x0407????. Cette valeur peut ne pas être portable, étant donné que les layouts de clavier ne sont pas codés en dur.

J'ai envisagé d'utiliser GetKeyboardLayoutNameA, mais la valeur est parfois obsolète.

;;;; ------ PAS DE DEAD KEYS ------

GetCurrentLocaleId()
{
  ;; Source:
  ;;   https://autohotkey.com/board/topic/
  ;;   22900-how-to-find-out-what-is-the-current-keyboard-layout/
  WinGet, WinID,, A
  ThreadID := DllCall("GetWindowThreadProcessId", "Int", WinID, "Int", 0)
  InputLocaleID := DllCall("GetKeyboardLayout", "Int", ThreadID)
  Return InputLocaleID
}

IsGermanKbdLayout()
{
  Return GetCurrentLocaleId()//0x10000 == 0x407
}

#If IsGermanKbdLayout()
SC029::SendRaw % "^ "
SC00D::SendRaw % "´ "
+SC00D::SendRaw % "`` "
;; Trouvez les codes de scan en consultant la console du script > affichage > historique des touches

0voto

Anurag Kalia Points 584

FTR

Si vous utilisez le nouveau Terminal Microsoft en tant que votre pilote de terminal quotidien (sinon essayez-le, c'est vraiment génial), vous pouvez désactiver les touches mortes en utilisant une macro dans vos paramètres comme ceci :

"actions":
[
    ...
    { "command": { "action": "sendInput", "input": "^" }, "keys": "^" },
    ...
]

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X