True Color (24-bit) and italics with alacritty + tmux + vim (neovim)
This should make True Color (24-bit) and italics work in your tmux session and vim/neovim when using Alacritty (and should be compatible with any other terminal emulator, including Kitty).
Testing colors
Running this script should look the same in tmux as without.
curl -s https://gist.githubusercontent.com/lifepillar/09a44b8cf0f9397465614e622979107f/raw/24-bit-color.sh >24-bit-color.sh
bash 24-bit-color.sh
Configuration files
$TERM
in your shell (zshrc, bashrc, etc.), but your terminal (alacritty).
Alacritty
In ~/.config/alacritty/alacritty.yml
:
env:
TERM: xterm-256color
tmux
In ~/.tmux.conf
(or ~/.config/tmux/tmux.conf
):
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
# Or use a wildcard instead of forcing a default mode.
# Some users in the comments of this gist have reported that this work better.
#set -sg terminal-overrides ",*:RGB"
# You can also use the env variable set from the terminal.
# Useful if you share your configuration betweeen systems with a varying value.
#set -ag terminal-overrides ",$TERM:RGB"
vim
In ~/.vimrc
:
" You might have to force true color when using regular vim inside tmux as the
" colorscheme can appear to be grayscale with "termguicolors" option enabled.
if !has('gui_running') && &term =~ '^\%(screen\|tmux\)'
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
endif
syntax on
set termguicolors
colorscheme yourfavcolorscheme
neovim
If you use
~/.vimrc
for your nvim configuration, use the above vim example because it's fully compatible.
In ~/.config/nvim/init.vim
set termguicolors
colorscheme yourfavcolorscheme
Or ~/.config/nvim/init.lua
:
vim.o.termguicolors = true
vim.cmd'colorscheme yourfavcolorscheme'
Not working correctly ?
Check out the comments below for possible solutions.
And if you found another solution I would really appreciate if you left a comment with instructions and the following information:
- OS/Distro + version
- Vim or Neovim + version
- Terminal name + version
Mentions
Shout-out to the nice folks that provided insightful feedback:
- @mikeslattery black and white vim colorscheme
- @sahibalejandro env variable inside tmux configuration
- @wonbinbk wildcard in tmux terminal configuration
@wonbinbk I've added your solution to this document as it seems other users have success in using this as well.
Haven't been able to reproduce the issues with original instructions even on the same systems as reported, but it seems like this area is filled with dragons 😅
Thanks!