matugen theming for vicinae launcher

do not overwrite logo if it exists
This commit is contained in:
Sridou
2025-10-20 12:10:09 +05:30
parent 2362dca8b6
commit 165ef4c9bc
7 changed files with 183 additions and 2 deletions
+140
View File
@@ -0,0 +1,140 @@
# Vicinae Matugen Theme Template
# Used LLM for initial generation, then modified to a satisfactory level
[meta]
name = "Matugen"
description = "Material You theme generated by Matugen - {{mode}} variant"
variant = "{{mode}}"
icon = "noctalia.svg"
# ============================================================================
# Core Colors
# ============================================================================
# Foundation colors that define the entire theme's personality
# Uses Material You's semantic color system for perfect harmony
[colors.core]
accent = "{{colors.primary.default.hex}}"
accent_foreground = "{{colors.on_primary.default.hex}}"
background = "{{colors.surface.default.hex}}"
foreground = "{{colors.on_surface.default.hex}}"
secondary_background = "{{colors.surface_container.default.hex}}"
border = "{{colors.outline_variant.default.hex}}"
# ============================================================================
# Window-Specific Colors
# ============================================================================
# Different borders for visual hierarchy between window types
[colors.main_window]
border = "{{colors.outline_variant.default.hex}}"
[colors.settings_window]
border = "{{colors.outline.default.hex}}"
# ============================================================================
# Accent Colors
# ============================================================================
# Complete color palette using Material You's harmonious color generation
# Maps to various UI elements throughout Vicinae
[colors.accents]
blue = "{{colors.primary.default.hex}}"
green = "{{colors.tertiary.default.hex}}"
magenta = "{{colors.secondary.default.hex}}"
orange = "{{colors.error.default.hex}}"
red = "{{colors.error.default.hex}}"
yellow = "{{colors.tertiary.default.hex}}"
cyan = "{{colors.primary.default.hex}}"
purple = "{{colors.secondary.default.hex}}"
# ============================================================================
# Text Colors
# ============================================================================
# Semantic text colors for all states and contexts
[colors.text]
default = "{{colors.on_surface.default.hex}}"
muted = "{{colors.on_surface_variant.default.hex}}"
danger = "{{colors.error.default.hex}}"
success = "{{colors.tertiary.default.hex}}"
placeholder = "{{colors.on_surface_variant.default.hex}}"
[colors.text.selection]
background = "{{colors.primary.default.hex}}"
foreground = "{{colors.on_primary.default.hex}}"
[colors.text.links]
default = "{{colors.primary.default.hex}}"
visited = "{{colors.secondary.default.hex}}"
# ============================================================================
# Input Fields
# ============================================================================
# Text inputs, search boxes with proper focus states
[colors.input]
border = "{{colors.outline.default.hex}}"
border_focus = "{{colors.primary.default.hex}}"
border_error = "{{colors.error.default.hex}}"
# ============================================================================
# Buttons
# ============================================================================
# All button states with subtle hover effects and focus indicators
[colors.button.primary]
background = "{{colors.surface_container_high.default.hex}}"
foreground = "{{colors.on_surface.default.hex}}"
[colors.button.primary.hover]
background = { name = "{{colors.surface_container_highest.default.hex}}", opacity = 0.85 }
[colors.button.primary.focus]
outline = "colors.core.accent"
# ============================================================================
# Lists
# ============================================================================
# Horizontal list views with elevation-based selection
[colors.list.item.hover]
background = { name = "{{colors.surface_container_high.default.hex}}", opacity = 0.7 }
foreground = "{{colors.on_surface.default.hex}}"
[colors.list.item.selection]
background = { name = "{{colors.primary_container.default.hex}}", opacity = 0.5 }
foreground = "{{colors.on_primary_container.default.hex}}"
secondary_background = "{{colors.primary_container.default.hex}}"
secondary_foreground = "{{colors.on_primary_container.default.hex}}"
# ============================================================================
# Grid Items
# ============================================================================
# Grid layouts (icon grids, tiles) with outline-based selection
[colors.grid.item]
background = "{{colors.surface_container.default.hex}}"
[colors.grid.item.hover]
outline = { name = "{{colors.primary.default.hex}}", opacity = 0.6 }
[colors.grid.item.selection]
outline = { name = "{{colors.primary.default.hex}}", opacity = 0.9 }
# ============================================================================
# Scrollbars
# ============================================================================
# Subtle scrollbar styling
[colors.scrollbars]
background = { name = "{{colors.on_surface.default.hex}}", opacity = 0.2 }
# ============================================================================
# Loading Indicators
# ============================================================================
# Progress bars and spinners for loading states
[colors.loading]
bar = "{{colors.primary.default.hex}}"
spinner = "{{colors.primary.default.hex}}"
+4
View File
@@ -573,6 +573,10 @@
"description": "Write {filepath} and reload",
"description-missing": "Requires {app} to be installed"
},
"vicinae": {
"description": "Write {filepath} and reload",
"description-missing": "Requires {app} to be installed"
},
"discord": {
"description": "Write {filepath} for {client}",
"description-missing": "No Discord client detected. Install vencord, vesktop, webcord, armcord, equibop, lightcord, or dorion."