[터미널] Warp + Powerlevel10k + lsd

소개

기존에는 개발 터미널로 Iterm2를 쓰고 있었는데 최근에 새로운 터미널을 알게되어 소개하고자 한다.

Warp라는 터미널인데 예전부터 눈여겨보고 있었던 녀석이기는 하다. 슬슬 이쪽으로 트렌드가 넘어오는 느낌도 든다.

추천하는 이유는 다음과 같다.

  1. 명령어 자동 완성 기능이 달려있다.
  2. AI 기능이 내장되어 있다.
  3. 자주 쓰는 워크플로우를 Warp Drive에 저장해 놓을 수 있다.
  4. 실행 블록별로 찾기, 복사 등 작업이 가능하다.

속도는 Terminal.app 보다는 느리지만 Iterm보다는 확실히 빠르다. 벤치마크를 확인해보자.

이는 Warp에서 제공하는 벤치마크이므로 100% 신뢰할 수는 없지만 직접 사용해보니 체감상으로도 빠른 것 같다. 이외에도 편리한 기능이 많다.

다만, 아직 범용적으로 사용되기 어려운 단점도 있다.

  1. zsh를 기본 쉘로 사용하는데 맨 처음 탭을 열 때 zsh 로딩이 조금 느리다.
  2. 아직 한국어 지원이 완벽하지 않다. (한국어 파일명이 자음으로만 나온다)

이와 같은 이유로 개발자 이외에는 쓰기 어려울 것 같다. 애초에 개발자가 아니면 터미널에 관심을 가지지 않겠지만…

위에 서술한 내용과는 별개로 사실 Warp로 넘어오게 된 이유는 간단하다.

🚀 터미널이 매우 깔끔하고 멋지다

image


설치

● Warp

우선 Warp 사이트로 이동하여 다운받는다. 혹은 brew install도 가능하다.

설치 후 실행하면 바로 사용할 수 있다. 기존 테마도 멋있지만 커스텀 테마를 적용하는 것도 가능하다.

커스텀 테마는 관련 사이트에서 다운받거나 yaml 파일을 직접 작성하여 적용할 수 있다.

필자는 Seashell.yaml을 다운 받아서 적용하였다. 테마 관련 폴더를 생성해서 그 안에 다운로드 받은 yaml 파일을 옮겨주면 된다.

mkdir -p ~/.warp/themes/
cp ~/Downloads/.yaml ~/.warp/themes/

이제 Warp 테마 설정에서 해당 테마 선택이 가능하다.

공식문서에서도 커스텀 테마 적용 방법에 대해 상세히 설명하고 있으므로 한번 살펴보자.

● Powerlevel10k

Iterm2를 사용할 때 zsh 프롬프트를 꾸며주기 위해 powerlevel10k를 적용했었는데 Warp도 zsh를 사용하므로 동일하게 적용이 가능하다.

기존에 Iterm2를 사용하시던 분이라면 자동으로 적용이 될 것이다.

Warp에서도 친절하게 powerlevel10k를 적용하는 방법에 대해서 설명해주고 있다.

p10k를 설치하기에 앞서 터미널 상에서 아이콘들이 제대로 나타나기 위해서 폰트를 적용해주어야 한다.

절차는 다음과 같다.

  1. Powerlevel10k 공식 깃허브 페이지에서 MesloLGS NF 폰트를 다운로드한다. Regular, Bold, Italic, Bold Italic.ttf 파일을 모두 다운받아서 설치해준다.
  2. Warp의 설정에서 Appearance > Text 로 이동한 뒤 View all available system fonts 박스를 체크해주고 드롭다운 메뉴에서 MesloLGS NF 폰트를 선택한다.
  3. Appearance > Prompt 에서 Sheell prompt (PS1)을 골라준다.

이제 p10k를 설치해보자.

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

설치가 완료되었다면 exec zsh 명령어로 테마 설정 마법사를 시작한다. 만일 설정창이 뜨지 않는다면 p10k configure 명령어를 활용한다.

이제 설정 마법사가 안내해 주는대로 개인의 취향에 맞게 설정해주면 된다.

● lsd

아이콘 얘기가 나왔으니 ls 명령어를 입력했을 때 나오는 결과값에도 아이콘을 입혀보자.

# 설치
$ brew install lsd

# alias 설정
$ vi ~/.zshrc

alias ls='lsd'
alias ll='ls -alhF'
alias lt='ls --tree'

$ source ~/.zshrc

이제 ls 명령을 입력하면 파일과 디렉토리의 차이가 한눈에 들어온다. 각 파일의 형태에 따라 아이콘이 다르게 표시되는 것도 볼 수 있다.

image

● 탭 이름 설정하기

Warp에서 탭을 열었을 때는 현재 경로가 탭 이름으로 표시되게 된다. 경로가 길 때는 잘 보이지 않으니 그냥 랜덤한 이모티콘으로 바꿔주자.

vim ~/.zshrc

참고하고 싶은 분을 위해 .zshrc의 내용을 그대로 가져왔다.

# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

# ================================================= 이 부분 추가
# set tab name randomly when a new tab is open
function set_name () {
  emojis=("⚡️" "🔥" "👑" "🍻" "🚀" "💡" "🎉" "🌙")
  RAND_EMOJI_N=$(( $RANDOM % ${#emojis[@]} + 1))
  echo -ne "\033]0;${emojis[RAND_EMOJI_N]}\007"
}
# if the terminal is Zsh, then run set_name
if [ -n "$ZSH_VERSION" ]; then
  precmd_functions+=(set_name)
fi
# =================================================

# set aliases for lsd package
alias ls='lsd'
alias ll='ls -alhF'
alias lt='ls --tree'

eval $(/opt/homebrew/bin/brew shellenv)
source ~/powerlevel10k/powerlevel10k.zsh-theme

# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

이제 적용해주면 된다.

source ~/.zshrc

● Vim 커스텀 테마

이제 웬만한 부분은 완성되었다.

Mac을 사용하다보면 Vim을 텍스트 편집기로 사용하게 되는데 좀 더 완벽을 기한다면 Vim 커스텀 테마까지 적용해보자. 문서 읽기가 매우 편해진다.

Warp 커스텀 테마 때와 마찬가지로 사이트에서 원하는 테마를 다운받는다.

테마 관련 폴더를 생성해서 다운로드받은 파일을 옮겨준다.

mkdir ~/.vim/colors
cp ~/Downloads/.yaml ~/.vim/colors/
vim ~/.vimrc

아래와 같이 설정해준다. 비어있다면 복사-붙여넣기를 한다.

" Syntax Highlighting
if has("syntax")
    syntax on
endif

set ts=4
set autoindent

colo  // <- colors 안에 들어있는 .vim 파일명

set laststatus=2
set statusline=\ %<%l:%v\ [%P]%=%a\ %h%m%r\ %F\

vim을 재실행하면 테마가 적용된다.

image

결론

이제 VScode만 깔아준다면 개발 준비는 끝난 것이다.

다른거는 몰라도 Warp + Powerlevel10k 조합은 꼭 적용해보자. 할 일이 없어도 터미널을 켜고 있는 자신을 발견할 것이다.