st (Čeština)
st je nenáročný terminál pro Xorg vytvořen suckless. Byl stvořený jako nenáročná náhrada pro xterm a urxvt. Podporuje 256 barev, "true colors", většinu VT10X escape znaků, UTF-8, X11 schránku, antialiasované fonty, fallback fonty, měnění velikosti, zkratky a vykreslování řádek.
Instalace
Nainstalujte balíček stAUR nebo vývojou verzi st-gitAUR.
- Na Waylandu st používá Xwayland; pokud chcete podobný terminál a vyvarovat se Xwaylandu (jelikož zabírá paměť), zvažte terminál wterm-gitAUR.
Nastavení
st se nastavuje přes svůj config.h
soubor, jenž se překopíruje při kompilování. Výchozí nastavení je uloženo v souboru config.def.h
, jenž se poskytuje se zdrojovým kódem. Zvažte údržbu vlastního config.h
a PKGBUILD.
Shell
Pokud chcete změnit výchozí shell pro st, upravte řádku:
static char *shell = "/bin/sh";
Nebo zapněte st s daným shellem jako poslední argument:
$ st options fish
Term
Ke změně terminálového druhu upravte tuto řádku:
static char *termname = "st-256color";
st nastaví TERM
proměnnou s hodnotou termname
.
Font
Upravte následující řádku podle potřeby:
static char *font = "Liberation Mono:pixelsize=12:antialias=false:autohint=false";
Můžete také dosadit proměnnou fontu přes příkazovou řádku:
$ st -f "Liberation Mono:size=12" $ st -f 'Liberation Mono-12'
Názvy fontů mohou být nalezeny pomocí fc-list
.
Kurzor
Ve výchozím stavu ukazatel myši je XC_xterm;
, jejž může být těžké vidět. Ke změně vzhledu kurzoru upravte následující:
static unsigned int mouseshape = XC_left_ptr;
Barvy
Upravte následující řádky k nastavení barev popředí, pozadí a kurzoru:
unsigned int defaultfg = 7; unsigned int defaultbg = 0; static unsigned int defaultcs = 256;
Hodnoty odkazují na *colorname[]
pole v konfiguračním souboru. Můžete použít výchozí barvy nebo si přidat vlastní v #rrggbb
:
static const char *colorname[] = { /* 8 normálních barev */ "black", "red3", "green3", "yellow3", "blue2", "magenta3", "cyan3", "gray90", /* 8 světlých barev */ "gray50", "red", "green", "yellow", "#5c5cff", "magenta", "cyan", "white", [255] = 0, /* více barev může být přidáno po 255 pro DefaultXX */ "#cccccc", "#eeeeee", "#111111", }; /* * Výchozí barvy (colorname index) * popředí, pozadí a kurzor */ unsigned int defaultfg = 257; unsigned int defaultbg = 258; static unsigned int defaultcs = 256;
Lze použít nástroje pro tvorbu barevných palet. Například terminal.sexy poskytuje sadu přednastavení a exportuje volby přímo do st formátu (vizte komentář ohledně potíži 22).
Je k mání dodatek pro Solarized paletu barev. Vizte https://st.suckless.org/patches/solarized/, chcete-li si jej nainstalovat.
Patche
Je dostupných mnoho patchů na stránkách suckless. Pokud chcete uplatnit patch, stáhněte diff a uplatněte jej pomocí patch -i patch.diff
. To upraví výchozí konfigurační soubor config.def.h
; pokud spravujete svůj vlastní config.h
, zkopírujte své konfigy z config.h
do kopie config.def.h
a pozměňte jeho název confi.h
, potom make clean install
.
Plochové záznamy
K zjednodušení spouštění st s vhodným fontem (e.g. adobe-source-code-pro-fonts) v plochovém prostředí můžete též vytvořit plochové záznamy:
~/.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;
Položka v menu se zobrazí jako Simple Terminal v System Tools aplikační liště.
Řešení potíží
Klávesnice
Doplňte následující text k ~/.inputrc
nebo /etc/inputrc
, pokud Delete
se chová podivně v některých aplikacích:
set enable-keypad on
Pokud to v některých aplikacích nepomohlo (jako IPython s bash), místo toho vypněte enable-keypad
a přidejte následující text do ~/.bashrc
, jak je zmíněno v st FAQ:
printf '\033[?1h\033=' >/dev/tty
Vim
Barva pozadí textu ve vimu nevyplní nic, co není znak
Zkuste nastavit hodnotu termname
ve Vašem config.h
na st-256color
a následně rekompilujte. Nenastavujte TERM
proměnnou ve Vašem shellu, alespoň ne na hodnotu st-256color
, neboť právě toto nejspíš způsobuje potíže.
Jiné řešení, možná lepší, je doplnit následující řádky do Vašeho .vimrc
souboru:
if &term =~ '256color' " vypni Background Color Erase (BCE) aby se palety barev " renderovaly správně v 256barevném tmuxu a GNU screenu. " Vizte také https://sunaku.github.io/vim-256color-bce.html set t_ut= endif
Chybějící podpora pro 256color a truecolor v tmuxu nebo jinde
Prvně se ujistěte, že jste si nenastavili a neoxportovali hodnotu TERM
ve Vašem ~/.bashrc
, jak je zmíněno v této diskuzi
TERM
. Místo toho nastavte default-terminal
ve svém tmux.conf
Dále se ujistěte, že verze vim
u je >7.4.1799
; verze, kdy byly přidány termguicolors
.
A pak přidejte následující řádky do ~/.vimrc
:
set t_8f=^[[38;2;%lu;%lu;%lum " nastaví barvu popředí set t_8b=^[[48;2;%lu;%lu;%lum " nastaví barvu pozadí colorscheme Tomorrow-Night-Eighties set t_Co=256 " Povol 256 barev set termguicolors " Povol GUI barvy
^[
je escape Esc
symbol který prefixuje každou hodnotu pro t_8f
a t_8b
. Je to jeden symbol, jejž můžete reprodukovat ve vimu
. V INSERT režimu, zmáčkněte Ctrl+v
a pak Esc
. Stále budete v INSERT režimu; zmáčkněte Esc
znovu k navrácení do NORMAL režimu.t_8f
a t_8b
ještě před nastavením colorscheme
, t_Co
a termguicolors
.Pro více podrobností vizte :help
ve vimu
pro: xterm-true-color
, t_8f
, t_8b