Introdução
Quando instalamos algum sistema bem recheado de recursos (Como Ubuntu, Fedora, Mint,etc) Há muitos recursos que não usamos.
Um exemplo disso é a inteface gráfica Gnome. Que vem com muitos recursos e personalizações que quem está usando a interface no final, não usa.
Com isso, muitas pessoas personalizam os seus sistemas, tornando algo mais proximo delas e da forma que elas preferem trabalhar. As vezes criando um sistema mais minimalista, com menos distrações na interface, e eventualmente com menor consumo dos recursos da máquina.
Para fazer essa personalização, há VÁRIAS opções e combinações que podemos criar e usar. Mas todas essas combinações minimalistas tem normalmente os destaques abaixo:
- Gerenciador de Janelas (Window Manager). Será o programa responsável por gerenciar qualquer janela que você
- Barra de Status. A barra de status vai te ajudar a gerenciar quantas janelas estão acertas, e em qual lugar estão abertas (workspaces). E também te dar informações para você sobre o consumo de memória, processamento, horário,etc
- Inicializador de aplicativos. Esse será o programa que irá abrir os aplicativos de maneira gráfica. Sem precisarmos de um terminal.
- Terminal. Com o uso mais minimalista, o uso de um terminal para eventualmente substituir outros programas (como gerenciadores de arquivos) é maior.
Parece algo complexo, mas vamos destrinhar e personalizar cada um para criarmos uma sugestão de um sistema minimalista para você!
A sugestão que eu irei dar é a combinação de i3wm como gerenciador de janelas, Polybar como barra de status, Rofi como inicializador de programas, e Alacritty como terminal. Mas irei primeiramente mostrar o padrão que já vem, principalmente no i3wm.
I3wm (Gerenciador de Janelas) e I3Status (Barra de status)
O gerenciador de janelas que iremos usar será o I3wm. É um dos maiores gerenciadores de janelas minimalista, e tem uma grande liberdade de personalização via arquivos de configuração.
Por padrão, o I3wm tem uma aparência parecida com isto:
Para instalar o I3wm no seu sistema, você pode usar alguma aplicação gráfica de sua escolha, ou ainda via terminal com os seguintes comandos:
Ubuntu (e distribuições baseadas em Debian)
sudo apt install i3 dmenu i3status feh
Fedora
sudo dnf install i3 dmenu i3status feh
Arch Linux
sudo pacman -S i3 dmenu i3status feh
Caso seu sistema não esteja aqui, procure pelo método de instalação dos pacotes na sua distribuição.
Neste comando, vamos instalar o i3wm como gerenciador de janelas, dmenu como inicializador de programas, i3status como barra de status (essa é a barra padrão do i3wm), e feh como utilitário que vamos usar para definir o fundo da nossa área de trabalho. Essa será a nossa configuração inicial.
Agora, entre na interface gráfica que já está instalada na máquina (Gnome, KDE, Cinnamon,etc) e encerre a sessão. Com isso você entrará em uma tela de login, onde em algum lugar (isso depende do programa que você utiliza para gerenciar logins, que é o GDM caso o seu sistema use Gnome, KDE Display Manager caso o seu sistema usa KDE,etc) terá uma parte para mudar a interface gráfica que você irá usar por padrão. Busque por essa parte e mude para i3
ou i3wm
dependendo do modo que está escrito.
Agora você pode continuar o seu login normalmente, e quando você entrar, já estará dentro do I3wm.
A primeira tela que você verá será essa (pode estar com um fundo diferente):
Essa tela pergunta se você quer criar um arquivo de configuração do I3 (com as configurações padrão) ou se você não quercriar esse arquivo. E deixar que o I3 use a configuração padrão. O recomendado é você apertar <Enter>
para criar esse arquivo.
Logo após essa tela, outra tela referente a configuração irá aparecer:
No I3wm precisamos de uma tecla modificadora. Essa tecla modificadora será usada pra manipular as janelas, mudar de workspaces,etc. As duas opções padrão do I3 é a tecla Super (tecla Windows) e atecla Alt. O mais recomendado é usar a tecla Super como tecla modificadora, pois é muito raro ter atalhos em programas que usem a tecla Super. Logo, nessa parte você pode apenas apertar <Enter>
para usar a tecla Super como tecla modificadora. Caso queria usar a tecla Alt, use a seta do teclado para baixo para selecionar a tecla Alt e <Enter>
novamente para selecionar.
Pronto! Agora você já está no ambiente padrão do I3.
Agora temos que aprender algumas teclas para aprendermos a sobreviver dentro do I3wm.
- Super + [NUMERO] | Muda de workspaces. No i3 podemos por padrão ir da Workspace 1 até a 9.
- Super + Shift + [NUMERO] | Move uma janela para outra workspace.
- Super + SETA | Move o foco entre janelas em um mesmo workspace.
- Super +
<Enter>
| Abre o terminal padrão - Super +
<d>
| Abre o dmenu - Super +
<Shift>
+<q>
| Fecha a janela que está em foco. - Super +
<Shift>
+<e>
| Encerra a sessão - Super +
<Shift>
+<r>
| Reinicia o I3. Isso é útil para mudar a configuração e ver as mudanças sem precisar reiniciar o sistema ou encerrar a sessão.
No começo, a quantidade de atalhos pode ser algo complexo. Mas ao longo do tempo você irá se acustumar e ter isso em sua memória muscular.
Rofi
Agora vamos instalar o Rofi. Que irá substituir o dmenu. Iremos fazer isso pois com o Rofi podemos mudar de janela, ver todas as janelas abertas, e iniciar programas (como no dmenu). Além que podemos personalizar com temas, fontes, ícones,etc.
Para instalar, siga as instruções:
Ubuntu
sudo apt install rofi
Fedora
sudo dnf install -y gcc make autoconf automake pkg-config flex bison git libasan pango pango-devel cairo cairo-devel glib2 glib2-devel librsvg2 librsvg2-devel libxkbcommon libxkbcommon-devel libxkbcommon-x11 libxkbcommon-x11-devel libxcb libxcb-devel startup-notification startup-notification-devel xcb-util xcb-util-devel xcb-util-wm xcb-util-wm-devel xcb-util-xrm xcb-util-xrm-devel check check-devel
cd /tmp
git clone https://github.com/DaveDavenport/rofi --recursive
cd rofi
autoreconf -i
mkdir build && cd build
../configure
make
sudo make install
Os passos anteriores vão instalar todas as dependências caso você não tenha alguma, clonar o repositório do Rofi, compilar, e fazer a instalação.
Arch Linux
sudo pacman -S rofi
Agora, você pode executar programas e trocar entre janelas, com o Rofi.
Para rodar programas, abra um terminal e execute:
rofi -show drun
Esse comando vai abrir o Rofi, com o modo drun
. Por lá você irá poder executar qualquer programa ou aplicativo dentro do sistema.
E para trocar entre janelas, execute:
rofi -show window
Com isso, todas as janelas abertas serão listadas.
Integrando o I3wm com Rofi
Agora teremos que modificar o arquivo de configuração do I3wm. Esse arquivo está localizado em ~/.config/i3/config
. Este arquivo guarda todas as configurações do I3, e será usado para tornarmos o nosso i3 mais proximos de nós.
Teremos que modificar o atalho atual Super+D
que abre o Dmenu, para que abra o Rofi, com o modo drun
para listar os programas.
Vá na linha 36, essa linha por padrão terá o seguinte conteúdo:
bindsym $mod+d exec dmenu_drun
Analisando a linha acima, podemos ver que:
-
bindsym
representa que é um atalho; -
$mod+d
é o atalho, que é a tecla modificadora (no caso Super) mais a teclad
; -
exec
para executar algo -
dmenu_drun
para rodar o dmenu.
Para rodarmos o Rofi ao invés do Dmenu, apenas precisamos alterar o final, substituindo dmenu_drun
para rofi -show drun
Com isso, essa linha ficará assim:
bindsym $super+d exec rofi -show drun
Agora você precisa reiniciar o i3. Isso pode ser feito com o atalho Super + <Shift> + <r>
. O seu i3 irá reiniciar, e agora, se você usar o atalho Super + d
, o Rofi será aberto para você iniciar qualquer aplicativo ou programa do seu sistema.
Polybar
Agora iremos trocar a barra do sistema por uma que permite maior personalização. Estavamos usando a i3status, que é a barra padrão do i3. Mas iremos troca-lá pela Polybar.
Ubuntu
Se você está usando o Ubuntu 20.10, o Polybar já está nos repositórios da distribuição. Logo, você pode simplesmente usar
sudo apt install polybar
Se você está em outras versões do Ubuntu, você deverá instalar as dependências, e compilar o Polybar. Dessa maneira:
cd /tmp
sudo apt-get install \
cmake cmake-data libcairo2-dev libxcb1-dev libxcb-ewmh-dev \
libxcb-icccm4-dev libxcb-image0-dev libxcb-randr0-dev \
libxcb-util0-dev libxcb-xkb-dev pkg-config python-xcbgen \
xcb-proto libxcb-xrm-dev i3-wm libasound2-dev libmpdclient-dev \
libiw-dev libcurl4-openssl-dev libpulse-dev \
libxcb-composite0-dev xcb libxcb-ewmh2
git clone https://github.com/jaagr/polybar.git
cd polybar
git tag # see what version do you need
git checkout 3.4.1
./build.sh
Neste comando, primeiramente vamos para /tmp
, que é um diretório temporário do sistema, instalamos todas as dependências, clonamos o repositório oficial do Polybar, e compilamos o Polybar.
Fedora
sudo dnf install polybar
Arch Linux
O Polybar está na AUR. Logo você pode instalar com:
yay -S polybar
Integrando o Polybar no I3wm
Agora precisamos substituir a i3status pelo Polybar.
Primeiramente vamos criar o arquivo de configuração do Polybar, com a configuração padrão. Essa configuração pode ser mudada á vontade. Adicionando ou removendo informações na barra, e mudando o tema das cores da barra.
Primeiramente, vamos criar o diretório ~/.config/polybar
, para deixarmos todas as configurações neste lugar.
mkdir .config/polybar
Agora, vamos copiar o arquivo de configuração padrão do Polybar para este diretório:
cp /usr/share/doc/polybar/config ~/.config/polybar
Agora, com essa configuração copiada, você pode executar polybar example
. Esse comando vai iniciar a barra example
. que foi definida exatamente neste arquivo de configuração.
Agora vamos adicionar uma linha no arquivo de configuração do I3 (~/.config/i3/config
), de preferência em algum lugar no topo do arquivo. Essa linha vai executar o Polybar, toda vez que iniciarmos o I3.
exec --no-startup-id polybar exemple
É exatamente o mesmo comando que executamos antes para iniciar o Polybar, mas agora, executará toda vez que iniciarmos nosso I3.
Agora vamos remover a i3status, deixando apenas a Polybar.
A i3status é iniciada nas últimas três linhas do arquivo. Caso você não encontre, são essas:
bar {
status_command i3status
}
Podemos apenas remover essas três linhas. E com isso, teremos nosso i3 apenas com a polybar, sem a i3status.
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 é feita da seguinte forma:
Ubuntu
sudo add-apt-repository ppa:aslatter/ppa
sudo apt update
sudo apt install alacritty
Fedora
dnf copr enable pschyska/alacritty
dnf install alacritty
Arch Linux
pacman -S alacritty
Caso você tenha qualquer problema, você pode também usar o Kitty Que segue a mesma ideia. Mas neste artigo usaremos o Alacritty.
Após a instalação, você pode rodar o comando alacritty
ou iniciar o alacritty pelo Rofi/Dmenu. E uma tela simples e básica de terminal irá aparecer.
Caso você não tenha percebido, o Alacritty abriu de forma mais rápida que o terminal padrão da sua distro. Isso aconteceu pois a proposta do Alacritty (e do Kitty) é de ser o terminal mais rápido possível.
Integrando Alacritty com I3wm
Agora iremos fazer a mesma integração que fizemos anteriormente, mas agora, substitindo o terminal padrão da sua distro, pelo Alacritty.
Vamos para a linha 30 do arquivo. Nela encontraremos o seguinte:
bindsym $mod+Return exec i3-sensible-terminal
Esse atalho se refere a combinação Super + Enter
(no caso Enter
é a mesma coisa que Return
). E logo após o exec
, o i3 irá usar um recurso que é o i3-sensible-terminal
. Essa variável vai se referir ao terminal padrão do sistema.
Para mudar do terminal padrão do sistema, para o Alacritty, podemos simplesmente mudar de i3-sensible-terminal
para alacritty
. Com isso, essa linha ficará assim:
bindsym $mod+Return exec alacritty
Agora, reinicie seu i3 novamente com Super + Shift + <r>
, e agora, toda vez que você tentar abrir um terminal com Super + Enter
, você sempre abrirá o Alacritty.
Feh
Agora vamos usar o pacote que instalamos anteriormente, para definir um plano de fundo para o nosso i3wm, que é o feh
.
Para definir um fundo usando o feh, você pode executar:
feh --bg-fill CAMINHO_ATE_O_ARQUIVO
Um exemplo prático é:
feh --bg-fill Pictures/bg.png
Mas, para adicionar esse fundo toda vez que o i3 é iniciado, você deverá editar o arquivo de configuração do i3 (~/.config/i3/config
), adicionando essa linha em algum lugar do começo do arquivo:
exec --no-startup-id feh --bg-fill Pictures/bg.jpg
Claro, nessa parte você deve mudar o caminho do arquivo.
Personalização
Agora vamos aprender a como podemos começar a personalizar esses quatro itens abordados (i3wm, polybar, Rofi e Alacritty).
Uma recomendação para você achar opções para personalizar estes programas, é buscar Dotfiles. Dotfiles são repositórios onde as pessoas guardam as suas personlizações e configurações de programas. Um exemplo é o meu próprio repositório de Dotfiles. Onde você pode copiar, modificar, usar,etc. os arquivos e configurações. Iremos apenas listar algumas mudanças que você pode fazer.
I3wm
A configuração do I3 está no arquivo ~/.config/i3/config
. Lá, você pode tirar, criar ou modificar (como tinhamos feito) atalhos. Fontes,etc.
Um exemplo de configuração são os programas de autostart, que executam quando você inicia o i3, como o Polybar por exemplo. Um exemplo de autostart que está no meu dotfiles é este:
#autostart
exec --no-startup-id xsettingsd &
exec --no-startup-id compton -b
exec --no-startup-id polybar main
exec --no-startup-id feh --bg-fill Pictures/bg.jpg
exec_always --no-startup-id numlockx on
Nesta parte, é executado alguns programas, como o compton
para criar transparência nas janelas, o polybar, feh
para colocar um papel de parede, e o numlockx
para ligar a tecla numlock.
Polybar
Temos algumas personalizações que podemos fazer no nosso Polybar, que são:
- Cores
- Posição da barra
- Módulos
Neste artigo, iremos abordar apenas a mudança das cores, e deixar a barra embaixo da tela (como provavelmente você já tem o costume)
O arquivo de configuração está em ~/.config/polybar/config
. Lá, temos uma seção no arquivo que é:
[bar/example]
...
De [bar/example]
para baixo, estão todas as configurações da barra, e as primeiras são as gerais. Mais para baixo terá as configurações para cada módulo, como horário, barra de volume, indicador de uso de disco,etc.
Logo abaixo de [bar/example]
, podemos colocar bottom = true
para colocar a barra para baixo, dessa maneira:
[bar/example]
bottom = true
...
Quando você salvar o arquivo, a sua barra já estará na parte debaixo da tela.
Agora vamos mudar as cores, no começo do arquivo, estão declaradas algumas cores, como aqui:
[colors]
;background = ${xrdb:color0:#222}
background = #222
background-alt = #444
;foreground = ${xrdb:color7:#222}
foreground = #dfdfdf
foreground-alt = #555
primary = #ffb52a
secondary = #e60053
alert = #bd2c40
Podemos agora mudar as cores diretamente no hexadecimal, como por exemplo, na segunda linha desse trecho, trocar de #222
para #000
para deixar o fundo totalmente escuro, com o trecho final ficando assim:
[colors]
;background = ${xrdb:color0:#222}
background = #000
background-alt = #444
;foreground = ${xrdb:color7:#222}
foreground = #dfdfdf
foreground-alt = #555
primary = #ffb52a
secondary = #e60053
alert = #bd2c40
Assim, o nosso polybar ficará assim:
Recomendo você buscar modificar cores, módulos, e outras configurações do Polybar, que podem ser encontradas na sua wiki oficial
Rofi
Na parte do Rofi, as duas coisas que mais vamos modificar será o tema das cores, e a fonte.
O tema e a fonte são criados dentro de ~/.config/rofi/[TEMA].rasi
. Dentro deste arquivo, terá as definições das cores de cada lugar, tamanhos, fontes, etc.
Um exemplo de tema é o Dalton. Para aplicar esse tema, você pode simplesmente clonar o repositório, pegar o arquivo dalton.rasi
, e mover para ~/.config/rofi
Para este tema em específico, é recomendado que você tenha a fonte Fira Code
instalada, pois esse tema usa essa fonte. Você pode ver as instruções para várias distros no guia de instalação. Caso você não queria instalar ela, o Rofi usará a fonte padrão do sistema.
Agora, você pode executar rofi -show drun -theme dalton
para abrir o rofi no modo drun
com o tema Dalton.
Uma outra configuração interessante é habilitar um tema de ícones. Com essa opção habitada, irão aparecer ícones ao lado dos nomes dos programas. Isso pode ser feito adicionando estes argumentos ao final do comando:
-icon-theme "TEMA" -show-icons
neste lugar que está TEMA
você deve inserir algum tema que você utilize, como por exemplo:
-icon-theme "Flat-Remix-Dark-Blue" -show-icons
Dessa maneira, o Rofi abrirá com esse tema de ícones de sua escolha.
Alacritty
As duas principais configurações que podemos fazer no Alacritty, é mudar o tema de cores, e a fonte.
Você precisará criar o diretório ~/.config/alacritty
, e dentro desse diretório, e depois criar o arquivo de configuração alacritty.yml
, logo, essas configurações poderão ser mudadas em ~/.config/alacritty/alacritty.yml
Há duas partes do arquivo que iremos escrever, há a parte de font
, que deve ser algo por volta disso:
font:
# The size to use.
size: 12
normal:
family: Fira Code Medium
# The bold font face
bold:
family: Fira Code
# The italic font face
italic:
family: Fira Code
Neste caso, estamos usando a Fira Code em todos os casos, e com tamanho 12. Você pode mudar para a fonte de sua escolha, com o tamanho de sua escolha.
E logo na linha abaixo, podemos criar a seção chamada colors
, onde iremos definir as cores do terminal. O exemplo abaixo irá gerar um tema com fundo escuro, e algumas cores fortes para textos:
colors:
# Default colors
primary:
background: '0x000000'
foreground: '0xffffff'
cursor:
text: '0x000000'
cursor: '0xffffff'
# Normal colors
normal:
black: '0x000000'
red: '0xfe0100'
green: '0x33ff00'
yellow: '0xfeff00'
blue: '0x0066ff'
magenta: '0xcc00ff'
cyan: '0x00ffff'
white: '0xd0d0d0'
# Bright colors
bright:
black: '0x808080'
red: '0xfe0100'
green: '0x33ff00'
yellow: '0xfeff00'
blue: '0x0066ff'
magenta: '0xcc00ff'
cyan: '0x00ffff'
white: '0xFFFFFF'
Você pode procurar alguns temas para o Alacritty nesta lista de temas. Apenas encontre o arquivo respectivo do tema que você quer, e substitua no arquivo de configuração do Alacritty.
Adendo
Todas essas opções que foram apresentadas (i3wm, Polybar, Rofi e Alacritty) foram apenas uma escolha minha para apresentar. Não significa que é a melhor combinação possível, você pode usar várias outras opções. Algumas alternativas para o i3wm são:
- bspwm
- dwm
- Awesome WM
- Openbox
e muitas outras. A mesma coisa serve para o Polybar, Rofi e Alacritty. Tudo depende de qual você acha melhor unicamente para você mesmo!
Conclusão
Criamos um ambiente de desenvolivmento mínimo. Usando i3wm, Polybar, Rofi e Alacritty. Onde cada pessoa, poderá mudar cada um desses elementos, deixando todo o sistema mais proximo de sua personalidade e praticidade.
Recomendo que você crie o seu repositório de dotfiles no seu Github, e comente neste artigo com o link dele. E sempre mantenha esse repositório atualizado, será ele que você usará de backup das saus configurações, e também como meio para você mostrar as pessoas, como você personaliza o seu sistema.
Discussion (4)
Eu não uso esses ambientes minimalistas no meu computador que sinto falta de alguns recursos, ou dão muito trabalho para configurar, e no final acabam se tornando algo muito semelhante ao que eu teria usando outro ambiente que já tem o recurso nativamente. Porém por usarem pouco recurso, acabo usando em máquinas virtuais, onde normalmente só preciso de um ambiente X11 mínimo, e nesses casos funcionam muito bem.
Você comentou sobre gerenciador de arquivos, porém não listou nenhuma opção. Eu gosto de usar o ranger no terminal, ou o pcmanfm como opção gráfica.
É verdade. Escrevi pensando que a pessoa leitora estaria usando o gerenciador de arquivos do ambiente gráfico que já estava instalado na máquina, ou com um cd mesmo. Mas obrigado por apontar isso!
Gostei bastante da postagem, vou tentar subir um ambiente desse em uma VM com toda certeza! Parabéns!
Obrigado!