GN⁺: 터미널 색상은 까다로움
(jvns.ca)- 터미널 색상 설정은 많은 사람들에게 어려운 문제임. 특히 "검은 배경에 파란색"은 읽기 어려운 조합으로 자주 언급됨.
- ANSI 색상은 16가지로 구성되며, 각 터미널 에뮬레이터가 색상을 다르게 해석할 수 있음.
문제 1: 검은 배경에 파란색
- 검은 배경에 파란색 텍스트는 읽기 어려움.
- ANSI 색상은 표준이 없어서 터미널마다 다르게 보일 수 있음.
문제 1.5: 흰색 배경에 밝은 노란색
- 흰색 배경에 밝은 노란색은 거의 읽을 수 없는 수준임.
- 색상 대비 문제를 해결하기 위해 터미널 에뮬레이터의 색상을 재구성할 수 있음.
색상 재구성 방법
- 방법 1: 터미널 에뮬레이터 설정 : 대부분의 현대 터미널 에뮬레이터는 색상 재구성 기능을 제공함.
- 방법 2: 쉘 스크립트 실행 : ANSI 이스케이프 코드를 사용하여 터미널 색상을 변경할 수 있음.
문제 2: 256색 사용 프로그램
-
fd
와 같은 프로그램은 확장된 256색 세트를 사용하여 색상 대비가 나쁠 수 있음. - 일부 최신 도구는 사용자 정의 테마를 지원하여 다양한 터미널 테마와 잘 작동함.
문제 3: Solarized 테마의 회색
- Solarized 테마의 회색은 디렉토리와 실행 파일의 색상에 영향을 미침.
- 기본 Solarized 테마는 회색을 사용하지만, 수정된 base16 버전은 밝은 색상을 사용함.
문제 4: 터미널 배경과 맞지 않는 vim 테마
- vim 테마의 배경색이 터미널 테마와 다르면 경계가 생길 수 있음.
문제 5: 프로그램의 배경색 설정
-
ngrok
같은 프로그램이 원치 않는 배경색을 설정할 수 있음. -
base16-shell
스크립트는 추가 색상을 제공하기 위해 색상 #16을 밝은 주황색으로 설정함.
문제 6: 잘못 설정된 TERM
-
TERM
환경 변수가 잘못 설정되면 색상이 제대로 표시되지 않을 수 있음.
문제 7: 좋은 색상 선택의 어려움
- 색맹인 사람들은 적절한 색상 조합을 찾기 어려움.
- 배경색과 커서 색상이 비슷하면 찾기 어려울 수 있음.
문제 8: nethack/mc의 색상 문제
- nethack이나 midnight commander 같은 프로그램은 특정 색상 테마를 기대할 수 있음.
- 프로그램 시작 전에 색상 팔레트를 변경하여 문제를 해결할 수 있음.
문제 9: 파이프에 쓰기 시 색상 비활성화
-
fd | less
와 같은 명령어는 색상을 비활성화함. -
unbuffer fd | less -r
을 사용하여 색상을 볼 수 있음.
문제 10: ls
와 다른 명령어의 원치 않는 색상
-
ls
의 색상을 비활성화하거나 사용자 정의할 수 있음.
문제 11: vim의 색상 문제
- vim 색상 설정은 ANSI 색상과 24비트 색상 두 가지 방법이 있음.
- 2016년 이후 vim은 24비트 색상을 지원함.
기타 문제
- 여러 프로그램의 조합에서 발생하는 문제는 다루기 어려움.
base16의 효과
- base16-shell과 base16-vim을 사용하여 성공적으로 색상을 설정할 수 있었음.
- 제한된 내장 테마와 ANSI 색상 설정의 문제점이 있을 수 있음.
기타 색상 테마 도구
- rootloops.sh와 같은 색상 테마 생성 도구가 있음.
- 인기 있는 색상 테마로는 catpuccin, Monokai, Gruvbox, Dracula 등이 있음.
GN⁺의 정리
- 터미널 색상 설정은 복잡하지만, 최소 대비 기능을 사용하면 많은 문제를 해결할 수 있음.
- 다양한 색상 테마와 도구를 활용하여 사용자 경험을 개선할 수 있음.
- 터미널 색상 설정은 개인의 취향과 필요에 따라 다르게 적용될 수 있음.
- 비슷한 기능을 가진 다른 프로젝트로는 Solarized, Gruvbox 등이 추천됨.
Hacker News 의견
-
다양한 화면과 설정에서 밝은 테마가 어두운 테마보다 미묘하게 다르게 보임을 발견함. 이는 다양한 컴퓨터에 테마를 이식할 때 심각한 문제임
- 제한된 폰트와 색상 지원을 가진 Linux 또는 BSD 콘솔로 전환할 때 문제가 발생할 수 있음. fbterm을 사용하여 X 없이도 괜찮은 터미널 기능을 얻었지만, fbterm 자체의 문제도 존재함. vim 색상 설정 시 기능이 부족한 콘솔을 위한 대체 테마를 준비해야 함
-
터미널 에뮬레이터의 기본 색상 테마가 좋지 않으므로 변경해야 함. 개인적으로 Solarized 테마를 선호함
- 8비트 또는 24비트 색상 이스케이프 시퀀스를 사용하는 CLI 도구를 피해야 함. 이는 사용자에게 적대적일 수 있음. 개발자가 색상 테마를 기본으로 설정하는 것은 도움이 되지 않음
-
밝은 테마를 사용하고 싶었으나, 많은 프로그램이 어두운 배경에 최적화된 색상을 사용하여 포기함. 현재는 어두운 배경에 ANSI 테마를 사용하여 충분한 대비를 유지하고 있음
-
새로운 APCA 알고리즘을 사용하여 색상을 확인하는 것이 좋음. APCA는 글꼴 크기, 무게, 전경/배경, 주변 조명 등을 고려함
-
색상을 완전히 비활성화하려는 사람들도 있음. 개인적으로 시도해보고 싶지만, 예쁜 색상도 좋아함
-
Emacs의 frame-background-mode가 잘못 설정되어 색상이 좋지 않게 보일 수 있음
-
FlatUI 색상 테마를 약간 수정하여 사용 중이며, 큰 문제 없이 사용하고 있음
-
네온 사인이나 LED 이름판의 파란색이 밤에 눈에 가장 부담스러움. 멀리서 보면 흐릿하고 초점이 맞지 않음
-
터미널 색상에 대한 관심이 줄어들었으며, 색상 조정이 생산성에 긍정적인 영향을 미치지 않음. 기본 Apple 터미널 'pro' 테마의 배경 대비만 약간 조정함
-
터미널 색상 선택에 시간을 많이 썼으나, 이제는 흰색 배경에 검은색 텍스트를 사용함. 낮에는 눈부심이 없고, 밤에는 f.lux를 사용하여 눈의 피로를 줄임