Bienvenido a mi AutoBSPWM, me apodo dreamer y soy de Perú.
Estos archivos de configuración fueron hechos para proporcionar un entorno BSPWM ligero, eficiente y funcional. Esta diseñado principalmente para Pentesters pero puede usarse para el día a día. Este entorno es una inspiración hacia los dotfiles del señor gh0stzk, más espeficiamente al tema de Emilia.
Rendimiento
BSPWM se destaca principalmente por ser minimalista y tener un rendimiento optimizado. Si bien es cierto que existe actualmente Wayland que consigo esta Hyprland que es mucho mas popular y tiene consigo muchas mas posibilidades que BSPWM, estos archivos de configuración consumiran mucho menos de 800MB al iniciar. Como se dijo anteriormente, un entorno con Hyprland tiene mucha mas escala a nivel de estetica, pero es que esos entornos comenzarian consumiendo 1GB o mas al arrancar.
Fondo de pantalla con nick personalizado
El instalador, casi al final te pedira que introduzcas tu nick para meterlo al fondo de pantalla. Si no le pasas tu nick usara la variable $USER para meterlo en el fondo de pantalla. De todas formas, tu mismo puedes ejecutar el script y cambiarle el nick cuantas veces quieras.
Multiplataforma
Siempre he visto en comunidades a gente preguntar acerca de un AutoBSPWM para Kali o Parrot. Ahora eso se acabo, porque este instalador hara que la configuración planteada funcione perfectamente. Tanto en Kali Linux como en Parrot OS. Y claro, puedes ejecutar el instalador desde la ruta que sea porque el mismo script se encargara de moverte a donde este el ejecutable.
Este script esta hecho para que funciona en máquinas virtuales, así que si quieres instalarlo en un sistema operativo nativo, tendrás que hacerlo de forma manual. En este caso, el script ahora fue actualizado y ahora es compatible tanto con vmware como con virtualbox, en el sentido de que no importa que virtualizador uses, podras usar la clipboard bidireccional como si nada. Es lo único por lo que yo me preocuparia, porque de resto no hay ningún problema.
Asimismo, me he topado con uno de los grandes problemas a la hora de realizar este proyecto, que es el tema de los repositorios de Backports en Parrot OS. Estos repositorios pueden hacer que tu sistema Parrot sea muy inestable debido. Esto se debe a que Debian en sus repositorios trae binarios/dependencias antiguas pero muy bien probadas y seguras. Por ejemplo imagina que estas instalando nmap y esta requiere libpcap v2 pero wireshark requiere especificamente libpcap v1, ahí esta el problema, incompatibilidad. Estos es solo un ejemplo pero es algo que puede pasarle a cualquiera. Anteriormente para instalar eww, el instalador usaba Docker por detras para poder mostrar los widgets en bspwm, lo cual es innecesario para un simple widget y ya. Ahora el instalador quita los repositorios de backports, actualiza tu sistema y cuando llega la hora de instalar eww el instalador se encarga de downgradear los paquetes que vea necesario para la instalación.
Rice Editor
Esta aplicación esta diseñada para simplificar drasticamente la personalización del entorno. Permite configurar la terminal Kitty en tiempo real sin reiniciar esta misma. Asimismo, me he dado la tarea de crear una libreria en Python llamada CTkFileDialog la cual esta hecha para poder cambiar tu fondo de pantalla sin necesidad de usar el dialogo de archivos que tkinter trae. Y claro, la libreria tiene 2 estilos, uno siendo el Mini y otro el Original pero eso no va al caso.
Para mas información, visitar el repositorio.
Menu contextual
Puedes hacer el clásico click derecho sobre la ventana y veras el clásico menu contextual para poder explorarlo por tu cuenta.
Bloqueador de pantalla
Este bloqueador de pantalla no es mio, es del señor gh0stzk. Pero para explicar en que consiste, tomara una captura de pantalla, la difuminara y la mostrara como pantalla de bloqueo hasta que escribas la contraseña.
Polybar
Esta polybar cuenta con 8 modulos y todos ellos reaccionan al click, a continuación cada modulo.
log: Icono de Arch Linux el cual sera una recreación de fastfetch en una ventana flotante de Kitty.ethernet_status: Modulo para mostrar la dirección IP, esta no depende de que le indiques tu interfaz porque internamente los scripts ya lo hacen. Al hacer click sobre este modulo se copiara a la clipboard la dirección IP notificando al usuario la acción hecha anteriormente.vpn_status: Modulo para mostrar la dirección IP que le puede otorgar una VPN al usuario, puede ser la deHack The Box,Try Hack Meu otra plataforma. Al hacer click, se le notificara al usuario que ha copiado la dirección IP correspondiente y se copiara a la clipboard.updates: Modulo para obtener el numero de paquetes a actualizar, las versiones de paquetes junto a las nuevas que vienen. Al hacer click sobre este modulo se abrira una ventana flotante con Kitty que pedira tu contraseña para hacer esta acción.date: Modulo de Polybar para mostrar la hora y la fecha actual de tú máquina. Al hacer click sobre el icono del calendario se abrira un widget deewwel cual es del gh0stzk.target_to_hack: Modulo de Polybar para fijar un target a la hora de realizar pruebas de penetración. Al hacer click sobre este se copiara a la clipboard la IP de el target y se notificara al usuario.primary: Modulo de Polybar para mostrar el menu de apagado, este contara con 4 opciones. (Bloquear,Apagar,Salir,Reiniciar)prinipal_bar: Sera el frame principal que contenera todas las otras barras dentro como widgets dentro de un frame.
Aplicaciones de Rofi
Aplicaciones de Rofi para optimizar tiempos:
- Selector de fondos de pantalla (Propietario: gh0stzk)
- Menu de apagado
- Selector de Menu de apagado
- Selector de aplicaciones
Configuración de Tmux
Esta configuración de Tmux no es mas que Oh-My-Tmux la cual sirve bastante para simplificar tu flujo de trabajo, dandote una mejor experiencia.
Configuración de Neovim usando NvChad, potente y altamente personalizable.
- stevearc/conform.nvim — Formateador moderno para Neovim
- neovim/nvim-lspconfig — Configuración LSP para Neovim
- hrsh7th/nvim-cmp — Autocompletado principal
- hrsh7th/cmp-nvim-lsp — Fuente LSP para
nvim-cmp - hrsh7th/cmp-buffer — Fuente buffer para
nvim-cmp - hrsh7th/cmp-path — Fuente de rutas para
nvim-cmp - hrsh7th/cmp-cmdline — Fuente de autocompletado para la línea de comandos
- L3MON4D3/LuaSnip — Snippets engine moderno
- karb94/neoscroll.nvim — Scroll suave para Neovim (
Ctrl + U=Up|Ctrl + D=Down) - SuperBo/fugit2.nvim — Interfaz de Git dentro de Neovim
- SelfDreamer/lsp_lines.nvim - Mejora la visualización de mensajes LSP
- folke/snacks.nvim — UI mejorada (pickers, dashboard, indent guides)
- rcarriga/nvim-notify — Notificaciones emergentes en Neovim
- nvzone/volt — Base para otros plugins de
nvzone - nvzone/menu — Menú personalizado
- nvzone/minty — Comandos
ShadesyHuefypara temas - nvzone/floaterm — Terminal flotante
- nvzone/showkeys — Muestra las teclas presionadas en pantalla
- nvzone/typr — Plugin de escritura para mejorar velocidad/precisión
- nvzone/timerly — Temporizador y gestión de tiempo
- MeanderingProgrammer/render-markdown.nvim — Renderizado visual de Markdown
- nvim-treesitter/nvim-treesitter — Dependencia para el plugin de Markdown
- nvim-tree/nvim-web-devicons — Iconos para archivos y UI Configuración de ZSH
Esta configuración de zsh trata de ser minimalista y optima en cuanto a rendimiento respecta, no Oh-My-Zsh ni esas cosas.
Alguna de las caracteristicas que traera la zsh:
pyenv: Función para instalar librerias de Python de forma automatizada en un entorno virtual.- Se excluyen los directorios
__pycache__al ejecutar programas escritos en Python. - Resaltado de sintaxis
- Autocompletado con
Fzf
Emulador de terminal
Estos archivos de configuración usan de emulador de terminal a kitty y la peculiaridad de estos, es que no se limitan a que requieras irte a los archivos de configuración, quitar/agregar algo que quieres y reiniciar... NO! Este repositorio cuenta con un script llamado kitter el cual al terminar la instalación movera ese script a /usr/bin/ para que puedas llamarlo desde cualquier parte del sistema. Este script internamente se encarga de cambiar la estetica de tu emulador de terminal de forma dinámica sin tener que reiniciar la terminal, y lo mejor de todo esto es que los cambios se aplicaran para que cuando reinicies la máquina esos cambios ya esten presentes, es decir, sera algo persistente e instantaneo. De momento, el script solo puede cambiar estas 5 cosas:
font-size: Tamaño de fuente.background-opacity: Opacidad del fondo.background-color: Color del fondo.foreground-color: Color del texto que se muestra en la terminal.font-family: Familia de fuente.tab-style: Estilo de los tabs.
Note
Adicionalmente se agrego el parametro --load-config para cargar algún archivo de configuración que desees en la misma sesión sin recargar o hacer alguna movida extraña.
Pdt: Obviamente este script cuenta con un panel de ayuda por si esto no quedo claro, asi que diviertete!
Y por ultimo y no menos importante, un script llamado upgrader el cual se encargara de actualizar a la ultima versión el binario que le indiques.
Lamentablemente este script no soporta todos los binarios, pero si los siguientes:
Buscador de máquinas
Como se menciono anteriormente, estos archivos de configuración estan hechos para la gente que realiza pentesting. La idea con este buscador es fortalezer tu aprendizaje como Red Teamer brindando un buscador de máquinas hecho en Bash. Este script puede ser ejecutado desde cualquier parte del PATH y con este podemos realizar busquedas avanzadas como se hacia en infosecmachines.io en su momento. Si quieres obtener mas información, visita el repositorio de el buscador, que ya volvio a estar operativo.
- Polybar
- Kitty
- Tema de bat
- Tema de lsd
- Tema de eww
- Tema de rofi
- Tema de zsh-syntax-highlighting
- Tema de FZF
- Tema de PowerLevel10k
- Tema de Dunst
- Muy pronto con nvim.
Y los fondos de pantalla se adaptaran al tema que estes usando, y no, estos cambios no requieren de un reinicio, pero si quieres ver todos los cambios aplicados, deberas de hacer un exec zsh en la terminal que desees ver cambio en la paleta de colores (respecto a terminal, porque el resto de cosas cambian de golpe).
[!TIP] Tip Si deseas cambiar de tema, puedes usar el atajo que viene documentado el cual es Windows + Shift + t. Luego de usar ese atajo, seleccionas tu tema y disfruta de la magia.
Mientras lees esto, te preguntaras. ¿Cuales son los temas que hay? La respuesta es simple, son temas de Catppuccin que fui agarrando de repositorios de el mismo Catppuccin para traerlos a este mismo repositorio.
Actualmente este repositorio solo cuenta con 5 temas
- Default
- Mocha
- Macchiato
- Frappe
- Latte
Aqui, algunas previews
| Default |
|---|
![]() |
| Mocha |
|---|
![]() |
| Macchiato |
|---|
![]() |
| Frappe |
|---|
![]() |
| Latte |
|---|
![]() |
De momento este repositorio solo cuenta con 5 temas, pero pronto tendra soporte para distintos temas que aborden otros entornos, es decir, otra Polybar, otra PowerLevel10k, otro rofi y demás!
| Selector de Wallpapers |
|---|
![]() |
| Selector de menu de apagado |
|---|
![]() |
| Selector de aplicaciones |
|---|
![]() |
ShowCase.Rice.Editor.mp4
![]() |
|---|
| systemctl, cat, kill, git, nmap, kitty y más! |
| Calendario |
|---|
![]() |
![]() |
|---|
| Bloqueador de pantalla |
![]() |
|---|
| JGmenu |
![]() |
|---|
| Neovim Setup |
Note
Si deseas ver todos los comandos posibles de Neovim (NvChad) puedes ejecutar en el cmd de nvim lo siguiente
NvCheatsheetTambién se han añadido 3 atajos al Neovim.
Click derecho= Abrir menu contextual personalizado.Ctrl + P= Abrir el picker.Ctrl + Alt + T= Abrir la terminal flotante.
2026-01-31.01-18-04.mp4
| Combinación | Acción |
|---|---|
| Windows + Enter | Abrir terminal (Kitty) |
| Windows + Shift + E | Abrir Neovim (en Kitty) |
| Windows + Shift + T | Selector de temas de BSPWM |
| Windows + Shift + S | Selector de temas de Polybar / Menú de apagado |
| Windows + Shift + O | Abrir Obsidian |
| Windows + Shift + X | Bloquear pantalla (ScreenLocker) |
| Windows + D | Abrir selector de aplicaciones (Rofi) |
| Windows + W | Selector de wallpapers |
| Windows + Esc | Recargar configuración de sxhkd |
| Windows + Shift + F | Abrir Firefox |
| Windows + Shift + Q | Salir de BSPWM |
| Windows + Shift + R | Reiniciar BSPWM |
| Windows + Q | Cerrar ventana (Cierre suave) |
| Windows + Shift + Q | Forzar cierre de ventana (Kill) |
| Windows + M | Alternar entre layout Tiled y Monocle |
| Windows + Y | Traer ventana marcada a zona preseleccionada |
| Windows + G | Intercambiar ventana actual con la más grande |
| Windows + T | Establecer modo Tiled |
| Windows + Shift + T | Establecer modo Pseudo-Tiled |
| Windows + S | Establecer modo Floating |
| Windows + F | Establecer modo Pantalla completa |
| Windows + Ctrl + M | Marcar ventana |
| Windows + Ctrl + X | Bloquear ventana (Locked) |
| Windows + Ctrl + Y | Hacer ventana "Sticky" (Aparece en todos los escritorios) |
| Windows + Ctrl + Z | Hacer ventana privada |
| Windows + ← ↓ ↑ → | Mover el foco entre ventanas |
| Windows + Shift + ← ↓ ↑ → | Mover/Intercambiar posición de ventana |
| Windows + Alt + ← ↓ ↑ → | Redimensionar ventana (Script personalizado) |
| Windows + Ctrl + Alt + ← ↓ ↑ → | Preselección de dirección para nueva ventana |
| Windows + Ctrl + (1–9) | Preselección de ratio (0.1 a 0.9) |
| Windows + Ctrl + Alt + Espacio | Cancelar preselección del nodo actual |
| Windows + Ctrl + Shift + Espacio | Cancelar todas las preselecciones del escritorio actual |
| Windows + P | Foco al nodo padre |
| Windows + B | Foco al nodo hermano |
| Windows + , | Foco al primer hijo |
| Windows + . | Foco al segundo hijo |
| Windows + C | Foco a la siguiente ventana local |
| Windows + Shift + C | Foco a la ventana anterior local |
| Windows + [ | Ir al escritorio anterior |
| Windows + ] | Ir al escritorio siguiente |
| Windows + ` | Ir al último nodo activo |
| Windows + Tab | Ir al último escritorio activo |
| Windows + O | Foco a ventana más antigua (historial) |
| Windows + I | Foco a ventana más reciente (historial) |
| Windows + (1–9, 0) | Cambiar al escritorio 1-10 |
| Windows + Shift + (1–9, 0) | Mover ventana al escritorio 1-10 |
| Windows + A | Captura de pantalla y copiar al portapapeles |
| Click Derecho (Fondo) | Mostrar menú contextual (jgmenu) |
| Alt + H | Ocultar ventana (Hide node) |
| Ctrl + Alt + H | Menú para restaurar ventanas ocultas |
| Windows + Alt + O | Abrir/Cerrar Scratchpad (Ventana flotante de notas) |
Note
Este script esta pensado para funcionar en Kali Linux y Parrot OS, posiblemente funcione en un debian limpio. Pero realmente no funcionaria en otra distribución, si deseas bajarte los dotfiles y usas otra distro tal vez deberias hacerlo de forma manual.
Caution
Mis archivos de configuración estan pensados para monitores 1920x1080 usando 96 de DPI. Si usas una resolución mas baja o DPI mas bajo, deberas de ajustar los archivos de configuración de forma manual.
# Clonamos el repositorio
git clone https://github.com/SelfDreamer/AutoBSPWM.git
# Navegamos al directorio
cd AutoBSPWM
# Ejecutamos el instalador
./Install.shTip
Algo a tener en cuenta, es que el instalador te pedira un nickname para colocarlo en tu fondo de pantalla. Anteriormente esto tenia un tiempo limite de 50 segundos, y en caso de pasar ese limite, el nickname era la variable "${USER}". En este caso, no hay tiempo limite, asi que si por A|B te vas esperando a que concluya todo como si nada, lamento decirte que no sera asi. Pero no todo es malo, ahora puedes indicarle de antemano el nickname que quieres que se muestre en tu fondo de pantalla personalizado. Más o menos de la siguiente manera
# Tu usuario de nickname
NICKNAME="${USER}" ./Install.sh
# O, meter un nick personalizado
NICKNAME="dreamer" ./Install.shLos siguientes recursos comunitarios y oficiales pueden ayudar a los usuarios a aprender conceptos de bspwm más allá de los archivos de configuración:
- BSPWM Documentación : Documentación official por parte de baskerville/bspwm
- Arch Wiki: bspwm : La documentación de Arch Linux para bspwm
- Doc741 (comunidad-mantenida bspwm documentación) : Una documentación detallada de bspwm
Si por desgracia llegas a tener algún error, puedes visitar el gitbook de pylon. Ahí encontraras solución a varios de los problemas que pueden surgir en bspwm.














