mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-06 05:25:41 -05:00
* implemented logic for wezterm theming added matugen configs and dank16 functions, updated matugen worked scripta * fixed theme dir fixed path and moved output location to default wezterm dir
141 lines
2.9 KiB
Go
141 lines
2.9 KiB
Go
package dank16
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
func GenerateJSON(colors []string) string {
|
|
colorMap := make(map[string]string)
|
|
|
|
for i, color := range colors {
|
|
colorMap[fmt.Sprintf("color%d", i)] = color
|
|
}
|
|
|
|
marshalled, _ := json.Marshal(colorMap)
|
|
|
|
return string(marshalled)
|
|
}
|
|
|
|
func GenerateKittyTheme(colors []string) string {
|
|
kittyColors := []struct {
|
|
name string
|
|
index int
|
|
}{
|
|
{"color0", 0},
|
|
{"color1", 1},
|
|
{"color2", 2},
|
|
{"color3", 3},
|
|
{"color4", 4},
|
|
{"color5", 5},
|
|
{"color6", 6},
|
|
{"color7", 7},
|
|
{"color8", 8},
|
|
{"color9", 9},
|
|
{"color10", 10},
|
|
{"color11", 11},
|
|
{"color12", 12},
|
|
{"color13", 13},
|
|
{"color14", 14},
|
|
{"color15", 15},
|
|
}
|
|
|
|
var result strings.Builder
|
|
for _, kc := range kittyColors {
|
|
fmt.Fprintf(&result, "%s %s\n", kc.name, colors[kc.index])
|
|
}
|
|
return result.String()
|
|
}
|
|
|
|
func GenerateFootTheme(colors []string) string {
|
|
footColors := []struct {
|
|
name string
|
|
index int
|
|
}{
|
|
{"regular0", 0},
|
|
{"regular1", 1},
|
|
{"regular2", 2},
|
|
{"regular3", 3},
|
|
{"regular4", 4},
|
|
{"regular5", 5},
|
|
{"regular6", 6},
|
|
{"regular7", 7},
|
|
{"bright0", 8},
|
|
{"bright1", 9},
|
|
{"bright2", 10},
|
|
{"bright3", 11},
|
|
{"bright4", 12},
|
|
{"bright5", 13},
|
|
{"bright6", 14},
|
|
{"bright7", 15},
|
|
}
|
|
|
|
var result strings.Builder
|
|
for _, fc := range footColors {
|
|
fmt.Fprintf(&result, "%s=%s\n", fc.name, strings.TrimPrefix(colors[fc.index], "#"))
|
|
}
|
|
return result.String()
|
|
}
|
|
|
|
func GenerateAlacrittyTheme(colors []string) string {
|
|
alacrittyColors := []struct {
|
|
section string
|
|
name string
|
|
index int
|
|
}{
|
|
{"normal", "black", 0},
|
|
{"normal", "red", 1},
|
|
{"normal", "green", 2},
|
|
{"normal", "yellow", 3},
|
|
{"normal", "blue", 4},
|
|
{"normal", "magenta", 5},
|
|
{"normal", "cyan", 6},
|
|
{"normal", "white", 7},
|
|
{"bright", "black", 8},
|
|
{"bright", "red", 9},
|
|
{"bright", "green", 10},
|
|
{"bright", "yellow", 11},
|
|
{"bright", "blue", 12},
|
|
{"bright", "magenta", 13},
|
|
{"bright", "cyan", 14},
|
|
{"bright", "white", 15},
|
|
}
|
|
|
|
var result strings.Builder
|
|
currentSection := ""
|
|
for _, ac := range alacrittyColors {
|
|
if ac.section != currentSection {
|
|
if currentSection != "" {
|
|
result.WriteString("\n")
|
|
}
|
|
fmt.Fprintf(&result, "[colors.%s]\n", ac.section)
|
|
currentSection = ac.section
|
|
}
|
|
fmt.Fprintf(&result, "%-7s = '%s'\n", ac.name, colors[ac.index])
|
|
}
|
|
return result.String()
|
|
}
|
|
|
|
func GenerateGhosttyTheme(colors []string) string {
|
|
var result strings.Builder
|
|
for i, color := range colors {
|
|
fmt.Fprintf(&result, "palette = %d=%s\n", i, color)
|
|
}
|
|
return result.String()
|
|
}
|
|
|
|
func GenerateWeztermTheme(colors []string) string {
|
|
var result strings.Builder
|
|
labels := []string{"ansi", "brights"}
|
|
for j, label := range labels {
|
|
start := j * 8
|
|
colorSlice := make([]string, 8)
|
|
for i, color := range colors[start : start+8] {
|
|
colorSlice[i] = fmt.Sprintf("'%s'", color)
|
|
}
|
|
fmt.Fprintf(&result, "%s = [%s]\n", label, strings.Join(colorSlice, ", "))
|
|
}
|
|
return result.String()
|
|
}
|