O i3 é um gerenciador de janelas, totalmente escrito do zero. As plataformas em que podemos usar o i3 são sistemas operacionais GNU/Linux e BSD, nosso código é Software Livre e de Código Aberto(FOSS) sob a licença BSD. O i3 é voltado principalmente para usuários e desenvolvedores avançados.
O “wm” em i3wm vem de windows manager ou gerenciador de janelas.
Imagens do Gerenciador i3
Seguem algumas imagens para referência:





Vídeos do Gerenciador de Janelas i3
Objetivos do Projeto i3
O projeto i3 tem os seguintes objetivos elencados em seu site:
- Escreva um código bem legível e bem documentado . Crie documentação adicional sobre como estender o i3 explicando seu funcionamento interno.
Isso inclui ser modificável por pessoas que sabem programar, mas que não estão necessariamente familiarizadas com todos os componentes internos do X11. Ou seja, documente por que as coisas acontecem e quando elas acontecem para que o usuário tenha uma imagem de todo o processo pelo qual um Gerenciador de Janelas é responsável apenas lendo o código-fonte. - Use xcb em vez de Xlib. xcb tem uma API muito mais limpa e deve ser mais rápida em várias situações.
- Implemente o multi-monitor corretamente, ou seja, atribuindo cada área de trabalho a uma tela virtual. Certifique-se especialmente de que anexar e desanexar novos monitores, como projetores de vídeo, funcione durante a operação e faça a coisa certa. Também fornece suporte para monitores girados.
- Use uma árvore como estrutura de dados. Isso permite layouts mais flexíveis do que a abordagem baseada em colunas usada por outros gerenciadores de janela.
- Implemente modos diferentes, como no vim. Você pode usar combinações de teclas diferentes quando estiver no modo ‘redimensionar’ e quando estiver no modo padrão, por exemplo.
- Implemente uma interface IPC para outros programas. Forneça assinatura para determinados eventos e aceite comandos.
Essa abordagem deve ser mais leve do que o uso do wmii do sistema de arquivos 9P. Além disso, a funcionalidade principal não depende de um programa separado, para que o i3 seja executado mais rapidamente, especialmente quando o sistema está sob carga. - Seja UTF-8 limpo.
- O elitismo usual entre os gerenciadores de janelas mínimos: não seja exagerado, não seja extravagante (bordas simples são a maior decoração que queremos ter).
No entanto, não impomos limites desnecessários, como uma quantidade máxima de linhas de código-fonte. Se precisar ser um pouco maior, será. - Não adicione mais complexidade quando isso pode ser evitado. Em geral, estamos satisfeitos com o conjunto de recursos do i3 e, em vez disso, nos concentramos em corrigir bugs e mantê-lo estável. Novos recursos serão, portanto, considerados apenas se o benefício superar claramente a complexidade adicional e incentivamos os usuários a implementar recursos usando o IPC sempre que possível.
e ainda
- Nunca interrompa arquivos de configuração ou fluxos de trabalho existentes. Alterações de última hora exigem um aumento na versão principal (v4 → v5).
- Mantenha a complexidade mental baixa: depois de conhecer os principais recursos do i3, outros recursos devem ser fáceis de entender.
- Adicione apenas recursos que beneficiam muitas pessoas, em vez de fazer grandes esforços para oferecer suporte a fluxos de trabalho raramente usados.
- Apenas o comportamento documentado é suportado. Documentação clara é um requisito para contribuições.
Obs.: essa última parte foi traduzida do inglês para o português e pode conter erros.