Crossplatform 터미널 : Alacritty

최근 Windows 11에서 wsl 혹은 리눅스 연결을 위해서 powershell에서 ssh 명령을 사용했었다.

윈도우 계열에서도 다양한 터미널들이 있는데 여기서는 크로스 플랫폼 alacritty 를 정리했다.

alacritty 는 사용의 편의를 원하면 config 를 수동으로 잘해야 한다. (설정 파일 편집 필요)


설치와 사용

https://github.com/alacritty/alacritty

윈도우11에서 winget 을 사용할 수 있어서 winget 으로 설치했다.

1
2
3
4
winget search alacritty

#
winget install alacritty

Windows 설정

설정에 대해서 https://alacritty.org/config-alacritty.html 에 정리되어 있다.

  • 여기서는 windows 11 만 대상으로 한다.
  1. 설정 파일 위치

    • %APPDATA%\alacritty\alacritty.toml
  2. 설정 파일은 toml (ini) 형식의 문법을 사용

  3. 대부분의 편의를 위한 것은 설정에 지정해야 한다.


쉘 선택

Modern PowerShell 7+ (pwsh)

1
2
3
[shell]
program = "pwsh.exe"
args = ["-NoLogo"]

Windows PowerShell 5.1 (powershell)

1
2
3
[shell]
program = "powershell.exe"
args = ["-NoLogo"]

쉘 시작 위치 (PowerShell 기준)

powershell 을 사용하면 systemd32 아래에서 시작한다. 다음 같이 위치를 지정할 수 있다.

  1. PowerShell 7+ (pwsh) 기준toml[shell]
1
2
3
[shell]
program = "pwsh.exe"
args = ["-NoLogo", "-NoExit", "-Command", "Set-Location $env:USERPROFILE"]
  1. Windows PowerShell 5.1 기준toml[shell]
1
2
3
[shell]
program = "powershell.exe"
args = ["-NoLogo", "-NoExit", "-Command", "Set-Location $env:USERPROFILE"]

마우스 복사

드래그로 선택한 내용 복사

1
2
[selection]
save_to_clipboard = true

마우스 오른쪽 버튼을 복사 기능으로 변경 (mouse)일반적으로 마우스 오른쪽 버튼은 ‘붙여넣기’로 설정되어 있지만, 아래와 같이 커스텀 매핑을 추가하면 오른쪽 클릭으로 ‘복사’를 수행할 수 있다:

1
2
3
4
[[mouse.bindings]]

mouse = "Right"
action = "Copy"

샘플

alacritty 사용하며 처음 설정 값.

1
2
3
4
5
6
7
8
[general]

[window]
startup_mode = "Fullscreen"

[terminal.shell]
program = "pwsh.exe"
args = ["-NoLogo", "-NoExit", "-Command", "Set-Location $env:USERPROFILE"]

새로운 멀티플레서 zellij

tmux 를 사용하며 resurrect 기능은 충분히 필요하지만 자주 불안정하였다. 꽤나 자주 캐시 파일을 삭제해 리셋하는 번거로움이 있어서, 새로운 멀티플렉서로 zellij 는 편하고 쉽게 사용하고 있다.

멀티플렉서 Zellij (질리지)

최근 개발자들 사이에서 대세로 떠오른 Rust 기반의 차세대 터미널 멀티플렉서 Zellij.

https://github.com/zellij-org/zellij


특징:

Ctrl + B 같은 귀찮은 접두사 키가 필요 없고, UI가 매우 현대적이며 기본적으로 레이아웃 저장 및 복구(Session Resurrect) 기능이 내장되어 있습니다.

  1. tmux-resurrect처럼 서드파티 플러그인이 아니기 때문에 유기적으로 매우 안정되게 작동합니다.
  2. terminal 에서 메뉴방식으로 조작이 가능합니다.
  3. 기본 세션 관리기능이 있습니다.

설치

다양한 방법으로 설치가 가능하고, 현재 ubutun 는 snap 으로 설치가 가능하다.

cargo 로 설치

rust 패키지 매니저인 cargo 를 사용해 설치 관리할 수 있다.

먼저 rust update 를 진행

1
rustup update

cargo 로 설치

1
cargo install --locked zellij

cargo 로 재설치

1
cargo install --force --locked zellij

Ubuntu 패키지 다운로드

ubuntu 계열은 snap 사용

1
sudo snap install zellij --classic

설치없이 사용하기

즉시 사용할 수 있는 방법을 제공한다. 세션 중에만 설치해 사용하고 세션이 끝나면 설치된 내용은 사라진다.

1
bash <(curl -L https://zellij.dev/launch)

fish/xonsh:

1
bash -c 'bash <(curl -L https://zellij.dev/launch)'

기본 사용

zellij 명령으로 사용한다.

1
2
3
4
5
zellij                          # 새 세션 시작 (기본값으로 새 세션 생성)
zellij -s [세션 이름] # 세션 이름 지정해 시작
zellij ls (list-sessions) # 세션 목록 확인
zellij attach [세션 이름] # 기존 세션 접속
zellij kill-session [세션 이름] # 기존 세션 종료

list sessions

1
2
3
4
5
6
$ zellij list-sessions
$ zellij ls
rectangular-oboe [Created 2days 12h 36m 45s ago] (EXITED - attach to resurrect)
kind-jellyfish [Created 2days 12h 31m 2s ago] (EXITED - attach to resurrect)
LLM [Created 1day 16h 31m 37s ago] (EXITED - attach to resurrect)
remarkable-cuckoo [Created 11h 21m 13s ago]

키보드 스크롤

Zellij에서 터미널 화면을 키보드로 스크롤하고 확인하는 방법은 다음과 같습니다.

  • 스크롤 모드 진입: Ctrl + b를 누릅니다.
  • 한 줄씩 이동: k (위) 또는 j (아래)를 누르거나 방향키를 사용합니다.
  • 한 페이지씩 이동: Ctrl + u (위), Ctrl + d (아래)를 누르거나 PageUp, PageDown 키를 사용합니다.
  • 맨 위/맨 아래로 이동: g (맨 위) 또는 G (맨 아래)를 누릅니다.
  • 텍스트 검색 (선택 사항): 스크롤 모드에서 /를 누르면 검색창이 열려 원하는 텍스트를 찾을 수 있습니다.