Sumário
- Sumário
- Introdução
- Distro: Fedora 37
- Gerenciador de Janelas + Barra de Status: i3-wm + i3-gaps + i3-status
- Lançador de Aplicativos: Rofi
- Terminal: alacritty
- Shell: ZSH + OhMyZSh
- IDE: Neovim
- Repositório com as configurações
- Conclusão
Introdução
Recentemente buscando mais produtividade e tendo apenas uma tela disponível, a tela do próprio notebook, resolvi dar uma chance e utilizar um Tiling Window Manager. Comecei a pesquisar mais sobre o assunto e descobri um novo e incrível mundo: r/unixporn1.
Nesse post vou falar um pouco sobre as minhas configurações e customizações atuais para quem sabe servir de inspiração e conseguir mais um membro para a "seita" do UnixPorn.
Lembrando que esse setup está em progresso eterno (WIP).
Distro: Fedora 37
Bom, antes de tudo vou começar falando da distro que estou utilizando atualmente: Fedora 37. O Fedora foi minha primeira distribuição Linux juntamente com o Ubuntu 14.04.
Gosto do Fedora por sua filosofia de sempre trazer atualizações e últimas novidades, fora que gosto da implementação pura do ambiente gráfico do Gnome que eles sempre utilizaram. Inclusive já ajudei o projeto participando da equipe de design, o que me deu ainda mais gosto pela distro.
Por mais que o Gnome 43 esteja incrível, eu gostaria de ter uma experiência com um Tilling Window Manager para ver se realmente conseguiria ser mais produtivo, pois eu já estava utilizando muito o Neovim com o Tmux praticamente aposentando meu mouse, então achei que esse fosse um caminho natural a se seguir.
Ah, estou utilizando o Nordic Theme no gnome:
Gerenciador de Janelas + Barra de Status: i3-wm + i3-gaps + i3-status
O conceito de um Tilling Window Manager é bem simples, no lugar do comportamento de empilhamento de janelas padrão as janelas passam a ser dispostas uma ao lado da outra, se organizando como se fossem tabelas.
Escolhi o i3-wm por ser minimalista, fácil e altamente customizável.
Então na instalação temos:
sudo dnf install i3 i3status i3-gaps nitrogen picom
- i3 - é o pacote principal do gerenciador de janelas.
- i3status - é um utilitário para gerar informações a serem exibidas na i3bar.
- i3-gaps - para gerenciar os espaços entre as janelas.
- nitrogen - como nosso utilitário para definir wallpapers.
- picom - Compositor para transparências de janelas e outras coisas.
O mais interessante são os atalhos que me ajudam naquela ideia de "aposentar" o mouse:
- Tecla Super ou Tecla Windows: como minha tecla "chave" ou "mod" para chamar algum comando do i3-wm
-
Abrir o terminal:
mod + Enter
-
Abrir o gerenciador de arquivos (Nautilus):
mod + Shift + Enter
-
Mudar de Workspace:
mod +1
,mod + 2
atémod + 9
-
Abrir menu de aplicações:
mod + d
-
Fechar apliação:
mod + q
-
Mudar de foco:
mod + (cima, baixo, esquerda ou direita)
-
Próximo workspace:
mod + Tab
-
Redimensionar a janela:
- Entrar no modo "resize":
mod + r
- Ajustar com as setas:
cima
,baixo
,esquerda
oudireita
. - Sair do modo "resize":
Esc
- Entrar no modo "resize":
Sei que existem alternativas melhores ao i3-status
como o Polybar que permite maior personalização, mas por enquanto estou bem utilizando só o bom e velho i3-status mesmo.
Ah, fica tranquilo que no final do artigo tem um repositório com todas as minhas configurações
Lançador de Aplicativos: Rofi
Como sugestão do i3-wm resolvi utilizar o Rofi no lugar do dmenu como meu lançador de aplicativos. Ele permite mais customizações e é mais moderno.
sudo dnf install rofi
e configurar o i3-wm para utilizar o Rofi como padrão:
bindsym $mod+d exec "rofi -modi drun,run -show drun"
Como estou mantendo uma identidade visual na minha personalização, resolvi procurar um tema que fosse bonito e tivesse versões para praticamente tudo. Cheguei na opção de cores Nórdicas, o NordTheme, ele tem uma paleta de cores árticas, azuladas muito bonitas e tem tema para o que você imaginar, Navegador, Neovim, Visual Studio Code, Alacritty, i3-wm, inclusive para o Rofi: Rofi Themes Collection
Terminal: alacritty
Alacritty é um emulador de terminal que se encaixa quase perfeitamente com Window Managers. Pois ele não tem nenhuma opção ou menu na tela. E toda a sua configuração é feita através de arquivos de configuração.
A instalação do Alacritty no Fedora pode ser feita da seguinte forma:
dnf copr enable pschyska/alacritty
dnf install alacritty
para integra-lo com o i3-wm precisamos alterar o seu terminal padrão. Procure pela palavra terminal
e altere a linha para:
bindsym $mod+Return exec --no-startup-id alacritty;focus
e mais uma vez adiciono a paleta de cores NordTheme no alacrity:
Shell: ZSH + OhMyZSh
Como Shell eu prefiro utilizar o ZSH no lugar do Bash, justamente por ser mais customizável.
Ainda mais quando adicionamos o OhMyZsh na equação. Que é framework para gerenciar sua configuração Zsh. Ele vem com milhares de funções úteis, auxiliares, plugins etc.
Para insta-lo é bem simples:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
depois é só ir configurando o arquivo ~/.zshrc
.
E mais uma vez, adiciono o tema Nord no OhMyZsh: nord-extended
Gosto também de adicionar esses dois plugins:
- zsh-autosuggestions - Ele sugere comandos conforme você digita com base no histórico e nas conclusões.
- zsh-syntax-highlighting - Adicona uma corzinha nos comandos
IDE: Neovim
Para fechar com chave de ouro esse Master Blaster Productivity Shortcut Based System ou MBPSBS (Patente Pendente), temos o Neovim.
Neovim é fork do famoso e igualmente incrível Vim. Ele é muito extensível graças a sua comunidade que está constantemente criando plugins geralmente escritos em Lua e estendendo ainda mais as funcionalidades desse editor.
Algumas dessas funcionalidades são:
- LSP Clients (Language Server Protocol) - que é tipo um autocomplete que temos no VSCode por exemplo.
- Terminal Emulator - Você pode rodar um terminal dentro do editor, mais uma vez como o VSCode.
e plugins incríveis como:
- Telescope - Para você achar, filtrar, ver um preview dos arquivos do seu projeto.
- Nvim Tree - Um explorador de arquivos escrito em Lua.
Sua curva de aprendizado é um pouco alta, até você se acostumar os atalhos, porém há boatos que uma vez dominados você automaticamente se torna um Programador Deus da Produtividade.
Ah, nada contra o Visual Studio Code, ele é incrível também e sei que dá pra se configurar o modo Vim
, adicionar plugins
muito úteis e aprender seus atalhos. Só estou escolhendo o Neovim nesse caso pela questão de combinar mais com o meu setup atual.
Repositório com as configurações
Que bom que chegou até aqui. Ou será que você só pulou até essa parte porque só quer ver os arquivos de configuração?. Tudo bem, não te julgo. Eu o provavelmente faria o mesmo.
Enfim, criei um repositório com todas as minhas configurações, lembrando que é um projeto eternamente em desenvolvimento então poderei ver evolução desse setup com o tempo.
.config
My Personal .config files
Setup Article on my dev.to profile
i3wm
Dependencies
i3-gaps
i3status
i3lock
dmenu
alacritty
picom
maim
light
imwheel
nitrogen
polkit-gnome
xclip
lxappearance
nautilus
Keybindings
-
Super or Windows Key :
mod
-
Open Terminal :
mod + Return
-
Open File Manager :
mod + Shift + Return
-
Switch Workspace :
mod + 1
,mod + 2
uptomod + 9
-
Move Window to Specific Workspace :
mod + Shift + {Workspace Number}
-
Application Menu :
mod + d
-
Power Menu :
mod + 0
-
Restart i3 :
mod + Shift + r
-
Close Application :
mod + q
-
Toggle Tiling / Floating :
mod + Shift + space
-
Focus Up :
mod + up
-
Focus Right :
mod + right
-
Focus Down :
mod + down
-
Focus Left :
mod + left
-
Move Focused Window to Up :
mod + Shift + up
-
Move Focused Window to…
Conclusão
Este é o meu ambiente de trabalho minimalista atual. Espero que isso possa inspirar outros a experimentar um Tiling Window Manager e personalizar seu ambiente de trabalho para ser mais produtivo. Lembre-se de que essas configurações estão em constante evolução e há muitas opções lá fora. Experimente diferentes programas e encontre o que funciona melhor para você.
-
Uma comunidade no Reddit onde os usuários enviam capturas de tela dos seus desktops, geralmente cheios de personalidade e customizações. ↩
Top comments (7)
Ótimo artigo e guia! Obrigado pelas dicas. i3 não é minha primeira escolha como desktop mas já cheguei a usá-lo no trabalho quando tinha uma máquina fuleira! A tua configuração me parece bem afinada pra desenvolver e além de ter uma estética bela.
Opa, muito obrigado!
Qual opção tu prefere como desktop?
Ultimamente Gnome com o Cosmic Desktop do PopOS tem sido meu preferido. System76 tem feito um ótimo trabalho em deixá-lo com um ótimo DX.
Ahh, show! já usei, é um ambiente muito bom mesmo. Eles desenvolveram até o próprio Tilling Window Manager. Acho a System76 é uma empresa promissora nesse meio, assim como a RedHat e a Canonical. Só queria que eles trouxessem os notebooks deles para o Brasil.
Cara, eu sou doido para alterar para um WM mas ainda não consegui. Precisaria de muito tempo para leitura e configuração do ambiente, tempo que não tenho no momento. Ainda bem que o gnome é fino e me ajuda a não ficar tão paranóico para mudar hahaha.
Setup lindão meu parceiro.
Opa, valeeu!
Sim cara, nesse ambiente aí praticamente dediquei o meu fim de semana configurando tudo haha. Mas o Gnome é fino demais mesmo, acho que tá entre os melhores ambientes de todos, talvez só perca para o ambiente do Mac OS...
Otimo setup mano! Já configurei o Sway como WM aqui também pra dar uns testes em tilling e já aproveitar e ver como ficava o sistema usando Wayland no lugar do Xorg mas ainda prefiro meu bom e velho Xfce4, configurei ele pra ficar bonitinho ate um pouco parecido com o MacOS(nem tanto) e criei alguns atalhos para os programas que mais uso, também automatizei a troca de tema do sistema baseado na hora usando um cron job e um script em python que lê as configurações apartir de um arquivo JSON, o resultado aqui é esse:
Tema escuro(Dracula):
Tema claro(Arc):