데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      더 이상 zsh theme로 고통받지 마세요 - Powerlevel10k

      gnidoc327 24.04.11
      63,077 16 7
      DEVOTEE 요약
      맥북 사용자들은 일반적으로 감성을 중시하며, 맥 OS 카탈리나 버전부터는 기본 쉘로 zsh가 설정되어 이에 맞는 테마 설정이 필요하게 되었습니다. 터미널 사용 경험을 개선하고자 Powerlevel10k라는 오픈소스를 활용하여 터미널의 폰트, 인코딩, 프롬프트 스타일 등을 마법사 형태로 간편하게 구성할 수 있습니다. 이를 통해 사용자는 시스템 포맷이나 초기화 시에도 빠르고 쉽게 개인화된 터미널 환경을 재설정할 수 있게 됩니다.

      맥북 쓰는 이유요...? 그냥 감성이죠(or 이쁘잖아요)

      맥북 처음 받으면 제일 먼저하는 세팅이죠? 바로 zsh 테마(theme) 설정입니다.

      정확히는 "zsh" + "oh my zsh" 이긴 하지만 대충 zsh라고 하죠 ㅎㅎ어쨋든 카탈리나 이후부터는 기본 shell이 zsh로 설정되서 세팅할게 줄긴했지만 문제가 있습니다


      터미널이라는게 사실 이쁘게 꾸미는게 매우 귀찮기도 하고,

      회사PC의 경우엔 기존 PC를 반납하고 신규 PC를 받아야되는 경우가 있기 때문에 보통 설정파일인 ~/.zshrc 파일을 어디에 백업해놔야하는 경우가 있는데요


      하지만 ~/.zshrc 파일만 백업했다고 완벽하게 이전 테마처럼 세팅할 순 없습니다

      왜냐하면 터미널에서 쓸 한글 폰트도 설치해야되고테마도 다시 다운로드도 해야되고해당 테마에서 스크립트 수정한 경우엔 그 코드도 찾아야되거든요

      보통 newline 추가하려고 아래와 같은 스크립트를 테마에 넣으시는 경우가 많죠

      prompt_end() {
        if [[ -n $CURRENT_BG ]]; then
            print -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
        else
            print -n "%{%k%}"
        fi
      
        print -n "%{%f%}"
        CURRENT_BG='' 
      
        #Adds the new line and ➜ as the start character.
        printf "\n ➜";
      }

      이런 스크립트 하나 넣으면 아래처럼 newline이 추가되서 보기도 그렇고 사용할때도 좀 더 편해집니다

      image.png

      어쨋든 이렇게 하나하나 세팅을 다 해놨더니갑자기 PC를 포맷해야되거나 초기화를 해야되는 상황이 온다면 매우 난감합니다

      왜냐하면 겨우 테마 세팅하는걸 문서화까지 하는 경우는 잘 없으니깐요


      그래서 보통 포맷해야되는 상황이 온다면 모두 난감해하지만이제 소개시켜 드릴 오픈소스라면 걱정은 없습니다!

      바로 "Powerlevel10k" 입니다


      Powerlevel10k 소개

      https://github.com/romkatv/powerlevel10k

      터미널 구성을 마법사 형태로 구성할 수 있게 도와주는 오픈소스입니다


      설치도 매우 간단한데 저는 주로 manual하게 설치하는 편입니다

      별다른 의미는 없고 저는 mac뿐 아니라 linux(ubuntu)에서도 zsh를 쓰다보니 그냥 통일해서 쓰는게 좋더라구요

      git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
      echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc

      보시는것처럼 설치도 쉽고 놓칠 수 있는 부분도 마법사를 통해서 알려주다보니 편합니다

      그럼 실제로 어떻게 설정하는지도 볼까요?

      source ~/.zshrc를 실행하면 p10k(=powerlevel10k) configure가 실행됩니다


      p10k 설정

      1. 폰트 설치

      image.png

      위처럼 기본적으로 Apple에서 제공해주는 기본 폰트인 Menlo를 커스텀한 버전인 Meslo를 추천해줍니다

      둘 다 mono폰트(고정폭)이라서 코딩할때 편하지만 Meslo의 특징은줄 간격이 3가지로 제공되고 Nerd Fornt는 다양한 glyphs한 아이콘도 제공된다는거죠


      glyphs한 아이콘이란건 아래 예시를 보시면 좋을것 같네요

      image.png

      어쨋든 특별한 취향이 있는게 아니라면 기본으로 추천해주는 Meslo Nerd Font를 추천드립니다(+ 처음 설치하신다면 터미널을 한번 재시작해야 합니다)


      2. 다이아몬드(UTF-8)

      image.png

      터미널 세팅할때 놓치는부분이죠. 바로 UTF-8 텍스트입니다

      옛날엔 ascii만 써도 충분했지만 요즘 오픈소스들은 거의 최소 UTF-8를 쓰고 있기 때문에 사용하는 폰트가 해당 텍스트를 지원하고 있는지 확인하는 겁니다

      만약 현재 터미널 설정이 해당 텍스트를 지원하지 않는다면 안보일테고 그러면 p10k가 알아서 보일만한 문자로 대체해주겠죠?

      저는 Meslo를 써서 그런지 잘보이네요


      3. 자물쇠(유니코드 중 Private Use Area 체크)

      image.png

      PUA(Private Use Area)에 해당하는 글자가 보이는지 확인합니다.

      PUA는 이름 그대로 사용자 정의 영역이고 UTF-8, UTF-16에서 사용자 개인이 직접 특수문자를 정의해서 쓸 수 있는 구간입니다.(U+E000 ~ U+F8FF, U+F0000 ~ U+10FFFF)


      하지만 보통 glyphs한 아이콘을 해당 영역에서 많이 다룹니다

      그래서 fontawesome 의 폰트를 사용한다면 보일것이고 아니라면 2번처럼 적절한걸로 대체되겠죠?


      4. 화살표 위방향(UTF-16)

      image.png

      마지막 인코딩인 UTF-16 체크입니다


      5. 겹치는지 확인

      image.png

      glyphs한 아이콘은 위에처럼 거의 공백이 없기 떄문에 겹치는것처럼 느낄 수 있는데요취향에 따라서 적절하게 답하면 될거 같습니다


      6. 프롬프트 스타일

      image.png

      저는 화려하게 쓰는걸 좋아해서 3번으로 선택했는데 이 또한 취향 껏 고르시면 될거 같습니다

      나중에 바꿀 수 있으니깐 첫눈에 딱 끌리는걸로 골라가시면 될거 같네요


      7. 한국인이라면 1번

      image.png

      이건 말 안해도 되겠죠...?1번 안하시면 이제 한글로된 폴더나 파일명이 다 xxXX 이런식으로 깨져서 보일겁니다...한국인이라면 무조건 1번을!!!


      8. 시간

      image.png

      이거 해서 뭐가 좋냐고 하시는분들도 계시는 데스크립트 같은거 실행할때 얼마나 걸리는지 요걸로 대충 계산해볼 수 있습니다

      특히 shell, ansible, terraform 같은거 쓰신다면 도움이 되겠죠?? 스크립트 실행했을 때 얼마나 걸렸는지 확인할 필요가 줄어듭니다 ㅎ


      대신 1,2번 골랐을때 딱 하나 단점이 있는데요.시간이 눈에 보여서 그런지 시간이 잘 안갑니다


      9. 프롬프트 스타일 ETC

      중요한건 아니지만 취향이 가장 많이 갈리는 파트인데요내용이 길어서 그냥 스크린샷으로 대체합니다

      image.png

      image.png

      image.png

      image.png

      image.png

      image.png

      image.png

      image.png

      image.png

      image.png

      image.png


      10. Instant Prompt Mode

      image.png

      zsh를 쓰시는 목적은 대부분 plugin 일텐데요

      plugin이 많아지거나 유독 로딩이 오래 걸리는게 있다면 prompt를 새로 띄울 때마다 엄청 오래 걸립니다

      그런 랙(lag)을 방지해주는 모드가 바로 Instant Prompt Mode입니다


      물론 이 모드가 모든 plugin 랙을 완전 최적화를 해주는건 아니지만

      그냥 적용만해도 많이 빨라지더라구요 개인적으로는 추천드립니다 ㅎ


      11. 마지막 apply

      image.png

      그냥 source ~/.zshrc 대신 해주는겁니다

      저는 아래와 같은 취향으로 결정났습니다 ㅎㅎ

      image.png


      정리

      글로 주절주절 써놨지만보시는것처럼 1분만에 대부분의 상황에 고려가 필요한 내용을 마법사 형태로 제공해 줍니다.

      특히 인코딩 문제라든가 프롬프트 스타일 같이 매번 찾으면서 삽질해야되는걸 자동으로 정해주고

      알아서 이전 설정파일을 백업까지 해주는 기능이 있는 p10k 소개였습니다



      츨처: https://gnidoc.tistory.com/entry/%EB%8D%94-%EC%9D%B4%EC%83%81-zsh-theme%EB%A1%9C-%EA%B3%A0%ED%86%B5%EB%B0%9B%EC%A7%80-%EB%A7%88%EC%84%B8%EC%9A%94-Powerlevel10k

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      gnidoc327 님의 최신 블로그

      더보기
      동영상 기고하기