Я тут подумал: а чей-то я использую в качестве шелла zsh, когда можно юзать емаксовый eshell?
Быстренький гайд.
Для начала, чтобы темы отображались правильно нужно сгенерировать terminfo. В 26.1 емаксе можно работать с 24-битным терминалом. Напишем файл terminfo-24.src:
# Use colon separators.
xterm-24bit|xterm with 24-bit direct color mode,
use=xterm-256color,
setb24=\E[48:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%dm,
setf24=\E[38:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%dm,
# Use semicolon separators.
xterm-24bits|xterm with 24-bit direct color mode,
use=xterm-256color,
setb24=\E[48;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
setf24=\E[38;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
Генерируем:
tic -x -o ~/.terminfo terminfo-24bit.src
Экспортируем переменную окружения:
export TERM=xterm-24bit
Теперь при запуске GNU Emacs в терминале(`emacs[client] -nw`) вместо покореженных цветов при `TERM=xterm-256color`
будет красиво
Это тема solarized-dark, кстати.
Но запускать Емакс в терминале при наличии иксов несколько странно. По-этому нужно пускать сразу `(eshell)`. В параметрах терминала в качесте комманды прописываем `/bin/sh -c "export TERM=xterm-24bit; emacsclient -nw -c -e \"(eshell 'N)\""` и у нас будет сразу пускаться eshell. Неплохо, не правда ли? :)
Либо можно пойти еще дальше и перебиндить стандартнуй комбинацию клавишь на запуск сразу eshell в графическом Emacs. Так, например, для i3wm: `bindsym $mod+Return exec emacsclient -c -e "(eshell 'N)"`.
Ура!
Ссылка:
https://difrex.lessmore.pw/post/eshell/