st (Čeština) - ArchWiki

Jump to content
From ArchWiki

Stav překladu: Tento článek je přeložená obdoba "St". Naposledy přeloženo: 2022-10-13. Můžete pomoci sladit překlad, byl-li původní článek upraven.

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

Poznámka: Nenastavujte explicitně `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

Poznámka: `^[` 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.
Tip: Je doporučeno si nastavit hodnoty `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`

## Vizte též

- Domovskou stránku
- Často kladené otázky
- Oficiální git repozitář

Categories:

- Terminal emulators (Čeština)
- Suckless (Čeština)