Closed6
mac設定保持

目的
- 今の環境がログインするたびに、一部設定が消えたり、パスが通ってなかったりするようなので、なんとかしたい。
- chromeの同期も外れてしまうため、できればこれもどうにかする。
現環境
- ホームディレクトリ下のデータは保存されるようである。
- macOS Mojave x.x.x
- iMac
- zsh インストール済み?プリインストール?
方針(理想)
- ログインスクリプトを作成して、ログインするたびに設定をする。
- UIなどから設定が変更された場合は、ログアウト時にその設定を保存して、次回ログイン時に設定が復元されるようにする。

ログイン時の実行を試行
次のパターンがあるようなので、両方試してみる。
LaunchAgents
参考
LoginHook
参考

LaunchAgents 試行内容
- 実行用のスクリプトを用意(
~/scripts/LaunchAgents.sh
)date >> ~/LaunchAgents.log
-
~/Library/LaunchAgents
の下に次のファイルを配置(ファイル名:com.example.hello.pilst
)<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.example.hello</string> <key>ProgramArguments</key> <array> <string>sh</string> <string>/Users/***/scripts/LaunchAgents.sh</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
- フォーマットチェック(カレントディレクトリ:
~/Library/LaunchAgent
)
plutil -lint com.example.hello.plist
- 試しに起動
launchctl load com.example.hello.plist
-
~/LaunchAgents.log
に日付が入力されていることを確認 - ログアウト
- ログイン
-
~/LaunchAgents.log
に日付が追記されていることを確認

LoginHook 試行
- 次のようなファイルを設置する( 設置場所:
~/scripts/LoginHook_test.sh
)#!/bin/sh date >> ~/LoginHook.log
- 次のコマンドで、登録する。(今回管理者権限を付与できないため、
sudo
なし)
defaults write com.apple.loginwindow LoginHook ~/LoginHook.log
- 登録できていることを確認。
defaults read com.apple.loginwindow LoginHook
- ログアウト
- ログイン

試行結果 -> Login Agentを使う。
ログイン後、LoginAgent
の方は問題なく実行できたが、Login Hook
は失敗した。
LoginAgent
は、ホームディレクトリ下のファイルに保存するため、問題なく動作するようである。
Login Hook
は、defaults read com.apple.loginwindow LoginHook
を実行したところ、何も表示されなかったため、おそらく設定のリセットがかかっているものと思われる。
今後の方針
Login Agent
を使って、macの設定などを反映させる。

コマンドから設定を変更する
defaults
コマンドを使う。
ただ、自分がやりたかった設定の変更は、macを再起動をしないとできないようなので、今回はここまでかな。
このスクラップは2023/10/14にクローズされました