4 votos

Cambios de preferencias usando "defaults" no aplicados

Soy un entusiasta de la CLI y, como tal, he sido un usuario extensivo de brew, cask, m, mas, softwareupdate, y demás. Incluso he escrito algunos tutoriales sobre ellos (compruébalo aquí y allí).

En este momento, estoy adentrándome en defaults para alterar mis configuraciones.

El problema es que algunos valores por defecto establecidos en la CLI no aparecen en la GUI. Por ejemplo, intento desactivar "búsqueda con tres dedos y detectores de datos" en Preferencias del Sistema > Trackpad

introducir descripción de la imagen aquí

Usando diff y defaults read, encontré que la configuración es "TrackpadThreeFingerTapGesture" en "com.apple.AppleMultitouchTrackpad".

Cuando la casilla está marcada, "defaults read com.apple.AppleMultitouchTrackpad TrackpadThreeFingerTapGesture" devuelve 2. Ese es el valor por defecto. Cuando no está marcada, devuelve 0. Eso es lo que quiero.

Para probar esto, marqué la configuración en la GUI, luego usé estos comandos:

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

El último comando devuelve 0, lo cual está bien. Pero cuando abro la GUI, ¡la casilla sigue marcada! Leer el valor nuevamente me da 0...

Incluso intenté cerrar la sesión después de modificar el valor, el problema persiste.

¿Alguien puede ayudar?

4voto

gniemetz Puntos 46

La preferencia que deseas establecer se guarda en ~/Library/Preferences/ByHost, así que debes agregar el interruptor -currentHost al comando defaults

Prueba el siguiente código con Valor establecido en 0, luego establece en 2 y observa la diferencia

Value="0"; \
echo "antes"; \
: lee los valores actuales; \
defaults -currentHost read -g "com.apple.trackpad.threeFingerTapGesture"; \
defaults read com.apple.AppleMultitouchTrackpad TrackpadThreeFingerTapGesture; \
: cierra Preferencias del Sistema; \
pkill -u "${USER}" \
      -f "^/Applications/System Preferences.app/Contents/MacOS/System Preferences$" 2>/dev/null; \
: establece el valor en ~/Library/Preferences/ByHost/.GlobalPreferences.#Hardware UUID#.plist; \
: donde tu UUID de hardware se puede determinar con; \
: ioreg -c IOPlatformExpertDevice  -d 2 | awk -F'"' '/IOPlatformUUID/ { print $(NF-1) }'; \
defaults -currentHost write -g "com.apple.trackpad.threeFingerTapGesture" -integer ${Value}; \
: establece el valor en ~/Library/Preferences/.GlobalPreferences.plist; \
defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerTapGesture -integer ${Value}; \
: elimina el proceso de caché de preferencias; \
pkill -u "${USER}" -l "^/usr/sbin/cfprefsd agent$" 2>/dev/null; \
: espera un segundo, de lo contrario obtendrás errores en los comandos defaults; \
sleep 1; \
echo "después"; \
: lee los valores establecidos; \
defaults -currentHost read -g "com.apple.trackpad.threeFingerTapGesture"; \
defaults read com.apple.AppleMultitouchTrackpad TrackpadThreeFingerTapGesture; \
: abre las preferencias del trackpad; \
open "/System/Library/PreferencePanes/Trackpad.prefPane"

me da

antes
2
2
después
0
0

saludos

Gerd

1 votos

No puedo creer que mi problema haya sido resuelto después de tanto tiempo! Muchas gracias!

-1voto

12padams Puntos 36

Amigo mío, creo que podrías estar a solo una señal de 'hang-up' o 'HUP' de darte cuenta de tus deseos. Envía al proceso System Preferences una señal llamada 'hang-up' o HUP, también conocida como la señal número 1 definida en algún lugar de un archivo de encabezado de señales.h del sistema. Convención POSIX, creo.

Lo rápido y sucio:

sudo pkill -1 'System Preferences'

Lo que debería efectuar una señal HUP en el proceso receptor es una detención interna y reevaluación, que generalmente incluye una relectura de cualquier archivo de configuración relevante. El proceso no se terminará, solo se 'refrescará' a sí mismo.

Espero que esto te ayude.

F.

0 votos

No ayuda, la casilla de verificación sigue marcada. ¡Gracias por la idea! ;)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X