From f05005bfb25c15c7378025cc91c888fe5a02e5b8 Mon Sep 17 00:00:00 2001 From: lucy Date: Tue, 20 Jan 2026 12:33:06 +0100 Subject: [PATCH] initial commit --- config.toml | 58 +++++++++++++++++++++ templates/Colors.qml | 29 +++++++++++ templates/discord.css | 42 +++++++++++++++ templates/fuzzel.ini | 7 +++ templates/gtk.css | 37 ++++++++++++++ templates/hyprland.conf | 5 ++ templates/kitty.conf | 27 ++++++++++ templates/nvim.lua | 110 ++++++++++++++++++++++++++++++++++++++++ templates/qtct.conf | 9 ++++ 9 files changed, 324 insertions(+) create mode 100644 config.toml create mode 100644 templates/Colors.qml create mode 100644 templates/discord.css create mode 100644 templates/fuzzel.ini create mode 100644 templates/gtk.css create mode 100644 templates/hyprland.conf create mode 100644 templates/kitty.conf create mode 100644 templates/nvim.lua create mode 100644 templates/qtct.conf diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..6407a9f --- /dev/null +++ b/config.toml @@ -0,0 +1,58 @@ +[config] +reload_apps = true +# Setze hier dein Wallpaper-Tool (z.B. swww, hyprpaper, swaybg) +# set_wallpaper = true +# wallpaper_tool = "swww" + +[templates.foot] +input_path = "~/.config/matugen/templates/foot.ini" +output_path = "~/.config/foot/colors.ini" + +[templates.waybar] +input_path = "~/.config/matugen/templates/waybar.css" +output_path = "~/.config/waybar/colors.css" + +[templates.nvim] +input_path = "~/.config/matugen/templates/nvim.lua" +output_path = "~/.config/nvim/colors/wallust.lua" + +[templates.gtk3] +input_path = "~/.config/matugen/templates/gtk.css" +output_path = "~/.config/gtk-3.0/colors.css" + +[templates.gtk4] +input_path = "~/.config/matugen/templates/gtk.css" +output_path = "~/.config/gtk-4.0/colors.css" + +[templates.fuzzel] +input_path = "~/.config/matugen/templates/fuzzel.ini" +output_path = "~/.config/fuzzel/colors.ini" + +[templates.vesktop] +input_path = "~/.config/matugen/templates/discord.css" +output_path = "~/.config/vesktop/themes/wallust.css" + +[templates.qt6ct] +input_path = "~/.config/matugen/templates/qtct.conf" +output_path = "~/.config/qt6ct/colors/wallust.conf" + +[templates.qt5ct] +input_path = "~/.config/matugen/templates/qtct.conf" +output_path = "~/.config/qt5ct/colors/wallust.conf" + +[templates.hyprland] +input_path = "~/.config/matugen/templates/hyprland.conf" +output_path = "~/.config/hypr/colors.conf" + +[templates.quickshell] +input_path = "~/.config/matugen/templates/Colors.qml" +output_path = "~/.config/quickshell/Colors.qml" + +[templates.kitty] +input_path = "~/.config/matugen/templates/kitty.conf" +output_path = "~/.config/kitty/colors.conf" +post_hook = "pkill -SIGUSR1 kitty" + +[templates.ghostty] +input_path = "~/.config/matugen/templates/ghostty" +output_path = "~/.config/ghostty/colors" diff --git a/templates/Colors.qml b/templates/Colors.qml new file mode 100644 index 0000000..776cc98 --- /dev/null +++ b/templates/Colors.qml @@ -0,0 +1,29 @@ +pragma Singleton +import QtQuick +import Quickshell + +Singleton { + id: customColors + // Core Backgrounds + readonly property color background: "{{colors.background.default.hex}}" + readonly property color foreground: "{{colors.on_background.default.hex}}" + readonly property color cursor: "{{colors.primary.default.hex}}" + + // Mapping Material Colors to the 16 slots + readonly property color color0: "{{colors.surface.default.hex}}" + readonly property color color1: "{{colors.error.default.hex}}" + readonly property color color2: "{{colors.primary.default.hex}}" + readonly property color color3: "{{colors.tertiary.default.hex}}" + readonly property color color4: "{{colors.secondary.default.hex}}" + readonly property color color5: "{{colors.primary_container.default.hex}}" + readonly property color color6: "{{colors.secondary_container.default.hex}}" + readonly property color color7: "{{colors.on_surface.default.hex}}" + readonly property color color8: "{{colors.surface_variant.default.hex}}" + readonly property color color9: "{{colors.error_container.default.hex}}" + readonly property color color10: "{{colors.inverse_primary.default.hex}}" + readonly property color color11: "{{colors.on_tertiary_container.default.hex}}" + readonly property color color12: "{{colors.on_secondary_container.default.hex}}" + readonly property color color13: "{{colors.on_primary_container.default.hex}}" + readonly property color color14: "{{colors.on_surface_variant.default.hex}}" + readonly property color color15: "{{colors.inverse_surface.default.hex}}" +} diff --git a/templates/discord.css b/templates/discord.css new file mode 100644 index 0000000..6ae6545 --- /dev/null +++ b/templates/discord.css @@ -0,0 +1,42 @@ +/** + * @name Midnight (Matugen Edition) + */ + +@import url('https://refact0r.github.io/midnight-discord/build/midnight.css'); + +:root { + --font: 'figtree'; + --corner-text: 'Midnight'; + + /* Status Indicators */ + --online-indicator: {{colors.primary.default.hex}}; + --dnd-indicator: {{colors.error.default.hex}}; + --idle-indicator: {{colors.tertiary.default.hex}}; + --streaming-indicator: {{colors.primary_container.default.hex}}; + + /* Accent Colors */ + --accent-1: {{colors.secondary.default.hex}}; + --accent-2: {{colors.on_secondary_container.default.hex}}; + --accent-3: {{colors.secondary_container.default.hex}}; + --accent-4: {{colors.primary.default.hex}}; + --accent-5: {{colors.error.default.hex}}; + + /* Backgrounds */ + --bg-1: {{colors.background.default.hex}}; + --bg-2: {{colors.surface.default.hex}}; + --bg-3: {{colors.background.default.hex}}; + --bg-4: {{colors.background.default.hex}}; + + /* Text Colors */ + --text-0: {{colors.on_background.default.hex}}; + --text-1: {{colors.on_background.default.hex}}; + --text-2: {{colors.on_background.default.hex}}; + --text-3: {{colors.on_background.default.hex}}; + --text-4: {{colors.on_background.default.hex}}; + --text-5: {{colors.surface_variant.default.hex}}; + + /* Popups & Modals */ + --hover: {{colors.secondary.default.hex}}1a; + --active: {{colors.secondary.default.hex}}33; + --message-hover: {{colors.surface.default.hex}}0a; +} diff --git a/templates/fuzzel.ini b/templates/fuzzel.ini new file mode 100644 index 0000000..0fc0c17 --- /dev/null +++ b/templates/fuzzel.ini @@ -0,0 +1,7 @@ +[colors] +background={{colors.background.default.hex_stripped}}ff +text={{colors.on_background.default.hex_stripped}}ff +match={{colors.secondary.default.hex_stripped}}ff +selection={{colors.secondary.default.hex_stripped}}ff +selection-text={{colors.background.default.hex_stripped}}ff +border={{colors.secondary.default.hex_stripped}}ff diff --git a/templates/gtk.css b/templates/gtk.css new file mode 100644 index 0000000..bbde286 --- /dev/null +++ b/templates/gtk.css @@ -0,0 +1,37 @@ +/* GTK3 / GTK4 Color Overrides - Generated by Matugen */ +@define-color accent_color {{colors.secondary.default.hex}}; +@define-color accent_bg_color {{colors.secondary.default.hex}}; +@define-color accent_fg_color {{colors.background.default.hex}}; + +@define-color window_bg_color {{colors.background.default.hex}}; +@define-color window_fg_color {{colors.on_background.default.hex}}; + +@define-color view_bg_color {{colors.background.default.hex}}; +@define-color view_fg_color {{colors.on_background.default.hex}}; + +@define-color headerbar_bg_color {{colors.background.default.hex}}; +@define-color headerbar_fg_color {{colors.on_background.default.hex}}; + +@define-color dialog_bg_color {{colors.background.default.hex}}; +@define-color dialog_fg_color {{colors.on_background.default.hex}}; + +@define-color popover_bg_color {{colors.background.default.hex}}; +@define-color popover_fg_color {{colors.on_background.default.hex}}; + +/* Sidebar / Lists */ +@define-color sidebar_bg_color {{colors.surface.default.hex}}; +@define-color sidebar_fg_color {{colors.on_background.default.hex}}; + +/* Terminal / Darker Elements */ +@define-color card_bg_color {{colors.surface.default.hex}}; +@define-color card_fg_color {{colors.on_background.default.hex}}; + +/* Standard Palette */ +@define-color red_1 {{colors.error.default.hex}}; +@define-color green_1 {{colors.primary.default.hex}}; +@define-color yellow_1 {{colors.tertiary.default.hex}}; +@define-color blue_1 {{colors.secondary.default.hex}}; +@define-color purple_1 {{colors.primary_container.default.hex}}; +@define-color teal_1 {{colors.secondary_container.default.hex}}; +@define-color orange_1 {{colors.tertiary.default.hex}}; +@define-color gray_1 {{colors.surface_variant.default.hex}}; diff --git a/templates/hyprland.conf b/templates/hyprland.conf new file mode 100644 index 0000000..105fc00 --- /dev/null +++ b/templates/hyprland.conf @@ -0,0 +1,5 @@ +# Hyprland with colors from matugen +general { + col.active_border = rgba({{colors.on_background.default.hex_stripped}}ff) + col.inactive_border = rgba({{colors.surface.default.hex_stripped}}ee) +} diff --git a/templates/kitty.conf b/templates/kitty.conf new file mode 100644 index 0000000..0b5db98 --- /dev/null +++ b/templates/kitty.conf @@ -0,0 +1,27 @@ +# The kitty terminal template for matugen +cursor {{colors.primary.default.hex}} + +background {{colors.background.default.hex}} +foreground {{colors.on_background.default.hex}} + +color0 {{colors.surface.default.hex}} +color1 {{colors.error.default.hex}} +color2 {{colors.primary.default.hex}} +color3 {{colors.tertiary.default.hex}} +color4 {{colors.secondary.default.hex}} +color5 {{colors.primary_container.default.hex}} +color6 {{colors.secondary_container.default.hex}} +color7 {{colors.on_surface.default.hex}} +color8 {{colors.surface_variant.default.hex}} +color9 {{colors.error_container.default.hex}} +color10 {{colors.inverse_primary.default.hex}} +color11 {{colors.on_tertiary_container.default.hex}} +color12 {{colors.on_secondary_container.default.hex}} +color13 {{colors.on_primary_container.default.hex}} +color14 {{colors.on_surface_variant.default.hex}} +color15 {{colors.inverse_surface.default.hex}} + +# Matugen filters are slightly different, approximating saturation/lightness logic +mark1_foreground {{colors.secondary_container.default.hex}} +mark2_foreground {{colors.on_surface.default.hex}} +mark3_foreground {{colors.secondary_container.default.hex}} diff --git a/templates/nvim.lua b/templates/nvim.lua new file mode 100644 index 0000000..68d1f16 --- /dev/null +++ b/templates/nvim.lua @@ -0,0 +1,110 @@ +-- Matugen Theme +vim.cmd("hi clear") +if vim.fn.exists("syntax_on") then + vim.cmd("syntax reset") +end +vim.g.colors_name = "matugen" + +local c = { + bg = "{{colors.background.default.hex}}", + fg = "{{colors.on_background.default.hex}}", + cursor = "{{colors.primary.default.hex}}", + c0 = "{{colors.surface.default.hex}}", + c1 = "{{colors.error.default.hex}}", + c2 = "{{colors.primary.default.hex}}", + c3 = "{{colors.tertiary.default.hex}}", + c4 = "{{colors.secondary.default.hex}}", + c5 = "{{colors.primary_container.default.hex}}", + c6 = "{{colors.secondary_container.default.hex}}", + c7 = "{{colors.on_surface.default.hex}}", + c8 = "{{colors.surface_variant.default.hex}}", + c9 = "{{colors.error_container.default.hex}}", + c10 = "{{colors.inverse_primary.default.hex}}", + c11 = "{{colors.on_tertiary_container.default.hex}}", + c12 = "{{colors.on_secondary_container.default.hex}}", + c13 = "{{colors.on_primary_container.default.hex}}", + c14 = "{{colors.on_surface_variant.default.hex}}", + c15 = "{{colors.inverse_surface.default.hex}}", + tbg = "{{colors.background.default.hex}}", -- Matugen filters usually not inline +} + +local hl = function(group, opts) + vim.api.nvim_set_hl(0, group, opts) +end + +-- Base +hl("Normal", { fg = c.fg, bg = c.bg }) +hl("Cursor", { fg = c.bg, bg = c.cursor }) +hl("LineNr", { fg = c.c8 }) +hl("CursorLine", { bg = c.c0 }) +hl("StatusLine", { fg = c.fg, bg = c.c0 }) + +-- Syntax +hl("Comment", { fg = c.c8, italic = true }) +hl("Constant", { fg = c.c3 }) +hl("String", { fg = c.c2 }) +hl("Identifier", { fg = c.c4 }) +hl("Function", { fg = c.c4, bold = true }) +hl("Statement", { fg = c.c5 }) +hl("Keyword", { fg = c.c5 }) +hl("Type", { fg = c.c6 }) +hl("Special", { fg = c.c1 }) + +-- UI +hl("Pmenu", { fg = c.fg, bg = c.c0 }) +hl("PmenuSel", { fg = c.c0, bg = c.c4 }) +hl("WinSeparator", { fg = c.c8 }) + +-- BARBAR +hl("BufferCurrent", { fg = c.fg, bg = c.bg, bold = true }) +hl("BufferCurrentIndex", { fg = c.c4, bg = c.bg }) +hl("BufferCurrentMod", { fg = c.c3, bg = c.bg }) +hl("BufferCurrentSign", { fg = c.c4, bg = c.bg }) +hl("BufferCurrentTarget", { fg = c.c1, bg = c.bg, bold = true }) + +hl("BufferInactive", { fg = c.c8, bg = c.bg }) +hl("BufferInactiveIndex", { fg = c.c8, bg = c.bg }) +hl("BufferInactiveMod", { fg = c.c8, bg = c.bg }) +hl("BufferInactiveSign", { fg = c.c8, bg = c.bg }) +hl("BufferInactiveTarget", { fg = c.c8, bg = c.bg, bold = true }) + +hl("BufferVisible", { fg = c.fg, bg = c.c0 }) +hl("BufferVisibleIndex", { fg = c.fg, bg = c.c0 }) +hl("BufferVisibleMod", { fg = c.c3, bg = c.c0 }) +hl("BufferVisibleSign", { fg = c.c4, bg = c.c0 }) +hl("BufferVisibleTarget", { fg = c.c1, bg = c.c0, bold = true }) + +hl("BufferTabpageFill", { fg = c.c0, bg = c.bg }) +hl("TelescopeNormal", { bg = c.tbg }) + +-- MARKDOWN +hl("RenderMarkdownH1", { fg = c.c4, bold = true }) +hl("RenderMarkdownH2", { fg = c.c3, bold = true }) +hl("RenderMarkdownH3", { fg = c.c2, bold = true }) +hl("RenderMarkdownH4", { fg = c.c5, bold = true }) +hl("RenderMarkdownH5", { fg = c.c6, bold = true }) +hl("RenderMarkdownH6", { fg = c.c1, bold = true }) + +hl("RenderMarkdownH1Bg", { bg = c.c0 }) +hl("RenderMarkdownH2Bg", { bg = c.c0 }) +hl("RenderMarkdownH3Bg", { bg = c.c0 }) +hl("RenderMarkdownH4Bg", { bg = c.c0 }) +hl("RenderMarkdownH5Bg", { bg = c.c0 }) +hl("RenderMarkdownH6Bg", { bg = c.c0 }) + +hl("RenderMarkdownCode", { bg = c.tbg }) +hl("RenderMarkdownCodeInline", { fg = c.c4, bg = c.tbg }) + +hl("RenderMarkdownBullet", { fg = c.c3 }) +hl("RenderMarkdownQuote", { fg = c.c8 }) +hl("RenderMarkdownDash", { fg = c.c8 }) +hl("RenderMarkdownSign", { fg = c.c8 }) + +hl("RenderMarkdownInfo", { fg = c.c4, bg = c.c0 }) +hl("RenderMarkdownSuccess", { fg = c.c2, bg = c.c0 }) +hl("RenderMarkdownWarn", { fg = c.c3, bg = c.c0 }) +hl("RenderMarkdownError", { fg = c.c1, bg = c.c0 }) +hl("RenderMarkdownHint", { fg = c.c6, bg = c.c0 }) + +hl("RenderMarkdownUnchecked", { fg = c.c8 }) +hl("RenderMarkdownChecked", { fg = c.c2 }) diff --git a/templates/qtct.conf b/templates/qtct.conf new file mode 100644 index 0000000..dc4f12c --- /dev/null +++ b/templates/qtct.conf @@ -0,0 +1,9 @@ +[ColorScheme] +# Active +active_colors={{colors.on_background.default.hex}}, {{colors.background.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.on_background.default.hex}}, {{colors.inverse_surface.default.hex}}, {{colors.on_background.default.hex}}, {{colors.background.default.hex}}, {{colors.background.default.hex}}, {{colors.surface.default.hex}}, {{colors.secondary.default.hex}}, {{colors.background.default.hex}}, {{colors.secondary.default.hex}}, {{colors.primary_container.default.hex}}, {{colors.surface.default.hex}}, {{colors.background.default.hex}}, {{colors.surface.default.hex}}, {{colors.on_background.default.hex}}, {{colors.surface_variant.default.hex}} + +# Inactive +inactive_colors={{colors.surface_variant.default.hex}}, {{colors.surface.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.inverse_surface.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.background.default.hex}}, {{colors.background.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.background.default.hex}}, {{colors.secondary.default.hex}}, {{colors.primary_container.default.hex}}, {{colors.surface.default.hex}}, {{colors.background.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface_variant.default.hex}} + +# Disabled +disabled_colors={{colors.surface_variant.default.hex}}, {{colors.surface.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.inverse_surface.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.background.default.hex}}, {{colors.background.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.background.default.hex}}, {{colors.secondary.default.hex}}, {{colors.primary_container.default.hex}}, {{colors.surface.default.hex}}, {{colors.background.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}