What we have to do is to be forever curiously
testing new opinions and courting new impressions

우리가 해야 할 일은 끊임없이 호기심을 갖고
새로운 생각을 시험해보고 새로운 인상을 받는 것

✈️ 눈이 편한 터미널 테마색 기록 - Warp 배경색과 글씨색 (HEX·RGB)

🎯 개요

터미널을 오래 보면 배경색과 글씨색 조합에 따라 눈의 피로도가 크게 달라짐 여러 테마를 거쳐 지금 Warp에서 쓰는 조합이 가장 눈이 덜 피로했음 언젠가 터미널을 바꾸거나 설정을 날려도 같은 조합을 복구할 수 있도록 HEX와 RGB 두 표기로 기록해둠 추출 방법도 함께 적어 다른 터미널의 테마색을 뽑을 때 재사용할 수 있게 함 같은 조합을 다른 사람 맥북이나 새 맥북에 그대로 옮기는 절차까지 정리해 테마 하나로 어디서든 같은 화면을 볼 수 있게 함

📋 목록

  • 최종 색 조합 (HEX·RGB)
  • 이 조합이 눈에 편한 이유
  • Warp에서 테마색 추출하기
  • iTerm2에서 테마색 추출하기
  • HEX와 RGB 변환 원리
  • Warp 테마 전체 (ANSI 16색 포함)
  • 다른 맥북으로 Warp 테마 이전하기
  • 다른 도구에 같은 색 적용하기

✏️ 최종 색 조합 (HEX·RGB)

항목 HEX R G B CSS 표기
배경색 #0e2a35 14 42 53 rgb(14, 42, 53)
글씨색 #fcf6e5 252 246 229 rgb(252, 246, 229)
커서색 #fefffe 254 255 254 rgb(254, 255, 254)
강조색 #618fce 97 143 206 rgb(97, 143, 206)

배경은 검정에 가까운 짙은 청록, 글씨는 순백이 아닌 살짝 노란기가 도는 크림색임

💡특이사항

이 테마는 Warp 설치 시 iTerm2 프로필을 자동으로 가져온 “iTerm2 Migrated” 테마임 가져온 시점의 색이 yaml 파일에 고정되므로, 이후 iTerm2 프로필을 바꿔도 Warp 쪽은 그대로 남음


✏️ 이 조합이 눈에 편한 이유

요소 설명
순수 검정 배경 회피 #000000 배경은 글씨와의 명암 대비가 너무 강해 장시간 보면 눈이 쉽게 피로해짐. #0e2a35는 약간 밝기가 있어 대비가 완화됨
순백 글씨 회피 #ffffff는 어두운 배경 위에서 번져 보이는 헤일로 현상이 생김. #fcf6e5는 살짝 톤을 낮춘 크림색이라 번짐이 덜함
청록 계열 배경 파랑 계열은 어두운 방에서도 눈부심이 적고, 노란기 있는 글씨와 보색 관계라 가독성이 유지됨
따뜻한 글씨색 크림색은 종이 위 잉크와 비슷한 느낌이라 오래 읽어도 익숙함

