Come cambio le scorciatoie di Controllo missione dalla riga di comando?

9

Ho cercato di capirlo per molto tempo. Ho un tipico script di provisioning per Mac OS:

link

Mi piacerebbe cambiare le scorciatoie del controllo missione in modo che siano tutti Ctrl + Alt + ... invece di Ctrl + ... . Ad esempio, il valore predefinito è: Ctrl + Su per attivare il controllo missione. Vorrei cambiarlo in Ctrl + Alt + Su , perché il collegamento corrente è in conflitto con altri programmi che uso.

Tieni presente che sono già a conoscenza di come farlo attraverso System Preferences > Keyboard > Shortcuts , sto cercando una soluzione a riga di comando con script,

EDIT: Grazie a @ user3439894 ho passato e ho creato uno script per cambiare tutte le chiavi plist in quello che voglio che siano. L'unico problema è che non funziona. : - (

Ecco quello che ho finora:

#!/bin/bash
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 32 "{enabled = 1; value = { parameters = (65535, 126, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 33 "{enabled = 1; value = { parameters = (65535, 125, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 34 "{enabled = 1; value = { parameters = (65535, 126, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 35 "{enabled = 1; value = { parameters = (65535, 125, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 79 "{enabled = 1; value = { parameters = (65535, 123, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 80 "{enabled = 1; value = { parameters = (65535, 123, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 81 "{enabled = 1; value = { parameters = (65535, 124, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 82 "{enabled = 1; value = { parameters = (65535, 124, 3014656); type = standard; }; }"
chown -Rf 'whoami' ~/Library/Preferences/com.apple.symbolichotkeys.plist;
defaults read com.apple.symbolichotkeys
    
posta ryanpcmcquen 24.08.2015 - 21:55
fonte

2 risposte

4

Questa non è una risposta diretta anche se spero che le informazioni qui presentate ti aiuteranno ad ottenere una risposta diretta.

Posso dirti quali modifiche apportate al file quando cambi la scorciatoia da tastiera predefinita per Controllo missione da Freccia di controllo a Freccia opzione di controllo-Su. È il "Numero articolo 2" della matrice "parametri" nel dizionario "valore" del dizionario "32" e del dizionario "34" del dizionario "AppleSymbolicHotKeys" nel file /Users/$USER/Library/Preferences/com.apple.symbolichotkeys.plist .

Ecco una rappresentazione defaults read della struttura di file com.apple.symbolichotkeys.plist in relazione alle modifiche apportate nelle circostanze definite sopra.

Controllo missione con l'impostazione predefinita Freccia di controllo

{
    AppleSymbolicHotKeys =     {
        32 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    2359296
                );
                type = standard;
            };
        };
        34 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    2490368
                );
                type = standard;
            };
        };
    };
}

Controllo missione modificato in Freccia opzione di controllo-Up

{
    AppleSymbolicHotKeys =     {
        32 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    2883584
                );
                type = standard;
            };
        };
        34 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    3014656
                );
                type = standard;
            };
        };
    };
}

La sezione BUGS della pagina man di defaults dice:

Defaults can be structured in very complex ways, making it difficult for the user to enter them with this command.

E questo è un esempio perfetto in quanto sarà una linea di comando molto complessa che usa defaults per scrivere i valori di destinazione sugli elementi dell'array di destinazione, se è persino fattibile. Solo una FYI ... Se tenterai di eseguire un comando defaults write com.apple.symbolichotkeys ... , assicurati di aver eseguito prima il backup del file di destinazione.

L'altra opzione è usare un AppleScript per modificare le impostazioni navigando nella GUI delle Preferenze di Sistema e anche questo sarà un po 'complesso rispetto all'impostazione di un oggetto di livello superiore, che il target qui non è. Non sono nemmeno sicuro che sia fattibile, tuttavia, se avessi bisogno di un modo automatico, avrei capito, ma non ho il tempo di capire entrambi i metodi, mi spiace.

Almeno ora sai cosa cambia da dove e da lì potresti essere in grado di capirlo da solo o ricevere ulteriore aiuto per saperne un po 'di più.

Ecco un'immagine ritagliata in Xcode del file com.apple.symbolichotkeys.plist .

BTW Ho intrappolato le modifiche utilizzando un'utility di terze parti che ha registrato le modifiche al filesystem e poi ha convertito tali informazioni in un output più leggibile per fornire queste informazioni.

    
risposta data 25.08.2015 - 04:28
fonte
1

Questa è la mia raccomandazione: utilizza un'utilità come Karabiner per accompagna tale personalizzazione.

Come sviluppatore, voglio dire che personalmente trovo che sia un problema affascinante e allettante, e mostra davvero il lato più oscuro e oscuro di macOS skulking dietro le quinte che solo gli sviluppatori di software e gli hacker possono davvero apprezzare .. .

Il problema è abbastanza semplice: Voglio solo rimappare la combinazione di tasti predefinita con il mio binding.

Perché mai è così difficile / complicato? Intendo scoprire e pubblicare una soluzione ... Resta sintonizzato.

    
risposta data 05.11.2016 - 02:01
fonte

Leggi altre domande sui tag