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
|
||||
- iTerm2
|
||||
- **cmux** + CLI 링크
|
||||
- **Orca** (AI agent 개발 환경)
|
||||
- Oh My Zsh (agnoster 멀티라인 테마)
|
||||
- zsh-syntax-highlighting / zsh-autosuggestions
|
||||
- **VSCode** + Claude 확장
|
||||
@@ -70,6 +71,7 @@ chmod +x setup_mac.sh
|
||||
```
|
||||
setup_mac/
|
||||
├── setup_mac.sh # 메인 설치 스크립트
|
||||
├── apply_iterm2.sh # iTerm2 프로파일만 재적용
|
||||
├── save_configs.sh # 설정 저장 스크립트
|
||||
├── .gitignore
|
||||
├── iterm2-settings/
|
||||
@@ -86,7 +88,8 @@ setup_mac/
|
||||
### iTerm2 프로파일
|
||||
- **이름**: nad4-profile
|
||||
- **폰트**: D2Coding 13pt
|
||||
- **색상**: 다크 테마
|
||||
- **색상**: 다크 테마 (macOS 라이트/다크 모드와 무관하게 유지)
|
||||
- **기본 프로파일**: 자동 설정, 기존 세션은 유지하며 새 창부터 적용
|
||||
- **Status Bar**: CPU, 메모리, 네트워크, 배터리, 호스트명
|
||||
- **크기**: 100 columns × 25 rows
|
||||
|
||||
@@ -104,6 +107,11 @@ setup_mac/
|
||||
- **CLI**: `/Applications/cmux.app/Contents/Resources/bin/cmux` 를 Homebrew bin 경로에 링크
|
||||
- cmux 외부 터미널에서도 `cmux` 명령을 사용할 수 있도록 구성
|
||||
|
||||
### Orca
|
||||
- **앱**: [공식 설치 안내](https://www.onorca.dev/docs/install)의 `brew install --cask stablyai/orca/orca` 사용
|
||||
- Homebrew 기본 저장소의 동명 Plotly 앱과 구분하기 위해 전체 cask 경로 사용
|
||||
- 최초 실행 후 작업 저장소와 Claude Code/Codex 환경을 선택
|
||||
|
||||
### Docker Desktop
|
||||
- **앱**: `brew install --cask docker-desktop` 으로 자동 설치
|
||||
- **CLI**: Docker Desktop이 제공하는 `docker`, `docker compose` 사용
|
||||
@@ -182,8 +190,7 @@ git push
|
||||
|
||||
### iTerm2 설정
|
||||
- [ ] iTerm2 > Settings > Profiles
|
||||
- [ ] 'nad4-profile' 선택
|
||||
- [ ] Other Actions... > Set as Default
|
||||
- [ ] 'nad4-profile'이 기본 프로파일인지 확인
|
||||
- [ ] 새 창 열어서 설정 확인
|
||||
|
||||
### Stats 설정
|
||||
@@ -227,12 +234,12 @@ git push
|
||||
|
||||
### iTerm2 프로파일이 적용되지 않는 경우
|
||||
```bash
|
||||
# 1. 프로파일 파일 확인
|
||||
ls -la ~/Library/Application\ Support/iTerm2/DynamicProfiles/
|
||||
# 앱 재설치 없이 저장소의 프로파일과 기본값만 적용
|
||||
cd ~/workspace/setup_mac
|
||||
bash apply_iterm2.sh
|
||||
|
||||
# 2. iTerm2 재시작
|
||||
killall iTerm2
|
||||
open -a iTerm2
|
||||
# iTerm2에서 ⌘N으로 새 창 열기
|
||||
# 기존 창/탭은 이전 세션 설정을 유지할 수 있습니다.
|
||||
```
|
||||
|
||||
### 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
|
||||
},
|
||||
"Use Non-ASCII Font" : false,
|
||||
"Use Separate Colors for Light and Dark Mode" : false,
|
||||
"Has Hotkey" : false,
|
||||
"Ansi 8 Color" : {
|
||||
"Green Component" : 0.31372550129890442,
|
||||
|
||||
+7
-61
@@ -16,7 +16,6 @@ CODEX_REPO_DIR="${WORKSPACE_ROOT}/codex"
|
||||
ITERM_SETTINGS_DIR="$SCRIPT_DIR/iterm2-settings"
|
||||
STATS_SETTINGS_DIR="$SCRIPT_DIR/stats-settings"
|
||||
RECTANGLE_SETTINGS_DIR="$SCRIPT_DIR/rectangle-settings"
|
||||
ITERM_PROFILE_FILE="$ITERM_SETTINGS_DIR/profile.json"
|
||||
STATS_PLIST_FILE="$STATS_SETTINGS_DIR/Stats.plist"
|
||||
RECTANGLE_PLIST_FILE="$RECTANGLE_SETTINGS_DIR/com.knollsoft.Rectangle.plist"
|
||||
RECTANGLE_JSON_FILE="$RECTANGLE_SETTINGS_DIR/RectangleConfig.json"
|
||||
@@ -152,6 +151,7 @@ APPS=(
|
||||
"rectangle"
|
||||
"appcleaner"
|
||||
"cmux"
|
||||
"stablyai/orca/orca"
|
||||
)
|
||||
|
||||
for app in "${APPS[@]}"; do
|
||||
@@ -359,6 +359,7 @@ prompt_newline() {
|
||||
fi
|
||||
echo -n "%{%f%}"
|
||||
CURRENT_BG=''
|
||||
printf '\n❯'
|
||||
}
|
||||
|
||||
# 프롬프트 빌드 (멀티라인 적용)
|
||||
@@ -400,57 +401,7 @@ echo ""
|
||||
# =============================================================================
|
||||
echo "⚙️ iTerm2 프로파일 설정 중..."
|
||||
|
||||
# iTerm2가 실행 중이면 종료
|
||||
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
|
||||
bash "$SCRIPT_DIR/apply_iterm2.sh"
|
||||
|
||||
echo ""
|
||||
|
||||
@@ -582,16 +533,10 @@ echo ""
|
||||
echo "📋 다음 단계:"
|
||||
echo ""
|
||||
echo " 1️⃣ iTerm2 실행 확인"
|
||||
echo " → iTerm이 자동으로 열렸는지 확인"
|
||||
echo " → iTerm2 실행 후 새 창(⌘N) 열기"
|
||||
echo ""
|
||||
echo " 2️⃣ iTerm2에서 프로파일 설정 (필수 - 30초):"
|
||||
echo " ┌──────────────────────────────────────────┐"
|
||||
echo " │ iTerm2 > Settings (⌘,) │"
|
||||
echo " │ → Profiles 탭 │"
|
||||
echo " │ → 왼쪽에서 'nad4-profile' 선택 │"
|
||||
echo " │ → 하단 'Other Actions...' 클릭 │"
|
||||
echo " │ → 'Set as Default' 선택 │"
|
||||
echo " └──────────────────────────────────────────┘"
|
||||
echo " 2️⃣ nad4-profile이 기본 프로파일로 자동 설정됨"
|
||||
echo " → 기존 세션은 유지됩니다. 새 창(⌘N)에서 확인하세요."
|
||||
echo ""
|
||||
echo " 3️⃣ 새 창 열어서 프로파일 확인 (⌘N)"
|
||||
echo " ✓ 어두운 배경"
|
||||
@@ -653,6 +598,7 @@ echo ""
|
||||
echo "💡 설치된 앱 목록:"
|
||||
echo " ✅ iTerm2 (터미널)"
|
||||
echo " ✅ cmux (AI agent 멀티 터미널)"
|
||||
echo " ✅ Orca (AI agent 개발 환경)"
|
||||
echo " ✅ VSCode + Claude 확장"
|
||||
echo " ✅ Claude Code CLI"
|
||||
echo " ✅ Codex CLI"
|
||||
|
||||
Reference in new issue
Block a user