Zenn

Macbookの環境構築2025年3月

2025/03/23に公開
1

OSはSequoia(15.3.2)
生成AIのおかげで、ちょっとしたシェルスクリプトがサクッと作れて良い。
Arcの移行が大変だった。

システム環境設定

  • 「トラックパッド」>「ポイントとクリック」>「タップでクリック」
  • 「トラックパッド」>「ポイントとクリック」>「軌跡の速さ」
  • 「アクセシビリティ」>「ポインタコントロール」>「マウスとトラックパッド」>「トラックパッドオプション」>「ドラッグを有効にする」>「3本指のドラッグ」
  • 「アクセシビリティ」>「ディスプレイ」>「カーソルのサイズ」
  • 「キーボード」>「キーのリピート」と「リピート入力認識までの時間」を一番右側へ
  • 「キーボード」>「環境光が暗い場合にキーボードの輝度を調整」をオフ
  • 「キーボード」> 「キーボードの輝度」を最低にする
  • 「ディスプレイ」>「Night Shift」
  • 「デスクトップとDock」>「Mission Control」>「最新の使用状況に基づいて操作スペースを自動的に並べ替える」をOFF
  • 「ロック画面」>「バッテリー駆動時に使用していない場合はディスプレイをオフにする」>「30分間」
  • 「Spotlight」>「キーボードショートカット」> Spotlight検索のショートカットキーを無効化
  • 「コントロールセンター」>「Bluetooch」>「メニューバーに表示」
  • 「Touch ID」> 指紋を追加

Google Chromeをインスール

Safariを開いて、Google Chromeを手動でインストール。
https://www.google.com/intl/ja_jp/chrome/

起動→ログインして、過去に使っていたブックマークや拡張機能を使えるようにする。

キーボードをカスタマイズ

Karabiner-Elementsをインストール

https://karabiner-elements.pqrs.org/
インストール後「Karabiner-Elements」を起動。各種許可が求められるので対応。
「システム環境設定」>「キーボード」>「修飾キー」より、優先するキーボードと修飾キーを設定する。

入力切り替え(日⇄英)の設定

(US配列のキーボードを使っているので)左のcommandキーで英字、右のcommandキーで日本語入力に切替えられるようにする。



その他キーを自分好みにカスタマイズ

Raycastをインストール

https://www.raycast.com/

  • General > Raycast Hotkey > 「Ctrl + L」
  • General > Window Mode > 「Compact」
  • Advanced > Auto-switch Input Source > 「ABC」
  • Advanced > Pop to Root Search > 「Immediately」
  • Advanced > Show Raycast on > 「Primary screen」
  • Extensions > 不要な拡張機能のEnabledのチェックを外す
    • Difine Word, My Schedule, Raycast for Teamsなど
  • Extensions > 必要な拡張機能をインストールする
    • Brew、Cursor、Spotify、
  • Extensions > よく使うアプリにエイリアスをつける
    • メモ帳、chrome、ターミナル、システム環境設定など

Dropboxをインストール

https://www.dropbox.com/ja/

  • BrewfileBrewfile.lock.jsondotfilessettingsのオフラインアクセスを許可する

Finderの設定

  • 「環境設定」>「一般」>「Finder新規ウィンドウで次を表示」
  • 「環境設定」>「詳細」>「すべてのファイルの拡張子を表示」
  • 「環境設定」>「サイドバー」
    • Dropbox、ダウンロード、ホームディレクトリ、スクリーンショット、iCloud Drive、ハードディスクあたりを表示
  • 主要なディレクトリを開き「カラム」表示で「追加日」順にファイルを並べるように設定

Homebrewをインストール

https://brew.sh/ja/

にアクセスして、インストール用のコマンドをコピー→ターミナルで実行

Brewfileでアプリを一括インストール

$ cd ~/Dropbox
$ brew bundle

Cursorをインストール

Brewfileでインストールしようと思ったけど、なんか失敗したから手動で入れた。
https://www.cursor.com/ja

以下で設定を復元

$ zsh ~/Dropbox/settings/setup-cursor.sh
setup-cursor.sh
#!/bin/bash

