[Tutorial] Arch Linux com BSPWM, estilo raposa, acessível para todos

Vamos de mais um tutorial da raposa?

O que é o estilo raposa?

Apesar de parecer um nome de algum jutsu ou forma de arte marcial, trata-se do meu estilo customizado de usar o BSPWM, que é o meu gerenciador de janelas favorito. A sintaxe para controlá-lo é bonita, limpa e funcional. Suporta tanto modo flutuante como o modo ladrilho (tiling).

A ideia principal do estilo raposa é prover algo leve, funcional, mas com certo grau de opinião própria: design clean, que não mostre tudo na tela necessariamente, em busca de fazer o maior aproveitamento de espaço possível, com exceção de onde se quer permitir um pouco mais de uso do espaço por questões estéticas (gaps). A ideia é deixar bonito, e ao mesmo tempo funcional, no front-end e no plano de fundo!

Ah, ele também é uma base para você começar e melhorar/modificar conforme sua vontade!

Pre-instalação: O que você precisa para começar?

Primeiramente, você precisa da ISO (imagem de instalação) mais recente do Arch Linux. Você pode encontrá-la no site do archlinux na sessão de downloads.

1 - Vá ao site Arch Linux - Downloads e procure baixar o arquivo .torrent para baixar a imagem do sistema Arch Linux;

2 - Baixe um gerenciador de downloads torrent na sua distribuição, como o qbittorrent ou transmission-gtk/transmission-qt, usando o gerenciador de pacotes do sistema (apt, dnf, pacman), ou utilize o flatpak.

3 - Compre um pendrive, conecte ao computador, e identifique qual é o dispositivo usando o seguinte comando:

lsblk

Ele deverá te mostrar todos os dispositivos de armazenamento conectados ao computador. Procure o que corresponde ao tamanho do seu pendrive.

4 - Navegue até o diretório de onde a ISO está instalada, como /home/$USER/Downloads, onde $USER é o nome do seu usuário (troque a parte $USER pelo seu nome de usuário). Após identificar em que ponto o pendrive está conectado (sempre no diretório /dev com o nome de sda, sdb, ou sdc), você pode rodar o comando a seguir:

sudo dd if=nome-da-iso-do-archlinux.iso of=/dev/sdx status=progress

Sabendo que você precisa:

a) trocar 'nome-da-iso-do-archlinux’ pelo nome da imagem do sistema;

b) trocar o ‘x’ em /dev/sdx pela letra que corresponde ao seu pendrive.

PS: É claro que você pode tentar usar um programa como Balena Etcher para tentar instalar no pendrive, mas eu acabei optando por mostrar como faz com o dd para já contar como um aprendizado extra.
PS #2: Caso você estiver vindo do Windows, e por algum motivo já estiver tentando ir pro Arch Linux, além de ser corajoso, você deve procurar um programa chamado Rufus. Lembre-se de fazer backup e não instalar no seu dispositivo principal, afinal a instalação do Linux deve APAGAR TUDO o que está no seu HDD e SSD. Tome muito cuidado nesse ponto!

PS #3: É bom você se recordar da forma como os dispositivos são apresentados (/dev/sdx), pois lhe serão úteis em um futuro bem próximo.

5 - Depois que seu pendrive estiver pronto com a iso instaladora nele (ainda que é recomendável fazer isso em uma máquina virtual primeiro, só pra treino), prossiga para o próximo passo.

Como instalar o Arch Linux?

Existem várias formas de fazer isso. Você pode muito bem pegar uma ISO de uma distro baseada em Arch que venha com um instalador pronto como acontece no Ubuntu, Linux Mint, e outros, e não ter que fazer as coisas com a ISO do Arch. Mas como a ideia é usar o Arch puro (ou quase, veremos já o porque), você tem dois meios: instalação manual e o script provido pela própria ISO chamado archinstall.

Se você quiser instalar manualmente, utilize a wiki do archlinux. No caso eu sugiro usar o archinstall, que funciona com um sistema de navegação usando as setas direcionais do teclado, com barra de espaço para selecionar e enter para confirmar.

Caso você nunca tenha visto como se instala usando o script, procure um tutorial no youtube sobre isso para ter uma referência visual, mas básicamente você irá necessitar rodar o comando archinstall e selecionar através de usar as setas direcionais, barra de espaço e enter, onde, como e o que você quer que o script faça para você. Pode parecer complicado, mas se você fizer devagar e tiver uma noção básica de inglês, tem uma chance grande fazer dar certo de primeira. Por isso é bom praticar em uma máquina virtual primeiro. Caso já tenha entendido como é, pode prosseguir normalmente.

Recomendações:

a) Esse tutorial foi pensado para funcionar em cima de uma instalação com Xfce. A razão é por que várias configurações de fundo feitas pela instalação do Xfce através do Arch facilitam as coisas para o Bspwm. Porém, mesmo assim, a instalação deve funcionar com apenas o bspwm, xorg e lightdm. Serão necessários, porém, mais pacotes que o normal em uma instalação headless/simples/sem o Xfce;

