st (Русский)

st
— это простая реализация терминала для
Xorg
от
suckless
. Изначально он задумывался как лёгковесная замена для
xterm
или
urxvt
. На данный момент поддерживаются 256 цветов, true color, многие VT10X escape-последовательности, UTF-8, копирование/вставка в X11, сглаженные (anti-aliased) шрифты, fallback-шрифты, изменение размера, комбинации клавиш и линейная графика.
Установка
Установите
пакет
st
AUR
. В
Wayland
st использует Xwayland; на текущий момент активной портировки под Wayland нет, поэтому занимаемый объём памяти Xwayland неизбежен.
Конфигурация
st
настраивается через файл
config.h
, который считывается во время компиляции. Стандартные настройки хранятся в
config.def.h
— этот файл входит в исходный код. Рассмотрите возможность внесения собственных настроек в
config.h
и
PKGBUILD
.
Shell
Чтобы сменить стандартную оболочку (shell) для
st
, внесите правки в следующую строку:
static char *shell = "/bin/sh";
Или запустите
st
с нужной оболочкой, указав её последним аргументом:
$ st
options
fish
Term
Чтобы изменить тип терминала, внесите правки в следующую строку:
static char *termname = "st-256color";
st
будет использовать значение переменной
TERM
в качестве
termname
.
Шрифт
Чтобы сменить шрифт, внесите необходимые правки в эту строку:
static char *font = "Liberation Mono:pixelsize=12:antialias=false:autohint=false";
Вы также можете передать значение шрифта при запуске терминала:
$ st -f "Liberation Mono:size=12"
$ st -f 'Liberation Mono-12'
Имена шрифтов можно узнать с помощью
fc-list
.
Курсор
По умолчанию курсор мыши —
XC_xterm;
, который зачастую трудно заметить. Чтобы изменить курсор на более привычный, внесите правки в следующую строку:
static unsigned int mouseshape = XC_left_ptr;
Цвета
Внесите правки в следующие строки, чтобы изменить фон, передний план и цвета курсора:
unsigned int defaultfg = 7;
unsigned int defaultbg = 0;
static unsigned int defaultcs = 256;
Эти значения находятся в массиве
*colorname[]
в вашем конфигурационном файле. Вы можете использовать стандартные цвета или добавить свои в формате
#rrggbb
:
static const char *colorname[] = {
   	/* 8 normal colors */
       "black",
       "red3",
       "green3",
       "yellow3",
       "blue2",
       "magenta3",
       "cyan3",
       "gray90",

       /* 8 bright colors */
       "gray50",
       "red",
       "green",
       "yellow",
       "#5c5cff",
       "magenta",
       "cyan",
       "white",

       [255] = 0,

       /* more colors can be added after 255 to use with DefaultXX */
       "#cccccc",
       "#eeeeee",
       "#111111",
 };

/*
 * Default colors (colorname index)
 * foreground, background, cursor
 */