# settings.jsonの設定
rm -rf "$HOME/Library/Application Support/Cursor/User/settings.json"
ln -s "$HOME/Dropbox/settings/cursor/settings.json" "$HOME/Library/Application Support/Cursor/User/settings.json"

# keybindings.jsonの設定
rm -rf "$HOME/Library/Application Support/Cursor/User/keybindings.json"
ln -s "$HOME/Dropbox/settings/cursor/keybindings.json" "$HOME/Library/Application Support/Cursor/User/keybindings.json"

# snippetsの設定
rm -rf "$HOME/Library/Application Support/Cursor/User/snippets"
ln -s "$HOME/Dropbox/settings/cursor/snippets" "$HOME/Library/Application Support/Cursor/User/snippets"

# .cursorディレクトリの設定(拡張機能、mcpの設定など)
rm -rf "$HOME/.cursor"
ln -s "$HOME/Dropbox/settings/cursor/.cursor" "$HOME/.cursor"

デフォルトアプリの設定

.txtとか.jsonとか、各種ファイルがCursorで開くように設定。
1つずつ手動でやると面倒なので、dutiを使ったスクリプトを実行。

$ zsh ~/Dropbox/settings/setup-default-app.sh
setup-default-app.sh
duti -s 'com.todesktop.230313mzl4w4u92' .css all
duti -s 'com.todesktop.230313mzl4w4u92' .rb all
duti -s 'com.todesktop.230313mzl4w4u92' .php all
duti -s 'com.todesktop.230313mzl4w4u92' .js all
duti -s 'com.todesktop.230313mzl4w4u92' .json all
duti -s 'com.todesktop.230313mzl4w4u92' .sh all
duti -s 'com.todesktop.230313mzl4w4u92' .txt all
duti -s 'com.todesktop.230313mzl4w4u92' .md all
duti -s 'com.todesktop.230313mzl4w4u92' .csv all

https://zenn.dev/o2wsu9/articles/c25f6647c2ccc0

dotfile周りの設定

.vimrcとか.zshrcとかを一括で復元するスクリプトを実行。

$ zsh ~/Dropbox/settings/setup-dotfiles.sh
setup-dotfiles.sh
#!/bin/bash

FILES=(
.bashrc
.gitconfig
.vimrc
.zlogin
.zlogout
.zpreztorc
.zprofile
.zshenv
.zshrc
)

DIRS=(
.vim
.zprezto
)

echo "ファイルを削除"
for file in "${FILES[@]}"; do
    if [ -e "$HOME/$file" ]; then
        rm "$HOME/$file"
        echo "Deleted: $HOME/$file"
    else
        echo "Not found: $HOME/$file"
    fi
done

echo "ディレクトリを削除"
for dir in "${DIRS[@]}"; do
    if [ -e "$HOME/$dir" ]; then
        rm -r "$HOME/$dir"
        echo "Deleted: $HOME/$dir"
    else
        echo "Not found: $HOME/$dir"
    fi
done

echo "ファイルのシンボリックリンク作成"
for file in "${FILES[@]}"; do
    ln -s "$HOME/Dropbox/dotfiles/$file" "$HOME/$file"
    echo "Created symbolic link: $HOME/$file -> $HOME/Dropbox/dotfiles/$file"
done

echo "ディレクトリのシンボリックリンク作成"
for dir in "${DIRS[@]}"; do
    ln -s "$HOME/Dropbox/dotfiles/$dir" "$HOME/$dir"
    echo "Created symbolic link: $HOME/$dir -> $HOME/Dropbox/dotfiles/$dir"
done

Dockを整理

  • 不要なアプリを削除
  • 必要なアプリを追加
  • 「Dock環境設定」>アイコンのサイズを小さめに
  • 「Dock環境設定」>「Dockを自動的に表示/非表示」

CleanShotを有効化

CleanShot License Managerにアクセスし、既存のライセンスを割り当てて(or新たなライセンスを購入して)dmgファイルをダウンロード→インストール→初期設定する。
https://licenses.cleanshot.com/

  • Preference > General > Startup >「Start at login」
  • Preference > General > Export location > スクリーンショットを保存したいフォルダを設定

