Sto provando a scrivere uno script Bash bootstrap che implementerà le preferenze per alcune delle app che uso, tramite il comando defaults write
.
Ci sono casi particolari in cui trovo che la struttura sia piuttosto complicata e provare a migrarlo nel mio script, dall'output defaults read
, produce un errore.
Per ciascuna delle seguenti strutture, quale sarebbe il modo corretto per renderle defaults write
-adattabili?
L'app Dizionario di Apple, questa sezione specifica è del tipo array
. Sono interessato a prendere la sottosezione dictionaries
, così com'è, e inserirla nel mio script.
defaults read com.apple.Dictionary "window settings"
(
{
dictionaries = (
{
"disclosure opened" = 1;
path = "/System/Library/Frameworks/CoreServices.framework/Frameworks/DictionaryServices.framework/Resources/Wikipedia.wikipediadictionary";
"sub-dictionaries" = (
{
"disclosure opened" = 1;
identifier = "com.apple.dictionary.Wikipedia-en";
"user choice" = 1;
},
{
"disclosure opened" = 1;
identifier = "com.apple.dictionary.Wikipedia-he";
"user choice" = 0;
}
);
"user choice" = 1;
},
{
"disclosure opened" = 1;
path = "/System/Library/Assets/com_apple_MobileAsset_DictionaryServices_dictionaryOSX/cd4d7cc1cd227a13d2b9c029f86c940f94b7543a.asset/AssetData/Apple Dictionary.dictionary";
"user choice" = 0;
},
{
"disclosure opened" = 1;
path = "/System/Library/Assets/com_apple_MobileAsset_DictionaryServices_dictionaryOSX/61b49f47f0dce1c061c688d415e1f1a84c37fce0.asset/AssetData/Oxford Dictionary of English.dictionary";
"user choice" = 0;
},
{
"disclosure opened" = 1;
path = "/System/Library/Assets/com_apple_MobileAsset_DictionaryServices_dictionaryOSX/2fcc349eb53d7c336b8372758b70508eb8e2ac0b.asset/AssetData/Oxford Thesaurus of English.dictionary";
"user choice" = 0;
}
);
"image window frame" = "{{0, 0}, {0, 0}}";
"image window parent frame" = "{{0, 0}, {0, 0}}";
"index width" = 183;
"search method" = 1;
"window ID" = 1;
}
)
Bartender 3. Del tipo dictionary
, vorrei prendere questo così com'è e inserirlo nel mio script (questo è solo un breve estratto, la sezione continua e continua con quegli array "annidati" ".
defaults read com.surteesstudios.Bartender appSettings
{
AirPortExtra = {
controlled = 3;
searchName = "AirPort - Wi-Fi";
showForUpdates = 0;
updateDisplayTime = 15;
};
AppleTextInputExtra = {
controlled = 3;
searchName = "Text Input";
showForUpdates = 0;
updateDisplayTime = 15;
};
...
E un altro esempio, l'elenco delle scelte rapide Sip (un'app per la selezione del colore). È un array
con nidificato dictionaries
. Anche in questo caso, il codice effettivo è molto più lungo, con alcuni altri sottosegmenti ( name = General
), con quelli che hanno molti altri sottosegmenti ( shortcuts = ()
).
defaults read io.sipapp.Sip-paddle "USERDEFAULTS_SHORTCUTS_LIST"
(
{
name = General;
shortcuts = (
{
code = 35;
disabled = 1;
flag = 1835008;
global = 1;
id = launchPicker;
name = "Show Picker:";
readonly = 0;
selector = "launchPicker:";
visible = 1;
},
{
code = 8;
disabled = 1;
flag = 1835008;
global = 1;
id = launchSharedColorPanel;
name = "Show Color Panel:";
readonly = 0;
selector = "launchSharedColorPanel:";
visible = 1;
}, ...
Ho provato a utilizzare solo -array
e -array-add
, -dict
e -dict-add
, tutto senza successo. Ho anche provato a utilizzare l'utilità PlistBuddy, senza risultati.
Grazie mille!