Alacritty
Alacritty is the fastest terminal emulator in existence. Using the GPU for rendering enables optimizations that simply aren't possible in other emulators. Alacritty currently supports macOS, Linux, and Windows.
Categories
Installation
cargo로 설치할 경우:
러스트 최신 버전 확인 및 업그레이드:
종속성 설치 (Ubuntu 의 경우):
sudo apt install cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev python3
(종속성은 설치 페이지를 참고하여 알아서 설치)
카고로 설치:
설치 이후 작업들
Alacritty를 설치한 후 설정해야 할 몇 가지 추가 사항이 있습니다. 모든 포스트 빌드 지침은 당신이 여전히 Alacritty 저장소 안에 있다고 가정합니다.
Terminfo
Alacritty가 제대로 작동하는지 확인하려면 alacritty
또는 alacritty-direct
terminfo를 사용해야 합니다. alacritty terminfo가 설치되어 있으면 자동으로 선택됩니다.
다음 명령이 오류 없이 반환되면 alacritty terminfo가 이미 설치된 것입니다.
아직 없는 경우 다음 명령을 사용하여 전역으로 설치할 수 있습니다.
해당 파일은 릴리즈 페이지 또는 github 저장소에서 받을 수 있다.
이 후, infocmp alacritty
를 치면 다음과 같은 결과를 확인할 수 있을 것이다.
$ infocmp alacritty
# Reconstructed via infocmp from file: /etc/terminfo/a/alacritty
alacritty|alacritty terminal emulator,
am, bce, ccc, hs, km, mc5i, mir, msgr, npc, xenl,
colors#0x100, cols#80, it#8, lines#24, pairs#0x7fff,
acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=\r,
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
dl=\E[%p1%dM, dl1=\E[M, dsl=\E]2;\007, ech=\E[%p1%dX,
ed=\E[J, el=\E[K, el1=\E[1K, flash=\E[?5h$<100/>\E[?5l,
fsl=^G, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\n,
indn=\E[%p1%dS,
initc=\E]4;%p1%d;rgb:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kDC=\E[3;2~,
kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~, kLFT=\E[1;2D,
kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C, kb2=\EOE, kbs=^?,
kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~,
kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P, kf14=\E[1;2Q,
kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~,
kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R, kf28=\E[1;5S,
kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~,
kf32=\E[19;5~, kf33=\E[20;5~, kf34=\E[21;5~,
kf35=\E[23;5~, kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q,
kf39=\E[1;6R, kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~,
kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
kf48=\E[24;6~, kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q,
kf51=\E[1;3R, kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, khome=\EOH, kich1=\E[2~,
kind=\E[1;2B, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
kri=\E[1;2A, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
memu=\Em, oc=\E]104\007, op=\E[39;49m, rc=\E8,
rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E(B, rmam=\E[?7l,
rmcup=\E[?1049l\E[23;0;0t, rmir=\E[4l, rmkx=\E[?1l\E>,
rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m,
rs1=\Ec\E]104\007, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
setb@, setf@,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
sgr0=\E(B\E[m, sitm=\E[3m, smacs=\E(0, smam=\E[?7h,
smcup=\E[?1049h\E[22;0;0t, smir=\E[4h, smkx=\E[?1h\E=,
smm=\E[?1034h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
tsl=\E]2;, u6=\E[%i%d;%dR, u7=\E[6n,
u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%i%p1%dd,
Desktop Entry
많은 Linux 및 BSD 배포판은 시스템 메뉴에 응용 프로그램을 추가하기 위한 데스크탑 항목을 지원합니다. 그러면 Alacritty용 데스크톱 항목이 설치됩니다.
sudo cp target/release/alacritty /usr/local/bin # or anywhere else in $PATH
sudo cp extra/logo/alacritty-term.svg /usr/share/pixmaps/Alacritty.svg
sudo desktop-file-install extra/linux/Alacritty.desktop
sudo update-desktop-database
Alacritty의 로고에 문제가 있는 경우 github 저장소의 extra/logo/compat
디렉토리에서 사용할 수 있는 미리 렌더링된 PNG 및 단순화된 SVG로 교체할 수 있습니다.
Manual Page
매뉴얼 페이지를 설치하려면 추가 종속성 gzip 및 scdoc가 필요합니다.
sudo mkdir -p /usr/local/share/man/man1
scdoc < extra/man/alacritty.1.scd | gzip -c | sudo tee /usr/local/share/man/man1/alacritty.1.gz > /dev/null
scdoc < extra/man/alacritty-msg.1.scd | gzip -c | sudo tee /usr/local/share/man/man1/alacritty-msg.1.gz > /dev/null
scdoc < extra/man/alacritty.5.scd | gzip -c | sudo tee /usr/local/share/man/man5/alacritty.5.gz > /dev/null
scdoc < extra/man/alacritty-bindings.5.scd | gzip -c | sudo tee /usr/local/share/man/man5/alacritty-bindings.5.gz > /dev/null
Shell completions
To get automatic completions for Alacritty's flags and arguments you can install the provided shell completions.
Zsh
zsh 완성을 설치하려면 $fpath
가 참조하는 디렉토리에 extra/completions/_alacritty
파일을 배치하면 됩니다.
~/.zshrc
를 통해 이러한 디렉토리를 아직 등록하지 않은 경우 다음과 같이 추가할 수 있습니다.
mkdir -p ${ZDOTDIR:-~}/.zsh_functions
echo 'fpath+=${ZDOTDIR:-~}/.zsh_functions' >> ${ZDOTDIR:-~}/.zshrc
Then copy the completion file to this directory:
Bash
To install the completions for bash, you can source the extra/completions/alacritty.bash
file in your ~/.bashrc
file.
If you do not plan to delete the source folder of alacritty, you can run
Otherwise you can copy it to the ~/.bash_completion
folder and source it from there:
mkdir -p ~/.bash_completion
cp extra/completions/alacritty.bash ~/.bash_completion/alacritty
echo "source ~/.bash_completion/alacritty" >> ~/.bashrc
Event Print
키보드/마우스 이벤트 같은거 출력하기 좋다.
Change font
# Font configuration
font:
normal:
# Font family
#
# Default:
# - (macOS) Menlo
# - (Linux/BSD) monospace
# - (Windows) Consolas
family: 'DroidSansMono Nerd Font'
# Point size
size: 10.0
Import another yaml
Jump word
Alt+Left
, Alt+Right
키 입력으로 커서를 워드단위 점프할 수 있게 한다.
key_bindings:
- { key: Left, mods: Alt, chars: "\x1bb" }
- { key: Right, mods: Alt, chars: "\x1bf" }
Vim 에서 Function Key Mapping
tmux에서 vim을 실행했을 때 Function Key를 Ctrl과 함께 사용하면 <C-F1>와 같이 키맵이 바인딩 된다.
하지만 tmux 없이 실행하면 해당 키가 정상적으로 맵핑되지 않는다.
이 현상을 확인하기 위해 vim의 Insert Mode 에서 <c-v> 입력후 다른 키를 누르면 해당 키가 온전히 출력된다.
이 점을 활용해 테스트한 결과는 다음과 같다:
Meta keys | mapping range |
- | <F1> ~ <F12> |
Shift | <F13> ~ <F24> |
Ctrl | <F25> ~ <F36> |
Shift+Ctrl | <F37> ~ <F48> |
위의 키맵을 활용하여 키맵을 적용하면 된다.
Troubleshooting
Font sizes differ on different screens
모니터 마다 폰트 크기가 다르게 출력되는 현상이 발생된다.
See also
- Terminal emulator
- kitty
- Warp
- Rio - GPU 하드웨어 가속되는 터미널 에뮬레이터 오픈소스