b) Você pode mudar o idioma da instalação do sistema no próprio archinstall.

c) Não esqueça de criar o usuário pelo próprio archinstall e de dar permissão sudo (ocorre por padrão)!

O BSPWM raposáico: uma vez instalado seu sistema…

1 - Abra o terminal do xfce. Pode dar um Ctrl + Alt + T que deve funcionar. Se estiver instalando sem ter instalado o Xfce primeiro, faça login com seu usuário e senha na tela preta de terminal que aparecer após reiniciar o computador depois da instalação;

2 - Instale os pacotes necessários:

sudo pacman -S bspwm sxhkd kitty feh picom dunst lxappearance lxsession pcmanfm xorg-xrandr numlockx rofi xarchiver

3 - Se não tiver instalado o xfce como base, instale os seguintes pacotes também:

sudo pacman -S xorg xdg-desktop-portal xdg-desktop-portal-gtk polkit xorg-xsetroot 7zip unzip untar

4 - Crie os diretórios para poder instalar depois os arquivos do bspwm:

mkdir -p ~/.config/bspwm/
mkdir -p ~/.config/sxhkd/
mkdir -p ~/.config/kitty/
mkdir -p ~/.config/picom/

5 - Autorize e configure o bspwm e o sxhkd (gerenciador de atalhos de tecla):

install -Dm755 /usr/share/doc/bspwm/examples/bspwmrc ~/.config/bspwm/bspwmrc
install -Dm644 /usr/share/doc/bspwm/examples/sxhkdrc ~/.config/sxhkd/sxhkdrc

6 - Edite o arquivo ~/.config/bspwm/bspwmrc de:

#! /bin/sh

pgrep -x sxhkd > /dev/null || sxhkd &

bspc monitor -d I II III IV V VI VII VIII IX X

bspc config border_width         2
bspc config window_gap          12

bspc config split_ratio          0.52
bspc config borderless_monocle   true
bspc config gapless_monocle      true

bspc rule -a Gimp desktop='^8' state=floating follow=on
bspc rule -a Chromium desktop='^2'
bspc rule -a mplayer2 state=floating
bspc rule -a Kupfer.py focus=on
bspc rule -a Screenkey manage=off

para:

#! /bin/sh

pgrep -x sxhkd > /dev/null || sxhkd &

bspc monitor -d 1 2 3 4

bspc config border_width         3
bspc config window_gap          12

bspc config split_ratio          0.50
bspc config borderless_monocle   true
bspc config gapless_monocle      true

# fox general settings

xsetroot -cursor_name left_ptr &

# fox bspwm settings

bspc config focused_border_color '#dddddd'
bspc config pointer_motion_interval 1

# fox autostart
numlockx &
lxpolkit &
dunst &
picom --backend glx --vsync &

Use Ctrl + X e depois Y e Enter para salvar.

Fazendo assim, você terá o BSPWM configurado para ligar o teclado numérico ao iniciar, oferecer uma pop-up solicitando senha quando for necessário montar alguma dispositivo, ou autorizar algum programa, notificar você quando algo for instalado ou vier alguma mensagem atráves do navegador, do Discord, etc, e também ter um compositor de janelas que mantenha a taxa de amostragem equilibrada, afim de evitar o tearing tanto em games quanto no próprio desktop.

7 - Edite o arquivo sxhkdrc em ~/.config/sxhkd/sxhkdrc. Como é um arquivo grande, não vou colar tudo. Apenas procure dentro do arquivo pelas seguintes configurações e faça as trocas abaixo:

a configuração:

# terminal emulator
super + Return
        urxvt

deve passar a ser:

# terminal emulator
super + Return
        kitty

- 

a configuração: 

# program launcher
super + @space
        dmenu_run

deve passar a ser:

# program launcher
super + d
        rofi -show drun

8 - Edite o arquivo presente em /usr/share/xdg-desktop-portal/portals/ e:

na linha: 

UseIn=gnome

adicione: 

UseIn=gnome,bspwm

Use Ctrl + X e depois Y e Enter para salvar.

Isso vai fazer com os portais flatpak funcionem normalmente dentro do bspwm. Sem isso, não consegue abrir aquele menu de salvar o download em alguma pasta específica, ou acessar algum diretório para configurar uma imagem no OBS, por exemplo, quando ele é instalado pelo Flatpak.

9 - Copie o arquivo de configuração do kitty para o diretório em ~/.config/kitty/:

cp -r /usr/share/doc/kitty/examples/kitty.conf ~/.config/kitty/

10 - Você já concluiu o setup inicial necessário para que você possa rodar o seu bspwm. Quando você fizer login, ou pelo lightdm ou pelo console (depois de criar um arquivo .xinitrc com a chave ‘exec bspwm’ ou ‘dbus-launch –exit-with-session bspwm), você vai chegar em uma tela totalmente preta, talvez com apenas o ícone do mouse no centro da tela. Isso acontece por que não foi definido um wallpaper. Geralmente eu não coloco isso direto nessa parte por que você precisa logar no gerenciador de janelas para poder definir o papel de parede usando o feh. Vou falar sobre isso na sessão de customização. Mesmo assim, você pode confirmar que tudo deu certo pressionando a tecla Super (aquela que tem o logo do Windows) e também a tecla enter. Isso deve abrir um terminal kitty, que configuramos na parte do sxhkd. Abaixo, uma captura de tela de uma máquina virtual rodando o kitty dentro do bspwm, em modo tiled (ladrilhado).

