Sincronizza le scorciatoie da tastiera tra i computer macOS


13

Ho un paio di scorciatoie personalizzate definite usando Preferenze di Sistema> Tastiera> Scorciatoie e voglio sincronizzare quelle tra i miei due Mac.

Sembra che questo non sia ancora possibile usando iCloud . Ci sono altri modi? Ho pensato di includerli nei miei dotfile, ma non riesco a trovare le scorciatoie usando il defaultscomando.


1
Sto aggiungendo una generosità a questa domanda. C'è qualche soluzione alternativa? Le scorciatoie da tastiera possono essere collegate e sincronizzate tramite Dropbox? Immagino che il problema sarebbe che un Mac potrebbe avere scorciatoie da tastiera personalizzate per un'app che non è installata sull'altro Mac ...?
Winterflags,

4
Non posso aggiungere questo come risposta in quanto potrebbe essere rimosso. Se hai problemi con le cose di Apple, non sono sicuro del perché, ma funziona per me tra mac e persino dispositivi iOS, hai preso in considerazione l'idea di passare a una soluzione di terze parti come Keyboard Maestro , che può essere configurata per utilizzare Dropbox sincronizzare tra computer? wiki.keyboardmaestro.com/Syncing_Macros_Between_Macs
jasonology

2
@jasonology Non vedo alcun motivo per cui offrirlo come risposta sarebbe un problema. In effetti, ti incoraggio a fare proprio questo! :)
Monomeeth

1
@jasonology KeyboardMaestro può associare scorciatoie personalizzate per elementi precedentemente non abbreviati nella barra dei menu delle applicazioni? Vale a dire Preferenze di Sistema> Tastiera> Scorciatoie> Scorciatoie per app ? Sarebbe il Santo Graal per un'app di terze parti per replicare imo le opzioni di Preferenze di Sistema. Non so che è possibile con BetterTouchTool (forse lo è?).
Winterflags il

1
@jasonology, grazie per il suggerimento. Ho premuto il grilletto per l'acquisto di Keyb. Maestro e sta facendo esattamente quello che voglio, inclusa la sincronizzazione del DB. Mi chiedo perché la tua risposta sia stata rimossa, poiché è la cosa migliore per me. Winterflags, ho migrato i miei SysPref sul Maestro uno per uno, non è così difficile e ne vale la pena.
SilverSideDown

Risposte:


6

Dato che stai utilizzando i file dot, se sai quali scorciatoie vuoi creare in anticipo, puoi aggiungerle a tutte le macchine aggiungendo i seguenti defaults writecomandi allo script di installazione:

Scorciatoie per app : le impostazioni predefinite scrivono com.developer.appNSUserKeyEquivalents -dict-add " Menu Item" -string " keyboardShortcut"

Scorciatoie globali : impostazioni predefinite scrivere -g NSUserKeyEquivalents -dict-add " Menu Item" -string " keyboardShortcut"

... dove com.developer.appè ID pacchetto dell'applicazione, ed keyboardShortcutè le lettere dei tasti che si desidera includere, oltre i simboli @, $, ~e ^che rappresentano i, Maiusc, Alt chiavi, e Controllo di comando, rispettivamente. Ad esempio, -string "@~K"rappresenterebbe la scorciatoia da tastiera K.


Se devi sincronizzare le scorciatoie esistenti, dovrai creare uno script più complicato. Immagino che ciò implicherebbe la lettura o il confronto di scorciatoie su una macchina sorgente tramite:

Scorciatoie per app : i valori predefiniti leggono com.developer.appNSUserKeyEquivalents

Scorciatoie globali : impostazioni predefinite leggere -g NSUserKeyEquivalents

... e scrivendoli su una macchina target tramite:

Scorciatoie per app : le impostazioni predefinite scrivono com.developer.appNSUserKeyEquivalents ' outputOfSourceMachine'

Scorciatoie globali : impostazioni predefinite scrivere -g NSUserKeyEquivalents ' outputOfSourceMachine'


Questi comandi hanno funzionato in modo strano per me su versioni macOS più recenti, in particolare High Sierra e Mojave. Stranamente, voglio dire che a volte devo eseguire il comando più volte su un nuovo sistema prima che abbiano effetto. Difficile isolare il problema poiché test significa reinstallare il sistema ...
Wowfunhappy,
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.