Closed6

mac設定保持

トーテムトーテム

目的

  • 今の環境がログインするたびに、一部設定が消えたり、パスが通ってなかったりするようなので、なんとかしたい。
  • chromeの同期も外れてしまうため、できればこれもどうにかする。

現環境

  • ホームディレクトリ下のデータは保存されるようである。
  • macOS Mojave x.x.x
  • iMac
  • zsh インストール済み?プリインストール?

方針(理想)

  • ログインスクリプトを作成して、ログインするたびに設定をする。
  • UIなどから設定が変更された場合は、ログアウト時にその設定を保存して、次回ログイン時に設定が復元されるようにする。
トーテムトーテム

LaunchAgents 試行内容

  1. 実行用のスクリプトを用意(~/scripts/LaunchAgents.sh)
    date >> ~/LaunchAgents.log
    
  2. ~/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>
    
  3. フォーマットチェック(カレントディレクトリ: ~/Library/LaunchAgent)
    plutil -lint com.example.hello.plist
  4. 試しに起動
    launchctl load com.example.hello.plist
  5. ~/LaunchAgents.logに日付が入力されていることを確認
  6. ログアウト
  7. ログイン
  8. ~/LaunchAgents.logに日付が追記されていることを確認
トーテムトーテム

LoginHook 試行

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

試行結果 -> Login Agentを使う。

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

今後の方針

Login Agentを使って、macの設定などを反映させる。

トーテムトーテム

コマンドから設定を変更する

defaultsコマンドを使う。
ただ、自分がやりたかった設定の変更は、macを再起動をしないとできないようなので、今回はここまでかな。

このスクラップは2023/10/14にクローズされました