適用されない「デフォルト」を使用した設定の変更


1

私はCLIの愛好家です。そのため、brew、cask、m、mas、softwareupdateなどの広範なユーザーです。私も(チェックそれらについてのいくつかのチュートリアルを書いたここそこ)。

現在、設定を変更するためにデフォルトに飛び込んでいます。

私の問題は、CLIで設定されたデフォルトの一部がGUIに表示されないことです。たとえば、[システム環境設定]> [トラックパッド]で[3本指検索とデータ検出器]を無効にしようとしています

ここに画像の説明を入力してください

diffとデフォルトの読み取りを使用して、「com.apple.AppleMultitouchTrackpad」の設定が「TrackpadThreeFingerTapGesture」であることがわかりました。

チェックボックスがチェックされている場合、「defaults read com.apple.AppleMultitouchTrackpad TrackpadThreeFingerTapGesture」は2を返します。これがデフォルト値です。チェックされていない場合、0を返します。それが私が望むものです。

これをテストするために、GUIで設定を確認し、次のコマンドを使用しました。

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

最後のコマンドは0を返しますが、これは問題ありません。しかし、GUIを開くと、チェックボックスはまだオンになっています!値を再度読み取ると、まだ0が返されます...

値を変更した後でログアウトしようとしても、問題は残ります。

誰か助けてもらえますか?

回答:


1

設定したい設定はに保存される~/Library/Preferences/ByHostため-currentHostdefaultsコマンドにスイッチを追加する必要があります

Value設定して次のコードを試してから0、に設定し2て違いを確認してください

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"

私にくれます

before
2
2
after
0
0

よろしく

ゲルド


こんなに時間が経って私の問題が解決されたとは信じられません!ありがとう!!
X99

0

私の友人、私はあなたがあなたの欲望を実現することからの単なる「ハングアップ」または「HUP」信号かもしれないと信じています。システム環境設定プロセスに、「hang-up」またはHUPと呼ばれる信号を送信します。これは、システムのsignals.hヘッダーファイルのどこかに定義されている信号番号1とも呼ばれます。POSIXコンベンション、私は信じています。

早くて汚い:

sudo pkill -1 'System Preferences'

HUPシグナルが受信プロセスで実行する必要があるのは、内部停止および再評価です。通常、関連する構成ファイルの再読み取りが含まれます。プロセスは終了せず、それ自体が「リフレッシュ」されます。

お役に立てれば。

F.


助けにはならない、チェックボックスはまだチェックされている。アイデアをありがとう;)
X99
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.