Le preferenze cambiano usando "default" non applicato

1

Sono un appassionato della CLI e, in quanto tale, sono stato un grande utente di brew, cask, m, mas, softwareupdate e così via. Ho persino scritto alcuni tutorial su di loro (controlla qui e ).

In questo momento, mi sto immergendo in impostazioni predefinite per modificare le mie impostazioni.

Il mio problema è che alcuni valori di default impostati nella CLI non sono visualizzati nella GUI. Ad esempio, provo a disattivare "tre dita per ricerca e rilevatori di dati" in Preferenze di Sistema > Trackpad

Usandoidiffeireadread,hotrovatocheleimpostazionisono"TrackpadThreeFingerTapGesture" in "com.apple.AppleMultitouchTrackpad".

Quando la casella di controllo è selezionata, "default visualizza read.apple.AppleMultitouchTrackpad TrackpadThreeFingerTapGesture" restituisce 2. Questo è il valore predefinito. Quando non è spuntato, restituisce 0. Ecco cosa voglio.

Per verificarlo, ho controllato le impostazioni nella GUI, quindi ho usato questi comandi:

killall 'System Preferences'
defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerTapGesture -int 0
defaults read com.apple.AppleMultitouchTrackpad TrackpadThreeFingerTapGesture

Gli ultimi comandi restituiscono 0, che è ok. Ma quando apro la GUI, la casella di controllo è ancora selezionata! Leggere ancora il valore mi dà ancora 0 ...

Ho persino provato a disconnetterti dopo aver modificato il valore, il problema rimane.

Qualcuno può aiutarti?

    
posta X99 19.07.2018 - 15:03
fonte

2 risposte

1

La preferenza che desideri impostare viene salvata in ~/Library/Preferences/ByHost , quindi devi aggiungere lo switch -currentHost al comando defaults

Prova il seguente codice con Value impostato su 0 , quindi su 2 e vedi la differenza

Value="0"; \
echo "before"; \
: read actual values; \
defaults -currentHost read -g "com.apple.trackpad.threeFingerTapGesture"; \
defaults read com.apple.AppleMultitouchTrackpad TrackpadThreeFingerTapGesture; \
: close System Preferenes; \
pkill -u "${USER}" \
      -f "^/Applications/System Preferences.app/Contents/MacOS/System Preferences$" 2>/dev/null; \
: set value in ~/Library/Preferences/ByHost/.GlobalPreferences.#Hardware UUID#.plist; \
: where your hardware uuid can be determined with; \
: ioreg -c IOPlatformExpertDevice  -d 2 | awk -F'"' '/IOPlatformUUID/ { print $(NF-1) }'; \
defaults -currentHost write -g "com.apple.trackpad.threeFingerTapGesture" -integer ${Value}; \
: set value in ~/Library/Preferences/.GlobalPreferences.plist; \
defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerTapGesture -integer ${Value}; \
: kill the preference cache process; \
pkill -u "${USER}" -l "^/usr/sbin/cfprefsd agent$" 2>/dev/null; \
: wait a second otherwise you get errors on the defaults commands; \
sleep 1; \
echo "after"; \
: read set values; \
defaults -currentHost read -g "com.apple.trackpad.threeFingerTapGesture"; \
defaults read com.apple.AppleMultitouchTrackpad TrackpadThreeFingerTapGesture; \
: open trackpad preference; \
open "/System/Library/PreferencePanes/Trackpad.prefPane"

mi dà

before
2
2
after
0
0

Per quanto riguarda

Gerd

    
risposta data 17.01.2019 - 10:40
fonte
0

Amico mio, credo che potresti essere un semplice segnale di "riagganciata" o "HUP" lontano dalla realizzazione dei tuoi desideri. Invia al processo Preferenze di Sistema un segnale chiamato "hang-up" o HUP, noto anche come numero di segnale 1 come definito da qualche parte in un file di intestazione signal.h di sistema. Convenzione POSIX, credo.

Il veloce e sporco:

sudo pkill -1 'System Preferences'

Ciò che un segnale HUP dovrebbe effettuare nel processo di ricezione è un arresto interno e una nuova valutazione, che di solito include una rilettura di tutti i file di configurazione rilevanti. Il processo non si interromperà, ma si aggiornerà automaticamente.

Spero che questo aiuti.

F.

    
risposta data 14.09.2018 - 09:31
fonte

Leggi altre domande sui tag