ターミナルのカラーテーマをiceburgに変更

以下にアクセスし「Iceberg for macOS」よりダウンロード。
http://cocopon.github.io/iceberg.vim/
ファイルを開くとIceburgが適用されているので、環境設定よりこの色をデフォルトに設定する。

macOS Sequoiaだとファイルがうまく開けなかったので、以下で対応。

https://qiita.com/suzukidog/items/f0e71297ec5307b473fd

MonitorControl

アプリを起動し、システムの実行許可とかを与える。
設定で、「ログイン時に起動」をONに、「メニューアイコン」を「常に隠す」にする。

OrbStack

アプリを起動し、システムの実行許可とかを与える
設定で「Stasrt at login」をON、「Show in menu bar」をOFFにする。

TablePlus

エクスポートしておいた、接続情報のファイルをインポート

アクティベーションキーを使ってアクティベート

Pomodoro Timer for ADHD

AppStore経由 & 課金が絡むからか、masを使ったインストールに失敗したので、App Storeから手動でインストールした

Arcの設定

Chromeとかと違って、Arcは移行がくそめんどいことが分かった。
設定ファイル移行のスクリプトとかも作ってみたけど、うまくいかなかった。
結局以下で対応した。

ブックマーク、Space

設定で「Sync Sidebar」をONにしていれば、Arcを起動してログインしただけで勝手に同期される

設定

手動で移行。

  • 「general」>「Automatically update my Arc」をONに
  • 「Max」>「Tidy Tabs」以外全部OFFに
  • 「Shortcuts」>「Tab Switcher (forward)」にCtrl + Mを割り当て
  • 「Icon」から、好きなアイコンに変更

拡張機能

旧Macで、拡張機能一覧とダウンロードリンクをHTMLに吐き出すスクリプトを実行

$ zsh ~/Dropbox/settings/arc-ext-export.sh
arc-ext-export.sh
#!/bin/bash
# Arcの拡張機能リストを生成するスクリプト

# Arcのデータディレクトリ
ARC_DATA=~/Library/Application\ Support/Arc/User\ Data/Default

# 拡張機能ディレクトリ
EXT_DIR="$ARC_DATA/Extensions"

# 出力ファイル
OUTPUT_FILE=~/Dropbox/settings/arc_extensions.html

