Skip to content

yoodreamer/AutoBSPWM

Repository files navigation

Entorno de administrador de ventanas BSPWM completo

Imagen


👋 Bienvenido

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.


🚀 Características

Fatfetch

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 de Hack The Box, Try Hack Me u 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 de eww el 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

Configuración de Neovim usando NvChad, potente y altamente personalizable.


🎯 Plugins principales


🎨 UI / Interfaz


⚙️ Plugins de la comunidad nvzone


📝 Markdown

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.

Temas

Este repositorio a a día de hoy cuenta con lo que son los temas. A diferencia de los temas que tiene el señor **gh0stzk**, este tema SOLO cambia la paleta de colores de todo el entorno. Claro y cuando digo todo, esto incluye lo siguiente:
  • 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.

image

Actualmente este repositorio solo cuenta con 5 temas

  • Default
  • Mocha
  • Macchiato
  • Frappe
  • Latte

Aqui, algunas previews

Default
image
Mocha
image
Macchiato
image
Frappe
image
Latte
image

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!


🎨 Lanzadores

Selector de Wallpapers
WallSelector
Selector de menu de apagado
PowerMenu
Selector de aplicaciones
Rofi

Rice Editor

ShowCase.Rice.Editor.mp4

Fzf tab completion

image
systemctl, cat, kill, git, nmap, kitty y más!

Eww widget

Calendario
Eww

Bloqueador de pantalla

BLockScreen
Bloqueador de pantalla

JGmenu

JgMenu
JGmenu

Neovim Setup

NvimDots
Neovim Setup

Note

Si deseas ver todos los comandos posibles de Neovim (NvChad) puedes ejecutar en el cmd de nvim lo siguiente

NvCheatsheet

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

Scratchpad

2026-01-31.01-18-04.mp4

Atajos de teclado ⌨

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)

👀 Instalación

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

Tip

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

📖 Recursos adicionales para el aprendizaje

Los siguientes recursos comunitarios y oficiales pueden ayudar a los usuarios a aprender conceptos de bspwm más allá de los archivos de configuración:


😵‍💫 Problemas y errores comunes

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.

BSPWM FIXES

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages