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 vimu 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