Se você chegou a esse resultado, parabéns! Agora é só utilizar o sistema normalmente, ou proseguir para sessão de customização.

Sessão de customização: ajustes finais para seu gerenciador de janelas

É bem provavel que você queira usar um papel de parede, e ter transparências presentes no fundo do terminal para que ele fique translúcido, mostrando o wallpaper por trás. Colocar um tema legal, e ícones, ponteiro do mouse. Nós vamos ver sobre isso nos passos a seguir.

1 - Para deixar o fundo do terminal do kitty transparente, você precisa editar o arquivo do kitty em ~/.config/kitty/kitty.conf:

sudo nano ~/.config/kitty/kitty.conf

Procure a parte onde diz o seguinte (é linha número 1453, se estiver por um editor de notas como o mousepad): 

background_opacity 1.0

e troque por:

background_opacity 0.5

Salve com Ctrl + X e Y e Enter. A partir de agora, todos os terminais terão 50% de transparência no fundo preto. Ainda assim, você não vai ver a diferença imediatamente por que você precisa colocar um wallpaper. Sendo assim…

2 - Baixe um navegador como o firefox, ou brave. Para baixar o brave, utilize o facilitador de download do AUR (arch user repository) chamado yay:

sudo pacman -S git go base-devel
cd ~/Downloads/
git clone https//aur.archlinux.org/yay.git
cd yay
makepkg -si
cd ..
rm -rf yay

Complete a instalação e depois use o yay para instalar o pacote binário pré-compilado do brave. É importante não pegar o errado por que demora horrores pra compilar:

yay -S brave-bin

3 - Usando Super + d, você abre o menu que vai utilizar pra abrir seus programas. Digite Brave, e abra o navegador. Vá a internet, pegue um wallpaper, coloque na pasta que quiser, Downloads por exemplo, e depois use o seguinte comando para ativar o wallpaper:

feh --bg-fill ~/diretório-de-onde-está-salvo-o-wallpaper/nome-do-wallpaper.extensão-da-imagem

ex: feh --bg-fill ~/Downloads/nier-2B.jpg 

Fazendo assim, você já terá seu wallpaper funcionando, mas quando deslogar do bspwm (usando Super + Alt e Q) ele some. Pra tornar a mudança persistente (sobrevive ao reinicio da sessão), edite o arquivo bspwmrc em ~/.config/bspwm/ para incluir, na parte de autostart, o seguinte:

# fox autostart

~/.fehbg & 

4 - Para definir o tema GTK e os ícones, você vai usar o Lxappearance. Mas como não tem nenhum tema ou ícone baixado ainda, você precisa pegar ou pelo gerenciador de pacotes ou pela internet. Recomendo baixar na pling store que a variedade é maior que no gerenciador de pacotes. Pro meu uso, eu coloquei o tema Cloudy GTK Themes e o set de ícones Papirus na cor branca.

Crie o diretório ~/.local/share/themes

mkdir ~/.local/share/themes

Caso não existir, crie o diretório dos ícones também

mkdir ~/.local/share/icons

Você deve extrair os arquivos de tema na pasta ~/.local/share/themes e os arquivos de ícone na pasta ~/.local/share/icons. No caso do tema de ícones Papirus, ele possue outras cores. Você precisa colocar as pastas Papirus, Papirus-Dark e Papirus-Light direto dentro da pasta icons, e não dentro da pastinha que o extraídor cria por questão de organização. Não se deve também ter várias cores diferentes juntas. Confude o sistema.

Uma vez feito essas coisas, abra o lxappearance com Super + d e digitando ‘lxappearance’. Ele deverá aparecer com o nome de Customize Look and Feel. Selecione seu tema e ícone pela janelinha que aparecer, clique em Apply (aplicar) e pronto. Talvez seja necessário relogar pras mudanças aparecerem.

No meu caso, usando o tema GTK Cloudy Themes e o Papirus-White e uma imagem que eu achei no konachan.net da 2B, essa aqui, esse foi o resultado que consegui:

Considerações finais

Esse é um pequeno projeto meu que passou a ser meu daily driver, mas que estou usando no Devuan por necessidade de um repositório do kxstudio (daí a leve inconsistência no hostname). Ele tem suas limitações por ser baseado em GTK, principalmente na questão do tema. Eu quis esses ícones brancos, e acabei por pensar que ficaria boa uma imagem com a 2B do game Nier Automata. Por mim combinou bastante, e eu fico satisfeito com o resultado. Espero que seja útil a toda a comunidade e a todo o apreciador de BSPWM.

Happy computing!

Fox

5 curtidas