Sistema de escritorio altamente personalizado y automatizado con tematización dinámica por Pywal
- ✨ Características
- 🖼️ Capturas
- 📦 Dependencias
- ⚡ Instalación Rápida
- 📁 Estructura de Archivos
- 🔧 Scripts y Automatización
- 🎨 Componentes Temáticos
- ⚙️ Configuración Detallada
- 🚀 Uso Diario
- 🎯 Personalización Avanzada
- 🔍 Troubleshooting
- 📚 Referencias
- Pywal Integration: Colores automáticos generados desde wallpapers
- Sync Global: Todos los componentes se actualizan automáticamente
- 150+ Wallpapers: Colección curada de fondos de pantalla
- Hotkeys: Cambio rápido de temas y wallpapers
- Hyprlock Matrix: Reloj de palabras animado con efectos Matrix
- Avatar de Usuario: Soporte para ~/.face personalizada
- Efectos Visuales: Blur, sombras y animaciones suaves
- Sonidos: Notificaciones de bloqueo/desbloqueo
- Bibata Personalizado: Cursor generado con colores de pywal
- Auto-build: Construcción automática con
cbmpyctgen - Integración Hyprland: Aplicación automática en el compositor
- Firefox Cascade: Tema completo adaptativo
- TabCenter Reborn: Pestañas laterales con colores dinámicos
- Side View: Panel lateral tematizado
- Backup Automático: Protección de configuraciones
- Spicetify Theme: Tema completo con colores de pywal
- Efectos Visuales: Gradientes, animaciones y glassmorphism
- Auto-apply: Aplicación automática al cambiar wallpaper
- Kitty: Configuración completa con colores adaptativos
- Neovim: Integración con Catppuccin y colores de pywal
- JetBrains Mono: Fuente con ligaduras y símbolos Nerd Font
- SwayNC: Sistema de notificaciones personalizado
- Iconos: Soporte completo para iconos de aplicaciones
- Reglas: Configuraciones específicas por aplicación
- Wlogout: Menú de salida con comandos Hyprland
- Efectos GTK: CSS puro con propiedades oficiales
- Keybinds: Acceso rápido por teclado
| Componente | Preview |
|---|---|
| Desktop | ![]() |
| Terminal | ![]() |
| Lock Screen | ![]() |
| Rofi | ![]() |
| Notifications | ![]() |
| Editor | ![]() |
| Logout | ![]() |
# Compositor y base
hyprland # Compositor Wayland
hyprlock # Locker nativo de Hyprland
wlogout # Menú de logout para Wayland
swaync # Sistema de notificaciones
rofi-wayland # Launcher de aplicaciones
# Terminal y shell
kitty # Emulador de terminal
zsh # Shell avanzado# Pywal y herramientas de color
python-pywal # Generador de paletas de colores
python-pillow # Procesamiento de imágenes para pywal# Herramientas de construcción de cursor
yarn # Gestor de paquetes de Node.js
npm # Node Package Manager
cbmp # Cursor bitmap processor (npm install -g cbmp)
ctgen # Cursor theme generator (cargo install ctgen)# Navegador y multimedia
firefox # Navegador web
spotify # Reproductor de música (AUR)
spicetify-cli # CLI para personalizar Spotify
# Editor
neovim # Editor de texto moderno# Utilidades de imagen y sistema
grim # Captura de pantalla en Wayland
imagemagick # Procesamiento de imágenes
file # Identificador de tipos de archivosudo pacman -S hyprland hyprlock wlogout swaync rofi-wayland \
kitty zsh python-pywal python-pillow firefox \
neovim grim imagemagick file yarn npm# Spotify y herramientas de cursor
paru -S spotify spicetify-cli
# Herramientas de cursor (alternativa)
paru -S cursor-toolbox # Incluye ctgen# Herramientas de construcción de cursor
npm install -g cbmp
cargo install ctgen# Configuración inicial de Spicetify
spicetify config inject_css 1 replace_colors 1 overwrite_assets 1
spicetify backup apply# Navegar al directorio del usuario
cd ~/
# Los archivos del rice deben estar en /home/h3n/Home/USER/
# Estructura esperada:
# ~/Rice/
# ├── Scripts/
# ├── Wallpapers/
# ├── Bibata_Cursor/
# └── Notifications/# Instalar paquetes base
sudo pacman -S hyprland hyprlock wlogout swaync rofi-wayland \
kitty zsh python-pywal python-pillow firefox \
neovim grim imagemagick file yarn npm
# Instalar desde AUR
paru -S spotify spicetify-cli cursor-toolbox
# Herramientas de cursor
npm install -g cbmp
cargo install ctgen# Copiar tu foto de perfil
cp /ruta/a/tu/foto.jpg ~/.face
# O descargar desde GitHub
wget -O ~/.face 'https://github.com/tuusuario.png'# Setup inicial
spicetify config inject_css 1 replace_colors 1 overwrite_assets 1
spicetify backup apply# Navegar a los scripts
cd ~/Rice/Scripts/
# Hacer ejecutables
chmod +x *.sh
# Configurar hyprlock con matrix
./setup_hyprlock.sh
# Aplicar primer wallpaper y generar colores
wal -i ~/Rice/Wallpapers/imagen_001.png
# Configurar cursor personalizado
./update-hyprland-cursor.sh
# Aplicar temas a todas las aplicaciones
./update-kitty-colors.sh
./update-wlogout-colors.sh
./update-spicetify-colors.sh
./update-firefox-all.sh/home/h3n/Home/USER/
├── 📄 README.md # Esta documentación
├── 🖼️ *.png # Capturas de pantalla
│
├── 📁 Rice/
│ ├── 📁 Scripts/ # Scripts de automatización
│ │ ├── 🔒 lockscreen.sh # Script de bloqueo básico
│ │ ├── ⚙️ setup_hyprlock.sh # Configuración inicial de hyprlock
│ │ ├── 🎨 generate_matrix_hyprlock.sh # Generador de tema matrix
│ │ ├── ⏰ word_clock_matrix.sh # Reloj de palabras para lock
│ │ ├── 🎨 update_hyprlock_colors.sh # Actualizar colores hyprlock
│ │ ├── 🖱️ update-hyprland-cursor.sh # Generar cursor personalizado
│ │ ├── 🎯 update-hyprland-config.sh # Actualizar config Hyprland
│ │ ├── 💻 update-kitty-colors.sh # Actualizar colores Kitty
│ │ ├── 🚪 update-wlogout-colors.sh # Actualizar colores Wlogout
│ │ ├── 🎵 update-spicetify-colors.sh # Actualizar colores Spotify
│ │ ├── 🌐 update-firefox-colors.sh # Actualizar colores Firefox
│ │ ├── 🌐 update-firefox-all.sh # Actualizar todos los CSS Firefox
│ │ ├── 🌐 update-tabcenter-colors.sh # Actualizar TabCenter
│ │ ├── 🌐 update-sideview-colors.sh # Actualizar Side View
│ │ ├── 🌐 update-tcr-colors.sh # Actualizar TCR
│ │ ├── 📝 update-nvim-colors.sh # Actualizar colores Neovim
│ │ └── 👤 check-user-avatar.sh # Verificar avatar usuario
│ │
│ ├── 📁 Wallpapers/ # Colección de fondos (150+ imágenes)
│ │ ├── imagen_001.png
│ │ ├── imagen_002.png
│ │ └── ...
│ │
│ ├── 📁 Bibata_Cursor/ # Repositorio de cursor personalizable
│ │ ├── 📄 build.toml # Configuración de construcción
│ │ ├── 🔧 build.sh # Script de construcción
│ │ ├── 📁 svg/ # Archivos fuente SVG
│ │ ├── 📁 bitmaps/ # Bitmaps generados
│ │ └── 📁 configs/ # Configuraciones por variante
│ │
│ └── 📁 Notifications/ # Sonidos del sistema
│ ├── 🔒 lock.wav # Sonido de bloqueo
│ ├── 🔓 unlock.wav # Sonido de desbloqueo
│ └── ❌ wrong.wav # Sonido de error
│
└── 📊 Configuraciones generadas en ~/.config/
├── hypr/
│ ├── hyprland.conf # Configuración principal Hyprland
│ ├── hyprlock.conf # Configuración lock screen
│ └── scripts/ # Scripts auxiliares
├── kitty/
│ └── kitty.conf # Configuración terminal
├── swaync/
│ └── config.json # Configuración notificaciones
├── wlogout/
│ ├── layout # Layout botones logout
│ ├── style.css # Estilos CSS
│ └── icons/ # Iconos personalizados
├── spicetify/
│ └── Themes/pywal/ # Tema Spotify
└── nvim/
└── lua/plugins/colorscheme.lua # Configuración colores Neovim
Configuración inicial del sistema de bloqueo Matrix.
Funciones:
- Crea directorios necesarios
- Configura scripts ejecutables
- Genera configuración inicial
- Crea hook automático de pywal
- Verifica avatar de usuario
Uso:
./setup_hyprlock.shGenera la configuración completa de hyprlock con efectos Matrix.
Características:
- Reloj de palabras animado
- Efectos de blur y sombras
- Colores dinámicos de pywal
- Soporte para avatar personalizado
- Animaciones suaves
Script del reloj de palabras que se ejecuta cada 500ms.
Características:
- Matriz de 11x11 caracteres
- Palabras resaltadas según la hora
- Colores adaptativos
- Formato 12 horas
- Efectos de atenuación
Script completo para generar cursor personalizado con colores de pywal.
Funciones principales:
- ✅ Verificación de dependencias
- 🎨 Lectura de colores pywal
- 🔨 Generación de cursor con
cbmpyctgen - ⚙️ Actualización de configuración Hyprland
- 🔄 Recarga automática del cursor
- 📋 Creación de scripts de automatización
Dependencias verificadas:
cbmp(npm install -g cbmp)ctgen(cargo install ctgen)npx(Node.js)- Archivos de pywal
- Directorio Bibata_Cursor
Uso:
# Verificar dependencias solamente
./update-hyprland-cursor.sh --check
# Ejecutar sin hacer cambios (dry-run)
./update-hyprland-cursor.sh --dry-run
# Aplicar cursor personalizado
./update-hyprland-cursor.shConfiguración completa de Spotify con Spicetify.
Archivos generados:
color.ini: Configuración de colores principaluser.css: Estilos CSS personalizadosapply-theme.sh: Script de aplicaciónspicetify-aliases.sh: Aliases útilesREADME.md: Documentación específica
Características:
- Gradientes y efectos visuales
- Scrollbar personalizada
- Animaciones suaves
- Controles mejorados
Configuración completa del terminal Kitty.
Características incluidas:
- Fuentes JetBrains Mono Nerd Font
- Colores adaptativos de pywal
- Configuración completa de keybinds
- Soporte para símbolos y emojis
- Configuración de tabs y ventanas
Actualiza todos los componentes CSS de Firefox.
Componentes actualizados:
- cascade-colours.css: Colores principales
- tabcenter-reborn.css: TabCenter Reborn
- cascade-sideview.css: Side View
- cascade-tcr.css: TabCenter Reborn TCR
Configuración avanzada del sistema de notificaciones.
Características:
- Colores adaptativos con transparencia
- Soporte completo para iconos
- Configuración por urgencia
- Reglas específicas por aplicación
- Efectos visuales y animaciones
Configuración completa del menú de logout para Hyprland.
Características:
- JSON válido para layout
- Comandos específicos de Hyprland
- CSS con propiedades GTK oficiales
- Efectos visuales avanzados
- Sistema de automatización
El sistema de bloqueo utiliza un diseño Matrix único con un reloj de palabras.
Estructura visual:
[Avatar Usuario]
↓
[Reloj de Palabras]
↓
[Campo Contraseña]
Características:
- Reloj Matrix: Matriz de 11x11 con palabras resaltadas
- Avatar: Soporte para
~/.facepersonalizada - Efectos: Blur del fondo, sombras, animaciones
- Sonidos: Notificaciones de bloqueo/desbloqueo
Sistema de cursor que se adapta automáticamente a los colores del wallpaper.
Proceso de generación:
- Pywal genera colores desde el wallpaper
- Script lee colores de
~/.cache/wal/colors.scss cbmpgenera bitmaps con colores personalizadosctgenconstruye el cursor final- Se instala automáticamente en
~/.local/share/icons/ - Hyprland se recarga con el nuevo cursor
Colores utilizados:
- Border:
color1(borde principal) - Outline:
color2(contorno) - Watch:
cursor(animación de carga)
Tema completo para Firefox que incluye múltiples componentes.
Componentes:
- Cascade Colours: Colores base del tema
- TabCenter Reborn: Pestañas laterales
- Side View: Panel lateral
- TCR Integration: Integración TabCenter
Archivos CSS actualizados:
~/.mozilla/firefox/*/chrome/includes/cascade-colours.css~/.mozilla/firefox/*/chrome/includes/tabcenter-reborn.css~/.mozilla/firefox/*/chrome/includes/cascade-sideview.css~/.mozilla/firefox/*/chrome/includes/cascade-tcr.css
Tema completo para Spotify con efectos visuales avanzados.
Efectos incluidos:
- Gradientes en botones y barras de progreso
- Glassmorphism en sidebar
- Cards con sombras personalizadas
- Scrollbar tematizada
- Animaciones suaves en hover
Arquitectura:
~/.config/spicetify/Themes/pywal/
├── color.ini # Configuración de colores
├── user.css # Estilos personalizados
├── apply-theme.sh # Script de aplicación
├── spicetify-aliases.sh # Aliases útiles
└── README.md # Documentación
Agregar a ~/.config/hypr/hyprland.conf:
# Sistema de bloqueo
bind = SUPER, L, exec, hyprlock
# Menu de logout
bind = SUPER SHIFT, E, exec, ~/.config/wlogout/launch-wlogout.sh
# Cambiar wallpaper y aplicar tema
bind = SUPER, W, exec, wal -i ~/Rice/Wallpapers/ --random
bind = SUPER SHIFT, W, exec, ~/Rice/Scripts/update-all-colors.sh
# Captura de pantalla con lock
bind = SUPER, P, exec, ~/Rice/Scripts/lockscreen.sh# Cursor personalizado
env = XCURSOR_THEME,Bibata-Wal
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
# Terminal preferido
env = TERMINAL,kittyEl sistema incluye un hook que se ejecuta automáticamente cuando cambias el wallpaper:
Ubicación: ~/.config/wal/templates/
Scripts ejecutados automáticamente:
update_hyprlock_colors.shupdate-hyprland-cursor.shupdate-kitty-colors.shupdate-dunst-colors.shupdate-spicetify-colors.sh
Crear script para actualizar todos los componentes:
#!/bin/bash
# ~/Rice/Scripts/update-all-colors.sh
cd ~/Rice/Scripts/
echo "🎨 Actualizando todos los colores..."
./update_hyprlock_colors.sh
./update-hyprland-config.sh
./update-hyprland-cursor.sh
./update-kitty-colors.sh
./update-dunst-colors.sh
./update-wlogout-colors.sh
./update-spicetify-colors.sh
./update-firefox-all.sh
echo "✅ Todos los colores actualizados!"Características configuradas:
- Fuente: JetBrains Mono Nerd Font
- Tamaño: 12px con ajuste de línea 110%
- Transparencia: 95% de opacidad
- Soporte completo para emojis y símbolos
- Keybinds personalizados
- Configuración de tabs y ventanas
Configuración avanzada:
- Posición: Esquina superior derecha
- Iconos: Soporte completo con múltiples rutas
- Transparencia: 80% de opacidad
- Animaciones: Transiciones suaves
- Reglas: Configuración específica para Spotify
Integración con Catppuccin:
- Tema base: Catppuccin Mocha
- Colores personalizados de pywal
- Integración con plugins populares
- Actualización automática
# Cambiar a wallpaper específico
wal -i ~/Rice/Wallpapers/imagen_001.png
# Wallpaper aleatorio
wal -i ~/Rice/Wallpapers/ --random
# Actualizar manualmente todos los componentes
cd ~/Rice/Scripts/
./update-all-colors.sh# Bloqueo simple
hyprlock
# Bloqueo con captura (para testing)
~/Rice/Scripts/lockscreen.sh# Generar nuevo cursor con colores actuales
cd ~/Rice/Scripts/
./update-hyprland-cursor.sh
# Verificar estado
./update-hyprland-cursor.sh --check# Aplicar tema a Spotify
cd ~/.config/spicetify/Themes/pywal/
./apply-theme.sh
# Cargar aliases útiles
source ~/.config/spicetify/Themes/pywal/spicetify-aliases.sh
# Comandos disponibles después de cargar aliases
spicetify-update # Actualizar colores
spicetify-status # Ver estado
spicetify-edit css # Editar CSS personalizado# Actualizar todos los CSS de Firefox
cd ~/Rice/Scripts/
./update-firefox-all.sh
# Actualizar componente específico
./update-firefox-colors.sh # Colores principales
./update-tabcenter-colors.sh # TabCenter Reborn
./update-sideview-colors.sh # Side View
./update-tcr-colors.sh # TCR# Actualizar configuración
cd ~/Rice/Scripts/
./update-dunst-colors.sh
# Recargar Dunst
killall dunst && dunst &
# Test de notificación
notify-send "Test" "Notificación de prueba"nano ~/.config/hypr/hyprlock.conf# Editar configuración de construcción
nano ~/Rice/Bibata_Cursor/build.toml
# Regenerar con configuración personalizada
cd ~/Rice/Scripts/
./update-hyprland-cursor.sh# Editar estilos
nano ~/.config/spicetify/Themes/pywal/user.css
# Aplicar cambios
spicetify apply# Copiar nuevos wallpapers
cp /ruta/a/nuevos/wallpapers/* ~/Rice/Wallpapers/
# Usar wallpaper específico
wal -i ~/Rice/Wallpapers/tu_nuevo_wallpaper.png#!/bin/bash
# ~/Rice/Scripts/mi-script-personalizado.sh
PYWAL_COLORS="$HOME/.cache/wal/colors.sh"
# Verificar pywal
if [ ! -f "$PYWAL_COLORS" ]; then
echo "❌ No se encontró pywal"
exit 1
fi
# Cargar colores
source "$PYWAL_COLORS"
# Tu lógica aquí
echo "🎨 Colores disponibles:"
echo "Background: $background"
echo "Foreground: $foreground"
echo "Color1: $color1"
# ... etc
# Aplicar a tu aplicación
echo "✅ Script completado"# ~/.config/systemd/user/pywal-theme.service
[Unit]
Description=Apply pywal theme on wallpaper change
After=graphical-session.target
[Service]
Type=oneshot
ExecStart=/home/h3n/Rice/Scripts/update-all-colors.sh
Environment=DISPLAY=%i
[Install]
WantedBy=default.targetsystemctl --user enable pywal-theme.service
systemctl --user start pywal-theme.service# Verificar dependencias
cd ~/Rice/Scripts/
./update-hyprland-cursor.sh --check
# Limpiar cache y regenerar
rm -rf ~/.local/share/icons/Bibata-Wal
./update-hyprland-cursor.sh
# Verificar variables de entorno
echo $XCURSOR_THEME
hyprctl getoption cursor:no_hardware_cursors# Verificar script del reloj
~/.config/hypr/scripts/word_clock_matrix.sh
# Verificar permisos
chmod +x ~/.config/hypr/scripts/word_clock_matrix.sh
# Regenerar configuración
cd ~/Rice/Scripts/
./setup_hyprlock.sh# Verificar instalación
spicetify -v
# Reconfigurar
spicetify config current_theme pywal
spicetify backup apply
# Verificar permisos de Spotify
sudo chmod a+wr /opt/spotify
sudo chmod a+wr /opt/spotify/Apps -R# Verificar que userChrome.css está habilitado en about:config
# toolkit.legacyUserProfileCustomizations.stylesheets = true
# Verificar estructura de archivos
ls -la ~/.mozilla/firefox/*/chrome/includes/
# Ejecutar script específico
cd ~/Rice/Scripts/
./update-firefox-all.shcd ~/Rice/Scripts/
# Verificar avatar
./check-user-avatar.sh
# Estado de cursor
./update-hyprland-cursor.sh --check
# Estado de pywal
wal --version
ls -la ~/.cache/wal/# Logs de Hyprland
journalctl --user -u hyprland
# Logs de notificaciones
journalctl --user -u dunst
# Verificar procesos
ps aux | grep -E "(hyprland|dunst|kitty|spotify)"# Backup automático de Firefox (los scripts crean backups)
ls ~/.mozilla/firefox/*/chrome/includes/backup/
# Restaurar Firefox
cp ~/.mozilla/firefox/*/chrome/includes/backup/cascade-colours.css.bak.* \
~/.mozilla/firefox/*/chrome/includes/cascade-colours.css
# Restaurar Spicetify
spicetify restore
# Regenerar todo desde cero
cd ~/Rice/Scripts/
./setup_hyprlock.sh
wal -i ~/Rice/Wallpapers/imagen_001.png
./update-all-colors.sh- Hyprland - Compositor Wayland dinámico
- Pywal - Generador de paletas de colores
- Bibata Cursor - Cursor personalizable
- Spicetify - Personalizador de Spotify
- Firefox Cascade - Tema Firefox
- Kitty - Terminal moderno
- SwayNC - Sistema de notificaciones
- Wlogout - Menú de logout
- cbmp - Cursor bitmap processor
- ctgen - Cursor theme generator
- JetBrains Mono - Fuente con ligaduras
- Hyprland Wiki - Documentación oficial
- Arch Wiki - Referencia del sistema
- Wayland - Protocolo de display
Este es un proyecto personal, pero las sugerencias y mejoras son bienvenidas. Si encuentras algún problema o tienes ideas para mejorar el sistema, no dudes en compartirlas.
Este proyecto está disponible bajo la licencia MIT. Los componentes individuales mantienen sus respectivas licencias.
Creado por hen-x • GitHub: https://github.com/hen-x
🌟 ¡Disfruta de tu escritorio personalizado! 🌟
Este sistema está diseñado para ser tanto funcional como visualmente impresionante. Cada componente ha sido cuidadosamente integrado para proporcionar una experiencia cohesiva y automática.






