Rileva contemporaneamente fn e tasto funzione

0

Sto utilizzando ControllerMate per provare a cambiare i pulsanti del mio volume.

Purtroppo non ho capito come posso rilevare che i tasti F11 o F12 vengano premuti contemporaneamente al fn chiave.

Inizialmente avevo pianificato di combinare un rilevatore di pressione tasto F11 e un AppleScript che verifica la chiave fn .

NonsonostatoingradoditrovareunmodoinAppleScriptperrilevarelachiavefn.Laricercamihaportatoapossibilisoluzioni,come

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

Ma questo non può distinguere tra i diversi tasti funzione o fn .

Dopo quasi una settimana, cercando di capirlo da solo, ti chiedo; c'è un modo per rilevare in ControllerMate un fn simultaneo e premere il tasto funzione?

    
posta theonlygusti 20.08.2017 - 23:40
fonte

1 risposta

0

Ho trovato un modo per farlo utilizzando i fantastici elementi del Karabiner . Questo è stato molto utile per me in molte situazioni e funziona anche qui.

Karabiner può rilevare i tasti funzione che vengono premuti e indicare se è con o senza il modificatore fn .

Possiamo creare la nostra "modifica complessa" che sfrutta questo:

  1. Le modifiche complesse sono memorizzate in ~/.config/karabiner/assets/complex_modifications come file json. Crea un file qui con il tuo editor di testo preferito:

    vim ~/.config/karabiner/assets/complex_modifications/detect_fn.json
    
  2. Devi riempire il file con le tue regole, ecco come appare ora il mio:

    {
      "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. Dovrebbe essere ovvio come puoi sostituire i tasti con quelli che vuoi, e puoi anche sostituire il comando shell con qualsiasi comando di shell.

  4. Aggiungi la regola in elementi del moschettone di

    1. Avvio in su

    2. Scegliere "Modifiche complesse" dall'alto

    3. Facendo clic su "(+) Aggiungi regola"

    4. Abilitazione della regola appena definita

risposta data 29.08.2017 - 02:13
fonte

Leggi altre domande sui tag