i3 (Português)

Status de tradução:
Esse artigo é uma tradução de
i3
. Data da última tradução: 2023-01-03. Você pode ajudar a sincronizar a tradução, se houver
alterações
na versão em inglês.
Artigos relacionados
Comparação de gerenciadores de janela tiling
Gerenciador de janela
i3
é um
gerenciador de janela tiling
dinâmico inspirado no wmii que visa principalmente a desenvolvedores e usuários avançados.
Os objetivos estabelecidos para o
i3
incluem documentação clara, suporte adequado a vários monitores, uma estrutura em árvore para janelas e modos diferentes, como no
vim
.
Instalação
O
i3
pode ser instalado com o pacote
i3-wm
.
O
i3
é um grupo de pacotes e também está disponível. Inclui o gerenciador de janelas, um programa bloqueador de tela e dois programas que escrevem uma linha de status para o i3bar através da sua
saída (stdout)
.
Nota
i3-gaps
(um fork do
i3
com gaps e outros recursos) foi recentemente incorporado ao
i3-wm
e, como tal, não está mais disponível. Em vez disso, instale o pacote
i3-wm
.
Iniciando
Pelo tty
Execute
i3
com
xinit
.
Gerenciador de exibição
i3-wm
inclui um arquivo
i3.desktop
no
Xsession
que o inicia.
i3-with-shmlog.desktop
habilita logs (útil para depuração).
i3-gnome
AUR
[
link quebrado
: package not found]
integra o
i3
ao
GNOME
.
Uso
Veja a
documentação oficial
para mais informações, principalmente o
Guia do usuário i3
.
Atalhos
No
i3
, os comandos são chamados com uma chave modificadora, referida como
$mod
. Isto é
Alt
(Mod1) por padrão, com
Super
(Mod4) sendo uma alternativa popular. Super é a tecla geralmente representada em um teclado como um ícone do Windows ou em um teclado da Apple como uma tecla de comando.
Veja a
Carta de referência do i3
e
Usando o i3
para as configurações padrão. Veja
Keyboard bindings
para adição de novos atalhos.
Usuários de layouts de teclado que não sejam Qwerty podem querer contornar o "assistente de configuração" como
Descrito abaixo
.
Se alternar entre vários gerenciadores de janelas ou ambientes de desktop, considere usar
sxhkd
ou outro programa que não depende do ambiente para gerenciar atalhos. Mais informações podem ser encontradas em
Atalhos de teclado#Xorg
.
Contêineres e layouts
O
i3
gerencia janelas em uma estrutura de árvore, com contêineres como blocos de construção. Essa estrutura se ramifica com divisões horizontais ou verticais. Os contêineres são lado a lado por padrão, mas podem ser definidos como
tabbed or stacking
layouts, bem como flutuante (como para janelas de diálogo). Janelas flutuantes estão sempre no topo.
Veja
i3 Tree
e
Containers and the tree data structure
para detalhes.
Iniciador de aplicativos
O
i3
usa
dmenu
como iniciador de aplicativos, associado por padrão a
$mod+d
. Como é uma dependência opcional
dmenu
deve primeiro ser instalado antes que esta funcionalidade possa ser usada.
O pacote
i3-wm
contém
i3-dmenu-desktop
,
Perl
wrapper para
dmenu
que usa
entradas de desktop
para criar uma lista de todos os aplicativos instalados. Como alternativa, o pacote
j4-dmenu-desktop-git
AUR
pode ser usado.
rofi
é um popular substituto do
dmenu
, além de também listar entradas desktop.
KRunner como iniciador de aplicativos no KDE Plasma/i3
É possível ter executar o i3 junto com o KDE Plasma como visto aqui:
KDE#Usar um gerenciador de janela diferente
Ao executar o Plasma com
KDEWM=/usr/bin/i3
, pode-se definir o
KRunner
como lançador de aplicativos alternativo com
$mod+d
adicionando o seguinte na configuração do
i3
:
~/.config/i3/config
set $menu --no-startup-id qdbus org.kde.krunner /App display
bindsym $mod+d exec $menu
Configuração
Veja
Configurando o i3
para detalhes. O restante deste artigo pressupõe que o arquivo de configuração do
i3
está na pasta
~/.config/
.
Assistente de configuração e layouts de teclado alternativos
Quando o
i3
é iniciado pela primeira vez, ele oferece a execução do assistente de configuração
i3-config-wizard
. Essa ferramenta cria
~/.config/i3/config
reescrevendo um arquivo de configuração de modelo em
/etc/i3/config.keycodes
. Faz duas modificações no modelo padrão:
Ele solicita ao usuário que escolha uma chave modificadora padrão, que será adicionada ao modelo como uma única linha, como
set $mod Mod1
; e
ele substitui todas as linhas
bindcode
por linhas
bindsym
correspondentes ao layout de teclado atual do usuário.
Step 2 foi projetado para garantir que os quatro atalhos de navegação,
j
,
k
,
l
e
;
em um teclado Qwerty, serão mapeados para as keysyms de teclado com o mesmo local, por exemplo
h
,
t
,
n
,
s
em um teclado
Dvorak
. O efeito colateral dessa mágica é que até quinze outras keysyms de teclado podem ser remapeadas de maneira a interromper a mnemônica - de modo que, para um usuário do Dvorak, "reiniciar" esteja associado a
$mod1+p
ao invés de
$mod1+r
, "dividir horizontalmente" está associado a
$mod1+d
ao invés de
$mod1+h
, e assim por diante.
Portanto, os usuários de layouts de teclado alternativos que desejam atalhos de teclas que correspondam àqueles fornecidos nos tutoriais, podem preferir contornar o "assistente de configuração". Isso pode ser feito apenas copiando
/etc/i3/config
para dentro do
~/.config/i3/config
(ou
~/.i3/config
), e editando esse arquivo.
Observe que também é possível uma configuração baseada em código, por exemplo, para usuários que frequentemente alternam entre layouts de teclado, mas desejam que os atalhos do
i3
permaneçam os mesmos.
Inicialização automática
Adicione um comando
exec
no arquivo
~/.config/i3/config
para executar um comando na inicialização. Por exemplo:
exec terminator
Usando um comando
exec_always
garantirá que o comando também seja executado sempre que o i3 for reiniciado.
Alternativamente, você pode usar
XDG Autostart
.
i3bar
Além de mostrar informações do workspace, o i3bar pode atuar como uma entrada para o i3status ou uma alternativa, como as mencionadas na próxima seção. Por exemplo:
~/.config/i3/config
bar {
    output            LVDS1
    status_command    i3status
    position          top
    mode              hide
    workspace_buttons yes
    tray_output       none

    font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1

    colors {
        background #000000
        statusline #ffffff

        focused_workspace  #ffffff #285577
        active_workspace   #ffffff #333333
        inactive_workspace #888888 #222222
        urgent_workspace   #ffffff #900000
    }
}
Veja o
Configurando o i3bar
para detalhes.
Alternativas ao i3bar
Alguns usuários podem preferir painéis como os fornecidos pelas
Ambientes de desktop
. Isso pode ser realizado dentro do
i3
iniciando o aplicativo de painel escolhido durante a inicialização.
Por exemplo, para usar o painel do
Xfce
(
xfce4-panel
), adicione a seguinte linha em qualquer lugar
~/.config/i3/config
:
exec --no-startup-id xfce4-panel --disable-wm-check
O i3bar pode ser desativado comentando o
bar{ }
dentro da
~/.config/i3/config
, ou definindo um atalho de teclado para alternar a barra:
~/.config/i3/config
# alternador da barra, esconde e mostra
bindsym $mod+m bar mode toggle
Substituições independentes do ambiente de desktop estão listadas abaixo:
polybar
— Uma ferramenta rápida e fácil de usar para criar barras de status.
https://github.com/jaagr/polybar
||
polybar
excalibar
— Barra de status leve e personalizável, escrita em C.
https://github.com/cylgom/excalibar
||
excalibar-git
AUR
i3status
Copie os arquivos de configuração padrão para o diretório inicial:
$ cp /etc/i3status.conf ~/.config/i3status/config
Nem todos os plug-ins estão definidos na configuração padrão e alguns valores de configuração podem ser inválidos para o seu sistema, portanto, eles precisam ser atualizados de acordo. Veja
i3status(1)
para detalhes.
Alternativas ao i3status
conky
— Monitor de sistema altamente extensível. Para uso com o i3bar, veja
esse tutorial
https://github.com/brndnmtthws/conky
||
conky
i3blocks
— Extensível via scripts de shell. Ele pode manipular eventos de clique, interrupções e definição de intervalos de atualização por bloco.
https://github.com/vivien/i3blocks
||
i3blocks
i3pystatus
— Barra de status extensível do Python 3 com muitos plugins e opções de configuração por padrão.
https://github.com/enkore/i3pystatus
||
i3pystatus-git
AUR
j4status
— Fornece uma linha de status, configurável via plugins e escrita em C.
https://sardemff7.github.io/j4status/
||
j4status-git
AUR
goi3bar
— Substituição do i3status escrita em Go. Arquivo de configuração controlado por vários plugins, opções de simultaneidade e suporte avançado a plugins.
https://github.com/denbeigh2000/goi3bar/
||
goi3bar-git
AUR
goblocks
— Substituição rápida e leve do i3status, escrita em Go.
https://github.com/davidscholberg/goblocks
||
goblocks
AUR
bumblebee-status
— Gerador de barra de status Python com capacidade de tema.
https://github.com/tobi-wan-kenobi/bumblebee-status
||
bumblebee-status
AUR
ty3status
— Substituição do i3status escrita em TypeScript. Construído com suporte de primeira classe para blocos javascript.
https://github.com/mrkmg/ty3status
||
ty3status-git
AUR
i3status-rust
— Substituição altamente eficiente e rica em recursos, escrita em Rust. Pode lidar com atualizações push, intervalos de atualização individuais, eventos temáticos e de clique
https://github.com/greshake/i3status-rust
||
i3status-rust
Barista
— Barista é um substituto do i3status escrito em Go.
https://github.com/soumya92/barista
||
not packaged?
search in AUR
Wrappers do i3status
i3cat
— Baseado em
go
wrapper que pode concatenar entradas de várias fontes externas. Ele pode manipular eventos de clique e encaminhar sinais especificados pelo usuário para seus subprocessos.
https://vincent-petithory.github.io/i3cat/
||
i3cat-git
AUR
py3status
— Um wrapper extensível do i3status escrito em Python.
https://github.com/ultrabug/py3status
||
py3status
YaGoStatus
— Mais uma substituição do i3status escrita em Go.
https://github.com/burik666/yagostatus
||
yagostatus-git
AUR
Fontes icônicas na barra de status
O suporte para fontes icônicas é integrado desde
i3 versão 4.20
.
ttf-font-awesome
— Ícones vetoriais escaláveis que podem ser personalizados com CSS. Uma
folha de dicas
mostra o ponto Unicode para cada glifo.
https://fontawesome.com/
||
ttf-font-awesome
[
link quebrado
: replaced by
woff2-font-awesome
]
ttf-font-icons
— Mix sem sobreposição e de tamanho consistente de Awesome e Ionicons. Isso também evita pequenas sobreposições entre DejaVu Sans e Awesome.
https://kageurufu.net/icons.pdf
||
ttf-font-icons
AUR
.
ttf-ionicons
— A fonte de ícone premium para o Ionic Framework.
https://ionicframework.com/docs/ionicons/
||
ttf-ionicons
AUR
.
Para combinar fontes, defina uma sequência de fallback de fontes no seu arquivo de configuração, separando fontes com
,
igual a:
~/.config/i3/config
bar {
  ...
  font pango:DejaVu Sans Mono, Icons 8
  ...
}
Em concordância com
sintaxe do pango
, o tamanho da fonte é especificado apenas uma vez, no final da lista separada por vírgula de famílias de fontes. Definir um tamanho para cada fonte faria com que todos, exceto a última, fossem ignorados.
Adicione ícones às strings de formato em
~/.config/i3status/config
usando os números unicode fornecidos nas folhas de dicas acima. O método de entrada varia entre os editores de texto. Por exemplo, para inserir o ícone do "coração" (unicode número f004):
em vários editores de texto GUI (por exemplo.
gedit
, Leafpad) e terminais (por exemplo. GNOME Terminal, xfce4-terminal):
Ctrl+Shift+u
,
f004
,
Enter
no
Emacs
:
C-x
,
8
,
RET
,
f004
,
RET
no
Vim
(no modo de inserção):
Ctrl+v
,
uf004
no
urxvt
: enquanto aguarda
Ctrl+Shift
, digite
f004
Emulador de terminal
Por padrão, ao pressionar
$mod+Enter
lança o
i3-sensible-terminal
que é um script que chama um terminal. Veja
i3-sensible-terminal(1)
para os terminais do pedido são chamados.
Para iniciar um terminal da sua escolha, modifique esta linha em
~/.config/i3/config
:
bindsym $mod+Return exec i3-sensible-terminal
Como alternativa, defina a
variável de ambiente
$TERMINAL
.
Desativar clique no título
Adicione
bindsym button1 nop
para não selecionar uma janela quando você clica em seu quadro de título. Útil se o seu layout padrão estiver com guias e você frequentemente perder as guias do i3 em vez de algo em um aplicativo.
Dicas e truques
Ir para a janela aberta
quickswitch-i3
— Utilitário Python para alterar rapidamente e localizar janelas no
i3
https://github.com/OliverUv/quickswitch-for-i3/
||
quickswitch-i3
AUR
i3-wm-scripts
— Procure e pule para janelas com nomes específicos correspondentes a regexp
https://github.com/yiuin/i3-wm-scripts
||
not packaged?
search in AUR
rofi
— Pesquise e pule para abrir a janela do scratchpad
https://github.com/davatorium/rofi
||
rofi
i3-easyfocus
— Focar e selecionar janelas no
i3
https://github.com/cornerman/i3-easyfocus
||
i3-easyfocus-git
AUR
[
link quebrado
: package not found]
wmfocus
— Focar e selecionar janelas no
i3
e outros gerenciadores de janelas
https://github.com/svenstaro/wmfocus
||
wmfocus
i3-cycle-focus
— Fornece uma funcionalidade Alt+Tab para o
i3
https://github.com/acrisci/i3ipc-python/blob/master/examples/i3-cycle-focus.py
||
not packaged?
search in AUR
i3-winmotion
— Focar e selecionar janelas visíveis em
i3
https://github.com/iiKoe/i3-winmotion
||
not packaged?
search in AUR
Ir para a janela urgente
Adicione ao
~/.config/i3/config
:
[1]
bindsym $mod+x [urgent=latest] focus
Salvar e restaurar o layout da janela
A partir da versão 4.8, o
i3
pode salvar e restaurar layouts de workspace. Para fazer isso, são necessários os seguintes pacotes:
perl-anyevent-i3
e
perl-json-xs
.
Nota
Esta seção fornece apenas um tutorial rápido sobre como salvar o layout atual da janela de um único workspace e como restaurá-lo para uso posterior. Consulte a
documentação oficial
para mais detalhes.
Salvar o layout atual da janela de um único workspace
Para salvar o layout atual da janela, siga estas etapas:
Primeiro, execute vários comandos para abrir janelas em um workspace preferido e redimensione-as, se necessário. Certifique-se de anotar cada comando executado para cada janela.
Agora, em um novo workspace, abra um terminal e execute o seguinte:
$ i3-save-tree --workspace N > ~/.config/i3/workspace_N.json
onde N é o número do workspace preferido. Isso salvará o layout atual do workspace N no arquivo
~/.config/i3/workspace_N.json
.
O arquivo recém-criado precisa ser editado. Isso pode ser feito automaticamente com o seguinte comando:
$ sed -i 's|^\(\s*\)// "|\1"|g; /^\s*\/\//d' ~/.config/i3/workspace_N.json
Restaurar o layout da janela do workspace
Há duas maneiras de restaurar o layout de workspace: escrevendo um script ou editando
~/.config/i3/config
para carregar automaticamente o layout. Nesta seção, apenas o primeiro caso será considerado, consulte a
documentação oficial
para o segundo caso.
Para restaurar o layout salvo na seção anterior, escreva um arquivo chamado
load_layout.sh
com o seguinte conteúdo:
As linhas de partida:
~/load_layout.sh
#!/bin/sh
i3-msg "workspace M; append_layout ~/.config/i3/workspace_N.json"
onde M é o número do workspace na qual você deseja carregar o layout salvo anteriormente e N é o número do workspace salvo na seção anterior.
E os comandos usados na seção anterior para obter as janelas preferidas, mas entre parênteses e com um e comercial acrescentado antes dos últimos parênteses.
Por exemplo, se o layout salvo conter três janelas
uxterm
:
~/load_layout.sh
#!/bin/sh

