st (Portuguê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)
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
^[
é 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.
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.