Walltheme es un generador de temas terminales implementado en Rust. Extrae los colores de una imagen y los aplica a plantillas predefinidas para generar temas para emuladores terminales, editores de texto y otras aplicaciones. La herramienta admite todos los colores estándar (negro, rojo, blanco, etc.), e incluye un color naranja adicional específicamente para Zellij .
Walltheme viene con varias plantillas y scripts de ejemplo para facilitar la personalización.
# Clone the repository
mkdir -p ~ /.cache/walltheme/ && mkdir -p ~ /.config/walltheme/templates
git clone https://github.com/JoseMM2002/walltheme.nvim.git
cd walltheme
# Build the project
cargo install --path . Para generar un tema:
walltheme < image-path >walltheme ~ /Pictures/wallpaper.png Este comando extrae colores de wallpaper.png , genera archivos de configuración utilizando plantillas de ~/.config/walltheme/templates y los guarda en ~/.cache/walltheme/ .
WallTheme usa plantillas para formatear los archivos de tema generados. Los marcadores de posición son reemplazados por colores extraídos. Estas plantillas son generadas por el manillar.
#{{black_hex}}
#{{red_hex}}
#{{green_hex}}
#{{blue_hex}}
rgb{{black_rgb}}
rgb{{red_rgb}}
rgb{{green_rgb}}
rgb{{blue_rgb}}
rgba{{black_rgba}}
rgba{{red_rgba}}
rgba{{green_rgba}}
rgba{{blue_rgba}}
Si la plantilla también necesita aparatos ortopédicos para algunas configuraciones como OH-My-Posh, puede usar la siguiente sintaxis:
{{keep "info to keep betwwen braces"}}
Walltheme incluye plantillas para:
Las plantillas se encuentran en las templates/ directorio. Para usarlos, copie la plantilla deseada a ~/.config/walltheme/templates/ y modifíquela según sea necesario.
Puede personalizar WallTheme creando o modificando un archivo config ubicado en ~/.config/walltheme/config . Este archivo le permite ajustar el comportamiento de la generación de temas, incluida la configuración de la paleta y los umbrales.
[ general ]
mix_factor = 0.7 # from 0 to 1
distance_threshold = 0.5 # from 0 to 1
palette_quality = 16 # from 1 to 255
palette_max_colors = 8 # from 1 to 255
brighter_factor = 0.8 # from 0 to 1
bright_min = 20 # from 0 to 255
opacity_target = 50 # from 0 to 255
stdout_template = " colors.sh "mix_factor : Factor de mezcla para mezclar colores.distance_threshold : umbral para el filtrado de distancia de color.palette_quality : calidad de la extracción de la paleta.palette_max_colors : número máximo de colores para extraer.brighter_factor : factor para ajustar el brillo del color.bright_min : umbral de brillo mínimo.stdout_template : plantilla para salida estándar.opacity_target : Opacidad objetivo para los colores.Puede establecer estas opciones para adaptarse a sus preferencias y flujo de trabajo.
Un ejemplo para mi configuración está en los scripts/examples/ directorio. Incluye un script que establece el fondo de pantalla y genera temas para Kitty, Way Bar y Zellij.
Para integrar esto con Neovim, había hecho un complemento que usa el tema generado para establecer el ColorScheme. Puedes encontrarlo walltheme.nvim
¡Las contribuciones son bienvenidas! No dude en abrir un problema o enviar una solicitud de extracción.
git checkout -b feature/your-feature .git commit -m "Add your feature" .git push origin feature/your-feature .Este proyecto tiene licencia bajo la licencia MIT. Consulte el archivo de licencia para obtener más detalles.
Un agradecimiento especial a herramientas como Pywal e inspiración de las comunidades de temas terminales.