# Primeiro adicionamos o layout salvo do workspace N para o workspace M
i3-msg "workspace M; append_layout ~/.config/i3/workspace_N.json"

# E finalmente preenchemos os containers com os programas que eles tinham
(uxterm &)
(uxterm &)
(uxterm &)
Em seguida, defina o arquivo como
executável
. Finalmente, o layout do workspace N pode ser carregado no workspace M executando:
$ ~/load_layout.sh
Dica
Adicionar
bindsym $mod+g exec ~/load_layout.sh
ao
~/.config/i3/config
e reiniciar o
i3
vai atribuir o Mod+g para executação do script acima.
Nota
Se o script acima não funcionar corretamente, consulte a
documentação oficial
. O
swallows
na seção
~/.config/i3/workspace_N.json
precisa ser editado manualmente.
Contêineres do scratchpad
Por padrão,
scratchpads
contêm apenas uma única janela. No entanto, contêineres também podem ser transformados em um scratchpad.
Crie um novo contêiner (por exemplo,
Mod+Enter
), divida-o (
Mod+v
) e crie outro contêiner. Selecione o contêiner pai (
Mod+a
), divida na direção oposta (
Mod+h
) e crie um container novamente.
Foque no primeiro contêiner (selecionando o contêiner pai caso necessário), faça a janela flutuar (
Mod+Shift+Space
) e mova para o scratchpad (
Mod+Shift+-
). Agora você pode dividir contêineres conforme preferência.
Nota
Os contêineres não podem ser redimensionados individualmente em janelas flutuantes. Redimensione os contêineres antes de tornar as janelas flutuantes.
Dica
Ao usar apenas aplicativos de terminal, considere um multiplexador como
tmux
.
Veja também
[2]
para vários scratchpads.
Proteção de tela e gerenciamento de energia
Com o
Gestão de energia#xss-lock
você pode registrar um bloqueador de tela para o sua sessão do
i3
. A opção
-time
com
xautolock
bloqueia a tela após um determinado período de tempo:
xautolock -time 10 -locker "i3lock -i 'background_image.png'" &
Um arquivo de serviço do
systemd
pode ser usado para bloquear a tela antes que o sistema seja enviado para o estado de suspensão ou hibernação. Veja
Suspender e hibernar#Units do systemd customizáveis
. Observe que o i3lock exige que o tipo de serviço seja
forking
.
Veja também
DPMS
.
Outra opção é usar
xidlehook
AUR
com
betterlockscreen
AUR
ou outro protetor de tela.
xidlehook
é um substituto do
xautolock
escrito em
Rust
, mas com algumas funcionalidades adicionais. Incluindo a opção para desabilitar o travamento da tela quando o som está tocando ou quando a tela está no modo tela cheia. A opção
--timer
é dada em segundos:
xidlehook --not-when-audio --not-when-fullscreen --timer 360 "betterlockscreen -l dim" "" &
Desligar, reiniciar e bloquear a tela
Combinações de teclas para desligar, reiniciar e bloquear a tela podem ser adicionadas ao
~/.config/i3/config
. O exemplo abaixo supõe que você tenha
polkit
instalado para permitir que usuários sem privilégios executem comandos de
gerenciamento de energia
.
set $Locker i3lock && sleep 1

