0 votes

Détecter la pression simultanée de la touche fn et de la touche de fonction

J'utilise ControllerMate pour essayer de changer ce que font mes boutons de volume.

Malheureusement, je n'ai pas trouvé comment détecter que la F11 ou F12 sont pressées en même temps que la touche fn clé.

Au départ, j'avais prévu de combiner un F11 et un AppleScript qui vérifie la présence de la touche fn clé.

enter image description here

Je n'ai pas été capable de trouver un moyen dans AppleScript de détecter les fn clé. Les recherches m'ont conduit à des solutions possibles, telles que

do shell script "/usr/bin/python -c 'import Cocoa; print Cocoa.NSEvent.modifierFlags()'"

Mais cela ne permet pas de faire la distinction entre les différentes touches de fonctions ou fn .

Après avoir passé près d'une semaine à essayer de résoudre ce problème moi-même, je vous pose la question suivante : existe-t-il un moyen de détecter dans ControllerMate une simultanéité de fn et l'appui sur une touche de fonction ?

1voto

theonlygusti Points 6434

J'ai trouvé un moyen de le faire qui utilise le génial Éléments du mousqueton . Cela m'a été très utile dans de nombreuses situations, et cela fonctionne ici aussi.

Mousqueton peut détecter les touches de fonction pressées, et dire si c'est avec ou sans la fonction fn modificateur de touche.

Nous pouvons faire notre propre "modification complexe" qui en tire parti :

  1. Les modifications complexes sont stockées dans ~/.config/karabiner/assets/complex_modifications en tant que fichiers json. Créez un fichier ici avec votre éditeur de texte préféré :

    vim ~/.config/karabiner/assets/complex_modifications/detect_fn.json
  2. Vous devez remplir le fichier avec vos propres règles, voici à quoi ressemble le mien maintenant :

    {
      "title": "The fn keys can control volume of built-in output even when a multi-output device is being used.",
      "rules": [
        {
          "description": "Map fn volume keys to execute applescript which changes volume of built-in output.",
          "manipulators": [
            {
              "type": "basic",
              "from": {
                "key_code": "f10",
                "modifiers": {
                  "mandatory": [
                    "fn"
                  ]
                }
              },
              "to": [
                {
                  "shell_command": "osascript -e 'set volume alert volume 0' && osascript -e 'set volume (alert volume of (get volume settings))*7/100'"
                }
              ]
            },
            {
              "type": "basic",
              "from": {
                "key_code": "f11",
                "modifiers": {
                  "mandatory": [
                    "fn"
                  ]
                }
              },
              "to": [
                {
                  "shell_command": "osascript -e 'set volume alert volume ((alert volume of (get volume settings)) - 100/16)' && osascript -e 'set volume (alert volume of (get volume settings))*7/100'"
                }
              ]
            },
            {
              "type": "basic",
              "from": {
                "key_code": "f12",
                "modifiers": {
                  "mandatory": [
                    "fn"
                  ]
                }
              },
              "to": [
                {
                  "shell_command": "osascript -e 'set volume alert volume ((alert volume of (get volume settings)) + 100/16)' && osascript -e 'set volume (alert volume of (get volume settings))*7/100'"
                }
              ]
            }
          ]
        }
      ]
    }
  3. Il devrait être évident que vous pouvez remplacer les clés par celles que vous voulez, et vous pouvez également remplacer la commande shell par n'importe quelle commande shell.

  4. Ajouter la règle dans karabiner-elements par

    1. Mise en route

    2. Choisir "Modifications complexes" en haut de la page.

    3. En cliquant sur "(+) Ajouter une règle"

    4. Activation de la règle que vous venez de définir

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X