i3 (Português)

i3 é um gerenciador de janela tiling dinâmico inspirado no wmii que visa principalmente a desenvolvedores e usuários avançados.

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

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: O pacote i3-wm entra em conflito com o pacote i3-gaps (um fork do i3 com gaps e outros recursos) e por padrão i3-gaps será instalado.

Iniciando

Pelo tty

Execute i3 com xinit.

Gerenciador de exibição

i3-wm inclui um arquivo i3.desktop no Xsession que o inicia. habilita logs (útil para depuração). 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 . Isto é (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 i3 reference card e Using 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 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 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 , pode-se definir o KRunner como lançador de aplicativos alternativo com $mod+d adicionando o seguinte na configuração do i3 :

Configuração

Veja Configuring i3 para detalhes. O restante deste artigo pressupõe que o arquivo de configuração do i3 está na pasta .

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 reescrevendo um arquivo de configuração de modelo em . Faz duas modificações no modelo padrão:

  1. Ele solicita ao usuário que escolha uma chave modificadora padrão, que será adicionada ao modelo como uma única linha, como ; e
  2. 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, , e em um teclado Qwerty, serão mapeados para as keysyms de teclado com o mesmo local, por exemplo , t, , 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 ao invés de , "dividir horizontalmente" está associado a $mod1+d ao invés de , 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 para dentro do (ou ), 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 em arquivo. Por exemplo:

exec terminator

Como alternativa, 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 Configuring 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 (), adicione a seguinte linha em qualquer lugar :

exec --no-startup-id xfce4-panel --disable-wm-check

O i3bar pode ser desativado comentando o dentro da , ou definindo um atalho de teclado para alternar a barra:

Substituições independentes do ambiente de desktop estão listadas abaixo:

  • excalibar Barra de status leve e personalizável, escrita em C.
https://github.com/cylgom/excalibar || excalibar-gitAUR

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 para detalhes.

Alternativas ao i3status

  • 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-gitAUR
  • 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

Wrappers do i3status

Fontes icônicas na barra de status

Para suporte a ícones na barra de título instale . Você também pode usar um conjunto de fontes que suporta ícones.

  • .
  • .

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 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): , f004,
  • no Emacs: C-x, , , f004,
  • no Vim (no modo de inserção): ,
  • no urxvt: enquanto aguarda Ctrl+Shift, digite f004

Emulador de terminal

Por padrão, ao pressionar lança o que é um script que chama um terminal. Veja para os terminais do pedido são chamados.

Para iniciar um terminal da sua escolha, modifique esta linha em :

bindsym $mod+Return exec i3-sensible-terminal

Como alternativa, defina a variável de ambiente .

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

  • i3-easyfocus Focar e selecionar janelas no i3
https://github.com/cornerman/i3-easyfocus || i3-easyfocus-gitAUR

Ir para a janela urgente

Adicione ao :

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: e dos repositórios oficiais.

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:

  1. 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.
  2. Agora, em um novo workspace, abra um terminal e execute o seguinte: onde N é o número do workspace preferido. Isso salvará o layout atual do workspace N no arquivo .
  3. O arquivo recém-criado precisa ser editado, no entanto, isso pode ser feito com os seguintes comandos:

Restaurar o layout da janela do workspace

Há duas maneiras de restaurar o layout de workspace: escrevendo um script ou editando 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:

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 :

Em seguida, defina o arquivo como executável.

E, finalmente, o layout do workspace N pode ser carregado no workspace M executando:

$ ~/load_layout.sh

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, ), divida-o (Mod+v) e crie outro contêiner. Selecione o contêiner pai (), divida na direção oposta () e crie 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 (). Agora você pode dividir contêineres conforme preferência.

Veja também para vários scratchpads.

Proteção de tela e gerenciamento de energia

Com o Power management#xss-lock você pode registrar um bloqueador de tela para o sua sessão do i3. A opção 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 Power management#Suspend/resume service files. Observe que o i3lock exige que o tipo de serviço seja .

Veja também DPMS.

Outra opção é usar com 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 . O exemplo abaixo supõe que você tenha instalado para permitir que usuários sem privilégios executem comandos de gerenciamento de energia.

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

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 .

Por exemplo, para deixar o mpv engolir o terminal que o abriu:

$ i3-swallow mpv video.mp4

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 comporte como a 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.

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

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 , muitos ainda abrem no modo lado a lado. Para alterar esse comportamento, verifique a caixa de diálogo com e adicione as regras corretas para (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 :

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 substitua-os adequadamente:
$ find /sys/devices -name network_interface

Agora, basta salvar o script em um local adequado (por exemplo, ) e aponte seu programa de status para ele.

Alternar automaticamente a orientação de divisão horizontal/vertical da janela

O pacote autotilingAUR 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 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 e , e o upstream solicitará a reprodução de erros nesta versão. Veja também Depuração - Obtendo Rastros#Geral.

Os botões na barra de mensagens do i3 não funcionam

Botões como "Edit config" no chamam o , 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 . 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, por exemplo:

exec --no-startup-id ~/script
bindsym $mod+d exec --no-startup-id dmenu_run

Para desativar esta animação globalmente, veja Cursor themes#Create links to missing cursors.

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 :

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 portanto, tearing ou tremulações podem ocorrer. Veja picom.

Ícones invisíveis na barra de status

A diretiva pode exigir a configuração de uma saída primária com o xrandr, especificando a saída explicitamente ou simplesmente removendo esta diretiva. Veja Xrandr 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 , você deve usar um comando , como

~/.config/i3/config
...
for_window [class="Spotify"] move container to workspace $ws10

Para garantir que não mova a janela se já estiver em , pode-se usar .

Veja também

Fóruns do Arch Linux

Screencasts

gollark: Yes, and you are lemmmy.
gollark: Either.
gollark: You can work as a potatOS tester.
gollark: Sure!
gollark: The economy is already weird and distorted.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.