WallTheme est un générateur de thème terminal mis en œuvre dans Rust. Il extrait les couleurs d'une image et les applique à des modèles prédéfinis pour générer des thèmes pour les émulateurs terminaux, les éditeurs de texte et d'autres applications. L'outil prend en charge toutes les couleurs standard (noir, rouge, blanc, etc.) et comprend une couleur orange supplémentaire spécifiquement pour Zellij .
WallTheme est livré avec plusieurs modèles et exemple de scripts pour faciliter la personnalisation.
# 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 . Pour générer un thème:
walltheme < image-path >walltheme ~ /Pictures/wallpaper.png Cette commande extrait les couleurs de wallpaper.png , génère des fichiers de configuration à l'aide de modèles à partir de ~/.config/walltheme/templates et les enregistre dans ~/.cache/walltheme/ .
WallTheme utilise des modèles pour formater les fichiers de thème générés. Les espaces réservés sont remplacés par des couleurs extraites. Ces modèles sont générés par le guidon.
#{{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 le modèle a également besoin d'appareils électroménagers pour certaines configuration comme oh-my-osh, vous pouvez utiliser la syntaxe suivante:
{{keep "info to keep betwwen braces"}}
WallTheme comprend des modèles pour:
Les modèles sont situés dans les templates/ répertoire. Pour les utiliser, copiez le modèle souhaité sur ~/.config/walltheme/templates/ et modifiez-le au besoin.
Vous pouvez personnaliser WallTheme en créant ou en modifiant un fichier config situé à ~/.config/walltheme/config . Ce fichier vous permet d'affiner le comportement de la génération de thème, y compris les paramètres de palette et les seuils.
[ 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 : facteur de mélange pour les couleurs de mélange.distance_threshold : Seuil pour le filtrage de la distance de la couleur.palette_quality : qualité de l'extraction de la palette.palette_max_colors : nombre maximum de couleurs à extraire.brighter_factor : Facteur pour ajuster la luminosité des couleurs.bright_min : seuil de luminosité minimale.stdout_template : modèle pour la sortie standard.opacity_target : Target Opacité pour les couleurs.Vous pouvez définir ces options en fonction de vos préférences et de votre flux de travail.
Un exemple pour ma configuration est dans les scripts/examples/ répertoire. Il comprend un script qui définit le fond d'écran et génère des thèmes pour Kitty, Waybar et Zellij.
Pour intégrer cela à Neovim, j'avais fait un plugin qui utilise le thème généré pour définir le ColorScheme. Vous pouvez le trouver wallTheme.nvim
Les contributions sont les bienvenues! N'hésitez pas à ouvrir un problème ou à soumettre une demande de traction.
git checkout -b feature/your-feature .git commit -m "Add your feature" .git push origin feature/your-feature .Ce projet est autorisé sous la licence du MIT. Voir le fichier de licence pour plus de détails.
Un merci spécial à des outils comme Pywal et à l'inspiration des communautés de théâtre terminales.