# HTMLファイルのヘッダー
echo '<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Arc拡張機能リスト</title>
  <style>
    body { font-family: Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; }
    .extension { margin-bottom: 20px; padding: 10px; border: 1px solid #ddd; border-radius: 5px; position: relative; }
    .name { font-weight: bold; font-size: 18px; margin-left: 40px; }
    .id { color: #666; font-family: monospace; margin-left: 40px; }
    .install-btn { display: inline-block; margin-top: 10px; margin-left: 40px; padding: 5px 10px; background: #4285f4; color: white; text-decoration: none; border-radius: 3px; }
    .number { position: absolute; top: 10px; left: 10px; background: #f1f1f1; padding: 5px 10px; border-radius: 50%; font-weight: bold; }
  </style>
</head>
<body>
  <h1>Arc拡張機能リスト</h1>
  <p>以下のリンクをクリックして拡張機能をインストールしてください。</p>' > $OUTPUT_FILE

# 拡張機能ディレクトリが存在するか確認
if [ ! -d "$EXT_DIR" ]; then
  echo "  <p>拡張機能ディレクトリが見つかりません。</p>" >> $OUTPUT_FILE
  echo "</body></html>" >> $OUTPUT_FILE
  echo "拡張機能ディレクトリが見つかりません: $EXT_DIR"
  exit 1
fi

# カウンター初期化
counter=1

# 各拡張機能のIDとマニフェスト情報を取得
for ext_id in $(ls "$EXT_DIR"); do
  if [ -d "$EXT_DIR/$ext_id" ]; then
    # 最新のバージョンディレクトリを取得
    version=$(ls -1 "$EXT_DIR/$ext_id" | sort -V | tail -1)

    if [ -n "$version" ]; then
      manifest_file="$EXT_DIR/$ext_id/$version/manifest.json"

      if [ -f "$manifest_file" ]; then
        # マニフェストからnameを取得
        name=$(grep -o '"name": "[^"]*"' "$manifest_file" | head -1 | cut -d'"' -f4)

        # __MSG_extName__形式の名前を処理
        if [[ "$name" == *"__MSG_"* ]]; then
          # _locales/en/messages.jsonからの名前取得を試みる
          locale_file="$EXT_DIR/$ext_id/$version/_locales/en/messages.json"
          if [ -f "$locale_file" ]; then
            # メッセージキーを抽出 (__MSG_extName__から extName を取得)
            msg_key=$(echo "$name" | sed -n 's/__MSG_\(.*\)__/\1/p')
            # messagesファイルから該当するメッセージを取得
            actual_name=$(grep -A 5 "\"$msg_key\"" "$locale_file" | grep "message" | head -1 | cut -d'"' -f4)
            if [ -n "$actual_name" ]; then
              name="$actual_name"
            else
              # 英語がなければ他の言語を試す
              for lang_dir in $(ls "$EXT_DIR/$ext_id/$version/_locales/"); do
                locale_file="$EXT_DIR/$ext_id/$version/_locales/$lang_dir/messages.json"
                if [ -f "$locale_file" ]; then
                  actual_name=$(grep -A 5 "\"$msg_key\"" "$locale_file" | grep "message" | head -1 | cut -d'"' -f4)
                  if [ -n "$actual_name" ]; then
                    name="$actual_name"
                    break
                  fi
                fi
              done
            fi
          fi

          # それでも名前が取得できなければ、拡張機能IDを使用
          if [[ "$name" == *"__MSG_"* ]]; then
            name="拡張機能 (ID: $ext_id)"
          fi
        fi

        # Chrome Web Storeのリンクを生成
        echo "  <div class='extension'>
    <div class='number'>$counter</div>
    <div class='name'>$name</div>
    <div class='id'>ID: $ext_id</div>
    <a class='install-btn' href='https://chrome.google.com/webstore/detail/$ext_id' target='_blank'>インストール</a>
  </div>" >> $OUTPUT_FILE

        # カウンターを増やす
        ((counter++))
      fi
    fi
  fi
done

# HTMLファイルのフッター
echo '</body>
</html>' >> $OUTPUT_FILE

echo "拡張機能リストを生成しました: $OUTPUT_FILE"
echo "このHTMLファイルを開いて、各拡張機能のインストールボタンをクリックしてください。"
echo "合計 $((counter-1)) 個の拡張機能が見つかりました。"

新MacのArcで、出力されたHTMLを開いて、拡張機能を1つ1つインストールしていく。

再度に拡張機能の設定をする

  • Vimiumの設定を、旧MacのArcからコピペで持ってくる。
  • MultiPass for HTTP basic authenticationの設定を、旧MacのArcからコピペで持ってくる。
    • 今は数が少ないけど、数が多くなってきたらImport/Export機能を使う

Favoritesの復元

これはスクリプトでの移行が無理だったし、サイトのURLを抽出する方法もわからなかった。
1つのディレクトリで管理してるとか、そういう単純な話じゃなさそう(だから同期機能の対象外になってるんだと思う)。
仕方がないので1つ1つ手動で再構築するしかない。

デフォルトブラウザをArcに設定

システム環境設定 >「デスクトップとDock」>「デフォルトのWebブラウザ」にArcを設定。

よく使うサイトにログイン

Favoritesには登録されてないけど、よく使うサイトにログインしていく

  • よく使うGoogleアカウント全部にログイン
  • よく使うSlackチャンネル全部にログイン
  • Amazon
  • GitHub
  • Zenn
  • note
  • Qiita
  • X

プログラミング言語をインストール

Ruby(YJIT)

YJITが有効化されたRubyをインストールする

# (YJIT有効化のため)Rustをインストール
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
$ source $HOME/.cargo/env

~/.zshrcに以下の記述があることを確認

~/.zshrc
export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"
export LDFLAGS="-L$(brew --prefix openssl@3)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix libyaml)/lib"
export CPPFLAGS="-I$(brew --prefix openssl@3)/include -I$(brew --prefix readline)/include -I$(brew --prefix libyaml)/include"
$ rbenv install --list # インストールできるバージョンを確認
$ RUBY_CONFIGURE_OPTS="--enable-yjit --with-openssl-dir=$(brew --prefix openssl@3)" rbenv install 3.2.4 # YJITが有効化されたRubyをインストール
$ rbenv versions
$ rbenv global 3.2.4 # インストールしたバージョンをデフォルトに設定
$ rbenv rehash
$ exec $SHELL -l
$ ruby -v --yjit
ruby 3.2.4 (2024-04-23 revision af471c0e01) +YJIT [arm64-darwin24]
$ gem install solargraph # Cursorのコードジャンプにsolargraphを使うので、入れておく

Node.js

$ curl https://get.volta.sh | bash # zsh使っててもこれでOK

~/.zshrcに以下の記述があることを確認

export VOLTA_HOME="$HOME/.volta"
export PATH="$VOLTA_HOME/bin:$PATH" # voltaでインストールしたnodeを使うため、homebrewのパスよりも先($PATHの先頭)に設定する
$ source ~/.zshrc
$ volta --version
$ volta install node # 最新のLTSリリース版をインストール
$ node -v
よく使うvoltaコマンド
$ volta install node@22.14.0 # 特定のバージョンのnodeをインストール
$ volta list all # voltaでインストールされたnodeとかnpmとかのバージョン一覧
$ volta pin node@22.14.0 # 今いるプロジェクト(ディレクトリ)で使用するnodeのバージョンを固定

音楽系のデータの移行

Logic Proをインストール

AppStoreからLogicProをインストール。1ライセンスで5台まで使える。

旧MacのLogicのファイルをGoogle Driveにアップロード

旧Macで、~/ミュージック/Logicにあるファイル一式を、Google Driveにアップロードする。
急ぎで使いたいファイルがあれば新Macにダウンロードする。

.logicxファイルの挙動

ローカルのhoge.logicxをGoogle Driveにアップロードすると、以下の構造のhogeディレクトリに変換される。

  • hoge
    • Alternatives
    • Resources
    • Media

これは、.logicxファイルが「パッケージ」と呼ばれる特殊な形式のファイルであることが原因。

.logicxファイルは見た目は1つのファイルだけど、実際には内部に複数のファイルやディレクトリを含む「パッケージ」という形式になっている。
macOSではこれを1つのファイルとして扱うが、他のプラットフォームではディレクトリとして認識される。

Google Drive→Macにダウンロードする際には、hogeディレクトリを丸ごとダウンロード→解凍すれば、それがhoge.logicxになる。

UADプラグインを有効化

前とやり方がやや変わってた。まずは以下より「UA Connect」をインストールして起動。
https://www.uaudio.jp/downloads/uad

「Apollo&UAD-2」タブの「UAD Software Installer」のOpenをクリック


「UAD Meter&Control Panel」と「Console」のインストールは完了するけど、「拡張機能がブロックされました」と出てくる。



以下の記事を参考に、Macをシャットダウン→リカバリーモードで起動→起動セキュリティユーティリティ>セキュリティポリシーを「低セキュリティ」に変更して再起動
https://today-is-the-first-day.com/apple-silicon-mac-security

システム環境設定 > プライバシーとセキュリティ
から、拡張機能を許可

Macが再起動され、インストールした「UAD Meter&Control Panel」と「Console」が使えるようになる。
Apolloを起動しMacに接続し、「Console」でUADのマイクプリアンプを設定したり、Logic Proでコンプレッサー等が使えていることを確認。(今回、動作確認は雑にしかやらなかった)

Project Templatesを移行

旧Macの~/ミュージック/Audio Music Apps/Project Templates内のファイルを、新Macの同じ場所に設置。

各プロジェクトの開発環境を構築

構築できたら、Finderのサイドバーによく使うプロジェクトのディレクトリを追加する


以上!

1

Discussion

ログインするとコメントできます