st (Português) - ArchWiki

# st (Português)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Status de tradução: Esse artigo é uma tradução de st. Data da última tradução: 2020-06-17. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

O st é uma implementação simples de terminal para Xorg do suckless. Destina-se a servir como um substituto leve para O xterm ou urxvt. Atualmente, ele suporta 256 cores, cores verdadeiras, a maioria das seqüências de escape do VT10X, copiar/colar UTF-8, X11, fontes sem serrilhado (usando fontconfig), fontes de fallback, redimensionamento, atalhos via config.h e desenho de linha.

## Instalação

Instale o pacote stAUR ou st-gitAUR para a versão de desenvolvimento.

- No Wayland o st usa Xwayland, se você quiser um terminal semelhante, evitando a verificação da pegada de memória Xwayland wterm-gitAUR

## Configuração

O st é configurado através do arquivo `config.h` que é copiado no momento da compilação. Os padrões são armazenados em `config.def.h` que está incluído na fonte. Considere manter seu próprio `config.h` e PKGBUILD.

### Shell

Para alterar o shell padrão para o st, edite esta linha:

    static char *shell = "/bin/sh";

Ou iniciar o st com o shell desejado como último argumento:

    $ st options fish

### Terminal

Para alterar o tipo de terminal, edite esta linha:

    static char *termname = "st-256color";

O st irá definir a variável `TERM` com o valor de `termname`.

### Fonte

Edite a seguinte linha como preferir:

    static char *font = "Liberation Mono:pixelsize=12:antialias=false:autohint=false";

Você também pode passar o valor da fonte na linha de comando:

    $ st -f "Liberation Mono:size=12"
    $ st -f 'Liberation Mono-12'

Os nomes das fontes podem ser encontrados com `fc-list`.

### Cursor

Por padrão, o ponteiro do mouse é `XC_xterm;` o que geralmente pode ser difícil de encontrar. Para alterá-lo para o tema normal do seu cursor, edite o seguinte:

    static unsigned int mouseshape = XC_left_ptr;

### Cores

Edite as seguintes linhas para definir as cores de primeiro plano, plano de fundo e cursor:

    unsigned int defaultfg = 7;
    unsigned int defaultbg = 0;
    static unsigned int defaultcs = 256;

Os valores referem-se ao `*colorname[]` no arquivo de configuração. Você pode usar as cores padrão ou adicionar as suas `#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;

Existem ferramentas para facilitar a criação de paletas de cores. Por exemplo terminal sexy possui um conjunto de cores pré-fabricadas e exporta diretamente para o formato do st (veja [1]).

Existe um patch para o esquema de cores Solarized. Veja [2] ou st-solarizedAUR[link quebrado: package not found] para instalá-lo.

### Modificações

Existem muitos patches disponíveis no site da suckless (EN). Para aplicar um patch, faça o download do diff e aplique-o com `patch -i patch.diff`. Isso altera o arquivo de configuração padrão `config.def.h`; se você estiver mantendo seu próprio `config.h`, copie suas configurações da `config.h` em uma cópia da `config.def.h` e renomeie `config.h`, e então `make clean install`.

### Entrada na área de trabalho

Para simplificar o lançamento st with a decent font (por exemplo o pacote adobe-source-code-pro-fonts) em um desktop environment, você também pode criar um desktop entries:

    ~/.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;

A entrada do menu aparecerá como um Terminal Simples na lista de aplicativos e na Ferramentas do sistema.

## Solução de problemas

### Teclado

Adicione o seguinte ao `~/.inputrc` ou `/etc/inputrc` e se o `Delete` não estiver funcionando corretamente em alguns aplicativos:

    set enable-keypad on

Se o acima não funcionar com algumas aplicações, como IPython usando bash, em vez disso, desligue `enable-keypad` e adicione o seguinte ao seu `~/.bashrc`, como mencionado no st FAQ:

printf '\033[?1h\033=' >/dev/tty

### Vim

#### A cor de fundo do texto em vim não preencherá nada que não seja um caracter

Tente definir o valor de `termname` no seu `config.h` para `st-256color` e recompile. E não defina a variável `TERM` no seu shell, pelo menos para não `st-256color` pois isso parece causar um problema.

Outra solução, talvez a melhor, é ter as seguintes linhas no seu arquivo `.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

#### O suporte 256color e truecolor não funciona no tmux

Primeiro, verifique se você não está definindo e exportando o valor da variável `TERM` no seu `~/.bashrc` como mencionado neste tópico (EN)

Nota: Por favor, não defina explicitamente a variável `TERM`. Faça o certo, definindo a configurado `default-terminal` no seu `tmux.conf`

Segundo, verifique se a versão do `vim` você tem que está usando a versão `>=7.4.1799`, que é quando o `termguicolors` foi adicionado.

Por fim, adicione o seguinte ao `~/.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

Nota: `^[` é um escape literale (<Esc>) caractere que prefixa cada um dos valores para `t_8f` e `t_8b`. É um caractere único, que pode ser reproduzido em `vim`. O modo INSERT, pressiona `<C-v>-<Esc>` (Control+v e então aperte Esc). Você ainda estará no modo INSERT; pressione <Esc> novamente para retornar ao modo NORMAL.
Dica: Recomenda-se definir os valores para `t_8f` e `t_8b` antes da configuração `colorscheme`, `t_Co` e `termguicolors`.

Para mais informações, consulte o `:help` no `vim` para: `xterm-true-color`, `t_8f`, `t_8b`

### Falha se a página contiver caracteres emoji

O st pode travar se você tentar carregar uma página com emojis coloridos sem glifo associado (EN), visto especificamente com fontes como ttf-joypixels, retornando algo semelhante a este se executado a partir de outro terminal:

    X Error of failed request:  BadLength (poly request too large or internal Xlib length error)
     Major opcode of failed request:  139 (RENDER)
     Minor opcode of failed request:  20 (RenderAddGlyphs)
     Serial number of failed request:  5118
     Current serial number in output stream:  5209

Para corrigi-lo, basta instalar ttf-symbolaAUR para unicode.

Outra solução é instalar o pacote libxft-bgraAUR. Isso fornece uma versão corrigida do libXft que suporta emoji colorido.

## Veja também

- Página inicial (EN)
- Perguntas frequentes (EN)
- Repositório oficial do GitHub

Categories:

- Terminal emulators (Português)
- Suckless (Português)

Hidden category:

- Pages with broken package links