[터미널] Warp + Powerlevel10k + lsd
소개
기존에는 개발 터미널로 Iterm2
를 쓰고 있었는데 최근에 새로운 터미널을 알게되어 소개하고자 한다.
Warp라는 터미널인데 예전부터 눈여겨보고 있었던 녀석이기는 하다. 슬슬 이쪽으로 트렌드가 넘어오는 느낌도 든다.
추천하는 이유는 다음과 같다.
- 명령어 자동 완성 기능이 달려있다.
- AI 기능이 내장되어 있다.
- 자주 쓰는 워크플로우를
Warp Drive
에 저장해 놓을 수 있다. - 실행 블록별로 찾기, 복사 등 작업이 가능하다.
속도는 Terminal.app 보다는 느리지만 Iterm보다는 확실히 빠르다. 벤치마크를 확인해보자.
이는 Warp에서 제공하는 벤치마크이므로 100% 신뢰할 수는 없지만 직접 사용해보니 체감상으로도 빠른 것 같다. 이외에도 편리한 기능이 많다.
다만, 아직 범용적으로 사용되기 어려운 단점도 있다.
- zsh를 기본 쉘로 사용하는데 맨 처음 탭을 열 때 zsh 로딩이 조금 느리다.
- 아직 한국어 지원이 완벽하지 않다. (한국어 파일명이 자음으로만 나온다)
이와 같은 이유로 개발자 이외에는 쓰기 어려울 것 같다. 애초에 개발자가 아니면 터미널에 관심을 가지지 않겠지만…
위에 서술한 내용과는 별개로 사실 Warp로 넘어오게 된 이유는 간단하다.
🚀 터미널이 매우 깔끔하고 멋지다
설치
● 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를 설치하기에 앞서 터미널 상에서 아이콘들이 제대로 나타나기 위해서 폰트를 적용해주어야 한다.
절차는 다음과 같다.
- Powerlevel10k 공식 깃허브 페이지에서 MesloLGS NF 폰트를 다운로드한다. Regular, Bold, Italic, Bold Italic.ttf 파일을 모두 다운받아서 설치해준다.
- Warp의 설정에서
Appearance > Text
로 이동한 뒤View all available system fonts
박스를 체크해주고 드롭다운 메뉴에서MesloLGS NF
폰트를 선택한다. 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 명령을 입력하면 파일과 디렉토리의 차이가 한눈에 들어온다. 각 파일의 형태에 따라 아이콘이 다르게 표시되는 것도 볼 수 있다.
● 탭 이름 설정하기
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을 재실행하면 테마가 적용된다.
결론
이제 VScode만 깔아준다면 개발 준비는 끝난 것이다.
다른거는 몰라도 Warp + Powerlevel10k
조합은 꼭 적용해보자. 할 일이 없어도 터미널을 켜고 있는 자신을 발견할 것이다.