mirror of
https://github.com/nad4-su/setup_mac.git
synced 2026-10-11 16:40:13 +09:00
Fix iTerm2 theme application and install Orca
This commit is contained in:
1 parent
17ca503163
commit
83827d1312
4 files changed
+54
-69
No files matched your search
@@ -11,6 +11,7 @@ Mac 개발 환경을 자동으로 설정하는 스크립트입니다.
|
|||||||
- Node.js
|
- Node.js
|
||||||
- iTerm2
|
- iTerm2
|
||||||
- **cmux** + CLI 링크
|
- **cmux** + CLI 링크
|
||||||
|
- **Orca** (AI agent 개발 환경)
|
||||||
- Oh My Zsh (agnoster 멀티라인 테마)
|
- Oh My Zsh (agnoster 멀티라인 테마)
|
||||||
- zsh-syntax-highlighting / zsh-autosuggestions
|
- zsh-syntax-highlighting / zsh-autosuggestions
|
||||||
- **VSCode** + Claude 확장
|
- **VSCode** + Claude 확장
|
||||||
@@ -70,6 +71,7 @@ chmod +x setup_mac.sh
|
|||||||
```
|
```
|
||||||
setup_mac/
|
setup_mac/
|
||||||
├── setup_mac.sh # 메인 설치 스크립트
|
├── setup_mac.sh # 메인 설치 스크립트
|
||||||
|
├── apply_iterm2.sh # iTerm2 프로파일만 재적용
|
||||||
├── save_configs.sh # 설정 저장 스크립트
|
├── save_configs.sh # 설정 저장 스크립트
|
||||||
├── .gitignore
|
├── .gitignore
|
||||||
├── iterm2-settings/
|
├── iterm2-settings/
|
||||||
@@ -86,7 +88,8 @@ setup_mac/
|
|||||||
### iTerm2 프로파일
|
### iTerm2 프로파일
|
||||||
- **이름**: nad4-profile
|
- **이름**: nad4-profile
|
||||||
- **폰트**: D2Coding 13pt
|
- **폰트**: D2Coding 13pt
|
||||||
- **색상**: 다크 테마
|
- **색상**: 다크 테마 (macOS 라이트/다크 모드와 무관하게 유지)
|
||||||
|
- **기본 프로파일**: 자동 설정, 기존 세션은 유지하며 새 창부터 적용
|
||||||
- **Status Bar**: CPU, 메모리, 네트워크, 배터리, 호스트명
|
- **Status Bar**: CPU, 메모리, 네트워크, 배터리, 호스트명
|
||||||
- **크기**: 100 columns × 25 rows
|
- **크기**: 100 columns × 25 rows
|
||||||
|
|
||||||
@@ -104,6 +107,11 @@ setup_mac/
|
|||||||
- **CLI**: `/Applications/cmux.app/Contents/Resources/bin/cmux` 를 Homebrew bin 경로에 링크
|
- **CLI**: `/Applications/cmux.app/Contents/Resources/bin/cmux` 를 Homebrew bin 경로에 링크
|
||||||
- cmux 외부 터미널에서도 `cmux` 명령을 사용할 수 있도록 구성
|
- cmux 외부 터미널에서도 `cmux` 명령을 사용할 수 있도록 구성
|
||||||
|
|
||||||
|
### Orca
|
||||||
|
- **앱**: [공식 설치 안내](https://www.onorca.dev/docs/install)의 `brew install --cask stablyai/orca/orca` 사용
|
||||||
|
- Homebrew 기본 저장소의 동명 Plotly 앱과 구분하기 위해 전체 cask 경로 사용
|
||||||
|
- 최초 실행 후 작업 저장소와 Claude Code/Codex 환경을 선택
|
||||||
|
|
||||||
### Docker Desktop
|
### Docker Desktop
|
||||||
- **앱**: `brew install --cask docker-desktop` 으로 자동 설치
|
- **앱**: `brew install --cask docker-desktop` 으로 자동 설치
|
||||||
- **CLI**: Docker Desktop이 제공하는 `docker`, `docker compose` 사용
|
- **CLI**: Docker Desktop이 제공하는 `docker`, `docker compose` 사용
|
||||||
@@ -182,8 +190,7 @@ git push
|
|||||||
|
|
||||||
### iTerm2 설정
|
### iTerm2 설정
|
||||||
- [ ] iTerm2 > Settings > Profiles
|
- [ ] iTerm2 > Settings > Profiles
|
||||||
- [ ] 'nad4-profile' 선택
|
- [ ] 'nad4-profile'이 기본 프로파일인지 확인
|
||||||
- [ ] Other Actions... > Set as Default
|
|
||||||
- [ ] 새 창 열어서 설정 확인
|
- [ ] 새 창 열어서 설정 확인
|
||||||
|
|
||||||
### Stats 설정
|
### Stats 설정
|
||||||
@@ -227,12 +234,12 @@ git push
|
|||||||
|
|
||||||
### iTerm2 프로파일이 적용되지 않는 경우
|
### iTerm2 프로파일이 적용되지 않는 경우
|
||||||
```bash
|
```bash
|
||||||
# 1. 프로파일 파일 확인
|
# 앱 재설치 없이 저장소의 프로파일과 기본값만 적용
|
||||||
ls -la ~/Library/Application\ Support/iTerm2/DynamicProfiles/
|
cd ~/workspace/setup_mac
|
||||||
|
bash apply_iterm2.sh
|
||||||
|
|
||||||
# 2. iTerm2 재시작
|
# iTerm2에서 ⌘N으로 새 창 열기
|
||||||
killall iTerm2
|
# 기존 창/탭은 이전 세션 설정을 유지할 수 있습니다.
|
||||||
open -a iTerm2
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Stats 설정이 적용되지 않는 경우
|
### Stats 설정이 적용되지 않는 경우
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
PROFILE_FILE="$SCRIPT_DIR/iterm2-settings/profile.json"
|
||||||
|
DYNAMIC_DIR="$HOME/Library/Application Support/iTerm2/DynamicProfiles"
|
||||||
|
TARGET_FILE="$DYNAMIC_DIR/NAD4Profile.json"
|
||||||
|
|
||||||
|
# Validate before replacing the active profile. Backups belong outside DynamicProfiles.
|
||||||
|
plutil -convert xml1 -o /dev/null "$PROFILE_FILE"
|
||||||
|
PROFILE_GUID=$(plutil -extract Guid raw -o - "$PROFILE_FILE")
|
||||||
|
PROFILE_NAME=$(plutil -extract Name raw -o - "$PROFILE_FILE")
|
||||||
|
[ -n "$PROFILE_GUID" ] && [ -n "$PROFILE_NAME" ]
|
||||||
|
mkdir -p "$DYNAMIC_DIR"
|
||||||
|
if [ -f "$TARGET_FILE" ]; then
|
||||||
|
BACKUP_DIR="$HOME/Library/Application Support/iTerm2/ProfileBackups"
|
||||||
|
mkdir -p "$BACKUP_DIR"
|
||||||
|
cp "$TARGET_FILE" "$BACKUP_DIR/NAD4Profile.$(date +%Y%m%d_%H%M%S).json"
|
||||||
|
fi
|
||||||
|
TEMP_FILE=$(mktemp "${TMPDIR:-/tmp}/nad4-iterm.XXXXXX")
|
||||||
|
trap 'rm -f "$TEMP_FILE"' EXIT
|
||||||
|
{
|
||||||
|
printf '{"Profiles": ['
|
||||||
|
cat "$PROFILE_FILE"
|
||||||
|
printf ']}\n'
|
||||||
|
} > "$TEMP_FILE"
|
||||||
|
plutil -convert xml1 -o /dev/null "$TEMP_FILE"
|
||||||
|
cp "$TEMP_FILE" "$TARGET_FILE"
|
||||||
|
defaults write com.googlecode.iterm2 "Default Bookmark Guid" -string "$PROFILE_GUID"
|
||||||
|
echo "✅ iTerm2 기본 프로파일 적용: $PROFILE_NAME"
|
||||||
|
echo " 기존 세션은 유지됩니다. 새 창(⌘N)에서 테마와 폰트를 확인하세요."
|
||||||
@@ -302,6 +302,7 @@
|
|||||||
"Red Component" : 0.89803921568627454
|
"Red Component" : 0.89803921568627454
|
||||||
},
|
},
|
||||||
"Use Non-ASCII Font" : false,
|
"Use Non-ASCII Font" : false,
|
||||||
|
"Use Separate Colors for Light and Dark Mode" : false,
|
||||||
"Has Hotkey" : false,
|
"Has Hotkey" : false,
|
||||||
"Ansi 8 Color" : {
|
"Ansi 8 Color" : {
|
||||||
"Green Component" : 0.31372550129890442,
|
"Green Component" : 0.31372550129890442,
|
||||||
|
|||||||
+7
-61
@@ -16,7 +16,6 @@ CODEX_REPO_DIR="${WORKSPACE_ROOT}/codex"
|
|||||||
ITERM_SETTINGS_DIR="$SCRIPT_DIR/iterm2-settings"
|
ITERM_SETTINGS_DIR="$SCRIPT_DIR/iterm2-settings"
|
||||||
STATS_SETTINGS_DIR="$SCRIPT_DIR/stats-settings"
|
STATS_SETTINGS_DIR="$SCRIPT_DIR/stats-settings"
|
||||||
RECTANGLE_SETTINGS_DIR="$SCRIPT_DIR/rectangle-settings"
|
RECTANGLE_SETTINGS_DIR="$SCRIPT_DIR/rectangle-settings"
|
||||||
ITERM_PROFILE_FILE="$ITERM_SETTINGS_DIR/profile.json"
|
|
||||||
STATS_PLIST_FILE="$STATS_SETTINGS_DIR/Stats.plist"
|
STATS_PLIST_FILE="$STATS_SETTINGS_DIR/Stats.plist"
|
||||||
RECTANGLE_PLIST_FILE="$RECTANGLE_SETTINGS_DIR/com.knollsoft.Rectangle.plist"
|
RECTANGLE_PLIST_FILE="$RECTANGLE_SETTINGS_DIR/com.knollsoft.Rectangle.plist"
|
||||||
RECTANGLE_JSON_FILE="$RECTANGLE_SETTINGS_DIR/RectangleConfig.json"
|
RECTANGLE_JSON_FILE="$RECTANGLE_SETTINGS_DIR/RectangleConfig.json"
|
||||||
@@ -152,6 +151,7 @@ APPS=(
|
|||||||
"rectangle"
|
"rectangle"
|
||||||
"appcleaner"
|
"appcleaner"
|
||||||
"cmux"
|
"cmux"
|
||||||
|
"stablyai/orca/orca"
|
||||||
)
|
)
|
||||||
|
|
||||||
for app in "${APPS[@]}"; do
|
for app in "${APPS[@]}"; do
|
||||||
@@ -359,6 +359,7 @@ prompt_newline() {
|
|||||||
fi
|
fi
|
||||||
echo -n "%{%f%}"
|
echo -n "%{%f%}"
|
||||||
CURRENT_BG=''
|
CURRENT_BG=''
|
||||||
|
printf '\n❯'
|
||||||
}
|
}
|
||||||
|
|
||||||
# 프롬프트 빌드 (멀티라인 적용)
|
# 프롬프트 빌드 (멀티라인 적용)
|
||||||
@@ -400,57 +401,7 @@ echo ""
|
|||||||
# =============================================================================
|
# =============================================================================
|
||||||
echo "⚙️ iTerm2 프로파일 설정 중..."
|
echo "⚙️ iTerm2 프로파일 설정 중..."
|
||||||
|
|
||||||
# iTerm2가 실행 중이면 종료
|
bash "$SCRIPT_DIR/apply_iterm2.sh"
|
||||||
if pgrep -x "iTerm2" > /dev/null; then
|
|
||||||
echo "⚠️ iTerm2가 실행 중입니다. 종료합니다..."
|
|
||||||
killall iTerm 2>/dev/null || killall iTerm2 2>/dev/null || true
|
|
||||||
sleep 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# iTerm2 DynamicProfiles 디렉토리 생성
|
|
||||||
ITERM_DYNAMIC_DIR="$HOME/Library/Application Support/iTerm2/DynamicProfiles"
|
|
||||||
mkdir -p "$ITERM_DYNAMIC_DIR"
|
|
||||||
|
|
||||||
# 프로파일 파일 확인
|
|
||||||
if [ -f "$ITERM_PROFILE_FILE" ]; then
|
|
||||||
echo "✅ profile.json 발견"
|
|
||||||
|
|
||||||
# DynamicProfile 형식으로 변환하여 복사 (profile.json을 Profiles 배열로 래핑)
|
|
||||||
{
|
|
||||||
echo '{"Profiles": ['
|
|
||||||
cat "$ITERM_PROFILE_FILE"
|
|
||||||
echo ']}'
|
|
||||||
} > "$ITERM_DYNAMIC_DIR/NAD4Profile.json"
|
|
||||||
|
|
||||||
echo "✅ iTerm2 Dynamic Profile 생성 완료"
|
|
||||||
echo " 위치: $ITERM_DYNAMIC_DIR/NAD4Profile.json"
|
|
||||||
|
|
||||||
# profile.json에서 GUID 추출 (공백 유무 무관)
|
|
||||||
PROFILE_GUID=$(grep -o '"Guid"[[:space:]]*:[[:space:]]*"[^"]*"' "$ITERM_PROFILE_FILE" | head -1 | sed 's/.*:.*"\([^"]*\)"/\1/')
|
|
||||||
|
|
||||||
if [ -n "$PROFILE_GUID" ]; then
|
|
||||||
echo "✅ 프로파일 GUID: $PROFILE_GUID"
|
|
||||||
|
|
||||||
# iTerm2 환경설정에 기본 프로파일 GUID만 설정
|
|
||||||
defaults write com.googlecode.iterm2 "Default Bookmark Guid" "$PROFILE_GUID"
|
|
||||||
|
|
||||||
echo "✅ iTerm2 기본 프로파일 GUID 설정 완료"
|
|
||||||
else
|
|
||||||
echo "⚠️ 프로파일 GUID를 찾을 수 없습니다"
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "⚠️ $ITERM_PROFILE_FILE 파일을 찾을 수 없습니다."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# iTerm2 재시작
|
|
||||||
echo "🔄 iTerm2 시작 중..."
|
|
||||||
sleep 1
|
|
||||||
if open -a iTerm 2>/dev/null; then
|
|
||||||
echo "✅ iTerm2 시작 완료"
|
|
||||||
else
|
|
||||||
echo "⚠️ iTerm2를 수동으로 실행해주세요"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
@@ -582,16 +533,10 @@ echo ""
|
|||||||
echo "📋 다음 단계:"
|
echo "📋 다음 단계:"
|
||||||
echo ""
|
echo ""
|
||||||
echo " 1️⃣ iTerm2 실행 확인"
|
echo " 1️⃣ iTerm2 실행 확인"
|
||||||
echo " → iTerm이 자동으로 열렸는지 확인"
|
echo " → iTerm2 실행 후 새 창(⌘N) 열기"
|
||||||
echo ""
|
echo ""
|
||||||
echo " 2️⃣ iTerm2에서 프로파일 설정 (필수 - 30초):"
|
echo " 2️⃣ nad4-profile이 기본 프로파일로 자동 설정됨"
|
||||||
echo " ┌──────────────────────────────────────────┐"
|
echo " → 기존 세션은 유지됩니다. 새 창(⌘N)에서 확인하세요."
|
||||||
echo " │ iTerm2 > Settings (⌘,) │"
|
|
||||||
echo " │ → Profiles 탭 │"
|
|
||||||
echo " │ → 왼쪽에서 'nad4-profile' 선택 │"
|
|
||||||
echo " │ → 하단 'Other Actions...' 클릭 │"
|
|
||||||
echo " │ → 'Set as Default' 선택 │"
|
|
||||||
echo " └──────────────────────────────────────────┘"
|
|
||||||
echo ""
|
echo ""
|
||||||
echo " 3️⃣ 새 창 열어서 프로파일 확인 (⌘N)"
|
echo " 3️⃣ 새 창 열어서 프로파일 확인 (⌘N)"
|
||||||
echo " ✓ 어두운 배경"
|
echo " ✓ 어두운 배경"
|
||||||
@@ -653,6 +598,7 @@ echo ""
|
|||||||
echo "💡 설치된 앱 목록:"
|
echo "💡 설치된 앱 목록:"
|
||||||
echo " ✅ iTerm2 (터미널)"
|
echo " ✅ iTerm2 (터미널)"
|
||||||
echo " ✅ cmux (AI agent 멀티 터미널)"
|
echo " ✅ cmux (AI agent 멀티 터미널)"
|
||||||
|
echo " ✅ Orca (AI agent 개발 환경)"
|
||||||
echo " ✅ VSCode + Claude 확장"
|
echo " ✅ VSCode + Claude 확장"
|
||||||
echo " ✅ Claude Code CLI"
|
echo " ✅ Claude Code CLI"
|
||||||
echo " ✅ Codex CLI"
|
echo " ✅ Codex CLI"
|
||||||
|
|||||||
Reference in new issue
Block a user