DEV Community

Sam Marxz
Sam Marxz

Posted on

Meu ambiente de desenvolvimento minimalista: i3wm, i3-status, rofi, alacritty, zsh e neovim

i3wm + i3status

Resultado Final

Sumário


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.

Fedora 37

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:

Nordic 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


Enter fullscreen mode Exit fullscreen mode
  • 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 ou direita.
    • Sair do modo "resize": Esc

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 


Enter fullscreen mode Exit fullscreen mode

e configurar o i3-wm para utilizar o Rofi como padrão:



bindsym $mod+d exec "rofi -modi drun,run -show drun"


Enter fullscreen mode Exit fullscreen mode

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

Rofi Nord Rounded


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


Enter fullscreen mode Exit fullscreen mode

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


Enter fullscreen mode Exit fullscreen mode

e mais uma vez adiciono a paleta de cores NordTheme no alacrity:

Alacritty Nord


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)"


Enter fullscreen mode Exit fullscreen mode

depois é só ir configurando o arquivo ~/.zshrc.

E mais uma vez, adiciono o tema Nord no OhMyZsh: nord-extended

OhMyZSH Nord

Gosto também de adicionar esses dois plugins:


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.

Nvim Telescope

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.

Dev God

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.

Nvim

geralmente utilizo assim, um terminal para o nvim, um para o interativo e outro para testes e comandos

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.

GitHub logo sammarxz / .config

My Personal .config files

.config

My Personal .config files

Setup Article on my dev.to profile

i3wm + i3status

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 upto mod + 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ê.


  1. 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)

Collapse
 
raibtoffoletto profile image
Raí B. Toffoletto

Ó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.

Collapse
 
sammarxz profile image
Sam Marxz

Opa, muito obrigado!
Qual opção tu prefere como desktop?

Collapse
 
raibtoffoletto profile image
Raí B. Toffoletto

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.

Thread Thread
 
sammarxz profile image
Sam Marxz

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.

Collapse
 
yaugusto profile image
Yuri Augusto

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.

Collapse
 
sammarxz profile image
Sam Marxz

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

Collapse
 
dheison profile image
Dheison Gomes • Edited

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):
Dark theme

Tema claro(Arc):
Light theme