set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown
mode "$mode_system" {
    bindsym l exec --no-startup-id $Locker, mode "default"
    bindsym e exec --no-startup-id i3-msg exit, mode "default"
    bindsym s exec --no-startup-id $Locker && systemctl suspend, mode "default"
    bindsym h exec --no-startup-id $Locker && systemctl hibernate, mode "default"
    bindsym r exec --no-startup-id systemctl reboot, mode "default"
    bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default"

    # de volta ao normal: Enter ou Escape
    bindsym Return mode "default"
    bindsym Escape mode "default"
}

bindsym $mod+Pause mode "$mode_system"
Depois de concluído, você receberá um aviso sempre que pressionar
$mod+pause
. Para um comportamento mais complexo, use um script separado e consulte-o no modo
[3]
Nota
sleep 1
adiciona um pequeno atraso para evitar possíveis condições de corrida com suspensão
[4]
O argumento
-i
do
systemctl poweroff
desliga a máquina mesmo que outros usuários estejam logados (isso requer
polkit
), ou quando
logind
presume (erroneamente).
[5]
Para uma lista de bloqueadores de tela alternativos, veja
List of applications/Security#Screen lockers
.
Engolir a janela do terminal
Parecido com o
dwm
, i3 pode "engolir" (swallow) a janela atual do terminal com a nova janela GUI lançada a partir dele. Isto pode ser feito com o uso do pacote
i3-swallow-git
AUR
.
Por exemplo, para deixar o
mpv
engolir o terminal que o abriu:
$ swallow mpv
video.mp4
Alternativamente, a ação de enngolir do terminal pode ser simulada usando um
container em tabbed ou stacked
para ocultar a janela do terminal quando você não estiver usando. No entanto, isso vem com a desvantagem de sempre ter uma lista de janelas na parte superior do contêiner.
Gerenciamento manual de monitores externos
Graças ao
xrandr
existem várias maneiras de gerenciar facilmente os monitores dos sistemas. O exemplo abaixo o integra no arquivo de configuração do
i3
, e se comporta como na seção Gerenciamento de energia acima.
Aqui, um laptop com saídas VGA e HDMI usará uma seleção de menu para ativar/desativar:
## Gerenciamento manual de monitores externos
# Defina os atalhos e o que eles fazem
set $mode_display Ext Screen (v) VGA ON, (h) HDMI ON, (x) VGA OFF, (y) HDMI OFF
mode "$mode_display" {
    bindsym v exec --no-startup-id xrandr --output VGA1 --auto --right-of LVDS1, mode "default"
    bindsym h exec --no-startup-id xrandr --output HDMI1 --auto --right-of LVDS1, mode "default"
    bindsym x exec --no-startup-id xrandr --output VGA1 --auto --off, mode "default"
    bindsym y exec --no-startup-id xrandr --output HDMI1 --auto --off, mode "default"

    # de volta ao normal: Enter ou Escape
    bindsym Return mode "default"
    bindsym Escape mode "default"
}
# Declare aqui o atalho para exibir o menu de seleção de exibição
bindsym $mod+x mode "$mode_display"
Qualquer janela que ainda esteja aberta em uma tela desligada retornará automaticamente à tela ativa restante.
A maneira mais simples de determinar os nomes dos seus dispositivos é conectar o dispositivo que você deseja usar e executar:
$ xrandr --query
que produzirá os dispositivos reconhecidos disponíveis e seus nomes no sistema para definir seu arquivo de configuração adequadamente.
Consulte a página página de manual do
xrandr
para obter a lista completa de opções disponíveis, o
userguide do i3
e/ou o
FAQ do i3 no reddit
para mais informações.
Navegação na web com guias ou empilhadas
Alguns navegadores da Web intencionalmente não implementam guias, pois o gerenciamento de guias é considerado uma tarefa do gerenciador de janelas, não uma tarefa do navegador.
Para deixar o
i3
gerenciar seu navegador da web sem guias, neste exemplo para o
uzbl
, adicione a seguinte linha ao seu
~/.config/i3/config
for_window [class="Uzbl-core"] focus child, layout stacking, focus
Isso é para navegação na Web empilhada, o que significa que as janelas serão mostradas verticalmente. A vantagem sobre a navegação com guias é que os títulos das janelas são totalmente visíveis, mesmo que muitas janelas do navegador estejam abertas.
Se preferir a navegação com guias, com as janelas na direção horizontal ('tabs'), use
for_window [class="Uzbl-core"] focus child, layout tabbed, focus
Variáveis de workspaces
Como os workspaces são definidos várias vezes no
i3
, atribuir variáveis de workspaces pode ser útil. Por exemplo:
set $WS1 term
set $WS2 web
set $WS3 misc
set $WS4 media
set $WS5 code
Em seguida, substitua os nomes do workspace por suas variáveis correspondentes:
bindsym $mod+1          workspace $WS1
...
bindsym $mod+Shift+1    move container to workspace $WS1
Veja
Changing named workspaces
para mais informações.
Manuseio correto de diálogos flutuantes
Enquanto o diálogo deve abrir no modo flutuante por padrão
[6]
, muitos ainda abrem no modo lado a lado. Para alterar esse comportamento, verifique a caixa de diálogo
WM_WINDOW_ROLE
com
xorg-xprop
e adicione as regras corretas para
~/.i3/config
(usando
pcre
syntax):
for_window [window_role="pop-up"] floating enable
for_window [window_role="task_dialog"] floating enable
Você também pode usar regras de título e expressões regulares:
for_window [title="Preferences$"] floating enable
ou
WM_CLASS
:
for_window [class="(?i)mplayer"] floating enable
Velocidade de download/upload da rede na barra de status
Você pode adaptar esse
script
da upstream. Para isso,
renomeie as duas placas de rede de acordo com o seu sistema (use
ip addr
)
encontre-os em
/sys/devices
substitua-os adequadamente:
$ find /sys/devices -name
network_interface
Dica
Use
/sys/class/net/
interface
/statistics/
não depender da localização do PCI.
Agora, basta salvar o script em um local adequado (por exemplo,
~/.config/i3
) e aponte seu programa de status para ele.
Alternar automaticamente a orientação de divisão horizontal/vertical da janela
O pacote
autotiling
pode ser usado para alternar automaticamente a orientação de janela horizontal/vertical, resultando em um comportamento semelhante ao lado a lado em espiral do bspwm. Após a instalação, adicione o seguinte ao seu
~/.config/i3/config
e recarregue o i3.
exec_always --no-startup-id
autotiling
Solução de problemas
Geral
Em muitos casos, os bugs são corrigidos nas versões de desenvolvimento
i3-git
AUR
e
i3status-git
AUR
, e o upstream solicitará a reprodução de erros nesta versão.
[7]
Veja também
Debugging/Getting traces#Compilation options
.
Nova instalação exibe apenas texto ilegível
Certifique-se de que você
instalou um conjunto de fontes TrueType
após a instalação.
Os botões na barra de mensagens do i3 não funcionam
Botões como "Edit config" no
i3-nagbar
chamam o
i3-sensible-terminal
, então verifique se o seu
emulador de terminal
é reconhecido pelo
i3
.
Linha defeituosa envolve no terminal lado a lado
O
i3
v4.3 e versões posteriores ignoram sugestões de incremento de tamanho para janelas lado a lado
[8]
. Isso pode fazer com que terminais enrolem as linhas prematuramente, entre outros problemas. Como uma solução alternativa, deixe a janela incorreta flutuando antes de colocá-la novamente em mosaico.
O cursor do mouse permanece no modo de espera
Ao iniciar um script ou aplicativo que não suporta notificações de inicialização, o cursor do mouse permanece no modo ocupado/relógio/relógio por 60 segundos.
Para resolver isso para um aplicativo específico, use o parâmetro
--no-startup-id
, por exemplo:
exec --no-startup-id ~/script
bindsym $mod+d exec --no-startup-id dmenu_run
Para desativar esta animação globalmente, veja
Temas de cursor#Crie links para cursores faltando
.
Atalhos que não respondem
Algumas ferramentas como o
scrot
podem não funcionar quando usados com um atalho comum (executado após pressionar a tecla). Nesses casos, execute comandos após o soltar a tecla com o argumento
--release
[9]
:
bindsym --release Print exec --no-startup-id scrot
bindsym --release Shift+Print exec --no-startup-id scrot -s
Tearing
O
i3
não implementa adequadamente o buffer duplo
[10]
portanto,
tearing
ou tremulações podem ocorrer. Veja
picom
.
Ícones invisíveis na barra de status
A diretiva
tray_output primary
pode exigir a configuração de uma saída primária com o
xrandr
, especificando a saída explicitamente ou simplesmente removendo esta diretiva.
[11]
Veja
xrandr (Português)
para detalhes. A configuração padrão criada pelo i3-config-wizard não adiciona mais essa diretiva à configuração do
i3
4.12.
Workspace padrão para o Spotify
Para atribuir um workspace padrão para janelas do spotify você não pode usar o comando padrão
assign
, você deve usar um comando
for_window
, como
~/.config/i3/config
...
for_window [class="Spotify"] move container to workspace $ws10
Para garantir que
for_window
não mova a janela se já estiver em
$ws10
, pode-se usar
move --no-auto-back-and-forth
.
Veja também
Site oficial
Funtoo:I3 Tiling Window Manager
Código-fonte do i3
i3-extras
- Coleção de scripts e patches
i3ipc-glib
- Uma bibilioteca para extensões do
i3
i3ipc-ruby
- Uma biblioteca melhorada para extensões do
i3
em Ruby
j4tools
- Ferramentas não oficiais projetadas para funcionar com
i3
Fóruns do Arch Linux
The i3 thread
- Uma discussão geral sobre o
i3
i3 desktop screenshots and config sharing
Screencasts
i3 window manager v4.1 screencast
i3 window manager v4.1X screencasts