unsigned int defaultfg = 257;
unsigned int defaultbg = 258;
static unsigned int defaultcs = 256;
Существуют различные утилиты, упрощающие создание цветовых сочетаний. Например,
terminal.sexy
содержит наборы уже готовых схем и может отображать их в формате
st
(см.
комментарий в проблеме 22
).
Существует патч для соляризованных цветовых схем. См.
https://st.suckless.org/patches/solarized/
, чтобы установить его.
Патчи
Доступно множество патчей с
веб-сайта suckless
. Чтобы применить патч, скачайте нужный вам
diff
и примените его с помощью
patch -i patch.diff
. Это внесёт правки в файл конфигурации по умолчанию
config.def.h
; если вы используете собственный
config.h
, скопируйте свои настройки из
config.def.h
в
config.h
и затем выполните
make clean install
.
Запись рабочего стола
Чтобы упростить запуск
st
с вашим шрифтом (например,
adobe-source-code-pro-fonts
) в
среде рабочего стола
, вы также можете создать
запись рабочего стола
:
~/.local/share/applications/st.desktop
[Desktop Entry]
Name=Simple Terminal
GenericName=Terminal
Comment=Suckless terminal emulator for X
Exec=st -t "Simple Terminal" -f "Source Code Pro:style=Semibold:size=12"
Terminal=false
Type=Application
Encoding=UTF-8
Icon=utilities-terminal
Categories=System;TerminalEmulator;
Keywords=shell;prompt;command;commandline;cmd;
Эта запись меню будет отображаться как
Simple Terminal
в списке программ
System Tools
.
Устранение неполадок
Клавиатура
Добавьте следующее в
~/.inputrc
или
/etc/inputrc
, если
Delete
не работает корректно в некоторых программах:
set enable-keypad on
Если всё вышеперечисленное не работает с такими приложениями, как IPython, при использовании bash, вместо этого выключите
enable-keypad
и добавьте следующее в ваш
~/.bashrc
, как указано в
st FAQ
:
printf '\033[?1h\033=' >/dev/tty
Vim
Фоновый цвет текста в «vim» не заполняет ничего, кроме символов
Попробуйте установить значение
termname
в файле
config.h
на
st-256color
и перекомпилировать. Также не устанавливайте переменную
TERM
в shell, по крайней мере не в
st-256color
, так как это, по-видимому, вызывает проблему.
Другое, возможно более удачное решение — добавить следующие строки в файл
.vimrc
:
if &term =~ '256color'
    " disable Background Color Erase (BCE) so that color schemes
    " render properly when inside 256-color tmux and GNU screen.
    " see also
https://sunaku.github.io/vim-256color-bce.html
set t_ut=
endif
Поддержка 256color и truecolor не работает в tmux или других
Сначала убедитесь, что вы не устанавливаете и не экспортируете значение
TERM
в вашем
~/.bashrc
, как упомянуто в этом
треде
.
Note
Не устанавливайте
TERM
явно. Сделайте это правильно, установив параметр
default-terminal
в вашем
tmux.conf
.
Во-вторых, убедитесь, что версия
vim
, которую вы используете, — "
>=7.4.1799
", так как именно в ней была добавлена поддержка
termguicolors
.
Наконец, добавьте следующее в
~/.vimrc
:
set t_8f=^[[38;2;%lu;%lu;%lum        " set foreground color
set t_8b=^[[48;2;%lu;%lu;%lum        " set background color
colorscheme Tomorrow-Night-Eighties
set t_Co=256                         " Enable 256 colors
set termguicolors                    " Enable GUI colors for the terminal to get truecolor
Note
^[
— это буквальная escape-последовательность символа (
Esc
), который является префиксом для каждого из значений
t_8f
и
t_8b
. Это отдельный символ, который можно ввести в
vim
. В режиме «INSERT» нажмите
Ctrl+v
, а затем
Esc
. Вы по-прежнему будете находиться в режиме «INSERT»; нажмите
Esc
ещё раз, чтобы вернуться в режим «NORMAL».
Tip
Рекомендуется установить значения для
t_8f
и
t_8b
перед установкой
colorscheme
,
t_Co
и
termguicolors
.
Для получения дополнительной информации см.
:help
в
vim
для:
xterm-true-color
,
t_8f
,
t_8b
Поддержка арабских символов
Как объясняется в
Vim#Bidirectional support
, для полной поддержки арабских символов вам понадобится fallback-шрифт, охватывающий записи Unicode для арабских форм B. Для этого добавьте патч font2 и отредактируйте свою конфигурацию следующим образом:
static char *font = "Cascadia Code:size=12:pixelsize=13:antialias=true:autohint=true";
static char *font2[] = { "DejaVu Sans Mono:size=12:pixelsize=13:antialias=true:autohint=true" };
Затем запустите
st
с помощью
st -f 'Vazir Code:pixelsize=15'
. Эта настройка охватывает большинство случаев формирования арабских символов: без формирования, курсив без формирования, Forms-B и курсив Forms-B.
Cм. также
Домашняя страница
Часто задаваемые вопросы
Офицальная репозитория git