> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/pt-br/useful-resources/gh0stzk-bspwm-dotfiles.md).

# Configuração Hacker do Arch Linux com BSPWM

[gh0stzk/dotfiles](https://github.com/gh0stzk/dotfiles) é um ambiente de desktop BSPWM completo para Arch Linux e distribuições baseadas em Arch. Inclui temas, barras, lançadores, configurações de terminal, ZSH, Neovim, applets do Rofi, papéis de parede e scripts auxiliares para alternar estilos rapidamente.

<figure><img src="https://user-images.githubusercontent.com/67278339/221605474-21d65156-0cf7-485c-bd1a-40792c37817e.png" alt="gh0stzk BSPWM dotfiles desktop screenshot with terminal and Linux fetch output"><figcaption><p>Exemplo de ambiente de desktop BSPWM do README do projeto.</p></figcaption></figure>

{% hint style="warning" %}
Instale isto somente em uma máquina de laboratório pessoal ou em uma estação de trabalho Linux recém-instalada. Os dotfiles substituem muitos arquivos de configuração do usuário, portanto revise o instalador e faça backup da sua configuração atual antes de executá-lo.
{% endhint %}

## Onde se encaixa

Isto pertence a `Recursos úteis` porque é um recurso de configuração de estação de trabalho, não uma ferramenta de pentesting. Use-o quando quiser um ambiente BSPWM baseado em Arch e organizado para anotações diárias, laboratórios, trabalho de CTF, desenvolvimento e fluxos de trabalho centrados no terminal.

## O que ele oferece

| Componente             | O que significa                                                                                                     |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------- |
| BSPWM                  | Gerenciador de janelas em mosaico para um desktop rápido controlado por teclado.                                    |
| 18 temas               | Estilos visuais prontos que podem ser alternados instantaneamente.                                                  |
| Polybar                | Barra de desktop com espaços de trabalho, módulos, informações do sistema e cores de tema.                          |
| Applets do Rofi        | Menus para aplicativos, energia, capturas de tela, área de transferência, rede, Bluetooth, papéis de parede e mais. |
| Terminais              | Suporte a temas para Alacritty, Kitty, Ghostty, ST e Xfce Terminal.                                                 |
| Configuração do ZSH    | Configuração rápida de shell com conclusões, pesquisa no histórico e pré-visualizações do fzf-tab.                  |
| Configuração do Neovim | Configuração de editor pronta com LSP, conclusão, formatação, explorador, linha de status e painel.                 |
| RiceEditor             | Aplicativo auxiliar para ajustar configurações visuais sem editar manualmente cada configuração.                    |

## Prévia visual

O projeto é muito visual, então confira as capturas de tela e a demonstração antes de instalar.

<figure><img src="https://github.com/gh0stzk/dotfiles/assets/67278339/b11b5c58-b9ec-446b-8980-4f77bebb3432" alt="gh0stzk dotfiles theme selector screenshot"><figcaption><p>Seletor de tema.</p></figcaption></figure>

<figure><img src="https://github.com/user-attachments/assets/dbac8c47-f12c-4242-97d6-38ad1193f76b" alt="gh0stzk dotfiles wallpaper selector screenshot"><figcaption><p>Seletor de papel de parede.</p></figcaption></figure>

<figure><img src="https://github.com/user-attachments/assets/2ac910c8-171f-47eb-8210-1469b6f75cc2" alt="gh0stzk dotfiles RiceEditor screenshot"><figcaption><p>RiceEditor para personalização de tema.</p></figcaption></figure>

### Demonstração do projeto

{% embed url="<https://github.com/user-attachments/assets/3eaae1e2-04dc-4a9b-8c91-139f85f5fb9e>" %}

### Guia de instalação do Arch

Este vídeo do criador é útil se você quiser uma instalação limpa do Arch antes de aplicar os dotfiles.

{% embed url="<https://www.youtube.com/watch?v=mspY7Mpmcug>" %}

### Canal do projeto

O canal do autor contém mais demonstrações de BSPWM, Polybar, Eww, Rofi e temas.

{% embed url="<https://www.youtube.com/@gh0stzk-dotfiles>" %}

## Antes de instalar

O instalador oficial é destinado ao Arch Linux e distribuições baseadas em Arch. O README informa que distribuições sem systemd, como Artix, não são compatíveis.

Ponto de partida recomendado:

| Requisito                            | Notas                                                                                |
| ------------------------------------ | ------------------------------------------------------------------------------------ |
| Distribuição Arch ou baseada em Arch | Uma instalação recente é mais segura.                                                |
| Conta de usuário normal              | Não execute o instalador como root.                                                  |
| Internet funcionando                 | O instalador baixa pacotes e repositórios.                                           |
| Gerenciador de login                 | O LightDM é recomendado pelo projeto.                                                |
| NetworkManager                       | Necessário para o applet de rede do Rofi.                                            |
| Backup                               | Mantenha uma cópia das configurações existentes `~/.config` e dos arquivos de shell. |

Comando de backup útil antes de testar:

```bash
mkdir -p "$HOME/dotfiles-backup"
cp -a "$HOME/.config" "$HOME/dotfiles-backup/config-$(date +%F)" 2>/dev/null
cp -a "$HOME/.zshrc" "$HOME/.gtkrc-2.0" "$HOME/.icons" "$HOME/dotfiles-backup/" 2>/dev/null
```

## Configuração rápida do Arch

Use isto quando estiver começando com uma máquina ou VM Arch limpa e quiser o caminho prático mais curto.

### 1. Inicie a ISO do Arch

Comece pela ISO oficial do Arch. Se usar Wi-Fi, conecte-se primeiro:

```bash
iwctl
```

Dentro de `iwctl`:

```
device list
station wlan0 scan
station wlan0 get-networks
station wlan0 connect "SSID"
exit
```

Verifique a internet:

```bash
ping -c 3 archlinux.org
```

Sincronize a hora:

```bash
timedatectl set-ntp true
```

### 2. Instale o Arch rapidamente

O caminho rápido é `archinstall`:

```bash
archinstall
```

Opções recomendadas:

| Opção                        | Escolha                                                                      |
| ---------------------------- | ---------------------------------------------------------------------------- |
| Layout de disco              | Padrão ou manual, dependendo da sua VM/disco.                                |
| Gerenciador de inicialização | `systemd-boot` para UEFI, GRUB se preferir.                                  |
| Perfil                       | O mínimo é suficiente; desktop é opcional.                                   |
| Network                      | NetworkManager.                                                              |
| Áudio                        | PipeWire.                                                                    |
| Usuário                      | Crie um usuário normal com acesso sudo.                                      |
| Pacotes extras               | `git curl base-devel xorg-server lightdm lightdm-gtk-greeter networkmanager` |

Após a instalação:

```bash
reboot
```

### 3. Habilite o básico

Entre como seu usuário normal e certifique-se de que os serviços básicos estejam prontos:

```bash
sudo pacman -Syu
sudo pacman -S --needed git curl base-devel xorg-server lightdm lightdm-gtk-greeter networkmanager
sudo systemctl enable --now NetworkManager
sudo systemctl enable lightdm
```

Reinicie mais uma vez caso tenha acabado de habilitar o LightDM:

```bash
sudo reboot
```

## Instalação dos dotfiles

Abra um terminal a partir do seu diretório home:

```bash
cd "$HOME"
```

Baixe o instalador oficial:

```bash
curl -LO http://gh0stzk.github.io/dotfiles/RiceInstaller
```

Revise o instalador antes de executá-lo:

```bash
less RiceInstaller
```

Conceda permissão de execução:

```bash
chmod +x RiceInstaller
```

Execute-o como seu usuário normal:

```bash
./RiceInstaller
```

O instalador é interativo. Ele pode perguntar se você deseja as configurações incluídas do Neovim e Firefox. Leia cada prompt em vez de apenas pressionar Enter para tudo.

### Instalação em um bloco

Para uma instalação rápida de laboratório depois de já ter um Arch funcionando:

```bash
cd "$HOME"
curl -LO http://gh0stzk.github.io/dotfiles/RiceInstaller
less RiceInstaller
chmod +x RiceInstaller
./RiceInstaller
```

## O que o instalador faz

Em alto nível, o instalador:

1. Verifica que não está sendo executado como root.
2. Verifica que está sendo executado a partir de `$HOME`.
3. Adiciona o `gh0stzk-dotfiles` repositório de pacotes.
4. Adiciona o Chaotic-AUR.
5. Baixa os dotfiles.
6. Faz backup das configurações de usuário existentes quando necessário.
7. Instala o ambiente BSPWM.
8. Habilita o MPD para recursos de música.
9. Altera o shell para ZSH.

O script também move muitas pastas de configuração existentes para um diretório de backup antes de substituí-las. Ainda assim, faça seu próprio backup primeiro.

## Primeiro login

Após a instalação:

1. Reinicie ou encerre a sessão.
2. Selecione a sessão BSPWM no seu gerenciador de login.
3. Entre normalmente.
4. Aguarde a primeira inicialização terminar a autoconfiguração.
5. Teste o terminal, Rofi, Polybar, seletor de tema e seletor de papel de parede.

Se estiver em uma máquina virtual e o desktop parecer quebrado ou lento, tente alterar o Picom de `glx` para `xrender` antes de presumir que a instalação falhou.

## Primeiras coisas a verificar

Após a primeira inicialização, verifique as variáveis relacionadas ao hardware. Abra:

```bash
~/.config/bspwm/config/system.ini
```

Verifique os valores de:

| Valor               | Por que é importante                   |
| ------------------- | -------------------------------------- |
| Interface de rede   | Módulos de rede na barra.              |
| Placa gráfica       | Alguns módulos visuais e de status.    |
| Bateria e adaptador | Módulos de bateria e brilho de laptop. |

Se você estiver em um PC desktop, a interface de rede costuma ser a principal com a qual se preocupar.

## Comandos úteis

| Comando                             | Use                                                          |
| ----------------------------------- | ------------------------------------------------------------ |
| `RiceSelector`                      | Abra o seletor de tema.                                      |
| `RiceEditor`                        | Edite visualmente o tema atual.                              |
| `WallSelect`                        | Abra o seletor de papel de parede.                           |
| `Term --selecterm`                  | Escolha o aplicativo de terminal.                            |
| `OpenApps --menu`                   | Abra o lançador de aplicativos.                              |
| `OpenApps --KeyHelp`                | Abra a folha de referência de atalhos de teclado.            |
| `OpenApps --screenshot`             | Abra a ferramenta de captura de tela.                        |
| `OpenApps --netmanager`             | Abra o applet do gerenciador de rede.                        |
| `OpenApps --bluetooth`              | Abra o applet do Bluetooth.                                  |
| `OpenApps --clipboard`              | Abra o gerenciador da área de transferência.                 |
| `OpenApps --powermenu`              | Abra o menu de energia.                                      |
| `OpenApps --keyboard`               | Abra o applet de layout de teclado.                          |
| `OpenApps --scratch`                | Abra o scratchpad.                                           |
| `HideBar -h`                        | Oculte as barras.                                            |
| `HideBar -u`                        | Mostre as barras.                                            |
| `SoftReload`                        | Recarregue suavemente o ambiente.                            |
| `ScreenLocker`                      | Bloqueie a tela.                                             |
| `bspc wm -r`                        | Recarregue o BSPWM.                                          |
| `pkill -USR1 -x sxhkd`              | Recarregue os atalhos de teclado.                            |
| `~/.config/bspwm/config/system.ini` | Variáveis de hardware/módulos a verificar após a instalação. |
| `~/.config/bspwm/config/sxhkdrc`    | Arquivo principal de atalhos de teclado.                     |

## Atalhos de teclado completos

O projeto mostra a folha de referência visual com `Alt + F1`. `Super` significa a tecla Windows na maioria dos teclados. A fonte de referência é o arquivo instalado `~/.config/bspwm/config/sxhkdrc`; esta tabela segue o arquivo upstream atual e agrupa todos os atalhos para facilitar a consulta.

### Ajuda

| Teclas     | Ação                                                |
| ---------- | --------------------------------------------------- |
| `Alt + F1` | Mostre a folha de referência de atalhos de teclado. |

### Aplicativos principais

| Teclas                 | Ação                                 |
| ---------------------- | ------------------------------------ |
| `Super + Return`       | Abra o terminal normal.              |
| `Super + Alt + Return` | Abra o terminal flutuante.           |
| `Super + Space`        | Abra o lançador de aplicativos.      |
| `Alt + Space`          | Abra o seletor de tema.              |
| `Super + B`            | Abra o navegador.                    |
| `Super + E`            | Abra o editor.                       |
| `Super + F`            | Abra o gerenciador de arquivos.      |
| `Super + Y`            | Abra o Yazi.                         |
| `Super + V`            | Abra o Neovim.                       |
| `Super + M`            | Abra o reprodutor de música/Ncmpcpp. |
| `Super + P`            | Abra o Pavucontrol.                  |
| `Super + T`            | Abra o Telegram.                     |
| `Super + W`            | Abra o WhatsApp.                     |
| `Super + R`            | Abra o RiceEditor.                   |

### Applets do Rofi

| Teclas                                  | Ação                                  |
| --------------------------------------- | ------------------------------------- |
| `Super + Alt + T`                       | Seletor de terminal.                  |
| `Super + Alt + W`                       | Seletor de papel de parede.           |
| `Super + Alt + A`                       | Applet de montagem de Android.        |
| `Super + Alt + N`                       | Gerenciador de rede.                  |
| `Super + Alt + B`                       | Gerenciador de Bluetooth.             |
| `Super + Alt + C`                       | Gerenciador da área de transferência. |
| `Super + Alt + S`                       | Ferramenta de captura de tela.        |
| `Super + Alt + P`                       | Menu de energia.                      |
| `Super + Alt + L`                       | Seletor de estilo do lançador Rofi.   |
| `Super + Alt + K`                       | Applet de layout de teclado.          |
| `Super + Alt + X`                       | Applet RofiPass/senha.                |
| `Clique com o botão direito no desktop` | Abra o Jgmenu.                        |

### Sistema e ambiente

| Teclas                   | Ação                                        |
| ------------------------ | ------------------------------------------- |
| `Super + Alt + O`        | Scratchpad.                                 |
| `Ctrl + Super + Alt + P` | Desligue o computador.                      |
| `Ctrl + Super + Alt + R` | Reinicie o computador.                      |
| `Ctrl + Super + Alt + Q` | Encerre a sessão.                           |
| `Ctrl + Super + Alt + L` | Bloqueie a tela.                            |
| `Ctrl + Super + Alt + K` | Encerre o aplicativo com `xkill`.           |
| `Ctrl + Super + Alt + S` | Recarregamento suave.                       |
| `Super + Alt + H`        | Oculte a barra.                             |
| `Super + Alt + U`        | Mostre a barra.                             |
| `Ctrl + Alt + Plus`      | Aumente a transparência da janela em foco.  |
| `Ctrl + Alt + Minus`     | Diminua a transparência da janela em foco.  |
| `Ctrl + Alt + T`         | Redefina a transparência da janela em foco. |
| `XF86MonBrightnessUp`    | Aumente o brilho.                           |
| `XF86MonBrightnessDown`  | Diminua o brilho.                           |
| `XF86AudioRaiseVolume`   | Aumente o volume.                           |
| `XF86AudioLowerVolume`   | Diminua o volume.                           |
| `XF86AudioMute`          | Alterne o mudo.                             |
| `XF86AudioNext`          | Próxima faixa de mídia.                     |
| `XF86AudioPrev`          | Faixa de mídia anterior.                    |
| `XF86AudioPlay`          | Reproduza/pausa a mídia.                    |
| `XF86AudioStop`          | Parar a mídia.                              |

### BSPWM Core

| Teclas              | Ação                            |
| ------------------- | ------------------------------- |
| `Super + Alt + R`   | Recarregue o BSPWM.             |
| `Super + X`         | Fechar o nó em foco.            |
| `Super + Shift + X` | Encerrar o nó em foco.          |
| `Super + Escape`    | Recarregar os atalhos do sxhkd. |

### Estados e sinalizadores dos nós

| Teclas            | Ação                                            |
| ----------------- | ----------------------------------------------- |
| `Alt + T`         | Definir nó como em mosaico.                     |
| `Alt + Shift + T` | Definir nó como pseudo-mosaico.                 |
| `Alt + A`         | Definir nó como flutuante.                      |
| `Alt + F`         | Definir nó em tela cheia.                       |
| `Alt + M`         | Alternar sinalizador marcado.                   |
| `Alt + X`         | Alternar sinalizador bloqueado.                 |
| `Alt + S`         | Alternar sinalizador fixo.                      |
| `Alt + P`         | Alternar sinalizador privado.                   |
| `Alt + H`         | Ocultar janela em foco.                         |
| `Ctrl + Alt + H`  | Mostrar menu para restaurar as janelas ocultas. |

### Áreas de trabalho e foco

| Teclas                                     | Ação                                                               |
| ------------------------------------------ | ------------------------------------------------------------------ |
| `Ctrl + Tab`                               | Rotacionar a área de trabalho.                                     |
| `Super + Left`                             | Alternar para a área de trabalho anterior.                         |
| `Super + Right`                            | Alternar para a próxima área de trabalho.                          |
| `Super + 1` para `Super + 9`               | Focar as áreas de trabalho de 1 a 9.                               |
| `Super + 0`                                | Focar a área de trabalho 10.                                       |
| `Super + Ctrl + 1` para `Super + Ctrl + 9` | Enviar a janela em foco para as áreas de trabalho de 1 a 9.        |
| `Super + Ctrl + 0`                         | Enviar a janela em foco para a área de trabalho 10.                |
| `Super + Ctrl + Left`                      | Enviar a janela em foco para a área de trabalho anterior e seguir. |
| `Super + Ctrl + Right`                     | Enviar a janela em foco para a próxima área de trabalho e seguir.  |
| `Alt + Tab`                                | Alternador de janelas.                                             |
| `Super + Alt + Left`                       | Focar a janela a oeste, alternativa: anterior.                     |
| `Super + Alt + Down`                       | Focar a janela ao sul.                                             |
| `Super + Alt + Up`                         | Focar a janela ao norte.                                           |
| `Super + Alt + Right`                      | Focar a janela a leste, alternativa: próxima.                      |
| `Ctrl + Alt + Left`                        | Trocar a janela em foco para o oeste.                              |
| `Ctrl + Alt + Down`                        | Trocar a janela em foco para o sul.                                |
| `Ctrl + Alt + Up`                          | Trocar a janela em foco para o norte.                              |
| `Ctrl + Alt + Right`                       | Trocar a janela em foco para o leste.                              |
| `Ctrl + Shift + Comma`                     | Focar o último nó.                                                 |
| `Ctrl + Shift + Period`                    | Focar a última área de trabalho.                                   |

### Pré-seleção

| Teclas             | Ação                                     |
| ------------------ | ---------------------------------------- |
| `Super + Ctrl + H` | Pré-selecionar divisão horizontal/leste. |
| `Super + Ctrl + V` | Pré-selecionar divisão vertical/sul.     |
| `Super + Ctrl + Q` | Cancelar a pré-seleção.                  |

### Mover e redimensionar

| Teclas                  | Ação                                      |
| ----------------------- | ----------------------------------------- |
| `Super + Ctrl + B`      | Equilibrar os nós da área de trabalho.    |
| `Super + Alt + Plus`    | Aumentar o tamanho do nó em mosaico.      |
| `Super + Alt + Minus`   | Diminuir o tamanho do nó em mosaico.      |
| `Super + Ctrl + Plus`   | Aumentar o tamanho do nó flutuante.       |
| `Super + Ctrl + Minus`  | Diminuir o tamanho do nó flutuante.       |
| `Super + Shift + Left`  | Mover a janela flutuante para a esquerda. |
| `Super + Shift + Down`  | Mover a janela flutuante para baixo.      |
| `Super + Shift + Up`    | Mover a janela flutuante para cima.       |
| `Super + Shift + Right` | Mover a janela flutuante para a direita.  |

### Operação múltipla

| Teclas                           | Ação                                                                          |
| -------------------------------- | ----------------------------------------------------------------------------- |
| `Super + Ctrl + X`               | Fechar todos os nós na área de trabalho atual.                                |
| `Super + N`, depois `X`          | Fechar todas as janelas locais sem foco.                                      |
| `Super + N`, depois `K`          | Encerrar todas as janelas locais sem foco.                                    |
| `Super + N`, depois `M`          | Trazer todas as janelas marcadas para a área de trabalho em foco.             |
| `Super + N`, depois `1` para `9` | Trazer todas as janelas dessa área de trabalho para a área de trabalho atual. |

## Personalização comum

### Alterar tema

Use:

```
Alt + Space
```

Escolha um tema no seletor. O ambiente é atualizado sem precisar reiniciar a sessão inteira.

### Alterar papel de parede

Use:

```
Super + Alt + W
```

O projeto oferece suporte a papéis de parede aleatórios, diretórios personalizados, papéis de parede fixos, papéis de parede animados e comportamento de apresentação de slides.

### Editar o tema atual

Use o RiceEditor quando quiser ajustar as configurações visuais sem editar manualmente cada módulo:

```
RiceEditor
```

As edições típicas incluem bordas, sombras, animações, transparência, comportamento do papel de parede e configurações de módulos específicos do tema.

## Solução de problemas

| Problema                                   | O que verificar                                                                       |
| ------------------------------------------ | ------------------------------------------------------------------------------------- |
| O login retorna ao gerenciador de exibição | Confirme se a sessão BSPWM está instalada e revise `~/.xsession-errors`.              |
| Os módulos da barra estão errados          | Verifique `~/.config/bspwm/config/system.ini`.                                        |
| O applet de rede não funciona              | Confirme se o NetworkManager está instalado e em execução.                            |
| Os gráficos da VM parecem quebrados        | Tente o backend do Picom `xrender` em vez de `glx`.                                   |
| Os atalhos de teclado falham               | Verifique `sxhkd` está em execução e revise `~/.config/bspwm/config/sxhkdrc`.         |
| O tema parece desalinhado                  | O projeto foi projetado para 1600x900 e 96 DPI; ajuste para o seu monitor.            |
| As configurações existentes desapareceram  | Verifique a pasta de backup criada pelo instalador e a sua própria `dotfiles-backup`. |

## Notas para reinstalação limpa

Para a tentativa mais segura:

1. Faça backup dos seus arquivos atuais.
2. Remova ou mova os diretórios antigos de dotfiles.
3. Baixe novamente o mais recente `RiceInstaller`.
4. Revise o script novamente.
5. Execute-o a partir de `$HOME` como usuário normal.

Não execute instaladores modificados aleatórios de forks de terceiros, a menos que você tenha revisado o diff.

## Referências

* [repositório oficial gh0stzk/dotfiles](https://github.com/gh0stzk/dotfiles)
* [RiceInstaller](https://github.com/gh0stzk/dotfiles/blob/master/RiceInstaller)
* [Primeiros passos após a instalação](https://github.com/gh0stzk/dotfiles/wiki/First-steps-after-installation)
* [wiki de atalhos de teclado](https://github.com/gh0stzk/dotfiles/wiki/Keyboard-Shortcuts)
* [arquivo atual de atalhos do sxhkdrc](https://github.com/gh0stzk/dotfiles/blob/master/config/bspwm/config/sxhkdrc)
* [wiki de configuração de papéis de parede](https://github.com/gh0stzk/dotfiles/wiki/Wallpapers-Configuration)
* [ArchWiki: bspwm](https://wiki.archlinux.org/title/Bspwm)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/pt-br/useful-resources/gh0stzk-bspwm-dotfiles.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