Solarized Dark(#002b36)와 배경 톤이 비슷한 것도 우연이 아님 Solarized 역시 낮은 대비와 청록 배경으로 장시간 작업을 목표로 설계된 팔레트임


✏️ Warp에서 테마색 추출하기

Warp는 현재 테마 정보를 macOS defaults에, 커스텀 테마 본문은 yaml 파일에 저장함

1. 현재 활성 테마 확인

defaults read dev.warp.Warp-Stable Theme

출력 예시

{"Custom":{"name":"iTerm2 Migrated","path":"/Users/everforest/.warp/themes/iterm2-migrated.yaml"}}

내장 테마를 쓰고 있다면 "Dark" 같은 이름만 나오고, 커스텀 테마면 위처럼 yaml 경로가 나옴

2. yaml 파일에서 색 읽기

cat ~/.warp/themes/iterm2-migrated.yaml
name: iTerm2 Migrated
accent: '#618fce'
cursor: '#fefffe'
background: '#0e2a35'
foreground: '#fcf6e5'
details: darker

background가 배경색, foreground가 글씨색임 Warp는 처음부터 HEX로 저장하므로 변환 없이 바로 사용 가능

💡특이사항

Warp 내장 테마를 쓰는 경우 로컬에 yaml이 없음 이때는 Warp 공식 테마 저장소(github.com/warpdotdev/themes)에서 같은 이름의 yaml을 찾으면 됨


✏️ iTerm2에서 테마색 추출하기

iTerm2는 색을 plist 안에 0~1 사이 실수(Red/Green/Blue Component)로 저장함 그래서 255를 곱해 정수로 만든 뒤 HEX로 바꾸는 과정이 필요함

plutil -convert xml1 -o - ~/Library/Preferences/com.googlecode.iterm2.plist | python3 -c "
import plistlib, sys
d = plistlib.loads(sys.stdin.buffer.read())
default = d.get('Default Bookmark Guid')

def hx(c):
    if not c:
        return None
    return '#%02x%02x%02x' % tuple(
        round(c.get(k, 0) * 255)
        for k in ('Red Component', 'Green Component', 'Blue Component')
    )

for b in d.get('New Bookmarks', []):
    tag = ' (기본 프로필)' if b.get('Guid') == default else ''
    print(f\"프로필: {b.get('Name')}{tag}\")
    print('  배경색 :', hx(b.get('Background Color')))
    print('  글씨색 :', hx(b.get('Foreground Color')))
    print('  커서색 :', hx(b.get('Cursor Color')))
"

출력 예시

프로필: Default (기본 프로필)
  배경색 : #fafafa
  글씨색 : #101010
  커서색 : #000000
항목 설명
plutil -convert xml1 바이너리 plist를 XML로 변환해 파이썬이 읽을 수 있게 함
New Bookmarks iTerm2 프로필 목록이 담긴 키
Default Bookmark Guid 기본 프로필의 식별자. 이걸로 어느 프로필이 기본인지 판별
Background Color / Foreground Color 각각 배경색·글씨색. 내부는 0~1 실수

💡특이사항

GUI로 확인하려면 iTerm2 → Settings → Profiles → Colors 탭에서 색상 박스를 클릭하면 됨 다만 프로필이 여러 개면 어느 것이 기본인지 헷갈리기 쉬워 스크립트가 더 확실함


✏️ HEX와 RGB 변환 원리

HEX 색상 코드는 #RRGGBB 형태로, 두 자리씩 빨강·초록·파랑을 16진수로 표현한 것임

#0e2a35
 ── ── ──
 0e 2a 35
 │  │  └─ 파랑: 0x35 = 3×16 + 5  = 53
 │  └──── 초록: 0x2a = 2×16 + 10 = 42
 └─────── 빨강: 0x0e = 0×16 + 14 = 14
#fcf6e5
 ── ── ──
 fc f6 e5
 │  │  └─ 파랑: 0xe5 = 14×16 + 5  = 229
 │  └──── 초록: 0xf6 = 15×16 + 6  = 246
 └─────── 빨강: 0xfc = 15×16 + 12 = 252

16진수 한 자리는 0~15를 나타내고, a=10, b=11, c=12, d=13, e=14, f=15임

터미널에서 바로 계산하려면

# HEX → RGB
printf '%d %d %d\n' 0x0e 0x2a 0x35    # 14 42 53

# RGB → HEX
printf '#%02x%02x%02x\n' 14 42 53     # #0e2a35

✏️ Warp 테마 전체 (ANSI 16색 포함)

배경·글씨 외에 ls, git diff 등이 쓰는 ANSI 16색도 같은 파일에 정의돼 있음 전체를 남겨두면 그대로 복사해 복구할 수 있음

name: iTerm2 Migrated
accent: '#618fce'
cursor: '#fefffe'
background: '#0e2a35'
foreground: '#fcf6e5'
details: darker
terminal_colors:
  normal:
    black: '#14191e'
    red: '#b43c29'
    green: '#00c200'
    yellow: '#c7c400'
    blue: '#2743c7'
    magenta: '#bf3fbd'
    cyan: '#00c5c7'
    white: '#c7c7c7'
  bright:
    black: '#676767'
    red: '#dc7974'
    green: '#57e690'
    yellow: '#ece100'
    blue: '#a6aaf1'
    magenta: '#e07de0'
    cyan: '#5ffdff'
    white: '#feffff'
항목 설명
accent 선택 영역·프롬프트 강조 등에 쓰이는 포인트 색
details darker 또는 lighter. 테마가 어두운 계열인지 밝은 계열인지 Warp에 알려줌
terminal_colors.normal ANSI 0~7번 색
terminal_colors.bright ANSI 8~15번 색 (굵은 글씨·밝은 변형)

✏️ 다른 맥북으로 Warp 테마 이전하기

앞서 본 것처럼 Warp 테마는 yaml 파일 하나가 전부임 그래서 같은 테마를 다른 맥북에 옮기는 일도 파일 하나를 복사하는 것으로 끝남 새 맥북을 세팅하거나, 같은 테마를 쓰고 싶어하는 동료에게 전달할 때 아래 순서대로 하면 됨

1단계: Warp 설치

상대방 맥북 터미널에서 Homebrew로 설치함

brew install --cask warp

설치 후 Warp를 한 번 실행해 계정 생성 등 초기 설정을 마쳐둠 이 과정에서 ~/.warp 폴더가 만들어짐

2단계: 테마 파일 전달

내 맥북에서 아래 파일을 상대방에게 보냄

~/.warp/themes/iterm2-migrated.yaml

전달 방법은 AirDrop, 슬랙·카카오톡 파일 전송, USB, 이메일 첨부 등 편한 것 아무거나 가능 텍스트 파일이라 용량이 1KB 남짓이며, 위 “Warp 테마 전체” 섹션의 yaml을 복사해 새 파일로 만들어도 됨

3단계: 상대방 맥북에 테마 파일 배치

상대방 맥북 터미널에서 테마 폴더를 만들고 전달받은 파일을 넣음

mkdir -p ~/.warp/themes
mv ~/Downloads/iterm2-migrated.yaml ~/.warp/themes/

최종 경로가 아래처럼 되면 됨

/Users/상대방유저명/.warp/themes/iterm2-migrated.yaml

💡특이사항

~/.warp/themes 폴더는 커스텀 테마를 한 번도 만든 적 없는 맥북에는 존재하지 않음 mkdir -p를 먼저 실행해야 mv가 실패하지 않음

4단계: Warp에서 테마 적용

상대방이 Warp를 실행한 뒤 GUI에서 선택함

  1. Cmd + ,로 설정 열기
  2. 왼쪽 메뉴에서 Appearance 클릭
  3. Current Theme 목록에서 “iTerm2 Migrated” 선택

목록에 안 보이면 Warp를 완전히 종료(Cmd + Q)한 뒤 다시 실행하면 나타남 Warp는 실행 시점에 ~/.warp/themes 폴더를 읽기 때문임

5단계: Powerlevel10k 프롬프트 설정 (선택)

상대방도 Powerlevel10k을 쓴다면 Warp 기본 프롬프트가 p10k 프롬프트를 가려버림 같은 설정 화면에서 아래처럼 바꿔주면 기존 zsh 프롬프트가 그대로 나옴

  1. Input 항목을 Classic으로 변경
  2. 그 아래 나타나는 Current prompt를 Shell Prompt (PS1)로 선택

Powerlevel10k을 안 쓴다면 이 단계는 건너뜀

이전 절차 요약

순서 할 일 어디서
1 brew install --cask warp 상대방 터미널
2 iterm2-migrated.yaml 파일 전달 내 맥북 → 상대방
3 ~/.warp/themes/ 폴더 만들고 파일 넣기 상대방 터미널
4 Settings → Appearance → 테마 선택 상대방 Warp
5 Input → Classic → PS1 (p10k 쓸 경우만) 상대방 Warp

핵심은 yaml 파일 하나를 ~/.warp/themes/에 넣는 것이 전부이고, 나머지는 GUI에서 클릭만 하면 됨


✏️ 다른 도구에 같은 색 적용하기

Warp가 아닌 도구에도 같은 배경·글씨색을 맞춰두면 창을 오갈 때 눈이 적응할 필요가 없음

대상 적용 방법
iTerm2 Settings → Profiles → Colors에서 Background 14,42,53, Foreground 252,246,229 입력
VS Code 통합 터미널 settings.jsonworkbench.colorCustomizationsterminal.background: "#0e2a35", terminal.foreground: "#fcf6e5"
웹 페이지 코드블록 CSS background: #0e2a35; color: #fcf6e5;

iTerm2와 VS Code는 RGB 정수 입력을 받는 곳이 있어 HEX와 RGB를 둘 다 알아두면 변환 없이 바로 넣을 수 있음


💡 요약

항목 HEX RGB
배경색 #0e2a35 rgb(14, 42, 53)
글씨색 #fcf6e5 rgb(252, 246, 229)
  • 순수 검정·순백 대신 짙은 청록 배경 + 크림색 글씨 조합이 장시간 작업에 눈이 덜 피로함
  • Warp 테마색은 defaults read dev.warp.Warp-Stable Theme로 경로를 찾고 yaml에서 HEX 그대로 읽음
  • iTerm2는 plist에 0~1 실수로 저장돼 있어 255를 곱해 HEX로 변환해야 함
  • HEX 두 자리 = 16진수 한 채널이며, printf '%d' 0x0e 식으로 셸에서 바로 변환 가능
  • ANSI 16색까지 yaml 전체를 보관해두면 어떤 환경에서도 같은 테마를 복구할 수 있음
  • 다른 맥북으로 옮길 때는 yaml 하나를 ~/.warp/themes/에 넣고 Appearance에서 선택하면 끝이며, p10k 사용자는 Input을 Classic → PS1로 바꿔줌

댓글남기기