Attiva "Usa tutte le F1, F2 come tasti standard" tramite script


25

Attivo l'impostazione "Usa tutti F1, F2 come tasti standard" molto spesso e vorrei automatizzarlo tramite uno script (o una scorciatoia da tastiera). È possibile? Ho provato a Google gli argomenti giusti per, defaults write ...ma senza successo.

impostazioni fn


Aggiornamento: ho finito per creare https://github.com/jkbrzt/macos-fn-toggle in base alle risposte qui.

Aggiornamento II: ora c'è anche - https://github.com/Pyroh/Fluor - un'app davvero bella per la barra dei menu che ti permette di cambiare automaticamente il comportamento dei tasti fn della tastiera a seconda dell'applicazione attiva.

Risposte:


25
tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

Potresti anche usare defaults write -g com.apple.keyboard.fnState -bool true, ma non conosco alcun modo per applicare le modifiche senza disconnettersi e riconnettersi.


4
Ho impacchettato questo script come un'app che utilizza Automator in modo che possa essere eseguito rapidamente da Spotlight: github.com/jkbr/macos-fn-toggle
Jakub Roztocil

@jkbr La tua app su github è proprio il genere di cose che stavo cercando. Grazie!
mdwhatcott,

1
Puoi anche salvare uno script come applicazione da AppleScript Editor. Basta incollare lo script in AppleScript Editor, premere ⌘S e impostare il formato su applicazione.
Lri,

Come ulteriore alternativa, in automator creare un nuovo "servizio", aggiungere il comando Esegui Applescript e incollarlo nel punto in cui è scritto (* Lo script va qui *). Salva, quindi il menu dei servizi in tutte le applicazioni includerà fn :)
Spyder

2
Su Mavericks viene visualizzato un errore del tipo: "AppleScript Editor non ha accesso assistito". Quindi devi andare su "Sicurezza e privacy" nella scheda Privacy, selezionare Accessibilità e abilitare l'app a farlo. Dovrai fornire la password dell'amministratore per aprire il lucchetto.

10

Non conosco lo script, ma con qualche utile reverse-engineering e Google, l'ho realizzato dal momento che non mi piaceva la roba esistente della GUI di AppleScript che era là fuori:

https://github.com/nelsonjchen/fntoggle

Binario compilato (aggiungi il tuo PERCORSO o se non sai cosa sia allora /usr/local/bin/): https://github.com/nelsonjchen/fntoggle/releases

Chiamalo da qualsiasi cosa (ControlPlane, Automator sh, ecc.) Eseguendo fntoggle ono fntoggle off.

Questo script non richiede l'accessibilità della GUI per essere attivato. Inoltre non richiede il logout e il back in.


Funziona ancora in Sierra? Non funziona qui.
Warren P,

@WarrenP Questo problema potrebbe essere illuminante. github.com/nelsonjchen/fntoggle/issues/4
crazysim

Grazie! Funziona su Mojave 10.14.6
aztack

4

È possibile leggere lo stato corrente con quanto segue. (1 per i tasti F, 0 per media / luminosità ecc.)

defaults read "Apple Global Domain" "com.apple.keyboard.fnState"

Puoi scriverlo, tuttavia non cambierà fino al riavvio. (Ho provato a uccidere Dock e Finder invece, senza fortuna)

defaults write "Apple Global Domain" "com.apple.keyboard.fnState" "1" ## F1 F2 etc
defaults write "Apple Global Domain" "com.apple.keyboard.fnState" "0" ## Brightness/Media

Ho il sospetto che qualcuno con maggiori conoscenze su ciò che legge questo file plist potrebbe scrivere uno script per uccidere e riavviare tutto ciò che legge questo plist, il che dovrebbe fargli riconoscere il cambiamento.


Grazie, questa è la chiave corretta. Modificarlo direttamente, tuttavia, non sembra modificare il comportamento.
Jakub Roztocil,

non aiuta anche se riavviato
Daniel

1

In realtà, non è necessario eseguire alcuna app con riflettori o altro, il modo migliore secondo me è:

  1. Crea nuovo servizio in Automator
  2. Trascina: "Esegui script Apple
  3. Nel "Servizio ricevuto selezionato": selezionare nessun input
  4. Incolla questo codice da questa altra risposta :

    tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
    end tell
    tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
    end tell
    quit application "System Preferences" 
  5. Salva come "tuo nome"

  6. Apri Preferenze di Sistema → Tastiera → Scorciatoie
  7. Nel menu a sinistra selezionare: "Servizi"
  8. A destra, scorri fino al Generale e assegna al tuo servizio un tasto di scelta rapida unico, scelgo cmd + maiusc + L

  9. Questo è tutto! Non è molto veloce o altro, ma non è necessario eseguire alcuna app o accedere alle Preferenze.

Addendum: con EL Capitan funziona solo quando Automator è attivo, altrimenti (ad es. Se si richiama lo script tramite una scorciatoia da tastiera) viene visualizzato il messaggio "L'azione" Esegui AppleScript "ha rilevato un errore".


0

Benvenuti a chiedere diverso! Hai pubblicato questo come una risposta, che è solo per le cose che rispondono direttamente alla domanda posta. Risposte su Ask Diverso deve essere più di un semplice link. Va bene includere un link, ma per favore riassumilo o estrailo nella risposta. L'idea è di rendere la risposta indipendente. Consulta le domande frequenti per ulteriori informazioni. Grazie.
Nathan Greenstein,

0

Date tutte le risposte ho applicato la seguente soluzione per Yosemite.

Utilizzando Automator, ho creato un'app con il seguente codice:

tell application "System Preferences"
reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

Salvalo, aggiungilo ad Applicazioni. Per evitare che "AppleScript Editor non abbia accesso assistito", vai su Preferenze di Sistema-> Sicurezza e Privacy-> Privacy tocca-> Voce di accessibilità e aggiungi la tua app.

Se come me desideri un collegamento, quindi in Automator crea un nuovo Apple Script con l'app di avvio e seleziona la tua app. Quindi tornare a Preferenze di Sistema-> Tastiera-> Schede di scelta rapida-> Voce di servizio e alla fine dell'elenco, assegnare un collegamento allo script.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.