modified: config/Kvantum/kvantum.kvconfig

new file:   config/Kvantum/matugen/matugen.kvconfig
	new file:   config/Kvantum/matugen/matugen.svg
	modified:   config/btop/btop.conf
	new file:   config/btop/themes/matugen.theme
	modified:   config/cava/config
	new file:   config/cava/themes/matugen
	modified:   config/clipse/config.json
	new file:   config/clipse/matugen.json
	modified:   config/fish/config.fish
	modified:   config/fish/fish_variables
	new file:   config/fish/functions/bx.fish
	deleted:    config/fish/functions/fish_prompt.fish
	new file:   config/fish/functions/ntodo.fish
	new file:   config/fish/functions/o.fish
	modified:   config/foot/foot.ini
	new file:   config/foot/themes/input-matugen-theme.ini
	new file:   config/foot/themes/input-matugen-theme.ini.bak
	new file:   config/foot/themes/matugen-theme.ini
	new file:   config/foot/themes/matugen-theme.ini.bak
	modified:   config/foot/themes/theme.ini
	new file:   config/foot/themes/theme.ini.bak
	new file:   config/gtk-2.0/gtkfilechooser.ini
	new file:   config/gtk-3.0/bookmarks
	new file:   config/gtk-3.0/colors.css
	new file:   config/gtk-3.0/colors.css.bak
	new file:   config/gtk-3.0/colors.css.nak
	new file:   config/gtk-3.0/gtk.css
	new file:   config/gtk-3.0/gtk.css.backup
	new file:   config/gtk-3.0/gtk.css.backup.1776208757
	new file:   config/gtk-3.0/settings.ini
	new file:   config/gtk-4.0/assets
	new file:   config/gtk-4.0/colors.css
	new file:   config/gtk-4.0/colors.css.bak
	new file:   config/gtk-4.0/gtk-dark.css
	new file:   config/gtk-4.0/gtk.css
	new file:   config/gtk-4.0/gtk.css.backup
	renamed:    config/niri/dms/windowrules.kdl -> config/gtk-4.0/libadwaita-tweaks.css
	new file:   config/gtk-4.0/libadwaita.css
	new file:   config/gtk-4.0/settings.ini
	new file:   config/hypr/colors-hyprlock.conf
	new file:   config/hypr/colors.conf
	modified:   config/hypr/hyprlock.conf
	modified:   config/hypr/hyprlock.conf.bak
	modified:   config/hypr/hyprtoolkit.conf
	modified:   config/hyprwave/config.conf
	modified:   config/hyprwhspr/config.json
	modified:   config/hyprwhspr/mic_osd.pid
	new file:   config/ironbar/colors.css
	modified:   config/ironbar/config.json
	deleted:    config/ironbar/schema-v0.18.0.json
	new file:   config/ironbar/scripts/clipse.sh
	new file:   config/ironbar/scripts/matugen.sh
	new file:   config/ironbar/scripts/matugen.sh.bak
	modified:   config/ironbar/scripts/pomo
	new file:   config/ironbar/scripts/volume.sh
	modified:   config/ironbar/style.css
	new file:   config/ironbar/style.css.bak
	modified:   config/kitty/current-theme.conf
	deleted:    config/kitty/current-theme1.conf
	deleted:    config/kitty/dank-tabs.conf
	modified:   config/kitty/kitty.conf
	modified:   config/kitty/kitty.conf.bak
	new file:   config/kitty/themes/Matugen.conf
	modified:   config/matugen/config.toml
	deleted:    config/matugen/custom3.json
	new file:   config/matugen/scripts/foot-apply-colors.sh
	new file:   config/matugen/scripts/foot-apply-colors.sh.bak
	new file:   config/matugen/scripts/foot-apply.sh
	new file:   config/matugen/scripts/hyprwave-reload.sh
	new file:   config/matugen/scripts/ironbar-toggle.sh
	new file:   config/matugen/scripts/matugen-foot-apply.sh
	new file:   config/matugen/scripts/swayosd-reload.sh
	new file:   config/matugen/scripts/walker.sh
	new file:   config/matugen/templates/Matugen.colors
	new file:   config/matugen/templates/alacritty.toml
	new file:   config/matugen/templates/btop.theme
	new file:   config/matugen/templates/cava-colors.ini
	new file:   config/matugen/templates/clipse_theme.json
	new file:   config/matugen/templates/colors.css
	new file:   config/matugen/templates/cosmic_postprocess.py
	new file:   config/matugen/templates/cosmic_theme.ron
	new file:   config/matugen/templates/dunstrc-colors
	new file:   config/matugen/templates/firefox-colors.css
	new file:   config/matugen/templates/foot-apply-colors.sh
	new file:   config/matugen/templates/foot.ini
	new file:   config/matugen/templates/fuzzel.ini
	new file:   config/matugen/templates/ghostty
	new file:   config/matugen/templates/gtk-colors.css
	new file:   config/matugen/templates/helix.toml
	new file:   config/matugen/templates/heroic.css
	new file:   config/matugen/templates/hyprland-colors.conf
	new file:   config/matugen/templates/hyprlock.conf
	new file:   config/matugen/templates/hyprtoolkit.conf
	new file:   config/matugen/templates/hyprwave.css
	new file:   config/matugen/templates/hypwave.css
	new file:   config/matugen/templates/ironbar.css
	new file:   config/matugen/templates/kitty-colors.conf
	new file:   config/matugen/templates/kvantum-colors.kvconfig
	new file:   config/matugen/templates/kvantum-colors.svg
	new file:   config/matugen/templates/labwc
	new file:   config/matugen/templates/mako
	new file:   config/matugen/templates/mango.conf
	new file:   config/matugen/templates/matugen.obt
	new file:   config/matugen/templates/mcfly.toml
	new file:   config/matugen/templates/micro.micro
	new file:   config/matugen/templates/midnight-discord.css
	new file:   config/matugen/templates/neovim.lua
	new file:   config/matugen/templates/neovim/README.md
	new file:   config/matugen/templates/neovim/init.lua
	new file:   config/matugen/templates/neovim/template.lua
	new file:   config/matugen/templates/niri-colors.kdl
	new file:   config/matugen/templates/nvim-colors.vim
	new file:   config/matugen/templates/obsidian.css
	new file:   config/matugen/templates/opencode-colors.json
	new file:   config/matugen/templates/prismlauncher.json
	new file:   config/matugen/templates/pywalfox-colors.json
	new file:   config/matugen/templates/qtct-colors.conf
	new file:   config/matugen/templates/quickshell.json
	new file:   config/matugen/templates/quickshell.qml
	new file:   config/matugen/templates/rmpc/nix-hm-example/README.md
	new file:   config/matugen/templates/rmpc/nix-hm-example/matugen/default.nix
	new file:   config/matugen/templates/rmpc/nix-hm-example/matugen/templates/cava.ini
	new file:   config/matugen/templates/rmpc/nix-hm-example/matugen/templates/rmpc.ron
	new file:   config/matugen/templates/rmpc/rmpc.ron
	new file:   config/matugen/templates/rofi-colors.rasi
	new file:   config/matugen/templates/spicetify.ini
	new file:   config/matugen/templates/starship-colors.toml
	new file:   config/matugen/templates/steam.css
	new file:   config/matugen/templates/sway-colors.conf
	new file:   config/matugen/templates/swaync-colors.css
	new file:   config/matugen/templates/swayosd.css
	new file:   config/matugen/templates/telegram-background-solid.svg
	new file:   config/matugen/templates/telegram.tdesktop-theme
	new file:   config/matugen/templates/telegram.tdesktop-theme.bak
	new file:   config/matugen/templates/television.toml
	new file:   config/matugen/templates/terminal-sequences
	new file:   config/matugen/templates/tmux-colors.conf
	new file:   config/matugen/templates/vivaldi.css
	new file:   config/matugen/templates/walker.css
	new file:   config/matugen/templates/wezterm_theme.toml
	new file:   config/matugen/templates/windows_term.json
	new file:   config/matugen/templates/windows_term_post.ps1
	new file:   config/matugen/templates/wine.reg
	new file:   config/matugen/templates/yazi-theme.toml
	new file:   config/matugen/templates/zathura-colors
	new file:   config/matugen/templates/zed-colors.json
	new file:   config/matugen/templates/zellij-theme.kdl.tera
	new file:   config/matugen/templates/zen-userChrome.css
	new file:   config/matugen/templates/zen-userContent.css
	new file:   config/matugen/templates/zen.css
	modified:   config/mimeapps.list
	modified:   config/niri/binds.kdl
	new file:   config/niri/clipse.sh
	new file:   config/niri/colors.kdl
	modified:   config/niri/config.kdl
	deleted:    config/niri/dms/alttab.kdl
	deleted:    config/niri/dms/binds.kdl
	deleted:    config/niri/dms/colors.kdl
	deleted:    config/niri/dms/cursor.kdl
	deleted:    config/niri/dms/layout.kdl
	deleted:    config/niri/dms/outputs.kdl
	deleted:    config/niri/dms/profiles/profile_1776211496314_g03e3q.kdl
	deleted:    config/niri/dms/wpblur.kdl
	modified:   config/niri/layer-rule.kdl
	modified:   config/niri/layout.kdl
	new file:   config/niri/scripts/ocr.sh
	modified:   config/niri/spawn-at-startup.kdl
	modified:   config/niri/window-rule.kdl
	new file:   config/nvim/colors/matugen.vim
	modified:   config/nvim/init.lua
	modified:   config/nvim/lazy-lock.json
	new file:   config/nvim/lua/matugen.lua
	new file:   config/nvim/lua/plugins/base16-nvim.lua
	renamed:    config/nvim/lua/plugins/render-markdown.lua -> config/nvim/lua/plugins/render-markdown.lua.bak
	new file:   config/nvim/lua/plugins/themery.lua
	new file:   config/nvim/lua/plugins/zk-nvim.lua
	new file:   config/rmpc/themes/matugen.ron
	new file:   config/rudo/all-style.css
	new file:   config/rudo/pins.json
	new file:   config/rudo/settings.json
	new file:   config/rudo/style.css
	new file:   config/scripts/niri/ru.png
	new file:   config/scripts/niri/us.png
	modified:   config/starship.toml
	new file:   config/stasis/stasis.rune
	new file:   config/swaync/colors.css
	deleted:    config/swaync/config_1.json
	modified:   config/swaync/style.css
	deleted:    config/swaync/style_1.css
	new file:   config/swayosd/colors.css
	modified:   config/swayosd/style.css
	new file:   config/telegram/matugen.tdesktop-theme
	new file:   config/telegram/matugen/background.jpg
	new file:   config/telegram/matugen/background.svg
	new file:   config/telegram/matugen/colors.tdesktop-theme
	deleted:    config/termusic/tui.toml
	new file:   config/tmux/colors.conf
	modified:   config/tmux/tmux.conf
	modified:   config/walker/config.toml
	modified:   config/walker/themes/default/layout.xml
	new file:   config/walker/themes/matugen/colors.css
	new file:   config/walker/themes/matugen/item.xml
	new file:   config/walker/themes/matugen/item_actionsmenu.xml
	new file:   config/walker/themes/matugen/item_archlinuxpkgs.xml
	new file:   config/walker/themes/matugen/item_bookmarks.xml
	new file:   config/walker/themes/matugen/item_calc.xml
	new file:   config/walker/themes/matugen/item_clipboard.xml
	new file:   config/walker/themes/matugen/item_dmenu.xml
	new file:   config/walker/themes/matugen/item_dnfpackages.xml
	new file:   config/walker/themes/matugen/item_files.xml
	new file:   config/walker/themes/matugen/item_providerlist.xml
	new file:   config/walker/themes/matugen/item_symbols.xml
	new file:   config/walker/themes/matugen/item_symbols_grid.xml
	new file:   config/walker/themes/matugen/item_todo.xml
	new file:   config/walker/themes/matugen/item_unicode.xml
	new file:   config/walker/themes/matugen/keybind.xml
	new file:   config/walker/themes/matugen/layout.xml
	new file:   config/walker/themes/matugen/preview.xml
	new file:   config/walker/themes/matugen/style.css
	modified:   config/walker/themes/zzz/layout.xml
	modified:   config/walker/themes/zzz/style.css
	deleted:    config/waybar/config.jsonc
	deleted:    config/waybar/config01.jsonc
	deleted:    config/waybar/style.css
	deleted:    config/waybar/style01.css
	new file:   config/yazi/theme.toml
	modified:   config/zathura/zathurarc
	deleted:    config/zram-generator.conf
	modified:   copy.sh
	modified:   local/share/hyprwave/style.css
This commit is contained in:
nekochemist 2026-04-30 02:32:19 +05:00
parent d34dc71a44
commit ff70920a08
231 changed files with 31057 additions and 8511 deletions

View file

@ -1,17 +1,16 @@
[config]
# If set to enabled, it will check for updates when you run the matugen command, notifying you that an update is avaiable.
# WARNING: Matugen needs to be compiled with the `update-informer` feature for this to work.
version_check = false
# The color which should be used as the source_color if no good color was found from an image.
# Can be defined in any css format.
# The cli flag will override this if used.
fallback_color = "#ffbf9b"
#fallback_color = "#ffbf9b"
# Which color to choose if multiple good colors were found from an image.
# choices: [darkness, lightness, saturation, less-saturation, value, closest-to-fallback]
# The cli flag will override this if used.
prefer = "closest-to-fallback"
#prefer = "closest-to-fallback"
# Enables caching which will cache the colorscheme, custom colors, etc. into a cache folder located in
# Windows: C:\Users\user\AppData\Roaming\InioX\matugen\cache\images\<file>
@ -25,12 +24,12 @@ caching = false
# Changing the syntax
# Expr is for keywords like {{ <keyword> }}
expr_prefix = "{{"
expr_postfix = "}}"
#expr_prefix = "{{"
#expr_postfix = "}}"
# Block is for stuff like for loops etc.
block_prefix = "<*"
block_postfix = "*>"
#block_prefix = "<*"
#block_postfix = "*>"
# Imports json files just like `--import-json` does.
# Relative paths will be resolved from the path `config.toml` is in.
@ -40,7 +39,7 @@ block_postfix = "*>"
# Value from -1 to 1.
# -1 represents minimum contrast, 0 represents standard (i.e. the design as spec'd),
# and 1 represents maximum contrast.
contrast = 1.0
contrast = 0.3
[config.wallpaper]
# Whether to set the wallpaper or not
@ -49,76 +48,172 @@ set = true
# The base command to run for applying the wallpaper.
# Keywords like {{ image }} or anything that works inside of hooks works here.
# You could also set a static color if you use the color keywords and the wallpaper setter supports it.
command = "awww img --transition-type center {{ image }}"
#command = "swaybg -i '{{ image }}' '*'"
#command = "swaybg -i '{{ image }}' > /tmp/swaybg_error.log 2>&1"
#command = "swaybg -o DP-1 -i '{{ image }}' "
command = "env WAYLAND_DISPLAY=$WAYLAND_DISPLAY XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR swaybg -o DP-1 -i '{{ image }}' -m fill"
#command = "WAYLAND_DISPLAY=wayland-0 swaybg -i '{{ image }}' -m fill"
# For example, killing the wallpaper daemon. Usage is like a normal hook.
# pre_hook = ""
[templates]
#[templates.includeme]
#input_path = "./include.txt"
# The output path is optional if you just want to import the template anyways.
# output_path = "./a/include.txt"
#[templates]
[templates.foot]
input_path = '~/.config/matugen/templates/foot.ini'
output_path = "~/.config/foot/themes/matugen-theme.ini"
#[templates.name1]
# Relative paths will be resolved from the path `config.toml` is in.
#input_path = "./colors.whatever-extension"
#output_path = "./a/colors-generated.whatever-extension"
[templates.foot-init]
input_path = "~/.config/matugen/templates/foot-apply-colors.sh"
output_path = "~/.config/matugen/scripts/foot-apply-colors.sh"
post_hook = "bash ~/.config/matugen/scripts/foot-apply-colors.sh"
# Defaults to a value of 0 if unspecified, determines the order that each template is processed.
# You can use index = n to force a particular template hook to run after everything else, and index = -n for before everything else
#index = 1
[templates.cava]
input_path = '~/.config/matugen/templates/cava-colors.ini'
output_path = '~/.config/cava/themes/matugen'
post_hook = 'pkill -USR1 cava || true'
# Defaults to the type from CLI if unspecified.
# One of `SchemeContent`, `SchemeExpressive`, `SchemeFidelity`, `SchemeFruitSalad`, `SchemeMonochrome`, `SchemeNeutral`, `SchemeRainbow`, `SchemeTonalSpot`, `SchemeVibrant`
#type = "SchemeExpressive"
[templates.kitty]
input_path = '~/.config/matugen/templates/kitty-colors.conf'
output_path = '~/.config/kitty/themes/Matugen.conf'
post_hook = "kitty +kitten themes --reload-in=all Matugen"
# For testing of the `--continue-on-error` flag
# [templates.ishoulderror]
# Relative paths will be resolved from the path `config.toml` is in.
# input_path = "./error-testing.txt"
# output_path = "./a/error-testing.txt"
[templates.clipse]
input_path = '~/.config/matugen/templates/clipse_theme.json'
output_path = '~/.config/clipse/matugen.json'
# This will use a different input path depending on what mode you use.
# input_path_modes = { dark = "./colors.whatever-extension", light = "./colors.whatever-extension" }
# This will compare all of the colors inside the array with the color you set as `compare_to`, and returns the closest color to it.
# You can then use `{{closest_color}}` inside hooks.
#colors_to_compare = [
# { name = "black", color = "#000000" },
# { name = "red", color = "#ff0000" },
# { name = "maroon", color = "#800000" },
# { name = "yellow", color = "#ffff00" },
# { name = "olive", color = "#808000" },
# { name = "lime", color = "#00ff00" },
# { name = "green", color = "#008000" },
# { name = "aqua", color = "#00ffff" },
# { name = "teal", color = "#008080" },
# { name = "blue", color = "#0000ff" },
# { name = "navy", color = "#000080" },
# { name = "fuchsia", color = "#ff00ff" },
# { name = "purple", color = "#800080" },
#]
#compare_to = "{{colors.primary.default.hex}}"
[templates.hyprland]
input_path = '~/.config/matugen/templates/hyprland-colors.conf'
output_path = '~/.config/hypr/colors.conf'
# Runs before the template is exported. You can use keywords here.
# If you want the command to be async, add an & symbol to the end of the command on unix.
#pre_hook = 'echo "source color {{colors.source_color.default.hex}}, source image {{image}}, closest color {{closest_color}}"'
# Runs after the template is exported. You can use keywords here.
# If you want the command to be async, add an & symbol to the end of the command on unix.
#post_hook = 'echo "after gen"'
[templates.hyprlock]
input_path = '~/.config/matugen/templates/hyprlock.conf'
output_path = '~/.config/hypr/colors-hyprlock.conf'
# For overriding the prefix for a specific template only
#expr_prefix = "{{"
#expr_postfix = "}}"
# Only hex values
# https://m3.material.io/styles/color/advanced/adjust-existing-colors#1cc12e43-237b-45b9-8fe0-9a3549c1f61e
# If you want to use the original color without any harmonization, add `_source` after the name like: `{{ color_source }}`
# Example: To use the original red color you would use `{{ red_source }}` instead of `{{ red }}`
[templates.ironbar]
input_path = "~/.config/matugen/templates/ironbar.css"
output_path = "~/.config/ironbar/colors.css"
post_hook = "bash ~/.config/matugen/scripts/ironbar-toggle.sh"
# If you don't want to use the other colors that are automatically generated (on_color, on_color_container) you can just import a custom json with the colors instead.
# For an example of importing json see: https://iniox.github.io/#matugen/usage/importing-json
[config.custom_colors]
red = "#ff0000"
blue = "#0000ff"
green = "#00ff00"
[templates.telegram_background]
pre_hook = 'mkdir -p ~/.config/telegram/matugen'
input_path = '~/.config/matugen/templates/telegram-background-solid.svg'
output_path = '~/.config/telegram/matugen/background.svg'
post_hook = 'magick ~/.config/telegram/matugen/background.svg ~/.config/telegram/matugen/background.jpg'
index = 0
[templates.telegram]
input_path = '~/.config/matugen/templates/telegram.tdesktop-theme'
output_path = '~/.config/telegram/matugen/colors.tdesktop-theme'
post_hook = 'zip -qj - ~/.config/telegram/matugen/colors.tdesktop-theme ~/.config/telegram/matugen/background.jpg >~/.config/telegram/matugen.tdesktop-theme'
index = 1
[templates.niri]
input_path = '~/.config/matugen/templates/niri-colors.kdl'
output_path = '~/.config/niri/colors.kdl'
post_hook = 'niri msg action load-config-file'
[templates.nvim]
input_path = "~/.config/matugen/templates/neovim.lua"
output_path = "~/.config/nvim/lua/matugen.lua"
post_hook = 'pkill -SIGUSR1 nvim'
[templates.gtk3]
input_path = '~/.config/matugen/templates/gtk-colors.css'
output_path = '~/.config/gtk-3.0/colors.css'
post_hook = 'gsettings set org.gnome.desktop.interface gtk-theme ""; gsettings set org.gnome.desktop.interface gtk-theme adw-gtk3-{{mode}}'
[templates.gtk4]
input_path = '~/.config/matugen/templates/gtk-colors.css'
output_path = '~/.config/gtk-4.0/colors.css'
[templates.prismlauncher]
input_path = '~/.config/matugen/templates/prismlauncher.json'
output_path = '~/.local/share/PrismLauncher/themes/Matugen/theme.json'
post_hook = 'cp ~/.local/share/PrismLauncher/themes/Matugen/theme.json ~/.local/share/ElyPrismLauncher/themes/Matugen/theme.json'
# ...
[templates.kvantum_kvconfig]
input_path = '~/.config/matugen/templates/kvantum-colors.kvconfig'
output_path = '~/.config/Kvantum/matugen/matugen.kvconfig'
[templates.kvantum_svg]
input_path = '~/.config/matugen/templates/kvantum-colors.svg'
output_path = '~/.config/Kvantum/matugen/matugen.svg'
[templates.hyprtoolkit]
input_path = "~/.config/matugen/templates/hyprtoolkit.conf"
output_path = "~/.config/hypr/hyprtoolkit.conf"
[templates.pywalfox]
input_path = '~/.config/matugen/templates/pywalfox-colors.json'
output_path = '~/.cache/wal/colors.json'
post_hook = 'pywalfox update'
# [templates.firefox-website-colors]
# input_path = "~/.config/matugen/templates/firefox-colors.css"
# output_path = "~/.zen/j0ceihqh.Default (release)/chrome/userChrome.css"
[templates.rmpc]
input_path = '~/.config/matugen/templates/rmpc/rmpc.ron'
output_path = '~/.config/rmpc/themes/matugen.ron'
[templates.starship]
input_path = '~/.config/matugen/templates/starship-colors.toml'
output_path = '~/.config/starship.toml'
# ...
[templates.tmux]
input_path = '~/.config/matugen/templates/tmux-colors.conf'
output_path = '~/.config/tmux/colors.conf'
#post_hook = "tmux info >/dev/null 2>&1 && tmux source-file ~/.config/tmux/colors.conf"
[templates.yazi]
input_path = '~/.config/matugen/templates/yazi-theme.toml'
output_path = '~/.config/yazi/theme.toml'
# ...
#[templates.zathura]
#input_path = '~/.config/matugen/templates/zathura-colors'
#output_path = '~/.config/zathura/zathurarc'
# ...
[templates.swaync]
input_path = "~/.config/matugen/templates/swaync-colors.css"
output_path = "~/.config/swaync/colors.css"
post_hook = "swaync-client -rs"
# ...
# ...
#
[templates.obsidian]
input_path = '~/.config/matugen/templates/obsidian.css'
output_path = '~/.obsidian/unconfer/.obsidian/themes/Matugen/theme.css'
[templates.btop]
input_path = '~/.config/matugen/templates/btop.theme'
output_path = '~/.config/btop/themes/matugen.theme'
post_hook = 'pkill -USR2 btop || true'
# ...
#
[templates.walker]
input_path = '~/.config/matugen/templates/walker.css'
output_path = '~/.config/walker/themes/matugen/colors.css'
post_hook = 'bash ~/.config/matugen/scripts/walker.sh'
[templates.hyprwave]
input_path = '~/.config/matugen/templates/hyprwave.css'
output_path = '~/.local/share/hyprwave/themes/matugen.css'
post_hook = "bash ~/.config/matugen/scripts/hyprwave-reload.sh"
[templates.swayosd]
input_path = '~/.config/matugen/templates/swayosd.css'
output_path = '~/.config/swayosd/colors.css'
#post_hook = "env WAYLAND_DISPLAY=$WAYLAND_DISPLAY DBUS_SESSION_BUS_ADDRESS='unix:path=$XDG_RUNTIME_DIR/bus' XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR pkill swayosd-server && sleep 0.1s && swayosd-server "
post_hook = "bash ~/.config/matugen/scripts/swayosd-reload.sh"
[templates.zen-userChrome]
input_path = "~/.config/matugen/templates/zen-userChrome.css"
output_path = "/home/unconfer/.zen/j0ceihqh.Default (release)/chrome/userChrome.css"
[templates.zen-userContent]
input_path = "~/.config/matugen/templates/zen-userContent.css"
output_path = "/home/unconfer/.zen/j0ceihqh.Default (release)/chrome/userContent.css"

View file

@ -1 +0,0 @@
{}

View file

@ -0,0 +1,42 @@
#!/bin/ bash
# Применить цвета через OSC ко всем foot-инстансам
# Согласно foot-ctlseqs(7)
for pts in /dev/pts/[0-9]*; do
# OSC 10: default foreground (foreground)
printf '\e]10;#fff3e6\007' >>"$pts" 2>/dev/null
# OSC 11: default background (background)
printf '\e]11;#18130b\007' >>"$pts" 2>/dev/null
# OSC 12: cursor color (первое значение из cursor в foot.ini)
printf '\e]12;#f2be6e\007' >>"$pts" 2>/dev/null
# OSC 17: selection background
printf '\e]17;#976c25\007' >>"$pts" 2>/dev/null
# OSC 19: selection foreground
printf '\e]19;#ffffff\007' >>"$pts" 2>/dev/null
# OSC 4: palette colors 0-15 (regular0-7, bright0-7)
printf '\e]4;0;#0e0a04\007' >>"$pts" 2>/dev/null
printf '\e]4;1;#ffb4ab\007' >>"$pts" 2>/dev/null
printf '\e]4;2;#b6cea3\007' >>"$pts" 2>/dev/null
printf '\e]4;3;#dcc3a1\007' >>"$pts" 2>/dev/null
printf '\e]4;4;#f2be6e\007' >>"$pts" 2>/dev/null
printf '\e]4;5;#867154\007' >>"$pts" 2>/dev/null
printf '\e]4;6;#657b55\007' >>"$pts" 2>/dev/null
printf '\e]4;7;#d2c4b4\007' >>"$pts" 2>/dev/null
printf '\e]4;8;#352e26\007' >>"$pts" 2>/dev/null
printf '\e]4;9;#ffffff\007' >>"$pts" 2>/dev/null
printf '\e]4;10;#0e2004\007' >>"$pts" 2>/dev/null
printf '\e]4;11;#261904\007' >>"$pts" 2>/dev/null
printf '\e]4;12;#976c25\007' >>"$pts" 2>/dev/null
printf '\e]4;13;#6f4a00\007' >>"$pts" 2>/dev/null
printf '\e]4;14;#142508\007' >>"$pts" 2>/dev/null
printf '\e]4;15;#362f27\007' >>"$pts" 2>/dev/null
# Дополнительные индексы палитры (16, 17), если используются
printf '\e]4;16;#b6cea3\007' >>"$pts" 2>/dev/null
printf '\e]4;17;#da342e\007' >>"$pts" 2>/dev/null
done

View file

@ -0,0 +1,42 @@
#!/bin/ bash
# Применить цвета через OSC ко всем foot-инстансам
# Согласно foot-ctlseqs(7)
for pts in /dev/pts/[0-9]*; do
# OSC 10: default foreground (foreground)
printf '\e]10;#e7e2d5\007' >>"$pts" 2>/dev/null
# OSC 11: default background (background)
printf '\e]11;#15140c\007' >>"$pts" 2>/dev/null
# OSC 12: cursor color (первое значение из cursor в foot.ini)
printf '\e]12;#15140c\007' >>"$pts" 2>/dev/null
# OSC 17: selection background
printf '\e]17;#4f4800\007' >>"$pts" 2>/dev/null
# OSC 19: selection foreground
printf '\e]19;#f0e58b\007' >>"$pts" 2>/dev/null
# OSC 4: palette colors 0-15 (regular0-7, bright0-7)
printf '\e]4;0;#0f0e07\007' >>"$pts" 2>/dev/null
printf '\e]4;1;#ffb4ab\007' >>"$pts" 2>/dev/null
printf '\e]4;2;#a6d0b8\007' >>"$pts" 2>/dev/null
printf '\e]4;3;#cec7a3\007' >>"$pts" 2>/dev/null
printf '\e]4;4;#d3c972\007' >>"$pts" 2>/dev/null
printf '\e]4;5;#4b472b\007' >>"$pts" 2>/dev/null
printf '\e]4;6;#284e3c\007' >>"$pts" 2>/dev/null
printf '\e]4;7;#cbc6b5\007' >>"$pts" 2>/dev/null
printf '\e]4;8;#2c2a21\007' >>"$pts" 2>/dev/null
printf '\e]4;9;#ffdad6\007' >>"$pts" 2>/dev/null
printf '\e]4;10;#002113\007' >>"$pts" 2>/dev/null
printf '\e]4;11;#1f1c05\007' >>"$pts" 2>/dev/null
printf '\e]4;12;#4f4800\007' >>"$pts" 2>/dev/null
printf '\e]4;13;#686013\007' >>"$pts" 2>/dev/null
printf '\e]4;14;#103726\007' >>"$pts" 2>/dev/null
printf '\e]4;15;#323127\007' >>"$pts" 2>/dev/null
# Дополнительные индексы палитры (16, 17), если используются
printf '\e]4;16;#a6d0b8\007' >>"$pts" 2>/dev/null
printf '\e]4;17;#93000a\007' >>"$pts" 2>/dev/null
done

View file

@ -0,0 +1,46 @@
#!/usr/bin/env bash
apply_osc4() {
local idx=$1 hex=$2
printf '\e]4;%d;rgb:%s/%s/%s\007' \
"$idx" "${hex:0:2}" "${hex:2:2}" "${hex:4:2}"
}
apply_fg() {
local h=$1
printf '\e]10;rgb:%s/%s/%s\007' "${h:0:2}" "${h:2:2}" "${h:4:2}"
}
apply_bg() {
local h=$1
printf '\e]11;rgb:%s/%s/%s\007' "${h:0:2}" "${h:2:2}" "${h:4:2}"
}
apply_sel_bg() {
local h=$1
printf '\e]17;rgb:%s/%s/%s\007' "${h:0:2}" "${h:2:2}" "${h:4:2}"
}
apply_sel_fg() {
local h=$1
printf '\e]19;rgb:%s/%s/%s\007' "${h:0:2}" "${h:2:2}" "${h:4:2}"
}
apply_fg "{{colors.on_surface.default.hex_stripped}}"
apply_bg "{{colors.surface.default.hex_stripped}}"
apply_sel_bg "{{colors.primary_container.default.hex_stripped}}"
apply_sel_fg "{{colors.on_primary_container.default.hex_stripped}}"
apply_osc4 0 "{{colors.surface_container_lowest.default.hex_stripped}}"
apply_osc4 1 "{{colors.error.default.hex_stripped}}"
apply_osc4 2 "{{colors.tertiary.default.hex_stripped}}"
apply_osc4 3 "{{colors.secondary.default.hex_stripped}}"
apply_osc4 4 "{{colors.primary.default.hex_stripped}}"
apply_osc4 5 "{{colors.secondary_container.default.hex_stripped}}"
apply_osc4 6 "{{colors.tertiary_container.default.hex_stripped}}"
apply_osc4 7 "{{colors.on_surface_variant.default.hex_stripped}}"
apply_osc4 8 "{{colors.surface_container_high.default.hex_stripped}}"
apply_osc4 9 "{{colors.error_container.default.hex_stripped}}"
apply_osc4 10 "{{colors.tertiary_container.default.hex_stripped}}"
apply_osc4 11 "{{colors.secondary_container.default.hex_stripped}}"
apply_osc4 12 "{{colors.primary_container.default.hex_stripped}}"
apply_osc4 13 "{{colors.inverse_primary.default.hex_stripped}}"
apply_osc4 14 "{{colors.surface_bright.default.hex_stripped}}"
apply_osc4 15 "{{colors.on_surface.default.hex_stripped}}"

View file

@ -0,0 +1,12 @@
# ~/.config/matugen/scripts/hyprwave-reload.sh
#!/bin/bash
#!/bin/bash
if ! pgrep -x hyprwave >/dev/null; then
hyprwave &
sleep 0.5
fi
hyprwave-toggle set-theme matugen
sleep 1s
hyprwave-toggle visibility

View file

@ -0,0 +1,13 @@
#!/bin/bash
COMMAND="ironbar"
# Проверяем, существует ли процесс с указанной командной строкой
if pgrep -x "$COMMAND" >/dev/null 2>&1; then
notify-send "[INFO]" "ironbar уже работает, запускаю остановку... " -t 700
pkill -x ironbar
exec $COMMAND &>/dev/null &
else
notify-send "[INFO]" "ironbar не активен, запускаю..." -t 700
exec $COMMAND &>/dev/null &
fi

View file

@ -0,0 +1,22 @@
#!/usr/bin/env bash
# Применить цвета через OSC4 ко всем foot-инстансам
for pts in /dev/pts/[0-9]*; do
printf '\e]11;#{{colors.surface.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]10;#{{colors.on_surface.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;0;#{{colors.surface_container_lowest.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;1;#{{colors.error.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;2;#{{colors.tertiary.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;3;#{{colors.secondary.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;4;#{{colors.primary.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;5;#{{colors.secondary_container.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;6;#{{colors.tertiary_container.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;7;#{{colors.on_surface_variant.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;8;#{{colors.surface_container_high.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;9;#{{colors.error_container.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;10;#{{colors.tertiary_container.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;11;#{{colors.secondary_container.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;12;#{{colors.primary_container.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;13;#{{colors.inverse_primary.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;14;#{{colors.tertiary_fixed_dim.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;15;#{{colors.surface_bright.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
done

View file

@ -0,0 +1,12 @@
# ~/.config/matugen/scripts/swayosd-reload.sh
#!/bin/bash
#env WAYLAND_DISPLAY=$WAYLAND_DISPLAY DBUS_SESSION_BUS_ADDRESS='unix:path=$XDG_RUNTIME_DIR/bus' XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR
export WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-wayland-1}"
export XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}"
export PATH="/usr/local/bin:/usr/bin:/bin:$PATH"
pkill swayosd-server 2>/dev/null
sleep 0.2
swayosd-server &
disown
exit 0

View file

@ -0,0 +1,4 @@
#!/bin/bash
pkill walker
sleep 0.4
walker --gapplication-service &

View file

@ -0,0 +1,150 @@
[ColorEffects:Disabled]
Color={{colors.surface_dim.default.hex}}
ColorAmount=0
ColorEffect=0
ContrastAmount=0.65
ContrastEffect=1
IntensityAmount=0.1
IntensityEffect=2
[ColorEffects:Inactive]
ChangeSelectionColor=true
Color={{colors.surface_variant.default.hex}}
ColorAmount=0.025
ColorEffect=2
ContrastAmount=0.1
ContrastEffect=2
Enable=false
IntensityAmount=0
IntensityEffect=0
[Colors:Button]
BackgroundAlternate={{colors.surface_container_low.default.hex}}
BackgroundNormal={{colors.surface_container_high.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_surface.default.hex}}
ForegroundPositive={{colors.tertiary_fixed.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[Colors:Complementary]
BackgroundAlternate={{colors.surface_container_low.default.hex}}
BackgroundNormal={{colors.surface.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_primary_container.default.hex}}
ForegroundPositive={{colors.tertiary_fixed.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[Colors:Header]
BackgroundAlternate={{colors.surface.default.hex}}
BackgroundNormal={{colors.surface_container.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_surface.default.hex}}
ForegroundPositive={{colors.tertiary_fixed.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[Colors:Header][Inactive]
BackgroundAlternate={{colors.surface_container.default.hex}}
BackgroundNormal={{colors.surface_container.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_surface.default.hex}}
ForegroundPositive={{colors.tertiary_fixed.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[Colors:Selection]
BackgroundAlternate={{colors.surface_container_low.default.hex}}
BackgroundNormal={{colors.primary.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.on_primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary_fixed.default.hex}}
ForegroundNegative={{colors.error_container.default.hex}}
ForegroundNeutral={{colors.tertiary_fixed_dim.default.hex}}
ForegroundNormal={{colors.secondary_fixed.default.hex}}
ForegroundPositive={{colors.tertiary_container.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[Colors:Tooltip]
BackgroundAlternate={{colors.surface.default.hex}}
BackgroundNormal={{colors.surface_container.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_background.default.hex}}
ForegroundPositive={{colors.tertiary_fixed.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[Colors:View]
BackgroundAlternate={{colors.surface_container.default.hex}}
BackgroundNormal={{colors.background.default.hex}}
DecorationFocus={{colors.primary_container.default.hex}}
DecorationHover={{colors.on_primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_background.default.hex}}
ForegroundPositive={{colors.tertiary_fixed.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[Colors:Window]
BackgroundAlternate={{colors.primary_container.default.hex}}
BackgroundNormal={{colors.surface_container.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_background.default.hex}}
ForegroundPositive={{colors.tertiary_fixed.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[General]
ColorScheme=Matugen
Name=Matugen
[Appearance]
color_scheme=Matugen
[KDE]
contrast=4
[WM]
activeBackground={{colors.primary_container.default.hex}}
activeBlend={{colors.on_primary_container.default.hex}}
activeForeground={{colors.on_primary_container.default.hex}}
inactiveBackground={{colors.surface.default.hex}}
inactiveBlend={{colors.on_surface_variant.default.hex}}
inactiveForeground={{colors.on_surface_variant.default.hex}}

View file

@ -0,0 +1,68 @@
[colors.primary]
background = '{{colors.background.default.hex}}'
foreground = '{{colors.on_surface.default.hex}}'
[colors.cursor]
text = '{{colors.on_surface.default.hex}}'
cursor = '{{colors.on_surface_variant.default.hex}}'
[colors.vi_mode_cursor]
text = '{{colors.background.default.hex}}'
cursor = '{{colors.primary.default.hex}}'
[colors.search.matches]
foreground = '{{colors.surface_variant.default.hex}}'
background = '{{colors.tertiary.default.hex}}'
[colors.search.focused_match]
foreground = '{{colors.surface_variant.default.hex}}'
background = '{{colors.primary.default.hex}}'
[colors.footer_bar]
foreground = '{{colors.surface_variant.default.hex}}'
background = '{{colors.inverse_surface.default.hex}}'
[colors.hints.start]
foreground = '{{colors.surface_variant.default.hex}}'
background = '{{colors.secondary.default.hex}}'
[colors.hints.end]
foreground = '{{colors.surface_variant.default.hex}}'
background = '{{colors.secondary.default.hex}}'
[colors.selection]
text = '{{colors.background.default.hex}}'
background = '{{colors.primary.default.hex}}'
[colors.normal]
black = '#181818'
red = '{{colors.error.default.hex}}'
green = '{{colors.primary.default.hex}}'
yellow = '{{colors.inverse_primary.default.hex}}'
blue = '{{colors.primary.default.hex}}'
magenta = '{{colors.tertiary.default.hex}}'
cyan = '{{colors.secondary.default.hex}}'
white = '#BAC2DE'
[colors.bright]
black = '#585B70'
red = '#F38BA8'
green = '#A6E3A1'
yellow = '#F9E2AF'
blue = '#89B4FA'
magenta = '#F5C2E7'
cyan = '#94E2D5'
white = '#A6ADC8'
[colors.dim]
black = '#45475A'
red = '#F38BA8'
green = '#A6E3A1'
yellow = '#F9E2AF'
blue = '#89B4FA'
magenta = '#F5C2E7'
cyan = '#94E2D5'
white = '#BAC2DE'

View file

@ -0,0 +1,89 @@
# Matugen template for btop
# Colors should be in 6 or 2 character hexadecimal or single spaced rgb decimal: "#RRGGBB", "#BW" or "0-255 0-255 0-255"
# example for white: "#ffffff", "#ff" or "255 255 255".
# All graphs and meters can be gradients
# For single color graphs leave "mid" and "end" variable empty.
# Use "start" and "end" variables for two color gradient
# Use "start", "mid" and "end" for three color gradient
# Main background, empty for terminal default, need to be empty if you want transparent background
theme[main_bg]=""
# Main text color
theme[main_fg]="{{colors.on_surface.default.hex}}"
# Title color for boxes
theme[title]="{{colors.primary.default.hex}}"
# Highlight color for keyboard shortcuts
theme[hi_fg]="{{colors.secondary.default.hex}}"
# Background color of selected item in processes box
theme[selected_bg]="{{colors.primary.default.hex}}"
# Foreground color of selected item in processes box
theme[selected_fg]="{{colors.on_primary.default.hex}}"
# Color of inactive/disabled text
theme[inactive_fg]="{{colors.on_surface_variant.default.hex}}"
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
theme[proc_misc]="{{colors.tertiary.default.hex}}"
# Cpu box outline color
theme[cpu_box]="{{colors.outline.default.hex}}"
# Memory/disks box outline color
theme[mem_box]="{{colors.outline.default.hex}}"
# Net up/down box outline color
theme[net_box]="{{colors.outline.default.hex}}"
# Processes box outline color
theme[proc_box]="{{colors.outline.default.hex}}"
# Box divider line and small boxes line color
theme[div_line]="{{colors.outline_variant.default.hex}}"
# Temperature graph colors
theme[temp_start]="{{colors.secondary.default.hex}}"
theme[temp_mid]="{{colors.primary.default.hex}}"
theme[temp_end]="{{colors.error.default.hex}}"
# CPU graph colors
theme[cpu_start]="{{colors.secondary.default.hex}}"
theme[cpu_mid]="{{colors.primary.default.hex}}"
theme[cpu_end]="{{colors.error.default.hex}}"
# Mem/Disk free meter
theme[free_start]="{{colors.secondary.default.hex}}"
theme[free_mid]=""
theme[free_end]="{{colors.secondary_container.default.hex}}"
# Mem/Disk cached meter
theme[cached_start]="{{colors.tertiary.default.hex}}"
theme[cached_mid]=""
theme[cached_end]="{{colors.tertiary_container.default.hex}}"
# Mem/Disk available meter
theme[available_start]="{{colors.primary.default.hex}}"
theme[available_mid]=""
theme[available_end]="{{colors.primary_container.default.hex}}"
# Mem/Disk used meter
theme[used_start]="{{colors.error.default.hex}}"
theme[used_mid]=""
theme[used_end]="{{colors.error_container.default.hex}}"
# Download graph colors
theme[download_start]="{{colors.secondary.default.hex}}"
theme[download_mid]="{{colors.primary.default.hex}}"
theme[download_end]="{{colors.tertiary.default.hex}}"
# Upload graph colors
theme[upload_start]="{{colors.secondary.default.hex}}"
theme[upload_mid]="{{colors.primary.default.hex}}"
theme[upload_end]="{{colors.tertiary.default.hex}}"

View file

@ -0,0 +1,19 @@
[color]
background = 'default'
foreground = '{{colors.primary.default.hex}}'
; gradient = 0
gradient = 1
gradient_color_1 = '{{colors.primary_container.default.hex}}'
gradient_color_2 = '{{colors.primary.default.hex}}'
gradient_color_3 = '{{colors.on_primary_container.default.hex}}'
horizontal_gradient = 0
; horizontal_gradient = 1
horizontal_gradient_color_1 = '{{colors.primary_container.default.hex}}'
horizontal_gradient_color_2 = '{{colors.primary.default.hex}}'
horizontal_gradient_color_3 = '{{colors.on_primary_container.default.hex}}'
horizontal_gradient_color_4 = '{{colors.primary.default.hex}}'
horizontal_gradient_color_5 = '{{colors.primary_container.default.hex}}'

View file

@ -0,0 +1,28 @@
{
"useCustom": true,
"TitleFore": "{{colors.on_primary.default.hex}}",
"TitleBack": "{{colors.primary.default.hex}}",
"TitleInfo": "{{colors.tertiary.default.hex}}",
"NormalTitle": "{{colors.on_surface.default.hex}}",
"DimmedTitle": "{{colors.on_surface_variant.default.hex}}",
"SelectedTitle": "{{colors.tertiary.default.hex}}",
"NormalDesc": "{{colors.on_surface_variant.default.hex}}",
"DimmedDesc": "{{colors.on_surface_variant.default.hex}}",
"SelectedDesc": "{{colors.tertiary.default.hex}}",
"StatusMsg": "{{colors.secondary.default.hex}}",
"PinIndicatorColor": "{{colors.tertiary.default.hex}}",
"SelectedBorder": "{{colors.tertiary.default.hex}}",
"SelectedDescBorder": "{{colors.tertiary.default.hex}}",
"FilteredMatch": "{{colors.on_surface.default.hex}}",
"FilterPrompt": "{{colors.secondary.default.hex}}",
"FilterInfo": "{{colors.tertiary.default.hex}}",
"FilterText": "{{colors.on_surface.default.hex}}",
"FilterCursor": "{{colors.tertiary.default.hex}}",
"HelpKey": "{{colors.outline.default.hex}}",
"HelpDesc": "{{colors.on_surface_variant.default.hex}}",
"PageActiveDot": "{{colors.tertiary.default.hex}}",
"PageInactiveDot": "{{colors.on_surface_variant.default.hex}}",
"DividerDot": "{{colors.tertiary.default.hex}}",
"PreviewedText": "{{colors.on_surface.default.hex}}",
"PreviewBorder": "{{colors.tertiary.default.hex}}"
}

View file

@ -0,0 +1,7 @@
/*
* Css Colors
* Generated with Matugen
*/
<* for name, value in colors *>
@define-color {{name}} {{value.default.hex}};
<* endfor *>

View file

@ -0,0 +1,28 @@
#!/usr/bin/env python3
import re, sys, pathlib
def normalize_channels(text: str) -> str:
# Matches lines like: red: 255, or red: 64.0,
pattern = re.compile(r"(red|green|blue|alpha):\s*([0-9]+(?:\.[0-9]+)?)")
def repl(m):
channel = m.group(1)
value = float(m.group(2))
# alpha stays either 255 or value; we will convert it to 1.0 if >1 and channel==alpha
if channel == 'alpha':
return f"{channel}: {1.0 if value > 1 else value}"
if value > 1:
return f"{channel}: {value/255.0}"
return m.group(0)
return pattern.sub(repl, text)
def main():
if len(sys.argv) < 2:
print("Usage: cosmic_postprocess.py <file>", file=sys.stderr)
sys.exit(1)
path = pathlib.Path(sys.argv[1]).expanduser()
data = path.read_text()
new = normalize_channels(data)
path.write_text(new)
if __name__ == '__main__':
main()

View file

@ -0,0 +1,259 @@
(
palette: Dark((
name: "matugen-cosmic-dark",
bright_red: (
red: {{ colors.error.default.red }},
green: {{ colors.error.default.green }},
blue: {{ colors.error.default.blue }},
alpha: 255.0,
),
bright_green: (
red: {{ colors.tertiary.default.red }},
green: {{ colors.tertiary.default.green }},
blue: {{ colors.tertiary.default.blue }},
alpha: 255.0,
),
bright_orange: (
red: {{ colors.secondary.default.red }},
green: {{ colors.secondary.default.green }},
blue: {{ colors.secondary.default.blue }},
alpha: 255.0,
),
gray_1: (
red: {{ colors.surface_dim.default.red }},
green: {{ colors.surface_dim.default.green }},
blue: {{ colors.surface_dim.default.blue }},
alpha: 255.0,
),
gray_2: (
red: {{ colors.surface.default.red }},
green: {{ colors.surface.default.green }},
blue: {{ colors.surface.default.blue }},
alpha: 255.0,
),
neutral_0: (
red: 0.0,
green: 0.0,
blue: 0.0,
alpha: 1.0,
),
neutral_1: (
red: {{ colors.surface_dim.default.red }},
green: {{ colors.surface_dim.default.green }},
blue: {{ colors.surface_dim.default.blue }},
alpha: 255.0,
),
neutral_2: (
red: {{ colors.surface.default.red }},
green: {{ colors.surface.default.green }},
blue: {{ colors.surface.default.blue }},
alpha: 255.0,
),
neutral_3: (
red: {{ colors.surface_container_low.default.red }},
green: {{ colors.surface_container_low.default.green }},
blue: {{ colors.surface_container_low.default.blue }},
alpha: 255.0,
),
neutral_4: (
red: {{ colors.surface_container.default.red }},
green: {{ colors.surface_container.default.green }},
blue: {{ colors.surface_container.default.blue }},
alpha: 255.0,
),
neutral_5: (
red: {{ colors.surface_container_high.default.red }},
green: {{ colors.surface_container_high.default.green }},
blue: {{ colors.surface_container_high.default.blue }},
alpha: 255.0,
),
neutral_6: (
red: {{ colors.surface_container_highest.default.red }},
green: {{ colors.surface_container_highest.default.green }},
blue: {{ colors.surface_container_highest.default.blue }},
alpha: 255.0,
),
neutral_7: (
red: {{ colors.on_surface_variant.default.red }},
green: {{ colors.on_surface_variant.default.green }},
blue: {{ colors.on_surface_variant.default.blue }},
alpha: 255.0,
),
neutral_8: (
red: {{ colors.on_surface.default.red }},
green: {{ colors.on_surface.default.green }},
blue: {{ colors.on_surface.default.blue }},
alpha: 255.0,
),
neutral_9: (
red: {{ colors.surface_bright.default.red }},
green: {{ colors.surface_bright.default.green }},
blue: {{ colors.surface_bright.default.blue }},
alpha: 255.0,
),
neutral_10: (
red: 1.0,
green: 1.0,
blue: 1.0,
alpha: 1.0,
),
accent_blue: (
red: {{ colors.primary.default.red }},
green: {{ colors.primary.default.green }},
blue: {{ colors.primary.default.blue }},
alpha: 255.0,
),
accent_indigo: (
red: {{ colors.primary.default.red }},
green: {{ colors.primary.default.green }},
blue: {{ colors.primary.default.blue }},
alpha: 255.0,
),
accent_purple: (
red: {{ colors.tertiary.default.red }},
green: {{ colors.tertiary.default.green }},
blue: {{ colors.tertiary.default.blue }},
alpha: 255.0,
),
accent_pink: (
red: {{ colors.secondary.default.red }},
green: {{ colors.secondary.default.green }},
blue: {{ colors.secondary.default.blue }},
alpha: 255.0,
),
accent_red: (
red: {{ colors.error.default.red }},
green: {{ colors.error.default.green }},
blue: {{ colors.error.default.blue }},
alpha: 255.0,
),
accent_orange: (
red: {{ colors.secondary.default.red }},
green: {{ colors.secondary.default.green }},
blue: {{ colors.secondary.default.blue }},
alpha: 255.0,
),
accent_yellow: (
red: {{ colors.tertiary.default.red }},
green: {{ colors.tertiary.default.green }},
blue: {{ colors.tertiary.default.blue }},
alpha: 255.0,
),
accent_green: (
red: {{ colors.tertiary.default.red }},
green: {{ colors.tertiary.default.green }},
blue: {{ colors.tertiary.default.blue }},
alpha: 255.0,
),
accent_warm_grey: (
red: {{ colors.on_surface_variant.default.red }},
green: {{ colors.on_surface_variant.default.green }},
blue: {{ colors.on_surface_variant.default.blue }},
alpha: 255.0,
),
ext_warm_grey: (
red: {{ colors.outline.default.red }},
green: {{ colors.outline.default.green }},
blue: {{ colors.outline.default.blue }},
alpha: 255.0,
),
ext_orange: (
red: {{ colors.secondary.default.red }},
green: {{ colors.secondary.default.green }},
blue: {{ colors.secondary.default.blue }},
alpha: 255.0,
),
ext_yellow: (
red: {{ colors.tertiary.default.red }},
green: {{ colors.tertiary.default.green }},
blue: {{ colors.tertiary.default.blue }},
alpha: 255.0,
),
ext_blue: (
red: {{ colors.primary.default.red }},
green: {{ colors.primary.default.green }},
blue: {{ colors.primary.default.blue }},
alpha: 255.0,
),
ext_purple: (
red: {{ colors.tertiary.default.red }},
green: {{ colors.tertiary.default.green }},
blue: {{ colors.tertiary.default.blue }},
alpha: 255.0,
),
ext_pink: (
red: {{ colors.secondary.default.red }},
green: {{ colors.secondary.default.green }},
blue: {{ colors.secondary.default.blue }},
alpha: 255.0,
),
ext_indigo: (
red: {{ colors.primary.default.red }},
green: {{ colors.primary.default.green }},
blue: {{ colors.primary.default.blue }},
alpha: 255.0,
),
)),
spacing: (
space_none: 0,
space_xxxs: 4,
space_xxs: 8,
space_xs: 12,
space_s: 16,
space_m: 24,
space_l: 32,
space_xl: 48,
space_xxl: 64,
space_xxxl: 128,
),
corner_radii: (
radius_0: (0.0, 0.0, 0.0, 0.0),
radius_xs: (4.0, 4.0, 4.0, 4.0),
radius_s: (8.0, 8.0, 8.0, 8.0),
radius_m: (16.0, 16.0, 16.0, 16.0),
radius_l: (32.0, 32.0, 32.0, 32.0),
radius_xl: (160.0, 160.0, 160.0, 160.0),
),
neutral_tint: Some((
red: {{ colors.surface_container_high.default.red }},
green: {{ colors.surface_container_high.default.green }},
blue: {{ colors.surface_container_high.default.blue }},
)),
bg_color: Some((
red: {{ colors.surface.default.red }},
green: {{ colors.surface.default.green }},
blue: {{ colors.surface.default.blue }},
alpha: 0.6,
)),
primary_container_bg: None,
secondary_container_bg: None,
text_tint: Some((
red: {{ colors.on_surface.default.red }},
green: {{ colors.on_surface.default.green }},
blue: {{ colors.on_surface.default.blue }},
)),
accent: Some((
red: {{ colors.primary.default.red }},
green: {{ colors.primary.default.green }},
blue: {{ colors.primary.default.blue }},
)),
success: Some((
red: {{ colors.tertiary.default.red }},
green: {{ colors.tertiary.default.green }},
blue: {{ colors.tertiary.default.blue }},
)),
warning: Some((
red: {{ colors.secondary.default.red }},
green: {{ colors.secondary.default.green }},
blue: {{ colors.secondary.default.blue }},
)),
destructive: Some((
red: {{ colors.error.default.red }},
green: {{ colors.error.default.green }},
blue: {{ colors.error.default.blue }},
)),
is_frosted: true,
gaps: (0, 10),
active_hint: 2,
window_hint: None,
)

View file

@ -0,0 +1,75 @@
[global]
monitor = 0
follow = none
width = 400
height = 400
origin = top-center
offset = 10x20
scale = 0
notification_limit = 0
progress_bar = true
progress_bar_height = 10
progress_bar_frame_width = 1
progress_bar_min_width = 150
progress_bar_max_width = 300
indicate_hidden = yes
transparency = 0
separator_height = 2
padding = 8
horizontal_padding = 8
text_icon_padding = 0
frame_width = 1
sort = yes
font = FiraCode 12
line_height = 0
markup = full
format = "<b>%s</b>\n%b"
alignment = left
vertical_alignment = center
show_age_threshold = 60
ellipsize = middle
ignore_newline = no
stack_duplicates = true
hide_duplicate_count = false
show_indicators = yes
icon_position = left
min_icon_size = 0
max_icon_size = 32
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
icon_path = /usr/share/icons/Papirus-Dark/48x48/actions/:/usr/share/icons/Papirus-Dark/48x48/apps/:/usr/share/icons/Papirus-Dark/48x48/devices/:/usr/share/icons/Papirus-Dark/48x48/emblems/:/usr/share/icons/Papirus-Dark/48x48/emotes/:/usr/share/icons/Papirus-Dark/48x48/mimetypes/:/usr/share/icons/Papirus-Dark/48x48/places/:/usr/share/icons/Papirus-Dark/48x48/status/
sticky_history = yes
history_length = 20
browser = /usr/bin/xdg-open
always_run_script = true
title = Dunst
class = Dunst
corner_radius = 8
ignore_dbusclose = false
force_xwayland = false
force_xinerama = false
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
separator_color = frame
frame_color = "{{colors.primary.default.hex}}"
highlight = "{{colors.primary.default.hex}}"
separator_color= "{{colors.outline.default.hex}}"
[experimental]
per_monitor_dpi = false
[urgency_low]
timeout = 3
background = "{{colors.surface.default.hex}}"
foreground = "{{colors.on_surface.default.hex}}"
highlight = "{{colors.primary_container.default.hex}}"
[urgency_normal]
timeout = 6
background = "{{colors.surface.default.hex}}"
foreground = "{{colors.on_surface.default.hex}}"
highlight = "{{colors.primary_container.default.hex}}"
[urgency_critical]
timeout = 0
background = "{{colors.surface.default.hex}}"
foreground = "{{colors.on_surface.default.hex}}"
highlight = "{{colors.error.default.hex}}"

View file

@ -0,0 +1,9 @@
:root {
<* for name, value in colors *>
--{{name}}: {{value.default.hex}};
<* endfor *>
<* for name, value in colors *>
--{{name}}_rgb: {{value.default.red}} {{value.default.green}} {{value.default.blue}};
<* endfor *>
}

View file

@ -0,0 +1,42 @@
#!/bin/ bash
# Применить цвета через OSC ко всем foot-инстансам
# Согласно foot-ctlseqs(7)
for pts in /dev/pts/[0-9]*; do
# OSC 10: default foreground (foreground)
printf '\e]10;#{{colors.on_surface.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
# OSC 11: default background (background)
printf '\e]11;#{{colors.surface.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
# OSC 12: cursor color (первое значение из cursor в foot.ini)
printf '\e]12;#{{colors.primary.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
# OSC 17: selection background
printf '\e]17;#{{colors.primary_container.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
# OSC 19: selection foreground
printf '\e]19;#{{colors.on_primary_container.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
# OSC 4: palette colors 0-15 (regular0-7, bright0-7)
printf '\e]4;0;#{{colors.surface_container_lowest.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;1;#{{colors.error.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;2;#{{colors.tertiary.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;3;#{{colors.secondary.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;4;#{{colors.primary.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;5;#{{colors.secondary_container.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;6;#{{colors.tertiary_container.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;7;#{{colors.on_surface_variant.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;8;#{{colors.surface_container_high.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;9;#{{colors.on_error_container.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;10;#{{colors.on_tertiary_fixed.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;11;#{{colors.on_secondary_fixed.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;12;#{{colors.primary_container.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;13;#{{colors.inverse_primary.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;14;#{{colors.on_tertiary.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;15;#{{colors.inverse_on_surface.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
# Дополнительные индексы палитры (16, 17), если используются
printf '\e]4;16;#{{colors.tertiary.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
printf '\e]4;17;#{{colors.error_container.default.hex_stripped}}\007' >>"$pts" 2>/dev/null
done

View file

@ -0,0 +1,28 @@
[colors-dark]
background={{colors.surface.default.hex_stripped}}
foreground={{colors.on_surface.default.hex_stripped}}
selection-background={{colors.primary_container.default.hex_stripped}}
selection-foreground={{colors.on_primary_container.default.hex_stripped}}
regular0={{colors.surface_container_lowest.default.hex_stripped}}
regular1={{colors.error.default.hex_stripped}}
regular2={{colors.tertiary.default.hex_stripped}}
regular3={{colors.secondary.default.hex_stripped}}
regular4={{colors.primary.default.hex_stripped}}
regular5={{colors.secondary_container.default.hex_stripped}}
regular6={{colors.tertiary_container.default.hex_stripped}}
regular7={{colors.on_surface_variant.default.hex_stripped}}
bright0={{colors.surface_container_high.default.hex_stripped}}
bright1={{colors.on_error_container.default.hex_stripped}}
bright2={{colors.on_tertiary_fixed.default.hex_stripped}}
bright3={{colors.on_secondary_fixed.default.hex_stripped}}
bright4={{colors.primary_container.default.hex_stripped}}
bright5={{colors.inverse_primary.default.hex_stripped}}
bright6={{colors.on_tertiary.default.hex_stripped}}
bright7={{colors.inverse_on_surface.default.hex_stripped}}
cursor={{colors.surface.default.hex_stripped}} {{colors.primary.default.hex_stripped}}
16={{colors.tertiary.default.hex_stripped}}
17={{colors.error_container.default.hex_stripped}}
search-box-no-match={{colors.surface_container.default.hex_stripped}} {{colors.error.default.hex_stripped}}
search-box-match={{colors.surface_container_high.default.hex_stripped}} {{colors.primary.default.hex_stripped}}
jump-labels={{colors.surface_container.default.hex_stripped}} {{colors.secondary.default.hex_stripped}}
urls={{colors.primary.default.hex_stripped}}

View file

@ -0,0 +1,15 @@
# Fuzzel Colors
# Generated with Matugen
[colors]
background={{colors.background.default.hex_stripped}}ff
text={{colors.on_surface.default.hex_stripped}}ff
prompt={{colors.secondary.default.hex_stripped}}ff
placeholder={{colors.tertiary.default.hex_stripped}}ff
input={{colors.primary.default.hex_stripped}}ff
match={{colors.tertiary.default.hex_stripped}}ff
selection={{colors.primary.default.hex_stripped}}ff
selection-text={{colors.on_surface.default.hex_stripped}}ff
selection-match={{colors.on_primary.default.hex_stripped}}ff
counter={{colors.secondary.default.hex_stripped}}ff
border={{colors.primary.default.hex_stripped}}ff

View file

@ -0,0 +1,22 @@
background = {{colors.background.default.hex}}
foreground = {{colors.on_surface.default.hex}}
cursor-color = {{colors.primary.default.hex}}
cursor-text = {{colors.on_primary.default.hex}}
selection-background = {{colors.secondary_container.default.hex}}
selection-foreground = {{colors.on_secondary_container.default.hex}}
palette = 0={{colors.surface_container_high.default.hex}}
palette = 1={{colors.error.default.hex}}
palette = 2={{colors.primary.default.hex}}
palette = 3={{colors.tertiary.default.hex}}
palette = 4={{colors.secondary.default.hex}}
palette = 5={{colors.primary_fixed.default.hex}}
palette = 6={{colors.secondary_fixed.default.hex}}
palette = 7={{colors.on_surface_variant.default.hex}}
palette = 8={{colors.outline.default.hex}}
palette = 9={{colors.error_container.default.hex}}
palette = 10={{colors.primary_container.default.hex}}
palette = 11={{colors.tertiary_container.default.hex}}
palette = 12={{colors.secondary_container.default.hex}}
palette = 13={{colors.inverse_primary.default.hex}}
palette = 14={{colors.outline_variant.default.hex}}
palette = 15={{colors.on_surface.default.hex}}

View file

@ -0,0 +1,23 @@
/*
* GTK Colors
* Generated with Matugen
*/
@define-color accent_color {{colors.primary_fixed_dim.default.hex}};
@define-color accent_fg_color {{colors.on_primary_fixed.default.hex}};
@define-color accent_bg_color {{colors.primary_fixed_dim.default.hex}};
@define-color window_bg_color {{colors.surface_dim.default.hex}};
@define-color window_fg_color {{colors.on_surface.default.hex}};
@define-color headerbar_bg_color {{colors.surface_dim.default.hex}};
@define-color headerbar_fg_color {{colors.on_surface.default.hex}};
@define-color popover_bg_color {{colors.surface_dim.default.hex}};
@define-color popover_fg_color {{colors.on_surface.default.hex}};
@define-color view_bg_color {{colors.surface.default.hex}};
@define-color view_fg_color {{colors.on_surface.default.hex}};
@define-color card_bg_color {{colors.surface.default.hex}};
@define-color card_fg_color {{colors.on_surface.default.hex}};
@define-color sidebar_bg_color @window_bg_color;
@define-color sidebar_fg_color @window_fg_color;
@define-color sidebar_border_color @window_bg_color;
@define-color sidebar_backdrop_color @window_bg_color;

View file

@ -0,0 +1,128 @@
# Helix Theme Template using Material You with improved contrast
# --- Syntax Elements ---
"attribute" = "{{ colors.primary.default.hex }}"
"type" = "{{ colors.secondary.default.hex }}"
"type.enum.variant" = "{{ colors.secondary.default.hex }}"
"constructor" = "{{ colors.primary_fixed.default.hex }}"
"constant" = "{{ colors.tertiary.default.hex }}"
"constant.character" = "{{ colors.tertiary.default.hex }}"
"constant.character.escape" = "{{ colors.tertiary_container.default.hex }}"
"string" = "{{ colors.primary.default.hex }}"
"string.regexp" = "{{ colors.tertiary_container.default.hex }}"
"string.special" = "{{ colors.primary_fixed.default.hex }}"
"string.special.symbol" = "{{ colors.error.default.hex }}"
"comment" = { fg = "{{ colors.on_surface_variant.default.hex }}", modifiers = ["italic"] }
"variable" = "{{ colors.on_background.default.hex }}"
"variable.parameter" = { fg = "{{ colors.error_container.default.hex }}", modifiers = ["italic"] }
"variable.builtin" = "{{ colors.error.default.hex }}"
"variable.other.member" = "{{ colors.primary.default.hex }}"
"label" = "{{ colors.primary_fixed.default.hex }}"
"punctuation" = "{{ colors.on_surface_variant.default.hex }}"
"punctuation.special" = "{{ colors.secondary.default.hex }}"
"keyword" = "{{ colors.primary.default.hex }}"
"keyword.control.conditional" = { fg = "{{ colors.primary.default.hex }}", modifiers = ["italic"] }
"operator" = "{{ colors.secondary.default.hex }}"
"function" = "{{ colors.primary.default.hex }}"
"function.macro" = "{{ colors.primary_container.default.hex }}"
"tag" = "{{ colors.primary.default.hex }}"
"namespace" = { fg = "{{ colors.secondary.default.hex }}", modifiers = ["italic"] }
"special" = "{{ colors.primary.default.hex }}"
# --- Markup ---
"markup.heading.1" = "{{ colors.error.default.hex }}"
"markup.heading.2" = "{{ colors.primary.default.hex }}"
"markup.heading.3" = "{{ colors.secondary.default.hex }}"
"markup.heading.4" = "{{ colors.tertiary.default.hex }}"
"markup.heading.5" = "{{ colors.primary_fixed.default.hex }}"
"markup.heading.6" = "{{ colors.on_primary_fixed_variant.default.hex }}"
"markup.list" = "{{ colors.secondary.default.hex }}"
"markup.list.unchecked" = "{{ colors.on_surface_variant.default.hex }}"
"markup.list.checked" = "{{ colors.primary_fixed.default.hex }}"
"markup.bold" = { fg = "{{ colors.primary.default.hex }}", modifiers = ["bold"] }
"markup.italic" = { fg = "{{ colors.secondary.default.hex }}", modifiers = ["italic"] }
"markup.link.url" = { fg = "{{ colors.primary.default.hex }}", modifiers = ["italic", "underlined"] }
"markup.link.text" = "{{ colors.primary_fixed.default.hex }}"
"markup.link.label" = "{{ colors.tertiary.default.hex }}"
"markup.raw" = "{{ colors.on_tertiary_container.default.hex }}"
"markup.quote" = "{{ colors.tertiary_container.default.hex }}"
# --- Diff ---
"diff.plus" = "{{ colors.tertiary.default.hex }}"
"diff.minus" = "{{ colors.error.default.hex }}"
"diff.delta" = "{{ colors.primary.default.hex }}"
# --- UI Elements ---
"ui.background" = { fg = "{{ colors.on_background.default.hex }}", bg = "none" }
"ui.linenr" = { fg = "{{ colors.on_surface_variant.default.hex }}" }
"ui.linenr.selected" = { fg = "{{ colors.primary_fixed.default.hex }}" }
"ui.statusline" = { fg = "{{ colors.on_primary_container.default.hex }}", bg = "none" }
"ui.statusline.inactive" = { fg = "{{ colors.on_surface_variant.default.hex }}", bg = "none" }
"ui.statusline.normal" = { fg = "{{ colors.background.default.hex }}", bg = "none", modifiers = ["bold"] }
"ui.statusline.insert" = { fg = "{{ colors.background.default.hex }}", bg = "none", modifiers = ["bold"] }
"ui.statusline.select" = { fg = "{{ colors.background.default.hex }}", bg = "none", modifiers = ["bold"] }
"ui.popup" = { fg = "{{ colors.on_surface.default.hex }}", bg = "none" }
"ui.window" = { fg = "{{ colors.on_surface_variant.default.hex }}" }
"ui.help" = { fg = "{{ colors.on_surface_variant.default.hex }}", bg = "none" }
"ui.bufferline" = { fg = "{{ colors.on_surface_variant.default.hex }}", bg = "none" }
"ui.bufferline.active" = { fg = "{{ colors.on_primary.default.hex }}", bg = "{{ colors.primary.default.hex }}", underline = { color = "{{ colors.primary.default.hex }}", style = "line" } }
"ui.bufferline.background" = { bg = "none" }
"ui.text" = "{{ colors.on_background.default.hex }}"
"ui.text.focus" = { fg = "{{ colors.primary.default.hex }}", bg = "none", modifiers = ["bold"] }
"ui.text.inactive" = { fg = "{{ colors.on_surface_variant.default.hex }}" }
"ui.text.directory" = { fg = "{{ colors.primary.default.hex }}" }
"ui.virtual" = "{{ colors.on_surface_variant.default.hex }}"
"ui.virtual.ruler" = { bg = "none" }
"ui.virtual.indent-guide" = "{{ colors.surface_container_low.default.hex }}"
"ui.virtual.inlay-hint" = { fg = "{{ colors.on_surface_variant.default.hex }}", bg = "none" }
"ui.virtual.jump-label" = { fg = "{{ colors.primary_container.default.hex }}", modifiers = ["bold"] }
"ui.selection" = { bg = "{{ colors.outline_variant.default.hex }}" }
"ui.cursor" = { fg = "{{ colors.background.default.hex }}", bg = "{{ colors.on_primary_container.default.hex }}" }
"ui.cursor.primary" = { fg = "{{ colors.background.default.hex }}", bg = "{{ colors.primary_fixed.default.hex }}" }
"ui.cursor.match" = { fg = "{{ colors.on_primary_container.default.hex }}", modifiers = ["bold"] }
"ui.highlight" = { bg = "{{ colors.secondary_container.default.hex }}", modifiers = ["bold"] }
"ui.menu" = { fg = "{{ colors.on_surface.default.hex }}", bg = "none" }
"ui.menu.selected" = { fg = "{{ colors.primary.default.hex }}", bg = "none", modifiers = ["bold"] }
# --- Diagnostics ---
"diagnostic.error" = { fg = "{{ colors.error.default.hex }}", underline = { color = "{{ colors.error.default.hex }}", style = "curl" } }
"diagnostic.warning" = { fg = "{{ colors.secondary.default.hex }}", underline = { color = "{{ colors.secondary.default.hex }}", style = "curl" } }
"diagnostic.info" = { fg = "{{ colors.tertiary.default.hex }}", underline = { color = "{{ colors.tertiary.default.hex }}", style = "curl" } }
"diagnostic.hint" = { fg = "{{ colors.tertiary_container.default.hex }}", underline = { color = "{{ colors.tertiary_container.default.hex }}", style = "curl" } }
"diagnostic.unnecessary" = { modifiers = ["dim"] }
# --- Fallbacks (non-template usage) ---
error = "{{ colors.error.default.hex }}"
warning = "{{ colors.tertiary.default.hex }}"
info = "{{ colors.primary.default.hex }}"
hint = "{{ colors.secondary.default.hex }}"

View file

@ -0,0 +1,51 @@
body.matugen {
--accent: {{colors.tertiary.default.hex}};
--accent-overlay: {{colors.inverse_primary.default.hex}};
--primary: {{colors.primary.default.hex}};
--primary-hover: {{colors.primary_container.default.hex}};
--navbar-accent: var(--primary);
--background: {{colors.background.default.hex}};
--body-background: {{colors.surface.default.hex}};
--navbar-background: {{colors.surface_container.default.hex}};
--background-darker: var(--background);
--current-background: var(--body-background);
--navbar-active-background: {{colors.surface_container_high.default.hex}};
--gradient-body-background: linear-gradient(
90deg,
var(--background-darker) -32px,
var(--body-background) 64px,
var(--body-background) 100%
);
--input-background: var(--navbar-background);
--modal-background: var(--body-background);
--modal-border: var(--body-background);
--success: {{colors.tertiary.default.hex}};
--success-hover: {{colors.tertiary_container.default.hex}};
--danger: {{colors.error.default.hex}};
--danger-hover: {{colors.error_container.default.hex}};
--text-default: {{colors.on_surface.default.hex}};
--text-title: {{colors.on_surface.default.hex}};
--text-secondary: {{colors.on_surface_variant.default.hex}};
--text-tertiary: {{colors.outline.default.hex}};
--text-hover: {{colors.primary.default.hex}};
--text-title: {{colors.on_surface.default.hex}};
--action-icon: {{colors.on_surface.default.hex}};
--action-icon-hover: {{colors.primary.default.hex}};
--action-icon-active: {{colors.primary_container.default.hex}};
--icons-background: {{colors.surface_variant.default.hex}};
--icon-disabled: {{colors.on_surface_variant.default.hex}};
--anticheat-denied: var(--danger);
--anticheat-broken: var(--accent);
--anticheat-running: var(--primary);
--anticheat-supported: var(--success);
--anticheat-planned: {{colors.secondary.default.hex}};
}

View file

@ -0,0 +1,4 @@
$image = {{image}}
<* for name, value in colors *>
${{name}} = rgba({{value.default.hex_stripped}}ff)
<* endfor *>

View file

@ -0,0 +1,18 @@
# ┳┳┓┏┓┏┳┓┳┳┏┓┏┓┳┓ ┓┏┓┏┏┓┳┓┓ ┏┓┏┓┓┏┓
# ┃┃┃┣┫ ┃ ┃┃┃┓┣ ┃┃━━┣┫┗┫┃┃┣┫┃ ┃┃┃ ┃┫
# ┛ ┗┛┗ ┻ ┗┛┗┛┗┛┛┗ ┛┗┗┛┣┛┛┗┗┛┗┛┗┛┛┗┛
#
# Image Path
$image = {{image}}
# An alpha background
$surface_alpha = rgba({{colors.surface.default.hex_stripped}}4d)
# All Colors
<* for name, value in colors *>
${{name}} = rgba({{value.default.hex_stripped}}ff)
<* endfor *>

View file

@ -0,0 +1,7 @@
background = 0xff{{colors.surface.default.hex_stripped}}
base = 0xff{{colors.surface_container.default.hex_stripped}}
text = 0xff{{colors.on_surface.default.hex_stripped}}
alternate_base = 0xff{{colors.surface_container_high.default.hex_stripped}}
bright_text = 0xff{{colors.on_surface_variant.default.hex_stripped}}
accent = 0xff{{colors.primary.default.hex_stripped}}
accent_secondary = 0xff{{colors.secondary.default.hex_stripped}}

View file

@ -0,0 +1,557 @@
/* ========================================
HyprWave - Matugen Theme
======================================== */
:root {
/* Background Colors - Deep Black */
--bg-primary: {{colors.surface.default.hex}};
--bg-secondary: {{colors.surface.default.hex}};
--bg-album-cover: {{colors.on_secondary_fixed.default.hex}};
--bg-album-secondary: {{colors.on_secondary_fixed.default.hex}};
/* Button Colors - Default (Prev/Next) - Soft White */
--btn-default: {{colors.primary.default.hex}};
--btn-default-secondary: {{colors.primary.default.hex}};
--btn-default-active: {{colors.inverse_primary.default.hex}};
--btn-default-hover: {{colors.primary_container.default.hex}};
--btn-default-hover-secondary: {{colors.primary_container.default.hex}};
/* Button Colors - Play/Pause - Bright White */
--btn-play: {{colors.primary.default.hex}};
--btn-play-secondary: {{colors.primary.default.hex}};
--btn-play-hover: {{colors.primary_container.default.hex}};
--btn-play-hover-secondary: {{colors.primary_container.default.hex}};
--btn-play-active: {{colors.inverse_primary.default.hex}};
--btn-play-active-secondary: {{colors.inverse_primary.default.hex}};
/* Button Colors - Expand - Cool White */
--btn-expand: {{colors.primary.default.hex}};
--btn-expand-secondary: {{colors.primary.default.hex}};
--btn-expand-hover: {{colors.primary_container.default.hex}};
--btn-expand-hover-secondary: {{colors.primary_container.default.hex}};
--btn-expand-active: {{colors.inverse_primary.default.hex}};
--btn-expand-active-secondary: {{colors.inverse_primary.default.hex}};
/* Progress Bar Colors */
--progress-bg: {{colors.inverse_on_surface.default.hex}};
--progress-fill-start: #ff0100;
--progress-fill-end: {{colors.primary.default.hex}};
/* Slider Handle Colors */
--handle-color: {{colors.primary.default.hex}};
--handle-hover: {{colors.primary.default.hex}};
--handle-border: {{colors.primary.default.hex}};
--handle-shadow: {{colors.primary.default.hex}};
/* Text Colors - Bright white on pure black */
--text-primary: {{colors.primary.default.hex}};
--text-secondary: {{colors.primary_container.default.hex}};
--text-tertiary: {{colors.primary_container.default.hex}};
--text-muted: {{colors.primary.default.hex}};
/* Border Colors */
--border-primary: {{colors.primary.default.hex}};
--border-button: rgba(100, 100, 100, 0);
--border-button-hover: rgba(120, 120, 120, 0);
--border-play: rgba(255, 255, 255, 0);
--border-play-hover: rgba(255, 255, 255, 0);
--border-expand: rgba(235, 235, 240, 0);
--border-expand-hover: rgba(245, 245, 250, 0);
/* Shadow Colors */
--shadow-default: rgba(0, 0, 0, 0);
--shadow-button: rgba(0, 0, 0, 0);
--shadow-play: rgba(255, 255, 255, 0);
--shadow-play-hover: rgba(255, 255, 255, 0);
--shadow-expand: rgba(235, 235, 240, 0);
--shadow-expand-hover: rgba(245, 245, 250, 0);
--shadow-focus: rgba(255, 255, 255, 0);
/* Spacing & Sizes */
--border-radius-container: 20px;
--border-radius-section: 20px;
--border-radius-album: 4px;
--border-radius-button: 50%;
--border-radius-progress: 4px;
--padding-container: 20px;
--padding-section: 20px;
}
/* Visualizer bars - pure white with strong glow */
/* ========================================
Base Styles
======================================== */
/* GTK4 transparent window - CRITICAL for compositor transparency */
window {
background-color: transparent;
}
/* Ensure ALL window-level elements are transparent */
/* Main container - transparent */
.main-container {
background: transparent;
min-height: 500px;
min-width: 500px;
}
/* ========================================
Control Container (Vertical Bar)
======================================== */
.control-container {
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
border-radius: var(--border-radius-container);
border: 4px solid var(--border-primary);
padding: var(--padding-container);
margin: 0;
}
/* ========================================
Control Container (Horizontal Bar)
For Top/Bottom Layouts
======================================== */
.control-container-horizontal {
/* Match the vertical style exactly for consistency */
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
border-radius: var(--border-radius-container);
/* Keeps the pill shape */
border: 4px solid var(--border-primary);
/* Horizontal padding is critical here to prevent buttons
from touching the rounded edges */
padding: 8px 24px;
margin: 0;
}
/* ========================================
Expanded Section (Album Details Card)
======================================== */
.expanded-section {
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
border-radius: var(--border-radius-section);
border: 4px solid var(--border-primary);
padding: var(--padding-section);
margin: 0;
margin-top: 4px;
/* Reduced spacing from control bar */
}
/* ========================================
Expanded Section (Horizontal Layout)
For Top/Bottom Layouts
======================================== */
.expanded-section-horizontal {
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
border-radius: var(--border-radius-section);
border: 4px solid var(--border-primary);
/* Slightly different padding/margin to look good below/above the bar */
padding: var(--padding-section);
margin-top: 2px;
/* Adds gap between control bar and this panel */
margin-bottom: 2px;
/* Ensure it doesn't get too squeezed */
min-width: 300px;
}
/* Album cover */
.album-cover {
background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary));
border-radius: var(--border-radius-album);
border: 4px solid var(--border-button);
box-shadow: 0 4px 16px var(--shadow-button);
}
/* ========================================
Text Styles
======================================== */
/* Source label (e.g., "Spotify") */
.source-label {
color: var(--text-muted);
font-size: 11px;
font-weight: 500;
margin-top: 8px;
text-transform: uppercase;
letter-spacing: 0.5px;
}
/* Track title */
.track-title {
color: var(--text-primary);
font-size: 14px;
font-weight: 600;
margin-top: 4px;
}
/* Artist label */
.artist-label {
color: var(--text-secondary);
font-size: 12px;
font-weight: 500;
margin-top: 2px;
}
/* Time remaining */
.time-remaining {
color: var(--text-tertiary);
font-size: 12px;
font-weight: 500;
margin-top: 2px;
}
/* ========================================
Progress Bar - FIXED FOR GTK4
======================================== */
.track-progress {
min-height: 4px;
margin-top: 8px;
margin-bottom: 4px;
}
/* The background track */
.track-progress trough {
background: var(--progress-bg);
border-radius: var(--border-radius-progress);
min-height: 4px;
}
/* The filled progress portion - GTK4 specific */
.track-progress progress {
background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end));
border-radius: var(--border-radius-progress);
min-height: 4px;
}
/* GTK4 also needs this for the fill bar to show */
progressbar trough {
background: var(--progress-bg);
border-radius: var(--border-radius-progress);
min-height: 4px;
}
progressbar progress {
background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end));
border-radius: var(--border-radius-progress);
min-height: 4px;
}
/* ========================================
Control Buttons - FIXED ROUNDED SHAPE
======================================== */
/* All control buttons - base styles */
.control-button {
padding: 0;
/* Add margin to compensate for removed border */
margin: 1.5px;
/* Same as the old border width */
min-width: 44px;
min-height: 44px;
background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
border: none;
box-shadow:
inset 0 0 0 1.5px var(--border-button),
0 4px 16px var(--shadow-button),
inset 0 1px 1px rgba(255, 255, 255, 0.2);
border-radius: 50%;
}
.control-button:hover {
background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary));
border-color: var(--border-button-hover);
box-shadow:
0 6px 20px var(--shadow-button),
inset 0 1px 1px rgba(255, 255, 255, 0.25);
transform: translateY(-1px);
}
.control-button:active {
transform: scale(0.96);
box-shadow:
0 2px 8px var(--shadow-button),
inset 0 2px 4px rgba(0, 0, 0, 0.2);
}
/* ========================================
Play/Pause Button (Blue)
======================================== */
.play-button {
background: linear-gradient(135deg, var(--btn-play), var(--btn-play-secondary));
border-color: var(--border-play);
box-shadow:
0 4px 16px var(--shadow-play),
inset 0 1px 1px rgba(255, 255, 255, 0.3);
}
.play-button:hover {
background: linear-gradient(135deg, var(--btn-play-hover), var(--btn-play-hover-secondary));
border-color: var(--border-play-hover);
box-shadow:
0 6px 20px var(--shadow-play-hover),
inset 0 1px 1px rgba(255, 255, 255, 0.4);
}
.play-button:active {
background: linear-gradient(135deg, var(--btn-play-active), var(--btn-play-active-secondary));
box-shadow:
0 2px 10px var(--shadow-play),
inset 0 2px 4px rgba(0, 0, 0, 0.15);
}
/* ========================================
Expand Button (Purple)
======================================== */
.expand-button {
background: linear-gradient(135deg, var(--btn-expand), var(--btn-expand-secondary));
border-color: var(--border-expand);
box-shadow:
0 4px 16px var(--shadow-expand),
inset 0 1px 1px rgba(255, 255, 255, 0.3);
}
.expand-button:hover {
background: linear-gradient(135deg, var(--btn-expand-hover), var(--btn-expand-hover-secondary));
border-color: var(--border-expand-hover);
box-shadow:
0 6px 20px var(--shadow-expand-hover),
inset 0 1px 1px rgba(255, 255, 255, 0.4);
}
.expand-button:active {
background: linear-gradient(135deg, var(--btn-expand-active), var(--btn-expand-active-secondary));
box-shadow:
0 2px 10px var(--shadow-expand),
inset 0 2px 4px rgba(0, 0, 0, 0.15);
}
/* ========================================
Previous/Next Buttons
======================================== */
.prev-button,
.next-button {
background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
}
.prev-button:hover,
.next-button:hover {
background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary));
}
/* ========================================
Focus & Accessibility
======================================== */
button {
outline: none;
}
button:focus {
outline: none;
box-shadow:
0 0 0 3px var(--shadow-focus),
0 4px 16px var(--shadow-play),
inset 0 1px 1px rgba(255, 255, 255, 0.3);
}
/* ========================================
Notification Styles
======================================== */
.notification-window {
background: transparent;
}
.notification-container {
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
border-radius: var(--border-radius-section);
border: 4px solid var(--border-primary);
padding: 10px 12px;
/* Reduced from 12px to 10px vertical padding */
min-width: 280px;
/* Reduced from 320px */
max-width: 300px;
/* Added max-width */
}
.notification-album {
background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary));
border-radius: var(--border-radius-album);
border: 4px solid var(--border-button);
margin: 5px;
}
.notification-header {
color: var(--text-muted);
font-size: 10px;
/* Reduced from 11px */
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
margin-bottom: 6px;
/* Reduced from 8px */
}
.notification-song {
color: var(--text-primary);
font-size: 13px;
/* Reduced from 14px */
font-weight: 600;
line-height: 1.2;
/* Added for tighter spacing */
}
.notification-artist {
color: var(--text-secondary);
font-size: 11px;
/* Reduced from 12px */
font-weight: 500;
line-height: 1.2;
/* Added for tighter spacing */
}
/* ========================================
Volume Control Styles
======================================== */
.volume-container {
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
border-radius: var(--border-radius-section);
border: 4px solid var(--border-primary);
padding: 12px;
margin: 0px;
}
.volume-icon {
min-width: 20px;
min-height: 20px;
}
.volume-percentage {
color: var(--text-primary);
font-size: 13px;
font-weight: 600;
min-width: 40px;
}
/* Volume slider - similar to progress bar but with different colors */
.volume-slider {
min-height: 24px;
min-width: 24px;
}
/* The background track */
.volume-slider trough {
background: var(--progress-bg);
border-radius: var(--border-radius-progress);
min-height: 6px;
min-width: 6px;
}
/* The filled portion */
.volume-slider progress {
background: linear-gradient(90deg, var(--btn-default), var(--btn-default-secondary));
border-radius: var(--border-radius-progress);
min-height: 6px;
min-width: 6px;
}
/* The slider handle */
.volume-slider slider {
min-height: 16px;
min-width: 16px;
background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
border: 2px solid var(--border-button);
border-radius: 50%;
}
.volume-slider slider:hover {
background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary));
border-color: var(--border-button-hover);
transform: scale(1.1);
}
.volume-slider slider:active {
background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
transform: scale(0.95);
}
/* GTK4 specific for vertical sliders */
.volume-slider.vertical trough {
min-width: 6px;
}
.volume-slider.vertical progress {
min-width: 6px;
}
/* ========================================
Visualizer Bars - Idle Mode Animation
======================================== */
/* Container padding to keep bars inside control bar edges */
.visualizer-container {
padding: 0px;
/* 5px padding on left/right keeps bars inside */
padding-bottom: 1px;
/* Small bottom padding to align with control bar bottom */
border-radius: 0 0 12px 12px;
}
Smooth control bar height transitions for idle mode */ .control-container-horizontal {
transition: all 0.1s cubic-bezier(0.4, 0, 0.2, 1);
}
/* Smooth button fade transitions */
.control-button {
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1),
opacity 0.3s ease-in-out;
}
/* Ensure overlay respects size changes */
overlay {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
/* Vertical Display (for vertical layouts) */
.vertical-display-container {
background: transparent;
padding: 8px 4px;
}
.vertical-display-label {
font-family: 'IosevkaTerm Nerd Font', monospace;
font-size: 28px;
font-weight: bold;
color: white;
/* Match visualizer bar color */
letter-spacing: 0px;
line-height: 1.2;
}

View file

@ -0,0 +1,559 @@
/* ========================================
HyprWave - Matugen Theme
======================================== */
:root {
/* Background Colors - Deep Black */
--bg-primary: {{colors.surface.default.hex}};
--bg-secondary: {{colors.surface.default.hex}};
;
--bg-album-cover: {{colors.on_secondary_fixed.default.hex}};
--bg-album-secondary: {{colors.on_secondary_fixed.default.hex}};
/* Button Colors - Default (Prev/Next) - Soft White */
--btn-default: {{colors.primary.default.hex}};
--btn-default-secondary: {{colors.primary.default.hex}};
--btn-default-active: {{colors.inverse_primary.default.hex}};
--btn-default-hover: {{colors.primary_container.default.hex}};
--btn-default-hover-secondary: {{colors.primary_container.default.hex}};
/* Button Colors - Play/Pause - Bright White */
--btn-play: {{colors.primary.default.hex}};
--btn-play-secondary: {{colors.primary.default.hex}};
--btn-play-hover: {{colors.primary_container.default.hex}};
--btn-play-hover-secondary: {{colors.primary_container.default.hex}};
--btn-play-active: {{colors.inverse_primary.default.hex}};
--btn-play-active-secondary: {{colors.inverse_primary.default.hex}};
/* Button Colors - Expand - Cool White */
--btn-expand: {{colors.primary.default.hex}};
--btn-expand-secondary: {{colors.primary.default.hex}};
--btn-expand-hover: {{colors.primary_container.default.hex}};
--btn-expand-hover-secondary: {{colors.primary_container.default.hex}};
--btn-expand-active: {{colors.inverse_primary.default.hex}};
--btn-expand-active-secondary: {{colors.inverse_primary.default.hex}};
/* Progress Bar Colors */
--progress-bg: {{colors.inverse_on_surface.default.hex}};
--progress-fill-start: #ff0100;
--progress-fill-end: {{colors.primary.default.hex}};
/* Slider Handle Colors */
--handle-color: {{colors.primary.default.hex}};
--handle-hover: {{colors.primary.default.hex}};
--handle-border: {{colors.primary.default.hex}};
--handle-shadow: {{colors.primary.default.hex}};
/* Text Colors - Bright white on pure black */
--text-primary: {{colors.primary.default.hex}};
--text-secondary: {{colors.primary_container.default.hex}};
--text-tertiary: {{colors.primary_container.default.hex}};
--text-muted: {{colors.primary.default.hex}}
;
/* Border Colors */
--border-primary: {{colors.primary.default.hex}};
--border-button: rgba(100, 100, 100, 0);
--border-button-hover: rgba(120, 120, 120, 0);
--border-play: rgba(255, 255, 255, 0);
--border-play-hover: rgba(255, 255, 255, 0);
--border-expand: rgba(235, 235, 240, 0);
--border-expand-hover: rgba(245, 245, 250, 0);
/* Shadow Colors */
--shadow-default: rgba(0, 0, 0, 0);
--shadow-button: rgba(0, 0, 0, 0);
--shadow-play: rgba(255, 255, 255, 0);
--shadow-play-hover: rgba(255, 255, 255, 0);
--shadow-expand: rgba(235, 235, 240, 0);
--shadow-expand-hover: rgba(245, 245, 250, 0);
--shadow-focus: rgba(255, 255, 255, 0);
/* Spacing & Sizes */
--border-radius-container: 20px;
--border-radius-section: 20px;
--border-radius-album: 4px;
--border-radius-button: 50%;
--border-radius-progress: 4px;
--padding-container: 20px;
--padding-section: 20px;
}
/* Visualizer bars - pure white with strong glow */
/* ========================================
Base Styles
======================================== */
/* GTK4 transparent window - CRITICAL for compositor transparency */
window {
background-color: transparent;
}
/* Ensure ALL window-level elements are transparent */
/* Main container - transparent */
.main-container {
background: transparent;
min-height: 500px;
min-width: 500px;
}
/* ========================================
Control Container (Vertical Bar)
======================================== */
.control-container {
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
border-radius: var(--border-radius-container);
border: 4px solid var(--border-primary);
padding: var(--padding-container);
margin: 0;
}
/* ========================================
Control Container (Horizontal Bar)
For Top/Bottom Layouts
======================================== */
.control-container-horizontal {
/* Match the vertical style exactly for consistency */
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
border-radius: var(--border-radius-container);
/* Keeps the pill shape */
border: 4px solid var(--border-primary);
/* Horizontal padding is critical here to prevent buttons
from touching the rounded edges */
padding: 8px 24px;
margin: 0;
}
/* ========================================
Expanded Section (Album Details Card)
======================================== */
.expanded-section {
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
border-radius: var(--border-radius-section);
border: 4px solid var(--border-primary);
padding: var(--padding-section);
margin: 0;
margin-top: 4px;
/* Reduced spacing from control bar */
}
/* ========================================
Expanded Section (Horizontal Layout)
For Top/Bottom Layouts
======================================== */
.expanded-section-horizontal {
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
border-radius: var(--border-radius-section);
border: 4px solid var(--border-primary);
/* Slightly different padding/margin to look good below/above the bar */
padding: var(--padding-section);
margin-top: 2px;
/* Adds gap between control bar and this panel */
margin-bottom: 2px;
/* Ensure it doesn't get too squeezed */
min-width: 300px;
}
/* Album cover */
.album-cover {
background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary));
border-radius: var(--border-radius-album);
border: 4px solid var(--border-button);
box-shadow: 0 4px 16px var(--shadow-button);
}
/* ========================================
Text Styles
======================================== */
/* Source label (e.g., "Spotify") */
.source-label {
color: var(--text-muted);
font-size: 11px;
font-weight: 500;
margin-top: 8px;
text-transform: uppercase;
letter-spacing: 0.5px;
}
/* Track title */
.track-title {
color: var(--text-primary);
font-size: 14px;
font-weight: 600;
margin-top: 4px;
}
/* Artist label */
.artist-label {
color: var(--text-secondary);
font-size: 12px;
font-weight: 500;
margin-top: 2px;
}
/* Time remaining */
.time-remaining {
color: var(--text-tertiary);
font-size: 12px;
font-weight: 500;
margin-top: 2px;
}
/* ========================================
Progress Bar - FIXED FOR GTK4
======================================== */
.track-progress {
min-height: 4px;
margin-top: 8px;
margin-bottom: 4px;
}
/* The background track */
.track-progress trough {
background: var(--progress-bg);
border-radius: var(--border-radius-progress);
min-height: 4px;
}
/* The filled progress portion - GTK4 specific */
.track-progress progress {
background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end));
border-radius: var(--border-radius-progress);
min-height: 4px;
}
/* GTK4 also needs this for the fill bar to show */
progressbar trough {
background: var(--progress-bg);
border-radius: var(--border-radius-progress);
min-height: 4px;
}
progressbar progress {
background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end));
border-radius: var(--border-radius-progress);
min-height: 4px;
}
/* ========================================
Control Buttons - FIXED ROUNDED SHAPE
======================================== */
/* All control buttons - base styles */
.control-button {
padding: 0;
/* Add margin to compensate for removed border */
margin: 1.5px;
/* Same as the old border width */
min-width: 44px;
min-height: 44px;
background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
border: none;
box-shadow:
inset 0 0 0 1.5px var(--border-button),
0 4px 16px var(--shadow-button),
inset 0 1px 1px rgba(255, 255, 255, 0.2);
border-radius: 50%;
}
.control-button:hover {
background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary));
border-color: var(--border-button-hover);
box-shadow:
0 6px 20px var(--shadow-button),
inset 0 1px 1px rgba(255, 255, 255, 0.25);
transform: translateY(-1px);
}
.control-button:active {
transform: scale(0.96);
box-shadow:
0 2px 8px var(--shadow-button),
inset 0 2px 4px rgba(0, 0, 0, 0.2);
}
/* ========================================
Play/Pause Button (Blue)
======================================== */
.play-button {
background: linear-gradient(135deg, var(--btn-play), var(--btn-play-secondary));
border-color: var(--border-play);
box-shadow:
0 4px 16px var(--shadow-play),
inset 0 1px 1px rgba(255, 255, 255, 0.3);
}
.play-button:hover {
background: linear-gradient(135deg, var(--btn-play-hover), var(--btn-play-hover-secondary));
border-color: var(--border-play-hover);
box-shadow:
0 6px 20px var(--shadow-play-hover),
inset 0 1px 1px rgba(255, 255, 255, 0.4);
}
.play-button:active {
background: linear-gradient(135deg, var(--btn-play-active), var(--btn-play-active-secondary));
box-shadow:
0 2px 10px var(--shadow-play),
inset 0 2px 4px rgba(0, 0, 0, 0.15);
}
/* ========================================
Expand Button (Purple)
======================================== */
.expand-button {
background: linear-gradient(135deg, var(--btn-expand), var(--btn-expand-secondary));
border-color: var(--border-expand);
box-shadow:
0 4px 16px var(--shadow-expand),
inset 0 1px 1px rgba(255, 255, 255, 0.3);
}
.expand-button:hover {
background: linear-gradient(135deg, var(--btn-expand-hover), var(--btn-expand-hover-secondary));
border-color: var(--border-expand-hover);
box-shadow:
0 6px 20px var(--shadow-expand-hover),
inset 0 1px 1px rgba(255, 255, 255, 0.4);
}
.expand-button:active {
background: linear-gradient(135deg, var(--btn-expand-active), var(--btn-expand-active-secondary));
box-shadow:
0 2px 10px var(--shadow-expand),
inset 0 2px 4px rgba(0, 0, 0, 0.15);
}
/* ========================================
Previous/Next Buttons
======================================== */
.prev-button,
.next-button {
background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
}
.prev-button:hover,
.next-button:hover {
background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary));
}
/* ========================================
Focus & Accessibility
======================================== */
button {
outline: none;
}
button:focus {
outline: none;
box-shadow:
0 0 0 3px var(--shadow-focus),
0 4px 16px var(--shadow-play),
inset 0 1px 1px rgba(255, 255, 255, 0.3);
}
/* ========================================
Notification Styles
======================================== */
.notification-window {
background: transparent;
}
.notification-container {
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
border-radius: var(--border-radius-section);
border: 4px solid var(--border-primary);
padding: 10px 12px;
/* Reduced from 12px to 10px vertical padding */
min-width: 280px;
/* Reduced from 320px */
max-width: 300px;
/* Added max-width */
}
.notification-album {
background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary));
border-radius: var(--border-radius-album);
border: 4px solid var(--border-button);
margin: 5px;
}
.notification-header {
color: var(--text-muted);
font-size: 10px;
/* Reduced from 11px */
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
margin-bottom: 6px;
/* Reduced from 8px */
}
.notification-song {
color: var(--text-primary);
font-size: 13px;
/* Reduced from 14px */
font-weight: 600;
line-height: 1.2;
/* Added for tighter spacing */
}
.notification-artist {
color: var(--text-secondary);
font-size: 11px;
/* Reduced from 12px */
font-weight: 500;
line-height: 1.2;
/* Added for tighter spacing */
}
/* ========================================
Volume Control Styles
======================================== */
.volume-container {
background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
border-radius: var(--border-radius-section);
border: 4px solid var(--border-primary);
padding: 12px;
margin: 0px;
}
.volume-icon {
min-width: 20px;
min-height: 20px;
}
.volume-percentage {
color: var(--text-primary);
font-size: 13px;
font-weight: 600;
min-width: 40px;
}
/* Volume slider - similar to progress bar but with different colors */
.volume-slider {
min-height: 24px;
min-width: 24px;
}
/* The background track */
.volume-slider trough {
background: var(--progress-bg);
border-radius: var(--border-radius-progress);
min-height: 6px;
min-width: 6px;
}
/* The filled portion */
.volume-slider progress {
background: linear-gradient(90deg, var(--btn-default), var(--btn-default-secondary));
border-radius: var(--border-radius-progress);
min-height: 6px;
min-width: 6px;
}
/* The slider handle */
.volume-slider slider {
min-height: 16px;
min-width: 16px;
background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
border: 2px solid var(--border-button);
border-radius: 50%;
}
.volume-slider slider:hover {
background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary));
border-color: var(--border-button-hover);
transform: scale(1.1);
}
.volume-slider slider:active {
background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
transform: scale(0.95);
}
/* GTK4 specific for vertical sliders */
.volume-slider.vertical trough {
min-width: 6px;
}
.volume-slider.vertical progress {
min-width: 6px;
}
/* ========================================
Visualizer Bars - Idle Mode Animation
======================================== */
/* Container padding to keep bars inside control bar edges */
.visualizer-container {
padding: 0px;
/* 5px padding on left/right keeps bars inside */
padding-bottom: 1px;
/* Small bottom padding to align with control bar bottom */
border-radius: 0 0 12px 12px;
}
Smooth control bar height transitions for idle mode */ .control-container-horizontal {
transition: all 0.1s cubic-bezier(0.4, 0, 0.2, 1);
}
/* Smooth button fade transitions */
.control-button {
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1),
opacity 0.3s ease-in-out;
}
/* Ensure overlay respects size changes */
overlay {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
/* Vertical Display (for vertical layouts) */
.vertical-display-container {
background: transparent;
padding: 8px 4px;
}
.vertical-display-label {
font-family: 'IosevkaTerm Nerd Font', monospace;
font-size: 28px;
font-weight: bold;
color: white;
/* Match visualizer bar color */
letter-spacing: 0px;
line-height: 1.2;
}

View file

@ -0,0 +1,12 @@
:root {
--color-dark-primary: {{colors.surface.default.hex}};
--color-dark-secondary: {{colors.surface_container.default.hex}};
--color-white: {{colors.on_surface.default.hex}};
--color-active: {{colors.primary.default.hex}};
--color-urgent: {{colors.error_container.default.hex}};
--margin-lg: 1em;
--margin-sm: 1em;
}

View file

@ -0,0 +1,49 @@
cursor {{ colors.primary.dark.hex }}
cursor_text_color {{ colors.on_primary.dark.hex }}
foreground {{ colors.on_surface.dark.hex }}
background {{ colors.surface_container_lowest.dark.hex }}
selection_foreground {{ colors.on_secondary.dark.hex }}
selection_background {{ colors.secondary.dark.hex }}
url_color {{ colors.secondary.dark.hex }}
#: black 000000 767676
color0 {{ colors.surface.dark.hex }}
color8 {{ colors.surface_container_highest.dark.hex }}
#: red cc0403 f2201f
color1 {{ base16.base08.dark.hex | lighten: -20.0 }}
color9 {{ base16.base08.dark.hex | lighten: 10.0 }}
#: green 19cb00 23fd00
color2 {{ colors.secondary_fixed_dim.dark.hex }}
color10 {{ colors.secondary_fixed.dark.hex }}
#: yellow cecb00 fffd00
color3 {{ colors.tertiary_fixed_dim.dark.hex }}
color11 {{ colors.tertiary_fixed.dark.hex }}
#: blue 0d73cc 1a8fff
color4 {{ colors.on_primary_fixed_variant.dark.hex }}
color12 {{ colors.primary.dark.hex }}
#: magenta cb1ed1 fd28ff
color5 {{ colors.on_secondary_fixed_variant.dark.hex }}
color13 {{ colors.secondary.dark.hex }}
#: cyan 0dcdcd 14ffff
color6 {{ colors.on_tertiary_fixed_variant.dark.hex }}
color14 {{ colors.tertiary.dark.hex }}
#: white dddddd ffffff
color7 {{ colors.on_surface_variant.dark.hex }}
color15 {{ colors.on_surface.dark.hex }}
mark1_foreground {{ colors.on_primary_fixed.dark.hex }}
mark1_background {{ colors.primary_fixed.dark.hex }}
mark2_foreground {{ colors.on_secondary_fixed.dark.hex }}
mark2_background {{ colors.secondary_fixed.dark.hex }}
mark3_foreground {{ colors.on_tertiary_fixed.dark.hex }}
mark3_background {{ colors.tertiary_fixed.dark.hex }}
active_tab_foreground {{ colors.on_primary.dark.hex }}
active_tab_background {{ colors.primary.dark.hex }}
inactive_tab_foreground {{ colors.on_primary_container.dark.hex }}
inactive_tab_background {{ colors.primary_container.dark.hex }}
active_border_color {{ colors.primary.dark.hex }}
inactive_border_color {{ colors.on_primary.dark.hex }}
# bell_border_color #ff5a00

View file

@ -0,0 +1,567 @@
[%General]
author=Vince Liuice, based on KvAdapta by Tsu Jan
comment=An uncomplicated theme inspired by the Materia GTK theme
x11drag=menubar_and_primary_toolbar
alt_mnemonic=true
left_tabs=true
attach_active_tab=true
mirror_doc_tabs=true
group_toolbar_buttons=false
toolbar_item_spacing=0
toolbar_interior_spacing=2
spread_progressbar=true
composite=true
menu_shadow_depth=6
spread_menuitems=true
tooltip_shadow_depth=2
splitter_width=1
scroll_width=9
scroll_arrows=false
scroll_min_extent=60
slider_width=2
slider_handle_width=23
slider_handle_length=22
tickless_slider_handle_size=22
center_toolbar_handle=true
check_size=16
textless_progressbar=false
progressbar_thickness=2
menubar_mouse_tracking=true
toolbutton_style=1
double_click=false
translucent_windows=true
blurring=true
popup_blurring=true
vertical_spin_indicators=false
spin_button_width=24
fill_rubberband=false
merge_menubar_with_toolbar=true
small_icon_size=16
large_icon_size=32
button_icon_size=16
toolbar_icon_size=16
combo_as_lineedit=true
animate_states=true
button_contents_shift=false
combo_menu=true
hide_combo_checkboxes=true
combo_focus_rect=false
groupbox_top_label=true
inline_spin_indicators=true
joined_inactive_tabs=false
layout_spacing=3
layout_margin=3
scrollbar_in_view=true
transient_scrollbar=true
transient_groove=false
submenu_overlap=0
tooltip_delay=0
tree_branch_line=true
no_window_pattern=false
opaque=kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,smplayer,smplayer2,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam,qBittorrent
reduce_window_opacity=0
respect_DE=true
scrollable_menu=false
submenu_delay=150
no_inactiveness=false
reduce_menu_opacity=0
click_behavior=0
contrast=1.00
dialog_button_layout=0
intensity=1.00
saturation=1.00
shadowless_popup=false
drag_from_buttons=false
menu_blur_radius=10
tooltip_blur_radius=10
[GeneralColors]
window.color={{colors.surface.default.hex}}
base.color={{colors.surface_container_highest.default.hex}}
alt.base.color={{colors.surface_container_low.default.hex}}
button.color={{colors.surface_bright.default.hex}}
light.color={{colors.surface_bright.default.hex}}
mid.light.color={{colors.surface_variant.default.hex}}
dark.color={{colors.surface.default.hex}}
mid.color={{colors.surface_container_low.default.hex}}
highlight.color={{colors.primary.default.hex}}
inactive.highlight.color={{colors.primary_fixed_dim.default.hex}}
text.color={{colors.on_surface.default.hex}}
window.text.color={{colors.on_surface.default.hex}}
button.text.color={{colors.on_surface.default.hex}}
disabled.text.color={{colors.inverse_on_surface.default.hex}}
tooltip.text.color={{colors.on_surface.default.hex}}
highlight.text.color={{colors.on_surface.default.hex}}
link.color={{colors.primary.default.hex}}
link.visited.color={{colors.tertiary_fixed_dim.default.hex}}
progress.indicator.text.color={{colors.on_surface.default.hex}}
[Hacks]
transparent_ktitle_label=true
transparent_dolphin_view=true
transparent_pcmanfm_sidepane=true
blur_translucent=true
transparent_menutitle=true
respect_darkness=true
kcapacitybar_as_progressbar=true
force_size_grip=true
iconless_pushbutton=true
iconless_menu=false
disabled_icon_opacity=100
lxqtmainmenu_iconsize=16
normal_default_pushbutton=true
single_top_toolbar=true
tint_on_mouseover=0
transparent_pcmanfm_view=true
no_selection_tint=true
transparent_arrow_button=true
middle_click_scroll=false
opaque_colors=false
kinetic_scrolling=false
scroll_jump_workaround=true
centered_forms=false
noninteger_translucency=false
blur_only_active_window=false
style_vertical_toolbars=false
[PanelButtonCommand]
frame=true
frame.element=button
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
interior=true
interior.element=button
indicator.size=8
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
text.press.color={{colors.on_surface.default.hex}}
text.toggle.color={{colors.on_surface.default.hex}}
text.shadow=0
text.margin=4
text.iconspacing=4
indicator.element=arrow
frame.expansion=0
[PanelButtonTool]
inherits=PanelButtonCommand
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
text.press.color={{colors.on_surface.default.hex}}
text.toggle.color={{colors.on_surface.default.hex}}
text.bold=false
indicator.element=arrow
indicator.size=0
frame.expansion=0
[ToolbarButton]
frame=true
frame.element=tbutton
interior.element=tbutton
frame.top=16
frame.bottom=16
frame.left=16
frame.right=16
indicator.element=tarrow
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
text.press.color={{colors.on_surface.default.hex}}
text.toggle.color={{colors.on_surface.default.hex}}
text.bold=false
frame.expansion=32
[Dock]
inherits=PanelButtonCommand
interior.element=dock
frame.element=dock
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1
text.normal.color={{colors.on_surface.default.hex}}
[DockTitle]
inherits=PanelButtonCommand
frame=false
interior=false
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
text.bold=false
[IndicatorSpinBox]
inherits=PanelButtonCommand
frame=true
interior=true
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
indicator.element=spin
indicator.size=8
text.normal.color={{colors.on_surface.default.hex}}
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
[RadioButton]
inherits=PanelButtonCommand
frame=false
interior.element=radio
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
min_width=+0.3font
min_height=+0.3font
[CheckBox]
inherits=PanelButtonCommand
frame=false
interior.element=checkbox
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
min_width=+0.3font
min_height=+0.3font
[Focus]
inherits=PanelButtonCommand
frame=true
frame.element=focus
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
frame.patternsize=14
[GenericFrame]
inherits=PanelButtonCommand
frame=true
interior=false
frame.element=common
interior.element=common
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1
[LineEdit]
inherits=PanelButtonCommand
frame.element=lineedit
interior.element=lineedit
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
[ToolbarLineEdit]
frame.element=lineedit
interior.element=lineedit
[DropDownButton]
inherits=PanelButtonCommand
indicator.element=arrow-down
[IndicatorArrow]
indicator.element=arrow
indicator.size=8
[ToolboxTab]
inherits=PanelButtonCommand
text.normal.color={{colors.on_surface.default.hex}}
text.press.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
[Tab]
inherits=PanelButtonCommand
interior.element=tab
text.margin.left=8
text.margin.right=8
text.margin.top=2
text.margin.bottom=2
frame.element=tab
indicator.element=tab
indicator.size=22
frame.top=9
frame.bottom=3
frame.left=6
frame.right=6
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
text.press.color={{colors.on_surface.default.hex}}
text.toggle.color={{colors.on_surface.default.hex}}
frame.expansion=0
text.bold=false
[TabFrame]
inherits=PanelButtonCommand
frame.element=tabframe
interior.element=tabframe
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
[TreeExpander]
inherits=PanelButtonCommand
indicator.size=8
indicator.element=tree
[HeaderSection]
inherits=PanelButtonCommand
interior.element=header
frame.element=header
frame.top=0
frame.bottom=1
frame.left=1
frame.right=1
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
text.press.color={{colors.on_surface.default.hex}}
text.toggle.color={{colors.on_surface.default.hex}}
frame.expansion=0
[SizeGrip]
indicator.element=resize-grip
[Toolbar]
inherits=PanelButtonCommand
indicator.element=toolbar
indicator.size=5
text.margin=0
interior.element=menubar
frame.element=menubar
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
text.press.color={{colors.on_surface.default.hex}}
text.toggle.color={{colors.on_surface.default.hex}}
frame.left=0
frame.right=0
frame.top=0
frame.bottom=4
frame.expansion=0
[Slider]
inherits=PanelButtonCommand
frame.element=slider
focusFrame=true
interior.element=slider
frame.top=3
frame.bottom=3
frame.left=3
frame.right=3
[SliderCursor]
inherits=PanelButtonCommand
frame=false
interior.element=slidercursor
[Progressbar]
inherits=PanelButtonCommand
frame.element=progress
interior.element=progress
text.margin=0
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
text.press.color={{colors.on_surface.default.hex}}
text.toggle.color={{colors.on_surface.default.hex}}
text.bold=false
frame.expansion=8
[ProgressbarContents]
inherits=PanelButtonCommand
frame=true
frame.element=progress-pattern
interior.element=progress-pattern
[ItemView]
inherits=PanelButtonCommand
text.margin=0
frame.element=itemview
interior.element=itemview
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
text.margin.top=2
text.margin.bottom=2
text.margin.left=4
text.margin.right=4
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
text.press.color={{colors.on_surface.default.hex}}
text.toggle.color={{colors.on_surface.default.hex}}
min_width=+0.3font
min_height=+0.3font
frame.expansion=0
[Splitter]
indicator.size=48
[Scrollbar]
inherits=PanelButtonCommand
indicator.element=arrow
indicator.size=12
[ScrollbarSlider]
inherits=PanelButtonCommand
frame.element=scrollbarslider
interior=false
frame.left=5
frame.right=5
frame.top=5
frame.bottom=5
indicator.element=grip
indicator.size=12
[ScrollbarGroove]
inherits=PanelButtonCommand
interior=false
frame=false
[Menu]
inherits=PanelButtonCommand
frame.top=10
frame.bottom=10
frame.left=10
frame.right=10
frame.element=menu
interior.element=menu
text.normal.color={{colors.on_surface.default.hex}}
text.shadow=false
frame.expansion=0
text.bold=false
[MenuItem]
inherits=PanelButtonCommand
frame=true
frame.element=menuitem
interior.element=menuitem
indicator.element=menuitem
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
text.margin.top=3
text.margin.bottom=3
text.margin.left=6
text.margin.right=6
frame.top=0
frame.bottom=0
frame.left=6
frame.right=6
text.bold=false
frame.expansion=0
[MenuBar]
inherits=PanelButtonCommand
frame.element=menubar
interior.element=menubar
frame.bottom=0
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
text.press.color={{colors.on_surface.default.hex}}
text.toggle.color={{colors.on_surface.default.hex}}
frame.expansion=0
text.bold=false
[MenuBarItem]
inherits=PanelButtonCommand
interior=true
interior.element=menubaritem
frame.element=menubaritem
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
text.margin.left=4
text.margin.right=4
text.margin.top=0
text.margin.bottom=0
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
text.press.color={{colors.on_surface.default.hex}}
text.toggle.color={{colors.on_surface.default.hex}}
text.bold=false
min_width=+0.3font
min_height=+0.3font
frame.expansion=0
[TitleBar]
inherits=PanelButtonCommand
frame=false
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
interior.element=titlebar
indicator.size=16
indicator.element=mdi
text.normal.color=#787878
text.focus.color={{colors.on_surface.default.hex}}
text.bold=false
text.italic=true
frame.expansion=0
[ComboBox]
inherits=PanelButtonCommand
frame.element=combo
interior.element=combo
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
text.focus.color={{colors.on_surface.default.hex}}
text.press.color={{colors.on_surface.default.hex}}
text.toggle.color={{colors.on_surface.default.hex}}
[GroupBox]
inherits=GenericFrame
frame=false
text.shadow=0
text.margin=0
text.normal.color={{colors.on_surface.default.hex}}
text.focus.color={{colors.on_surface.default.hex}}
text.bold=false
frame.expansion=0
[TabBarFrame]
inherits=GenericFrame
frame=true
frame.element=tabBarFrame
interior=false
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
[ToolTip]
inherits=GenericFrame
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
interior=true
text.shadow=0
text.margin=0
interior.element=tooltip
frame.element=tooltip
frame.expansion=6
[StatusBar]
inherits=GenericFrame
frame=false
interior=false
[Window]
interior=true
interior.element=window
frame=true
frame.element=window
frame.bottom=10
frame.top=10

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 172 KiB

View file

@ -0,0 +1,21 @@
window.active.border.color: {{colors.primary.default.hex}}
window.inactive.border.color: {{colors.background.default.hex}}
window.active.title.bg.color: {{colors.primary_container.default.hex}}
window.active.label.text.color: {{colors.on_primary_container.default.hex}}
window.inactive.label.text.color: {{colors.on_secondary_container.default.hex}}
window.inactive.title.bg.color: {{colors.secondary_container.default.hex}}
window.inactive.button.unpressed.image.color: {{colors.on_secondary_container.default.hex}}
window.active.button.unpressed.image.color: {{colors.on_primary_container.default.hex}}
window.button.hover.bg.color: {{colors.background.default.hex_alpha|set_alpha: 0.2}}
menu.items.bg.color: {{colors.secondary_container.default.hex}}
menu.items.text.color: {{colors.on_secondary_container.default.hex}}
menu.items.active.bg.color: {{colors.primary_container.default.hex}}
menu.items.active.text.color: {{colors.on_primary_container.default.hex}}
menu.separator.color: {{colors.tertiary_container.default.hex}}
menu.title.bg.color: {{colors.on_tertiary_container.default.hex}}
osd.bg.color: {{colors.secondary_container.default.hex}}
osd.label.text.color: {{colors.on_secondary_container.default.hex}}
snapping.overlay.edge.bg.color: {{colors.primary_container.default.hex_alpha|set_alpha: 0.5}}

View file

@ -0,0 +1,16 @@
# Material You colors
background-color={{colors.on_primary.default.hex}}
text-color={{colors.tertiary.default.hex}}
border-color={{colors.tertiary_container.default.hex}}
# Per-mode settings
[mode=do-not-disturb]
invisible=1
on-notify=none
[mode=silent]
on-notify=none
[urgency=high]
border-color={{colors.error_container.default.hex}}

View file

@ -0,0 +1,15 @@
rootcolor={{colors.background.dark.hex_stripped}}ff
bordercolor={{colors.outline_variant.dark.hex_stripped}}ff
focuscolor={{colors.primary_container.dark.hex_stripped}}ff
maximizescreencolor={{colors.secondary.dark.hex_stripped}}ff
urgentcolor={{colors.error.dark.hex_stripped}}ff
scratchpadcolor={{colors.tertiary.dark.hex_stripped}}ff
globalcolor={{colors.secondary_container.dark.hex_stripped}}ff
overlaycolor={{colors.tertiary_container.dark.hex_stripped}}ff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,28 @@
# Matugen template for McFly
# Uses crossterm named colors — hex is not supported by McFly's color parser.
# Named colors are resolved by the terminal emulator, which matugen
# themes separately, so the accent color tracks the Material You palette.
[colors.menubar]
bg = "dark_blue"
fg = "aqua"
[colors.darkmode]
prompt = "dark_blue"
timing = "dark_grey"
results_fg = "grey"
results_bg = "black"
results_hl = "dark_blue"
results_selection_fg = "black"
results_selection_bg = "dark_blue"
results_selection_hl = "white"
[colors.lightmode]
prompt = "dark_blue"
timing = "grey"
results_fg = "black"
results_bg = "white"
results_hl = "dark_blue"
results_selection_fg = "white"
results_selection_bg = "dark_blue"
results_selection_hl = "black"

View file

@ -0,0 +1,45 @@
color-link default "{{ colors.on_surface.default.hex }}"
color-link comment "{{ colors.outline.default.hex }}"
color-link selection "{{ colors.on_primary.default.hex }},{{ colors.primary_container.default.hex }}"
color-link hlsearch "{{ colors.secondary.default.hex }}"
color-link identifier "{{ colors.primary.default.hex }}"
color-link identifier.class "{{ colors.primary.default.hex }}"
color-link identifier.var "{{ colors.primary.default.hex }}"
color-link constant "{{ colors.tertiary.default.hex }}"
color-link constant.number "{{ colors.tertiary.default.hex }}"
color-link constant.string "{{ colors.secondary.default.hex }}"
color-link symbol "{{ colors.tertiary_container.default.hex }}"
color-link symbol.brackets "{{ colors.on_surface_variant.default.hex }}"
color-link symbol.tag "{{ colors.primary.default.hex }}"
color-link type "{{ colors.primary.default.hex }}"
color-link type.keyword "{{ colors.secondary.default.hex }}"
color-link special "{{ colors.tertiary_container.default.hex }}"
color-link statement "{{ colors.primary_container.default.hex }}"
color-link preproc "{{ colors.tertiary_container.default.hex }}"
color-link underlined "{{ colors.secondary.default.hex }}"
color-link error "bold {{ colors.error.default.hex }}"
color-link todo "bold {{ colors.tertiary.default.hex }}"
color-link diff-added "{{ colors.secondary.default.hex }}"
color-link diff-modified "{{ colors.tertiary.default.hex }}"
color-link diff-deleted "{{ colors.error.default.hex }}"
color-link gutter-error "{{ colors.error.default.hex }}"
color-link gutter-warning "{{ colors.tertiary.default.hex }}"
color-link scrollbar "{{ colors.on_surface_variant.default.hex }}"
color-link statusline "{{ colors.on_surface.default.hex }},{{ colors.surface.default.hex }}"
color-link tabbar "{{ colors.on_surface.default.hex }},{{ colors.surface.default.hex }}"
color-link indent-char "{{ colors.surface_variant.default.hex }}"
color-link line-number "{{ colors.outline_variant.default.hex }}"
color-link current-line-number "{{ colors.primary.default.hex }}"
color-link cursor-line "{{ colors.surface_variant.default.hex }},{{ colors.on_surface.default.hex }}"
color-link color-column "{{ colors.surface_variant.default.hex }}"
color-link type.extended "default"

View file

@ -0,0 +1,100 @@
/**
* @name midnight
* @description A dark, rounded discord theme.
* @author refact0r
* @version 1.6.2
* @invite nz87hXyvcy
* @website https://github.com/refact0r/midnight-discord
* @source https://github.com/refact0r/midnight-discord/blob/master/midnight.theme.css
* @authorId 508863359777505290
* @authorLink https://www.refact0r.dev
*/
/* IMPORTANT: make sure to enable dark mode in discord settings for the theme to apply properly!!! */
@import url('https://refact0r.github.io/midnight-discord/build/midnight.css');
/* customize things here */
:root {
/* font, change to 'gg sans' for default discord font*/
--font: 'figtree';
/* top left corner text */
--corner-text: 'Midnight';
/* color of status indicators and window controls */
--online-indicator: {{colors.inverse_primary.default.hex}}; /* change to #23a55a for default green */
--dnd-indicator: {{colors.error.default.hex}}; /* change to #f13f43 for default red */
--idle-indicator: {{colors.tertiary_container.default.hex}}; /* change to #f0b232 for default yellow */
--streaming-indicator: {{colors.on_primary.default.hex}}; /* change to #593695 for default purple */
/* accent colors */
--accent-1: {{colors.tertiary.default.hex}}; /* links */
--accent-2: {{colors.primary.default.hex}}; /* general unread/mention elements, some icons when active */
--accent-3: {{colors.primary.default.hex}}; /* accent buttons */
--accent-4: {{colors.surface_bright.default.hex}}; /* accent buttons when hovered */
--accent-5: {{colors.primary_fixed_dim.default.hex}}; /* accent buttons when clicked */
--accent-new: {{colors.inverse_primary.default.hex}}; /* user panel mute & deafen buttons */
--mention: {{colors.surface.default.hex}}; /* mentions & mention messages */
--mention-hover: {{colors.surface_bright.default.hex}}; /* mentions & mention messages when hovered */
/* text colors */
--text-0: {{colors.surface.default.hex}}; /* text on colored elements */
--text-1: {{colors.on_surface.default.hex}}; /* other normally white text */
--text-2: {{colors.on_surface.default.hex}}; /* headings and important text */
--text-3: {{colors.on_surface_variant.default.hex}}; /* normal text */
--text-4: {{colors.on_surface_variant.default.hex}}; /* icon buttons and channels */
--text-5: {{colors.outline.default.hex}}; /* muted channels/chats and timestamps */
/* background and dark colors */
--bg-1: {{colors.surface_variant.default.hex}}; /* dark buttons when clicked */
--bg-2: {{colors.surface_container_high.default.hex}}; /* dark buttons */
--bg-3: {{colors.surface_container_low.default.hex}}; /* spacing, secondary elements */
--bg-4: {{colors.surface.default.hex}}; /* main background color */
--hover: {{colors.surface_bright.default.hex}}; /* channels and buttons when hovered */
--active: {{colors.surface_bright.default.hex}}; /* channels and buttons when clicked or selected */
--message-hover: {{colors.surface_bright.default.hex}}; /* messages when hovered */
/* amount of spacing and padding */
--spacing: 12px;
/* animations */
/* ALL ANIMATIONS CAN BE DISABLED WITH REDUCED MOTION IN DISCORD SETTINGS */
--list-item-transition: 0.2s ease; /* channels/members/settings hover transition */
--unread-bar-transition: 0.2s ease; /* unread bar moving into view transition */
--moon-spin-transition: 0.4s ease; /* moon icon spin */
--icon-spin-transition: 1s ease; /* round icon button spin (settings, emoji, etc.) */
/* corner roundness (border-radius) */
--roundness-xl: 22px; /* roundness of big panel outer corners */
--roundness-l: 20px; /* popout panels */
--roundness-m: 16px; /* smaller panels, images, embeds */
--roundness-s: 12px; /* members, settings inputs */
--roundness-xs: 10px; /* channels, buttons */
--roundness-xxs: 8px; /* searchbar, small elements */
/* direct messages moon icon */
/* change to block to show, none to hide */
--discord-icon: none; /* discord icon */
--moon-icon: block; /* moon icon */
--moon-icon-url: url('https://upload.wikimedia.org/wikipedia/commons/c/c4/Font_Awesome_5_solid_moon.svg'); /* custom icon url */
--moon-icon-size: auto;
/* filter uncolorable elements to fit theme */
/* (just set to none, they're too much work to configure) */
--login-bg-filter: saturate(0.3) hue-rotate(-15deg) brightness(0.4); /* login background artwork */
--green-to-accent-3-filter: hue-rotate(56deg) saturate(1.43); /* add friend page explore icon */
--blurple-to-accent-3-filter: hue-rotate(304deg) saturate(0.84) brightness(1.2); /* add friend page school icon */
}
/* Selected chat/friend text */
.selected_f5eb4b,
.selected_f6f816 .link_d8bfb3 {
color: var(--text-0) !important;
background: var(--accent-3) !important;
}
.selected_f6f816 .link_d8bfb3 * {
color: var(--text-0) !important;
fill: var(--text-0) !important;
}

View file

@ -0,0 +1,37 @@
local M = {}
function M.setup()
require("base16-colorscheme").setup({
-- Background tones
base00 = "{{colors.surface.default.hex}}", -- Default Background
base01 = "{{colors.surface_container.default.hex}}", -- Lighter Background (status bars)
base02 = "{{colors.surface_container_high.default.hex}}", -- Selection Background
base03 = "{{colors.outline.default.hex}}", -- Comments, Invisibles
-- Foreground tones
base04 = "{{colors.on_surface_variant.default.hex}}", -- Dark Foreground (status bars)
base05 = "{{colors.on_surface.default.hex}}", -- Default Foreground
base06 = "{{colors.on_surface.default.hex}}", -- Light Foreground
base07 = "{{colors.on_background.default.hex}}", -- Lightest Foreground
-- Accent colors
base08 = "{{colors.error.default.hex}}", -- Variables, XML Tags, Errors
base09 = "{{colors.tertiary.default.hex}}", -- Integers, Constants
base0A = "{{colors.secondary.default.hex}}", -- Classes, Search Background
base0B = "{{colors.primary.default.hex}}", -- Strings, Diff Inserted
base0C = "{{colors.tertiary_fixed_dim.default.hex}}", -- Regex, Escape Chars
base0D = "{{colors.primary_fixed_dim.default.hex}}", -- Functions, Methods
base0E = "{{colors.secondary_fixed_dim.default.hex}}", -- Keywords, Storage
base0F = "{{colors.error_container.default.hex}}", -- Deprecated, Embedded Tags
})
end
-- Register a signal handler for SIGUSR1 (matugen updates)
local signal = vim.uv.new_signal()
signal:start(
"sigusr1",
vim.schedule_wrap(function()
package.loaded["matugen"] = nil
require("matugen").setup()
end)
)
return M

View file

@ -0,0 +1,153 @@
# Matugen + Neovim
> [!NOTE]
> This theme is primarily a proof-of-concept with sample colors chosen. While
> it is usable and somewhat complete, the colors themselves may not necessarily
> look the best, so it's important you style them accordingly if you are
> unsatisfied with the result. Additionally, this setup only styles basic
> Neovim colors + Lualine. Other plugins that manage their own highlight groups
> are not covered by this guide (e.g. Neogit)
## The `base16-colorscheme` Plugin
As with any program broad and free as Neovim, there are infinite ways to go
about styling it. However, the easiest approach is to utilize
the `base16-colorscheme` plugin. This plugin allows you to pass in an arbitrary
list of 16 color values, and it will automatically propagate them to all
highlight groups in a reasonable fashion.
```lua
-- THIS IS NOT THE ENTIRE TEMPLATE FILE
-- To see why, continue reading below...
require('base16-colorscheme').setup({
base00 = "{{colors.background.default.hex}}",
base01 = "{{colors.surface_container_lowest.default.hex}}",
base02 = "{{colors.surface_container_low.default.hex}}",
base03 = "{{colors.outline_variant.default.hex}}",
base04 = "{{colors.on_surface_variant.default.hex}}",
base05 = "{{colors.on_surface.default.hex}}",
base06 = "{{colors.inverse_on_surface.default.hex}}",
base07 = "{{colors.surface_bright.default.hex}}",
base08 = "{{colors.tertiary.default.hex | lighten: -5}}",
base09 = "{{colors.tertiary.default.hex}}",
base0A = "{{colors.secondary.default.hex}}",
base0B = "{{colors.primary.default.hex}}",
base0C = "{{colors.tertiary_container.default.hex}}",
base0D = "{{colors.primary_container.default.hex}}",
base0E = "{{colors.secondary_container.default.hex}}",
base0F = "{{colors.secondary.default.hex | lighten: -10}}",
})
```
While this `.setup()` call takes care of mostly everything, some additional
calls to `nvim_set_hl` may be needed to tweak colors to your liking:
``` lua
-- Make selected text stand out more
vim.api.nvim_set_hl(0, 'Visual', {
bg = '{{colors.primary_container.default.hex}}',
fg = '{{colors.background.default.hex}}',
})
```
## Lualine (and plugins that manage their own colors)
Because Lualine has its own specific named highlight groups, the
`base16-colorscheme` plugin cannot style it within its `setup` function.
Thankfully, Lualine is flexible enough to offer the following configuration
option, which aids the process a little:
```lua
require('lualine').setup({
options = {
theme = "base16",
}
})
```
Setting this option tells Lualine to base its highlight group colors off of
some internal 16 base values (which `base16-colorscheme` sets). While this helps,
it unfortunately does not give us full hot-reloading out of the box. In addition
to this, Lualine must be **re-sourced upon every matugen update** in order to
refresh its colors.
If you are using an unmodified (or simple) Lualine configuration, all you need
to do add a `require('lualine').setup({})` to the end of matugen's
`template.lua`, which will re-setup Lualine as the output file gets sourced.
However, if your Lualine setup is a bit complex, it can be sub-optimal to copy
its entire setup function into the matugen template file.
One solution to this is to refactor your Lualine setup into its own file, and
then just call `dofile()` on said file from both your `init.lua` and matugen
template. _(This is not necessary, but helps tidy your configuration up)_
## Init Hook
It's a good idea to attempt to source matugen's generated file upon Neovim's
startup, falling back to a default colorscheme when the matugen file is
unavailable. The following code snippet can be added in your `init.lua` or
adjacent to safely perform this source:
```lua
local function source_matugen()
-- Update this with the location of your output file
local matugen_path = os.getenv("HOME") .. "/.config/nvim/generated.lua" -- dofile doesn't expand $HOME or ~
local file, err = io.open(matugen_path, "r")
-- If the matugen file does not exist (yet or at all), we must initialize a color scheme ourselves
if err ~= nil then
-- Some placeholder theme, this will be overwritten once matugen kicks in
vim.cmd('colorscheme base16-catppuccin-mocha')
-- Optionally print something to the user
vim.print("A matugen style file was not found, but that's okay! The colorscheme will dynamically change if matugen runs!")
else
dofile(matugen_path)
io.close(file)
end
end
```
## Updating Neovim with New Colors
Neovim does not support hot-reloading directly, so we must register an
`autocmd` to listen process signals and execute Lua code as a result. This is
fairly simply, as shown below:
> [!NOTE] The below `autocmd` is only tested for Linux. Separate workarounds
> may be required for other systems.
```lua
-- Register an autocmd to listen for matugen updates
vim.api.nvim_create_autocmd("Signal", {
pattern = "SIGUSR1",
callback = auxiliary_function,
})
-- Main entrypoint on matugen reloads
local function auxiliary_function()
-- Load the matugen style file to get all the new colors
source_matugen()
-- Because reloading base16 overwrites lualine configuration, just source lualine here
dofile(os.getenv("HOME") .. '/.config/nvim/config/plugins/lualine-nvim.lua') -- path of your lualine setup
-- Any other options you wish to set upon matugen reloads can also go here!
vim.api.nvim_set_hl(0, "Comment", { italic = true })
end
```
## Matugen Config
Create an entry in matugen's `config.toml` as shown below:
```toml
[templates.neovim]
input_path = './template.lua'
output_path = '~/.config/nvim/generated.lua'
post_hook = 'pkill -SIGUSR1 nvim'
```
With any luck, your Neovim should now be stylized to match your wallpaper!

View file

@ -0,0 +1,42 @@
-- An example subset of your init.lua
local function source_matugen()
-- Update this with the location of your output file
local matugen_path = os.getenv("HOME") .. "/.config/nvim/matugen.lua" -- dofile doesn't expand $HOME or ~
local file, err = io.open(matugen_path, "r")
-- If the matugen file does not exist (yet or at all), we must initialize a color scheme ourselves
if err ~= nil then
-- Some placeholder theme, this will be overwritten once matugen kicks in
vim.cmd('colorscheme base16-catppuccin-mocha')
-- Optionally print something to the user
vim.print("A matugen style file was not found, but that's okay! The colorscheme will dynamically change if matugen runs!")
else
dofile(matugen_path)
io.close(file)
end
end
-- Main entrypoint on matugen reloads
local function auxiliary_function()
-- Load the matugen style file to get all the new colors
local matugen_path = os.getenv("HOME") .. "/.config/nvim/generated.lua"
source_matugen()
-- Because reloading base16 overwrites lualine configuration, just source lualine here
dofile(os.getenv("HOME") .. '/.config/nvim/config/plugins/lualine-nvim.lua') -- path of your lualine setup
-- Any other options you wish to set upon matugen reloads can also go here!
vim.api.nvim_set_hl(0, "Comment", { italic = true })
end
-- Register an autocmd to listen for matugen updates
vim.api.nvim_create_autocmd("Signal", {
pattern = "SIGUSR1",
callback = auxiliary_function,
})
-- Additionally call this function once on startup to query for matugen's theme
-- or set a default
auxiliary_function()

View file

@ -0,0 +1,81 @@
return {
{
"RRethy/base16-nvim",
priority = 1000,
config = function()
-- Настройка базовой палитры base16
require("base16-colorscheme").setup({
base00 = "{{colors.background.default.hex}}",
base01 = "{{colors.surface_container_lowest.default.hex}}",
base02 = "{{colors.surface_container_low.default.hex}}",
base03 = "{{colors.outline_variant.default.hex}}",
base04 = "{{colors.on_surface_variant.default.hex}}",
base05 = "{{colors.on_surface.default.hex}}",
base06 = "{{colors.inverse_on_surface.default.hex}}",
base07 = "{{colors.surface_bright.default.hex}}",
base08 = "{{colors.tertiary.default.hex | lighten: -5}}",
base09 = "{{colors.tertiary.default.hex}}",
base0A = "{{colors.secondary.default.hex}}",
base0B = "{{colors.primary.default.hex}}",
base0C = "{{colors.tertiary_container.default.hex}}",
base0D = "{{colors.primary_container.default.hex}}",
base0E = "{{colors.secondary_container.default.hex}}",
base0F = "{{colors.secondary.default.hex | lighten: -10}}",
})
-- Вспомогательная функция для массовой установки групп подсветки
local function set_hl_multiple(groups, value)
for _, group in ipairs(groups) do
vim.api.nvim_set_hl(0, group, value)
end
end
-- Кастомные группы подсветки
vim.api.nvim_set_hl(0, "Visual", {
bg = "{{colors.primary_container.default.hex}}",
fg = "{{colors.on_primary_container.default.hex}}",
})
set_hl_multiple({ "String", "TSString" }, {
fg = "{{colors.tertiary.default.hex | lighten: -15.0 }}",
})
set_hl_multiple({ "TSComment", "Comment" }, {
fg = "{{colors.outline.default.hex}}",
italic = true,
})
set_hl_multiple({ "TSMethod", "Method" }, {
fg = "{{colors.tertiary.default.hex}}",
})
set_hl_multiple({ "TSFunction", "Function" }, {
fg = "{{colors.secondary.default.hex}}",
})
set_hl_multiple({ "Keyword", "TSKeyword", "TSKeywordFunction", "TSRepeat" }, {
fg = "{{colors.inverse_primary.default.hex}}",
})
-- Автоматическая перезагрузка темы при изменении файла конфигурации
local theme_file_path = vim.fn.stdpath("config") .. "/lua/plugins/dankcolors.lua"
if not _G._matugen_theme_watcher then
local uv = vim.uv or vim.loop
_G._matugen_theme_watcher = uv.new_fs_event()
_G._matugen_theme_watcher:start(
theme_file_path,
{},
vim.schedule_wrap(function()
-- Перезагружаем файл и повторно вызываем конфиг плагина
local ok, new_spec = pcall(dofile, theme_file_path)
if ok and new_spec and new_spec[1] and new_spec[1].config then
new_spec[1].config()
vim.notify("Matugen theme reloaded", vim.log.levels.INFO)
end
end)
)
end
end,
},
}

View file

@ -0,0 +1,29 @@
layout {
focus-ring {
active-color "{{colors.primary.default.hex}}"
inactive-color "{{colors.outline.default.hex}}"
urgent-color "{{colors.error.default.hex}}"
}
border {
active-color "{{colors.primary.default.hex}}"
inactive-color "{{colors.outline.default.hex}}"
urgent-color "{{colors.error.default.hex}}"
}
shadow {
off
color "{{colors.shadow.default.hex}}70"
}
tab-indicator {
active-color "{{colors.primary.default.hex}}"
inactive-color "{{colors.outline.default.hex}}"
urgent-color "{{colors.error.default.hex}}"
}
insert-hint {
color "{{colors.primary.default.hex}}80"
}
}

View file

@ -0,0 +1,20 @@
hi Comment guibg=None guifg={{ base16.base03.dark.hex }}
hi Delimiter guibg=None guifg={{ base16.base05.dark.hex }}
hi Operator guibg=None guifg={{ base16.base05.dark.hex }}
hi Todo guibg=None guifg={{ base16.base06.dark.hex }}
hi Identifier guibg=None guifg={{ base16.base08.dark.hex }}
hi Constant guibg=None guifg={{ base16.base09.dark.hex }}
hi Type guibg=None guifg={{ base16.base0a.dark.hex }}
hi String guibg=None guifg={{ base16.base0b.dark.hex }}
hi Special guibg=None guifg={{ base16.base0c.dark.hex }}
hi PreProc guibg=None guifg={{ base16.base0c.dark.hex }}
hi Function guibg=None guifg={{ base16.base0d.dark.hex }}
hi Statement guibg=None guifg={{ base16.base0e.dark.hex }}
hi Error guibg={{ colors.error_container.dark.hex }} guifg={{ colors.on_error_container.dark.hex }}
hi StatusLine guibg={{ colors.primary.dark.hex }} guifg={{ colors.on_primary.dark.hex }}
hi StatusLineNC guibg={{ colors.primary_container.dark.hex }} guifg={{ colors.on_primary_container.dark.hex }}
hi Selection guibg={{ base16.base02.dark.hex }}

View file

@ -0,0 +1,140 @@
/* Matugen Obsidian Dynamic Colors Snippet
* Place output in: <vault>/.obsidian/snippets/matugen.css
* Then enable it in: Settings Appearance CSS Snippets
*/
.theme-dark, .theme-light {
/* ── Material You RGB helpers ──────────────────────────── */
--mat-bg-rgb: {{colors.background.default.red}}, {{colors.background.default.green}}, {{colors.background.default.blue}};
--mat-surface-rgb: {{colors.surface.default.red}}, {{colors.surface.default.green}}, {{colors.surface.default.blue}};
--mat-on-surface-rgb: {{colors.on_surface.default.red}}, {{colors.on_surface.default.green}}, {{colors.on_surface.default.blue}};
--mat-primary-rgb: {{colors.primary.default.red}}, {{colors.primary.default.green}}, {{colors.primary.default.blue}};
--mat-on-primary-rgb: {{colors.on_primary.default.red}}, {{colors.on_primary.default.green}}, {{colors.on_primary.default.blue}};
/* ── Core Backgrounds ──────────────────────────────────── */
--background-primary: {{colors.background.default.hex}};
--background-primary-alt: {{colors.surface_dim.default.hex}};
--background-secondary: {{colors.surface_container_low.default.hex}};
--background-secondary-alt: {{colors.surface_container.default.hex}};
/* ── Titlebar ──────────────────────────────────────────── */
--titlebar-background: {{colors.surface_dim.default.hex}};
--titlebar-background-focused: {{colors.surface_container_low.default.hex}};
--titlebar-text-color: {{colors.on_surface.default.hex}};
/* ── Borders & Dividers ────────────────────────────────── */
--background-modifier-border: {{colors.outline_variant.default.hex}};
--background-modifier-border-focus: {{colors.outline.default.hex}};
--background-modifier-border-hover: {{colors.outline.default.hex}};
/* ── Text Colors ───────────────────────────────────────── */
--text-normal: {{colors.on_surface.default.hex}};
--text-muted: {{colors.on_surface_variant.default.hex}};
--text-faint: {{colors.outline.default.hex}};
--text-on-accent: {{colors.on_primary.default.hex}};
--text-selection: rgba({{colors.primary.default.red}}, {{colors.primary.default.green}}, {{colors.primary.default.blue}}, 0.25);
/* ── Accent & Interactive ──────────────────────────────── */
--interactive-accent: {{colors.primary.default.hex}};
--interactive-accent-hover: {{colors.primary_container.default.hex}};
--interactive-accent-rgb: {{colors.primary.default.red}}, {{colors.primary.default.green}}, {{colors.primary.default.blue}};
--text-accent: {{colors.primary.default.hex}};
--text-accent-hover: {{colors.primary_container.default.hex}};
/* ── Hover & Active Modifiers ──────────────────────────── */
--background-modifier-hover: rgba(var(--mat-on-surface-rgb), 0.06);
--background-modifier-active-hover: rgba(var(--mat-primary-rgb), 0.15);
--background-modifier-success: {{colors.tertiary_container.default.hex}};
--background-modifier-error: {{colors.error_container.default.hex}};
--background-modifier-error-hover: {{colors.error.default.hex}};
/* ── Obsidian Color Scale (--color-base-XX) ────────────── */
--color-base-00: {{colors.background.default.hex}};
--color-base-05: {{colors.surface_dim.default.hex}};
--color-base-10: {{colors.surface_container_lowest.default.hex}};
--color-base-20: {{colors.surface_container_low.default.hex}};
--color-base-25: {{colors.surface_container.default.hex}};
--color-base-30: {{colors.surface_container_high.default.hex}};
--color-base-35: {{colors.surface_container_highest.default.hex}};
--color-base-40: {{colors.outline_variant.default.hex}};
--color-base-50: {{colors.outline.default.hex}};
--color-base-60: {{colors.on_surface_variant.default.hex}};
--color-base-70: {{colors.on_surface.default.hex}};
--color-base-100: {{colors.inverse_surface.default.hex}};
/* ── Semantic Colors ───────────────────────────────────── */
--color-red: {{colors.error.default.hex}};
--color-orange: {{colors.tertiary.default.hex}};
--color-yellow: {{colors.secondary.default.hex}};
--color-green: {{colors.tertiary_container.default.hex}};
--color-cyan: {{colors.secondary_container.default.hex}};
--color-blue: {{colors.primary.default.hex}};
--color-purple: {{colors.secondary.default.hex}};
--color-pink: {{colors.tertiary.default.hex}};
/* ── Headings ──────────────────────────────────────────── */
--h1-color: {{colors.primary.default.hex}};
--h2-color: {{colors.primary.default.hex}};
--h3-color: {{colors.secondary.default.hex}};
--h4-color: {{colors.tertiary.default.hex}};
--h5-color: {{colors.on_surface_variant.default.hex}};
--h6-color: {{colors.outline.default.hex}};
/* ── Links ─────────────────────────────────────────────── */
--link-color: {{colors.primary.default.hex}};
--link-color-hover: {{colors.on_primary_container.default.hex}};
--link-external-color: {{colors.tertiary.default.hex}};
--link-unresolved-color: {{colors.outline.default.hex}};
/* ── Tags ──────────────────────────────────────────────── */
--tag-color: {{colors.on_primary_container.default.hex}};
--tag-background: {{colors.primary_container.default.hex}};
--tag-border-color: {{colors.primary.default.hex}};
--tag-color-hover: {{colors.on_primary.default.hex}};
--tag-background-hover: {{colors.primary.default.hex}};
/* ── Checkboxes ────────────────────────────────────────── */
--checkbox-color: {{colors.primary.default.hex}};
--checkbox-color-hover: {{colors.primary_container.default.hex}};
--checkbox-border-color: {{colors.outline.default.hex}};
--checkbox-marker-color: {{colors.on_primary.default.hex}};
/* ── Code Blocks ───────────────────────────────────────── */
--code-background: {{colors.surface_container_low.default.hex}};
--code-normal: {{colors.on_surface.default.hex}};
--code-comment: {{colors.outline.default.hex}};
--code-function: {{colors.primary.default.hex}};
--code-important: {{colors.error.default.hex}};
--code-keyword: {{colors.secondary.default.hex}};
--code-operator: {{colors.tertiary.default.hex}};
--code-property: {{colors.on_surface_variant.default.hex}};
--code-punctuation: {{colors.outline_variant.default.hex}};
--code-string: {{colors.tertiary.default.hex}};
--code-tag: {{colors.error.default.hex}};
--code-value: {{colors.secondary.default.hex}};
/* ── Scrollbar ─────────────────────────────────────────── */
--scrollbar-thumb-bg: rgba(var(--mat-on-surface-rgb), 0.12);
--scrollbar-active-thumb-bg: rgba(var(--mat-on-surface-rgb), 0.25);
--scrollbar-bg: transparent;
/* ── Inputs ────────────────────────────────────────────── */
--input-shadow: none;
--input-shadow-hover: 0 0 0 2px {{colors.outline.default.hex}};
/* ── Graph View ────────────────────────────────────────── */
--graph-node: {{colors.primary.default.hex}};
--graph-node-unresolved: {{colors.outline.default.hex}};
--graph-node-focused: {{colors.on_primary_container.default.hex}};
--graph-node-tag: {{colors.secondary.default.hex}};
--graph-node-attachment: {{colors.tertiary.default.hex}};
--graph-line: {{colors.outline_variant.default.hex}};
--graph-background: {{colors.background.default.hex}};
}
/* ── Active line highlight ─────────────────────────────────── */
.cm-active {
background-color: rgba(var(--mat-on-surface-rgb), 0.03) !important;
}

View file

@ -0,0 +1,222 @@
{
"$schema": "https://opencode.ai/theme.json",
"defs": {
"primary": "{{colors.primary.default.hex}}",
"on_primary": "{{colors.on_primary.default.hex}}",
"secondary": "{{colors.secondary.default.hex}}",
"on_secondary": "{{colors.on_secondary.default.hex}}",
"surface": "{{colors.surface.default.hex}}",
"on_surface": "{{colors.on_surface.default.hex}}",
"surface_variant": "{{colors.surface_variant.default.hex}}",
"on_surface_variant": "{{colors.on_surface_variant.default.hex}}",
"background": "{{colors.surface.default.hex}}",
"on_background": "{{colors.on_surface.default.hex}}",
"error": "{{colors.error.default.hex}}",
"on_error": "{{colors.on_error.default.hex}}",
"outline": "{{colors.outline.default.hex}}",
"outline_variant": "{{colors.outline_variant.default.hex}}"
},
"theme": {
"primary": {
"dark": "primary",
"light": "primary"
},
"secondary": {
"dark": "secondary",
"light": "secondary"
},
"accent": {
"dark": "primary",
"light": "primary"
},
"error": {
"dark": "error",
"light": "error"
},
"warning": {
"dark": "secondary",
"light": "secondary"
},
"success": {
"dark": "secondary",
"light": "secondary"
},
"info": {
"dark": "primary",
"light": "primary"
},
"text": {
"dark": "on_surface",
"light": "on_surface"
},
"textMuted": {
"dark": "on_surface_variant",
"light": "on_surface_variant"
},
"background": {
"dark": "background",
"light": "background"
},
"backgroundPanel": {
"dark": "surface_variant",
"light": "surface_variant"
},
"backgroundElement": {
"dark": "surface_variant",
"light": "surface_variant"
},
"border": {
"dark": "outline_variant",
"light": "outline_variant"
},
"borderActive": {
"dark": "outline",
"light": "outline"
},
"borderSubtle": {
"dark": "outline_variant",
"light": "outline_variant"
},
"diffAdded": {
"dark": "secondary",
"light": "secondary"
},
"diffRemoved": {
"dark": "error",
"light": "error"
},
"diffContext": {
"dark": "surface_variant",
"light": "surface_variant"
},
"diffHunkHeader": {
"dark": "surface_variant",
"light": "surface_variant"
},
"diffHighlightAdded": {
"dark": "secondary",
"light": "secondary"
},
"diffHighlightRemoved": {
"dark": "error",
"light": "error"
},
"diffAddedBg": {
"dark": "surface_variant",
"light": "surface_variant"
},
"diffRemovedBg": {
"dark": "surface_variant",
"light": "surface_variant"
},
"diffContextBg": {
"dark": "surface_variant",
"light": "surface_variant"
},
"diffLineNumber": {
"dark": "on_surface_variant",
"light": "on_surface_variant"
},
"diffAddedLineNumberBg": {
"dark": "surface_variant",
"light": "surface_variant"
},
"diffRemovedLineNumberBg": {
"dark": "surface_variant",
"light": "surface_variant"
},
"markdownText": {
"dark": "on_surface",
"light": "on_surface"
},
"markdownHeading": {
"dark": "primary",
"light": "primary"
},
"markdownLink": {
"dark": "primary",
"light": "primary"
},
"markdownLinkText": {
"dark": "secondary",
"light": "secondary"
},
"markdownCode": {
"dark": "secondary",
"light": "secondary"
},
"markdownBlockQuote": {
"dark": "surface_variant",
"light": "surface_variant"
},
"markdownEmph": {
"dark": "secondary",
"light": "secondary"
},
"markdownStrong": {
"dark": "primary",
"light": "primary"
},
"markdownHorizontalRule": {
"dark": "surface_variant",
"light": "surface_variant"
},
"markdownListItem": {
"dark": "primary",
"light": "primary"
},
"markdownListEnumeration": {
"dark": "secondary",
"light": "secondary"
},
"markdownImage": {
"dark": "primary",
"light": "primary"
},
"markdownImageText": {
"dark": "secondary",
"light": "secondary"
},
"markdownCodeBlock": {
"dark": "on_surface",
"light": "on_surface"
},
"syntaxComment": {
"dark": "on_surface_variant",
"light": "on_surface_variant"
},
"syntaxKeyword": {
"dark": "primary",
"light": "primary"
},
"syntaxFunction": {
"dark": "secondary",
"light": "secondary"
},
"syntaxVariable": {
"dark": "on_surface",
"light": "on_surface"
},
"syntaxString": {
"dark": "secondary",
"light": "secondary"
},
"syntaxNumber": {
"dark": "secondary",
"light": "secondary"
},
"syntaxType": {
"dark": "primary",
"light": "primary"
},
"syntaxOperator": {
"dark": "on_surface",
"light": "on_surface"
},
"syntaxPunctuation": {
"dark": "on_surface_variant",
"light": "on_surface_variant"
}
}
}

View file

@ -0,0 +1,21 @@
{
"colors": {
"AlternateBase": "{{colors.surface.default.hex}}",
"Base": "{{colors.surface.default.hex}}",
"BrightText": "{{colors.secondary.default.hex}}",
"Button": "{{colors.surface_variant.default.hex}}",
"ButtonText": "{{colors.on_surface.default.hex}}",
"Highlight": "{{colors.primary.default.hex}}",
"HighlightedText": "{{colors.on_primary.default.hex}}",
"Link": "{{colors.primary.default.hex}}",
"Text": "{{colors.on_surface.default.hex}}",
"ToolTipBase": "{{colors.surface_variant.default.hex}}",
"ToolTipText": "{{colors.on_surface.default.hex}}",
"Window": "{{colors.surface.default.hex}}",
"WindowText": "{{colors.on_surface.default.hex}}",
"fadeAmount": 0.5,
"fadeColor": "{{colors.surface_variant.default.hex}}"
},
"name": "Matugen",
"widgets": "Fusion"
}

View file

@ -0,0 +1,22 @@
{
"wallpaper": "{{image}}",
"alpha": "100",
"colors": {
"color0": "{{colors.surface.dark.hex}}",
"color1": "",
"color2": "",
"color3": "{{colors.primary.default.hex}}",
"color4": "",
"color5": "{{colors.secondary.default.hex}}",
"color6": "",
"color7": "{{colors.surface_container_highest.default.hex}}",
"color8": "",
"color9": "",
"color10": "{{colors.primary.default.hex}}",
"color11": "",
"color12": "",
"color13": "{{colors.secondary.default.hex}}",
"color14": "",
"color15": "{{colors.on_background.default.hex}}"
}
}

View file

@ -0,0 +1,5 @@
[ColorScheme]
active_colors={{colors.on_background.default.hex}}, {{colors.surface.default.hex}}, #ffffff, #cacaca, #9f9f9f, #b8b8b8, {{colors.on_background.default.hex}}, #ffffff, {{colors.on_surface.default.hex}}, {{colors.background.default.hex}}, {{colors.background.default.hex}}, {{colors.shadow.default.hex}}, {{colors.primary_container.default.hex}}, {{colors.on_primary_container.default.hex}}, {{colors.secondary.default.hex}}, {{colors.primary.default.hex}}, {{colors.surface.default.hex}}, {{colors.scrim.default.hex}}, {{colors.surface.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.secondary.default.hex}}
disabled_colors={{colors.on_background.default.hex}}, {{colors.surface.default.hex}}, #ffffff, #cacaca, #9f9f9f, #b8b8b8, {{colors.on_background.default.hex}}, #ffffff, {{colors.on_surface.default.hex}}, {{colors.background.default.hex}}, {{colors.background.default.hex}}, {{colors.shadow.default.hex}}, {{colors.primary_container.default.hex}}, {{colors.on_primary_container.default.hex}}, {{colors.secondary.default.hex}}, {{colors.primary.default.hex}}, {{colors.surface.default.hex}}, {{colors.scrim.default.hex}}, {{colors.surface.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.secondary.default.hex}}
inactive_colors={{colors.on_background.default.hex}}, {{colors.surface.default.hex}}, #ffffff, #cacaca, #9f9f9f, #b8b8b8, {{colors.on_background.default.hex}}, #ffffff, {{colors.on_surface.default.hex}}, {{colors.background.default.hex}}, {{colors.background.default.hex}}, {{colors.shadow.default.hex}}, {{colors.primary_container.default.hex}}, {{colors.on_primary_container.default.hex}}, {{colors.secondary.default.hex}}, {{colors.primary.default.hex}}, {{colors.surface.default.hex}}, {{colors.scrim.default.hex}}, {{colors.surface.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.secondary.default.hex}}

View file

@ -0,0 +1,11 @@
{
"md3": {<* for name, color in colors *>
"{{ name }}": "{{ color.default.hex }}"<* if {{ loop.last }} *><* else *>,<* endif *><* endfor *>
},
"palette": {<* for name, palette in palettes *><* for shade, color in palette *>
"{{ name }}{{ shade }}": "{{ color.hex }}"<* if {{ loop.last }} *><* else *>,<* endif *><* endfor *><* if {{ loop.last }} *><* else *>,<* endif *><* endfor *>
},
"base16": {<* for name, color in base16 *>
"{{ name }}": "{{ color.default.hex }}"<* if {{ loop.last }} *><* else *>,<* endif *><* endfor *>
}
}

View file

@ -0,0 +1,7 @@
import QtQuick
QtObject {
<* for name, value in colors *>
readonly property color {{name}}: "{{value.default.hex}}"
<* endfor *>
}

View file

@ -0,0 +1,38 @@
# Example Nix Home Manager Module
This module includes matugen and configures rmpc and cava.
To use, import it in your `home.nix`:
```
imports = [
./matugen
...
];
```
## How does it work?
The module:
- creates a `~/.config/matugen/config.toml` preset with templates for rmpc and cava.
This tells Matugen that when it runs, it should process the files in `./templates`
and store the results into the appropriate target directories.
- installs the `./templates/` folder and it contents at `~/.config/matugen/templates/`
- imports and enables Matugen
## Notes
- Rmpc needs to be enabled in your NixOS/Home Manager modules separately.
- `~/.config/rmpc/config.ron` needs to be edited to use the theme:
```
theme: Some("matugen"),
```
- I am yet to figure out if there's a way to modularize the rmpc config, such
that the UI layout would not need to be altered just because the colors change.
As such, if the layout included here is not to your liking, you'd need to edit
`./templates/rmpc.ron` accodringly.
- In this theme, cava is embedded in rmpc. While rmpc allows us to set the bar
colors in three different ways (single, rows, gradient), `horizontal_gradient`
does not appear to be supported at the moment.
See [Cava/Theming](https://rmpc.mierak.dev/next/configuration/cava/#theming)

View file

@ -0,0 +1,40 @@
{inputs, config, ...}:
let
cfgdir = "${config.home.homeDirectory}/.config";
in {
# Make sure to include matugen in your flake.nix inputs:
# ```nix
# {
# ...
# inputs = {
# ...
# matugen.url = "github:/InioX/Matugen";
# };
# ...
# }
# ```
imports = [
inputs.matugen.nixosModules.default
];
home.file."matugen/templates" = {
source = ./templates;
target = "${cfgdir}/matugen/templates";
recursive = true;
};
home.file.".config/matugen/config.toml".text = ''
[config]
[templates.cava]
input_path = '${./templates/cava.ini}'
output_path = '${cfgdir}/cava/themes/matugen.ini'
post_hook = 'pkill -USR1 cava'
[templates.rmpc]
input_path = '${./templates/rmpc.ron}'
output_path = '${cfgdir}/rmpc/themes/matugen.ron'
'';
programs.matugen.enable = true;
}

View file

@ -0,0 +1,17 @@
[color]
background = 'default'
foreground = '{{colors.primary.default.hex}}'
; gradient = 0
gradient = 1
gradient_color_1 = '{{colors.primary_container.default.hex}}'
gradient_color_2 = '{{colors.primary.default.hex}}'
gradient_color_3 = '{{colors.on_primary_container.default.hex}}'
horizontal_gradient = 0
; horizontal_gradient = 1
horizontal_gradient_color_1 = '{{colors.primary_container.default.hex}}'
horizontal_gradient_color_2 = '{{colors.primary.default.hex}}'
horizontal_gradient_color_3 = '{{colors.on_primary_container.default.hex}}'
horizontal_gradient_color_4 = '{{colors.primary.default.hex}}'
horizontal_gradient_color_5 = '{{colors.primary_container.default.hex}}'

View file

@ -0,0 +1,207 @@
#![enable(implicit_some)]
#![enable(unwrap_newtypes)]
#![enable(unwrap_variant_newtypes)]
(
default_album_art_path: None,
show_song_table_header: true,
draw_borders: true,
format_tag_separator: " | ",
browser_column_widths: [20, 38, 42],
background_color: None,
text_color: Some("{{ colors.secondary.default.hex }}"),
header_background_color: None,
modal_background_color: None,
modal_backdrop: false,
preview_label_style: (fg: "{{ colors.primary.default.hex }}"),
preview_metadata_group_style: (fg: "{{ colors.tertiary.default.hex }}", modifiers: "Bold"),
tab_bar: (
active_style: (fg: "{{ colors.on_secondary.default.hex }}", bg: "{{ colors.secondary.default.hex }}", modifiers: "Bold"),
inactive_style: (fg: "{{ colors.secondary.default.hex }}", modifiers: "Bold"),
),
highlighted_item_style: (fg: "{{ colors.secondary.default.hex }}", modifiers: "Bold"),
current_item_style: (fg: "{{ colors.secondary.default.hex }}", bg: "{{ colors.inverse_primary.default.hex }}", modifiers: "Bold"),
borders_style: (fg: "{{ colors.secondary.default.hex }}"),
highlight_border_style: (fg: "{{ colors.secondary.default.hex }}"),
symbols: (
song: "S",
dir: "D",
playlist: "P",
marker: "M",
ellipsis: "...",
song_style: None,
dir_style: None,
playlist_style: None,
),
level_styles: (
info: (fg: "blue", bg: "black"),
warn: (fg: "yellow", bg: "black"),
error: (fg: "red", bg: "black"),
debug: (fg: "light_green", bg: "black"),
trace: (fg: "magenta", bg: "black"),
),
progress_bar: (
symbols: ["[", "-", ">", " ", "]"],
track_style: (
fg: "{{ colors.on_secondary.default.hex }}",
),
elapsed_style: (
fg: "{{ colors.secondary.default.hex }}",
),
thumb_style: (
fg: "{{ colors.secondary.default.hex }}",
),
use_track_when_empty: false,
),
scrollbar: (
symbols: ["│", "█", "▲", "▼"],
track_style: (fg: "{{ colors.secondary.default.hex }}"),
ends_style: (fg: "{{ colors.secondary_fixed.default.hex }}"),
thumb_style: (fg: "{{ colors.primary.default.hex }}"),
),
song_table_format: [
(
prop: (
kind: Property(Artist),
style: (fg: "{{ colors.primary_fixed.default.hex }}"),
default: (kind: Text("Unknown"), style: (fg: "{{ colors.primary_fixed.default.hex }}"))
),
width: "20%",
),
(
prop: (
kind: Property(Title),
style: (fg: "{{ colors.primary.default.hex }}"),
default: (kind: Text("Unknown"), style: (fg: "{{ colors.primary_fixed.default.hex }}"))
),
width: "35%",
),
(
prop: (kind: Property(Album), style: (fg: "{{ colors.primary_fixed.default.hex }}"),
default: (kind: Text("Unknown Album"), style: (fg: "{{ colors.primary_fixed.default.hex }}"))
),
width: "30%",
),
(
prop: (kind: Property(Duration), style: (fg: "{{ colors.primary.default.hex }}"),
default: (kind: Text("-"), style: (fg: "{{ colors.primary_fixed.default.hex }}"))
),
width: "15%",
alignment: Right,
),
],
components: {},
layout: Split(
direction: Vertical,
panes: [
(
pane: Pane(Header),
size: "2",
),
(
pane: Pane(Tabs),
size: "3",
),
(
pane: Pane(TabContent),
size: "100%",
),
(
pane: Pane(ProgressBar),
size: "1",
),
],
),
header: (
rows: [
(
left: [
(kind: Text("["), style: (fg: "{{ colors.tertiary.default.hex }}", modifiers: "Bold")),
(
kind: Property(Status(StateV2(playing_label: "Playing", paused_label: "Paused", stopped_label: "Stopped"))),
style: (fg: "{{ colors.tertiary.default.hex }}", modifiers: "Bold")
),
(kind: Text("]"), style: (fg: "{{ colors.tertiary.default.hex }}", modifiers: "Bold"))
],
center: [
(kind: Property(Song(Title)), style: (modifiers: "Bold"),
default: (kind: Text("No Song"), style: (modifiers: "Bold"))
)
],
right: [
(kind: Property(Widget(ScanStatus)), style: (fg: "{{ colors.primary.default.hex }}")),
(kind: Property(Widget(Volume)), style: (fg: "{{ colors.primary.default.hex }}"))
]
),
(
left: [
(kind: Property(Status(Elapsed))),
(kind: Text(" / ")),
(kind: Property(Status(Duration))),
(kind: Text(" (")),
(kind: Property(Status(Bitrate))),
(kind: Text(" kbps)"))
],
center: [
(kind: Property(Song(Artist)), style: (fg: "{{ colors.tertiary.default.hex }}", modifiers: "Bold"),
default: (kind: Text("Unknown"), style: (fg: "{{ colors.tertiary.default.hex }}", modifiers: "Bold"))
),
(kind: Text(" - ")),
(kind: Property(Song(Album)),
style: (fg: "{{ colors.primary.default.hex }}"),
default: (kind: Text("Unknown Album"))
)
],
right: [
(
kind: Property(Widget(States(
active_style: (fg: "{{ colors.primary.default.hex }}", modifiers: "Bold"),
separator_style: (fg: "{{ colors.primary.default.hex }}")))
),
style: (fg: "{{ colors.secondary_fixed_dim.default.hex }}")
),
]
),
],
),
browser_song_format: [
(
kind: Group([
(kind: Property(Track), style: (fg: "{{ colors.primary.default.hex }}")),
(kind: Text(" ")),
])
),
(
kind: Group([
(kind: Property(Artist), style: (fg: "{{ colors.primary.default.hex }}")),
(kind: Text(" - ")),
(kind: Property(Title), style: (fg: "{{ colors.primary.default.hex }}")),
]),
default: (kind: Property(Filename), style: (fg: "{{ colors.primary.default.hex }}"))
),
],
lyrics: (
timestamp: false
),
cava: (
bar_width: 2, // width of a single bar in columns
bar_spacing: 1, // free space between bars in columns
orientation: Bottom,
// A simple color gradient.
// This is a map where keys are percent values of the height where the
// color starts. After that it is linearly interpolated towards the next
// value. Keys must be between 0 and 100 and if the first or last key
// are not 0 and 100 respectively, the lowest and highest value will be
// used as 0 and 100.
// Only hex and RGB colors are supported here and your terminal must
// support them as well!
// rmpc does not support `horizontal_gradient` (yet?)
bar_color: Gradient({
0: "{{colors.primary_container.default.hex}}",
50: "{{colors.primary.default.hex}}",
100: "{{colors.on_primary_container.default.hex}}"
})
),
)

View file

@ -0,0 +1,207 @@
#![enable(implicit_some)]
#![enable(unwrap_newtypes)]
#![enable(unwrap_variant_newtypes)]
(
default_album_art_path: None,
show_song_table_header: true,
draw_borders: true,
format_tag_separator: " | ",
browser_column_widths: [20, 38, 42],
background_color: None,
text_color: Some("{{ colors.secondary.default.hex }}"),
header_background_color: None,
modal_background_color: None,
modal_backdrop: false,
preview_label_style: (fg: "{{ colors.primary.default.hex }}"),
preview_metadata_group_style: (fg: "{{ colors.tertiary.default.hex }}", modifiers: "Bold"),
tab_bar: (
active_style: (fg: "{{ colors.on_secondary.default.hex }}", bg: "{{ colors.secondary.default.hex }}", modifiers: "Bold"),
inactive_style: (fg: "{{ colors.secondary.default.hex }}", modifiers: "Bold"),
),
highlighted_item_style: (fg: "{{ colors.secondary.default.hex }}", modifiers: "Bold"),
current_item_style: (fg: "{{ colors.secondary.default.hex }}", bg: "{{ colors.inverse_primary.default.hex }}", modifiers: "Bold"),
borders_style: (fg: "{{ colors.secondary.default.hex }}"),
highlight_border_style: (fg: "{{ colors.secondary.default.hex }}"),
symbols: (
song: "S",
dir: "D",
playlist: "P",
marker: "M",
ellipsis: "...",
song_style: None,
dir_style: None,
playlist_style: None,
),
level_styles: (
info: (fg: "blue", bg: "black"),
warn: (fg: "yellow", bg: "black"),
error: (fg: "red", bg: "black"),
debug: (fg: "light_green", bg: "black"),
trace: (fg: "magenta", bg: "black"),
),
progress_bar: (
symbols: ["[", "-", ">", " ", "]"],
track_style: (
fg: "{{ colors.on_secondary.default.hex }}",
),
elapsed_style: (
fg: "{{ colors.secondary.default.hex }}",
),
thumb_style: (
fg: "{{ colors.secondary.default.hex }}",
),
use_track_when_empty: false,
),
scrollbar: (
symbols: ["│", "█", "▲", "▼"],
track_style: (fg: "{{ colors.secondary.default.hex }}"),
ends_style: (fg: "{{ colors.secondary_fixed.default.hex }}"),
thumb_style: (fg: "{{ colors.primary.default.hex }}"),
),
song_table_format: [
(
prop: (
kind: Property(Artist),
style: (fg: "{{ colors.primary_fixed.default.hex }}"),
default: (kind: Text("Unknown"), style: (fg: "{{ colors.primary_fixed.default.hex }}"))
),
width: "20%",
),
(
prop: (
kind: Property(Title),
style: (fg: "{{ colors.primary.default.hex }}"),
default: (kind: Text("Unknown"), style: (fg: "{{ colors.primary_fixed.default.hex }}"))
),
width: "35%",
),
(
prop: (kind: Property(Album), style: (fg: "{{ colors.primary_fixed.default.hex }}"),
default: (kind: Text("Unknown Album"), style: (fg: "{{ colors.primary_fixed.default.hex }}"))
),
width: "30%",
),
(
prop: (kind: Property(Duration), style: (fg: "{{ colors.primary.default.hex }}"),
default: (kind: Text("-"), style: (fg: "{{ colors.primary_fixed.default.hex }}"))
),
width: "15%",
alignment: Right,
),
],
components: {},
layout: Split(
direction: Vertical,
panes: [
(
pane: Pane(Header),
size: "2",
),
(
pane: Pane(Tabs),
size: "3",
),
(
pane: Pane(TabContent),
size: "100%",
),
(
pane: Pane(ProgressBar),
size: "1",
),
],
),
header: (
rows: [
(
left: [
(kind: Text("["), style: (fg: "{{ colors.tertiary.default.hex }}", modifiers: "Bold")),
(
kind: Property(Status(StateV2(playing_label: "Playing", paused_label: "Paused", stopped_label: "Stopped"))),
style: (fg: "{{ colors.tertiary.default.hex }}", modifiers: "Bold")
),
(kind: Text("]"), style: (fg: "{{ colors.tertiary.default.hex }}", modifiers: "Bold"))
],
center: [
(kind: Property(Song(Title)), style: (modifiers: "Bold"),
default: (kind: Text("No Song"), style: (modifiers: "Bold"))
)
],
right: [
(kind: Property(Widget(ScanStatus)), style: (fg: "{{ colors.primary.default.hex }}")),
(kind: Property(Widget(Volume)), style: (fg: "{{ colors.primary.default.hex }}"))
]
),
(
left: [
(kind: Property(Status(Elapsed))),
(kind: Text(" / ")),
(kind: Property(Status(Duration))),
(kind: Text(" (")),
(kind: Property(Status(Bitrate))),
(kind: Text(" kbps)"))
],
center: [
(kind: Property(Song(Artist)), style: (fg: "{{ colors.tertiary.default.hex }}", modifiers: "Bold"),
default: (kind: Text("Unknown"), style: (fg: "{{ colors.tertiary.default.hex }}", modifiers: "Bold"))
),
(kind: Text(" - ")),
(kind: Property(Song(Album)),
style: (fg: "{{ colors.primary.default.hex }}"),
default: (kind: Text("Unknown Album"))
)
],
right: [
(
kind: Property(Widget(States(
active_style: (fg: "{{ colors.primary.default.hex }}", modifiers: "Bold"),
separator_style: (fg: "{{ colors.primary.default.hex }}")))
),
style: (fg: "{{ colors.secondary_fixed_dim.default.hex }}")
),
]
),
],
),
browser_song_format: [
(
kind: Group([
(kind: Property(Track), style: (fg: "{{ colors.primary.default.hex }}")),
(kind: Text(" ")),
])
),
(
kind: Group([
(kind: Property(Artist), style: (fg: "{{ colors.primary.default.hex }}")),
(kind: Text(" - ")),
(kind: Property(Title), style: (fg: "{{ colors.primary.default.hex }}")),
]),
default: (kind: Property(Filename), style: (fg: "{{ colors.primary.default.hex }}"))
),
],
lyrics: (
timestamp: false
),
cava: (
bar_width: 2, // width of a single bar in columns
bar_spacing: 1, // free space between bars in columns
orientation: Bottom,
// A simple color gradient.
// This is a map where keys are percent values of the height where the
// color starts. After that it is linearly interpolated towards the next
// value. Keys must be between 0 and 100 and if the first or last key
// are not 0 and 100 respectively, the lowest and highest value will be
// used as 0 and 100.
// Only hex and RGB colors are supported here and your terminal must
// support them as well!
// rmpc does not support `horizontal_gradient` (yet?)
bar_color: Gradient({
0: "{{colors.primary_container.default.hex}}",
50: "{{colors.primary.default.hex}}",
100: "{{colors.on_primary_container.default.hex}}"
})
),
)

View file

@ -0,0 +1,47 @@
* {
primary: {{colors.primary.default.hex}};
primary-fixed: {{colors.primary_fixed.default.hex}};
primary-fixed-dim: {{colors.primary_fixed_dim.default.hex}};
on-primary: {{colors.on_primary.default.hex}};
on-primary-fixed: {{colors.on_primary_fixed.default.hex}};
on-primary-fixed-variant: {{colors.on_primary_fixed_variant.default.hex}};
primary-container: {{colors.primary_container.default.hex}};
on-primary-container: {{colors.on_primary_container.default.hex}};
secondary: {{colors.secondary.default.hex}};
secondary-fixed: {{colors.secondary_fixed.default.hex}};
secondary-fixed-dim: {{colors.secondary_fixed_dim.default.hex}};
on-secondary: {{colors.on_secondary.default.hex}};
on-secondary-fixed: {{colors.on_secondary_fixed.default.hex}};
on-secondary-fixed-variant: {{colors.on_secondary_fixed_variant.default.hex}};
secondary-container: {{colors.secondary_container.default.hex}};
on-secondary-container: {{colors.on_secondary_container.default.hex}};
tertiary: {{colors.tertiary.default.hex}};
tertiary-fixed: {{colors.tertiary_fixed.default.hex}};
tertiary-fixed-dim: {{colors.tertiary_fixed_dim.default.hex}};
on-tertiary: {{colors.on_tertiary.default.hex}};
on-tertiary-fixed: {{colors.on_tertiary_fixed.default.hex}};
on-tertiary-fixed-variant: {{colors.on_tertiary_fixed_variant.default.hex}};
tertiary-container: {{colors.tertiary_container.default.hex}};
on-tertiary-container: {{colors.on_tertiary_container.default.hex}};
error: {{colors.error.default.hex}};
on-error: {{colors.on_error.default.hex}};
error-container: {{colors.error_container.default.hex}};
on-error-container: {{colors.on_error_container.default.hex}};
surface: {{colors.surface.default.hex}};
on-surface: {{colors.on_surface.default.hex}};
on-surface-variant: {{colors.on_surface_variant.default.hex}};
outline: {{colors.outline.default.hex}};
outline-variant: {{colors.outline_variant.default.hex}};
shadow: {{colors.shadow.default.hex}};
scrim: {{colors.scrim.default.hex}};
inverse-surface: {{colors.inverse_surface.default.hex}};
inverse-on-surface: {{colors.inverse_on_surface.default.hex}};
inverse-primary: {{colors.inverse_primary.default.hex}};
surface-dim: {{colors.surface_dim.default.hex}};
surface-bright: {{colors.surface_bright.default.hex}};
surface-container-lowest: {{colors.surface_container_lowest.default.hex}};
surface-container-low: {{colors.surface_container_low.default.hex}};
surface-container: {{colors.surface_container.default.hex}};
surface-container-high: {{colors.surface_container_high.default.hex}};
surface-container-highest: {{colors.surface_container_highest.default.hex}};
}

View file

@ -0,0 +1,25 @@
[matugen]
main = {{ colors.background.default.hex_stripped }}
main-secondary = {{ colors.surface_bright.default.hex_stripped }}
accent = {{ colors.primary.default.hex_stripped }}
button = {{ colors.primary.default.hex_stripped }}
button-secondary = {{ colors.secondary.default.hex_stripped }}
button-active = {{ colors.primary_fixed.default.hex_stripped }}
button-disabled = {{ colors.surface_bright.default.hex_stripped }}
misc = {{ colors.tertiary.default.hex_stripped }}
subtext = {{ colors.on_surface_variant.default.hex_stripped }}
text = {{ colors.on_background.default.hex_stripped }}
sidebar = {{ colors.surface.default.hex_stripped }}
player = {{ colors.surface.default.hex_stripped }}
card = {{ colors.surface_bright.default.hex_stripped }}
notification = {{ colors.surface.default.hex_stripped }}
notification-error = {{ colors.error.default.hex_stripped }}
shadow = {{ colors.shadow.default.hex_stripped }}
nav-active-text = {{ colors.primary.default.hex_stripped }}
nav-active = {{ colors.primary.default.hex_stripped }}
tab-active = {{ colors.surface.default.hex_stripped }}
play-button = {{ colors.primary.default.hex_stripped }}
playback-bar = {{ colors.primary_fixed.default.hex_stripped }}

View file

@ -0,0 +1,226 @@
format = '''
$directory$git_branch$rust$python
$character'''
palette = 'colors'
[palettes.colors]
color1 = '{{colors.primary_fixed_dim.default.hex}}'
color2 = '{{colors.on_primary.default.hex}}'
color3 = '{{colors.on_surface_variant.default.hex}}'
color4 = '{{colors.surface_container.default.hex}}'
color5 = '{{colors.on_primary.default.hex}}'
color6 = '{{colors.surface_dim.default.hex}}'
color7 = '{{colors.surface.default.hex}}'
color8 = '{{colors.primary.default.hex}}'
color9 = '{{colors.tertiary.default.hex}}'
# Prompt symbols
[character]
success_symbol = '[](bold green)' # The 'success_symbol' segment is being set to '➜' with the color 'bold green'
error_symbol = "[](@{error})"
[aws]
symbol = " "
[buf]
symbol = " "
[bun]
symbol = " "
[c]
symbol = " "
[cpp]
symbol = " "
[cmake]
symbol = " "
[conda]
symbol = " "
[crystal]
symbol = " "
[dart]
symbol = " "
[deno]
symbol = " "
[directory]
read_only = " 󰌾"
[docker_context]
symbol = " "
[elixir]
symbol = " "
[elm]
symbol = " "
[fennel]
symbol = " "
[fortran]
symbol = " "
[fossil_branch]
symbol = " "
[gcloud]
symbol = " "
[git_branch]
symbol = " "
[git_commit]
tag_symbol = '  '
[golang]
symbol = " "
[gradle]
symbol = " "
[guix_shell]
symbol = " "
[haskell]
symbol = " "
[haxe]
symbol = " "
[hg_branch]
symbol = " "
[hostname]
ssh_symbol = " "
[java]
symbol = " "
[julia]
symbol = " "
[kotlin]
symbol = " "
[lua]
symbol = " "
[memory_usage]
symbol = "󰍛 "
[meson]
symbol = "󰔷 "
[nim]
symbol = "󰆥 "
[nix_shell]
symbol = " "
[nodejs]
symbol = " "
[ocaml]
symbol = " "
[os.symbols]
Alpaquita = " "
Alpine = " "
AlmaLinux = " "
Amazon = " "
Android = " "
AOSC = " "
Arch = " "
Artix = " "
CachyOS = " "
CentOS = " "
Debian = " "
DragonFly = " "
Elementary = " "
Emscripten = " "
EndeavourOS = " "
Fedora = " "
FreeBSD = " "
Garuda = "󰛓 "
Gentoo = " "
HardenedBSD = "󰞌 "
Illumos = "󰈸 "
Ios = "󰀷 "
Kali = " "
Linux = " "
Mabox = " "
Macos = " "
Manjaro = " "
Mariner = " "
MidnightBSD = " "
Mint = " "
NetBSD = " "
NixOS = " "
Nobara = " "
OpenBSD = "󰈺 "
openSUSE = " "
OracleLinux = "󰌷 "
Pop = " "
Raspbian = " "
Redhat = " "
RedHatEnterprise = " "
RockyLinux = " "
Redox = "󰀘 "
Solus = "󰠳 "
SUSE = " "
Ubuntu = " "
Unknown = " "
Void = " "
Windows = "󰍲 "
Zorin = " "
[package]
symbol = "󰏗 "
[perl]
symbol = " "
[php]
symbol = " "
[pijul_channel]
symbol = " "
[pixi]
symbol = "󰏗 "
[python]
symbol = " "
[rlang]
symbol = "󰟔 "
[ruby]
symbol = " "
[rust]
symbol = "󱘗 "
[scala]
symbol = " "
[status]
symbol = " "
[swift]
symbol = " "
[xmake]
symbol = " "
[zig]
symbol = " "

View file

@ -0,0 +1,30 @@
/*
* GTK 4 Colors
* Converted from Matugen template
*/
:root {
--adw-accent-rgb: {{ colors.primary.default.red }} {{ colors.primary.default.green }} {{ colors.primary.default.blue }};
--adw-accent-bg-rgb: {{ colors.primary.default.red }} {{ colors.primary.default.green }} {{ colors.primary.default.blue }};
--adw-accent-fg-rgb: {{ colors.on_primary.default.red }} {{ colors.on_primary.default.green }} {{ colors.on_primary.default.blue }};
--adw-window-bg-rgb: {{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }};
--adw-window-fg-rgb: {{ colors.on_background.default.red }} {{ colors.on_background.default.green }} {{ colors.on_background.default.blue }};
--adw-headerbar-bg-rgb: {{ colors.surface_dim.default.red }} {{ colors.surface_dim.default.green }} {{ colors.surface_dim.default.blue }};
--adw-headerbar-fg-rgb: {{ colors.on_surface.default.red }} {{ colors.on_surface.default.green }} {{ colors.on_surface.default.blue }};
--adw-popover-bg-rgb: {{ colors.surface_dim.default.red }} {{ colors.surface_dim.default.green }} {{ colors.surface_dim.default.blue }};
--adw-popover-fg-rgb: {{ colors.on_surface.default.red }} {{ colors.on_surface.default.green }} {{ colors.on_surface.default.blue }};
--adw-view-bg-rgb: {{ colors.surface.default.red }} {{ colors.surface.default.green }} {{ colors.surface.default.blue }};
--adw-view-fg-rgb: {{ colors.on_surface.default.red }} {{ colors.on_surface.default.green }} {{ colors.on_surface.default.blue }};
--adw-card-bg-rgb: {{ colors.surface.default.red }} {{ colors.surface.default.green }} {{ colors.surface.default.blue }};
--adw-card-fg-rgb: {{ colors.on_surface.default.red }} {{ colors.on_surface.default.green }} {{ colors.on_surface.default.blue }};
--adw-sidebar-bg-rgb: {{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }};
--adw-sidebar-fg-rgb: {{ colors.on_background.default.red }} {{ colors.on_background.default.green }} {{ colors.on_background.default.blue }};
--adw-sidebar-border-rgb: {{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }};
--adw-sidebar-backdrop-rgb: {{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }};
}

View file

@ -0,0 +1,28 @@
:root {
--cc-bg: {{colors.surface.default.hex}};
--noti-border-color: {{colors.primary.default.hex}};
--noti-bg: {{colors.surface.default.hex}};
--noti-bg-alpha: 0.0;
--noti-bg-darker: {{colors.surface.default.hex}};
--noti-bg-hover: {{colors.on_secondary_fixed.default.hex}};
--noti-bg-focus: {{colors.primary_container.default.hex_stripped}};
--noti-close-bg: {{colors.primary_container.default.hex}}
--noti-close-bg-hover: {{colors.inverse_primary.default.hex}};
--text-color: {{colors.on_surface.default.hex}};
--text-color-disabled: rgb(150, 150, 150);
--bg-selected: {{colors.primary_container.default.hex}};
--notification-icon-size: 64px;
--notification-app-icon-size: calc(var(--notification-icon-size) / 3);
--notification-group-icon-size: 32px;
--border: 4px solid var(--noti-border-color);
--border-radius: 12px;
--notification-shadow: 0;
--font-size-body: 15px;
--font-size-summary: 16px;
/* Deprecated variables (because of their typos). Keeeping them around for backwards compatibility. */
--hover-tranistion: background 0.15s ease-out-quad;
--group-collapse-tranistion: opacity 100ms ease-out-quad;
--hover-transition: var(--hover-tranistion);
--group-collapse-transition: var(--group-collapse-tranistion);
}

View file

@ -0,0 +1,29 @@
:root {
--cc-bg: {{colors.surface.default.hex}};
--noti-border-color: {{colors.primary.default.hex}};
--noti-bg: {{colors.surface.default.hex}};
--noti-bg-alpha: ;
--noti-bg-darker: {{colors.surface.default.hex}};
--noti-bg-hover: {{colors.on_secondary_fixed.default.hex}};
--noti-bg-focus: {{colors.primary_container.default.hex_stripped}};
--noti-close-bg: {{colors.primary_container.default.hex}}
--noti-close-bg-hover: {{colors.inverse_primary.default.hex}};
--text-color: {{colors.on_surface.default.hex}};
--text-color-disabled: rgb(150, 150, 150);
--bg-selected: {{colors.primary_container.default.hex}};
--notification-icon-size: 64px;
--notification-app-icon-size: calc(var(--notification-icon-size) / 3);
--notification-group-icon-size: 32px;
--border: 4px solid var(--noti-border-color);
--border-radius: 12px;
--notification-shadow: 0;
--font-size-body: 15px;
--font-size-summary: 16px;
/* Deprecated variables (because of their typos). Keeeping them around for backwards compatibility. */
--hover-tranistion: background 0.15s ease-out-quad;
--group-collapse-tranistion: opacity 100ms ease-out-quad;
--hover-transition: var(--hover-tranistion);
--group-collapse-transition: var(--group-collapse-tranistion);
}

View file

@ -0,0 +1,8 @@
:root {
--border: {{colors.primary.default.hex}};
--background: {{colors.surface.default.hex}};
--background-progress: {{colors.on_secondary_fixed.default.hex}};
}

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><style>.b{fill:{{colors.surface_container_lowest.default.hex}};}</style><rect width="100%" height="100%" class="b"/></svg>

After

Width:  |  Height:  |  Size: 185 B

View file

@ -0,0 +1,606 @@
// vim: filetype=qml
windowBg: {{colors.surface_container.default.hex}} /* #282e33 */; // white: fallback for background
windowFg: {{colors.on_surface.default.hex}} /* #f5f5f5 */; // black: fallback for text
windowBgOver: {{colors.surface_container_high.default.hex}} /* #313b43 */; // light gray: fallback for background with mouse over
windowBgRipple: {{colors.surface_container_highest.default.hex}} /* #3f4850 */; // darker gray: fallback for ripple effect
windowFgOver: {{colors.on_surface.default.hex | auto_lightness: 5}} /* #e9ecf0 */; // black: fallback for text with mouse over
windowSubTextFg: {{colors.on_surface_variant.default.hex}} /* #82868a */; // gray: fallback for additional text
windowSubTextFgOver: {{colors.on_surface_variant.default.hex | auto_lightness: 5}} /* #797b7f */; // darker gray: fallback for additional text with mouse over
windowBoldFg: windowFg /* #e9e8e8 */; // dark gray: fallback for bold text
windowBoldFgOver: windowBoldFg /* #e9e9e9 */; // dark gray: fallback for bold text with mouse over
windowBgActive: {{colors.primary.default.hex}} /* #3fc1b0 */; // bright blue: fallback for blue filled active areas
windowFgActive: {{colors.on_primary.default.hex}} /* #ffffff */; // white: fallback for text on active areas (NOTE(eqrfns): this unfortunately can be used in radically different (and unexpected) places)
windowActiveTextFg: {{colors.primary.default.hex}} /* #4be1c3 */; // online blue: fallback for active text like online status
windowShadowFg: {{colors.shadow.default.hex}}; // black: fallback for shadow
windowShadowFgFallback: windowBg; // gray: fallback for shadow without opacity
shadowFg: {{colors.shadow.default.hex}}18; // most shadows (including opacity)
slideFadeOutBg: {{colors.scrim.default.hex}}3c; // slide animation (chat to profile) fade out filling
slideFadeOutShadowFg: windowShadowFg; // slide animation (chat to profile) fade out right section shadow
imageBg: {{colors.scrim.default.hex}}; // image background fallback (when photo size is less than minimum allowed)
imageBgTransparent: {{colors.on_surface.default.hex}} /* #ffffff */; // image background when displaying an image with opacity where no opacity is needed
activeButtonBg: {{colors.primary_container.default.hex}} /* #2da192 */; // default active button background (NOTE(eqrfns): this is also used for folder icons in "My folders" list)
activeButtonBgOver: {{colors.primary_container.default.hex | auto_lightness: 5}} /* #32a896 */; // default active button background with mouse over
activeButtonBgRipple: {{colors.inverse_primary.default.hex}} /* #42b8a6 */; // default active button ripple effect
activeButtonFg: {{colors.on_primary_container.default.hex}} /* #ffffff */; // default active button text
activeButtonFgOver: {{colors.on_primary_container.default.hex}} /* #ffffff */; // default active button text with mouse over
activeButtonSecondaryFg: {{colors.on_primary_container.default.hex}} /* #8ee4d9 */; // default active button additional text (selected messages counter in forward / delete buttons)
activeButtonSecondaryFgOver: activeButtonSecondaryFg; // default active button additional text with mouse over
activeLineFg: {{colors.primary.default.hex}} /* #3ee2c9 */; // default active line (like code input field bottom border when you log in and field is focused)
activeLineFgError: {{colors.error.default.hex}} /* #f57878 */; // default active line for error state (like code input field bottom border when you log in and you've entered incorrect code)
lightButtonBg: {{colors.surface_container.default.hex}} /* #282e33 */; // default light button background (like buttons in boxes)
lightButtonBgOver: {{colors.surface_container_high.default.hex}} /* #313b43 */; // default light button background with mouse over
lightButtonBgRipple: {{ colors.surface_container_highest.default.hex }} /* #3c474f */; // default light button ripple effect
lightButtonFg: {{colors.primary.default.hex}} /* #79e8d9 */; // default light button text
lightButtonFgOver: lightButtonFg; // default light button text with mouse over
attentionButtonFg: {{colors.error.default.hex}} /* #f57474 */; // default attention button text (like confirm button on log out)
attentionButtonFgOver: {{colors.error.default.hex | auto_lightness: 5}} /* #e76060 */; // default attention button text with mouse over
attentionButtonBgOver: {{colors.on_error.default.hex}}64 /* #613a3a64 */; // default attention button background with mouse over
attentionButtonBgRipple: {{colors.on_error_container.default.hex}} /* #f4c3c2 */; // default attention button ripple effect
outlineButtonBg: windowBg; // default left outlined button background (like shared media links in profiles)
outlineButtonBgOver: {{colors.surface_container_high.default.hex}} /* #313b43 */; // default left outlined button background with mouse over
outlineButtonOutlineFg: {{colors.primary.default.hex}} /* #29baa7 */; // default left outlined button left outline border (NOTE(eqrfns): outlineButton* colors seem unused?)
outlineButtonBgRipple: {{colors.surface_container_highest.default.hex}} /* #3c474f */; // default left outlined button ripple effect
menuBg: {{colors.surface_container.default.hex}} /* #282e33 */; // default popup menu background
menuBgOver: {{colors.on_surface.default.hex}} /* #ffffff */; // default popup menu item background with mouse over
menuBgRipple: {{colors.surface_container_high.default.hex}} /* #26292d */; // default popup menu item ripple effect
menuIconFg: {{colors.outline.default.hex}} /* #808080 */; // default popup menu item icon (like main menu)
menuIconFgOver: {{colors.on_surface_variant.default.hex}} /* #dcdcdc */; // default popup menu item icon with mouse over
menuSubmenuArrowFg: #ff00ff /*#757575 */ ; // default popup menu submenu arrow icon (like in message field context menu in case of RTL system language) (NOTE(eqrfns): seems unused?)
menuFgDisabled: {{colors.on_surface_variant.default.hex}} /* #737373 */; // default popup menu item disabled text (like unavailable items in message field context menu) (NOTE(eqrfns): this shows up for a split second in context menus sometimes)
menuSeparatorFg: {{colors.surface_container_highest.default.hex}} /* #42484d */; // default popup menu separator (like in message field context menu)
scrollBarBg: {{colors.on_surface.default.hex}}53 /* #ffffff53 */; // default scroll bar current rectangle, the bar itself (like in chats list)
scrollBarBgOver: {{colors.on_surface.default.hex}}7a /* #ffffff7a */; // default scroll bar current rectangle with mouse over it
scrollBg: {{colors.on_surface.default.hex}}1a /* #ffffff1a */; // default scroll bar background
scrollBgOver: {{colors.on_surface.default.hex}}2c /* #ffffff2c */; // default scroll bar background with mouse over the scroll bar
smallCloseIconFg: {{colors.outline.default.hex}} /* #6d6d6d */; // small X icon (like in Show all sessions box to the right for sessions termination)
smallCloseIconFgOver: {{colors.on_surface_variant.default.hex}} /* #a3a3a3 */; // small X icon with mouse over
radialFg: {{colors.scrim.default.hex | invert}} /* windowFgActive */; // default radial loader line (like in Media Viewer when loading a photo)
radialBg: {{colors.scrim.default.hex}}56; // default radial loader background (like in Media Viewer when loading a photo)
placeholderFg: {{colors.on_surface_variant.default.hex}} /* #818991 */; // default input field placeholder when field is not focused (like in phone input field when you log in)
placeholderFgActive: {{colors.outline.default.hex}} /* #5d6165 */; // default input field placeholder when field is focused
inputBorderFg: {{colors.outline.default.hex}} /* #6f6f6f */; // default input field bottom border (like in code input field when you log in and field is not focused)
filterInputBorderFg: {{colors.surface_container_highest.default.hex}} /* #3d444b */; // default rounded input field border (like in chats list search field when field is focused)
filterInputInactiveBg: {{colors.surface_container_highest.default.hex}} /* #3d444b */; // default rounded input field background (like in chats list search field when field is inactive)
checkboxFg: {{colors.outline.default.hex}} /* #6c6c6c */; // default unchecked checkbox rounded rectangle (and also emoji category icons)
sliderBgInactive: {{colors.outline.default.hex}} /* #545454 */; // default slider not active bar (like in Settings when you choose interface scale or custom notifications count)
sliderBgActive: windowBgActive; // default slider active bar (like in Settings when you choose interface scale or custom notifications count) (NOTE(eqrfns): this is actualy a highlight bar under the emoji/sticker/gif tabs?)
tooltipBg: {{colors.surface_container.default.hex}} /* #282e33 */; // tooltip background (like when you put mouse over the message timestamp and wait)
tooltipFg: {{colors.on_surface_variant.default.hex}} /* #9a9e9c */; // tooltip text
tooltipBorderFg: {{colors.surface_container_high.default.hex}} /* #313b43 */; // tooltip border
titleShadow: {{colors.shadow.default.hex}}03; // one pixel line shadow at the bottom of custom window title
titleBg: {{colors.surface_container_highest.default.hex}} /* #3a4047 */; // custom window title background when window is inactive
titleBgActive: titleBg; // custom window title background when window is active
titleButtonBg: titleBg; // custom window title minimize/maximize/restore button background when window is inactive (Windows only)
titleButtonFg: {{colors.on_surface_variant.default.hex}} /* #8b9096 */; // custom window title minimize/maximize/restore button icon when window is inactive (Windows only)
titleButtonBgOver: #4c535b; // custom window title minimize/maximize/restore button background with mouse over when window is inactive (Windows only)
titleButtonFgOver: #e0e0e0; // custom window title minimize/maximize/restore button icon with mouse over when window is inactive (Windows only)
titleButtonBgActive: titleButtonBg; // custom window title minimize/maximize/restore button background when window is active (Windows only)
titleButtonFgActive: titleButtonFg; // custom window title minimize/maximize/restore button icon when window is active (Windows only)
titleButtonBgActiveOver: titleButtonBgOver; // custom window title minimize/maximize/restore button background with mouse over when window is active (Windows only)
titleButtonFgActiveOver: titleButtonFgOver; // custom window title minimize/maximize/restore button icon with mouse over when window is active (Windows only)
titleButtonCloseBg: titleButtonBg; // custom window title close button background when window is inactive (Windows only)
titleButtonCloseFg: titleButtonFg; // custom window title close button icon when window is inactive (Windows only)
titleButtonCloseBgOver: {{colors.error_container.default.hex}} /* #e81123 */; // custom window title close button background with mouse over when window is inactive (Windows only)
titleButtonCloseFgOver: {{colors.on_error_container.default.hex}} /* windowFgActive */; // custom window title close button icon with mouse over when window is inactive (Windows only)
titleButtonCloseBgActive: titleButtonCloseBg; // custom window title close button background when window is active (Windows only)
titleButtonCloseFgActive: titleButtonCloseFg; // custom window title close button icon when window is active (Windows only)
titleButtonCloseBgActiveOver: titleButtonCloseBgOver; // custom window title close button background with mouse over when window is active (Windows only)
titleButtonCloseFgActiveOver: titleButtonCloseFgOver; // custom window title close button icon with mouse over when window is active (Windows only)
titleFg: {{colors.outline.default.hex}} /* #666666 */; // custom window title text when window is inactive (macOS only)
titleFgActive: {{colors.outline.default.hex}} /* #808080 */; // custom window title text when window is active (macOS only)
trayCounterBg: #f23c34; // tray icon counter background
trayCounterBgMute: #888888; // tray icon counter background if all unread messages are muted
trayCounterFg: #ffffff; // tray icon counter text
trayCounterBgMacInvert: #ffffff; // tray icon counter background when tray icon is pressed or when dark theme of macOS is used (macOS only)
trayCounterFgMacInvert: #ffffff01; // tray icon counter text when tray icon is pressed or when dark theme of macOS is used (macOS only)
layerBg: {{colors.scrim.default.hex}}7f; // box and main menu background layer fade
cancelIconFg: {{colors.outline.default.hex}} /* #666666 */; // default for settings close icon and box search cancel icon
cancelIconFgOver: {{colors.on_surface_variant.default.hex}} /* #dcdcdc */; // default for settings close icon and box search cancel icon with mouse over
boxBg: windowBg; // box background
boxTextFg: windowFg; // box text
boxTextFgGood: {{colors.primary.default.hex}} /* #56dbce */; // accepted box text (like when choosing username that is not occupied) (NOTE(eqrfns): this is also used for the selected messages checkmark background)
boxTextFgError: {{colors.error.default.hex}} /* #d84d4d */; // rejecting box text (like when choosing username that is occupied)
boxTitleFg: {{colors.on_surface_variant.default.hex}} /* #ebebeb */; // box title text
boxSearchBg: {{colors.surface_container.default.hex}} /* #282e33 */; // box search field background (like in contacts box)
boxTitleAdditionalFg: {{colors.outline.default.hex}} /* #808080 */; // box title additional text (like in create group box when you see chosen members count)
boxTitleCloseFg: cancelIconFg; // settings close icon and box search cancel icon (like in contacts box)
boxTitleCloseFgOver: cancelIconFgOver; // settings close icon and box search cancel icon (like in contacts box) with mouse over
membersAboutLimitFg: {{colors.outline.default.hex}} /* #5e6065 */; // text in channel members box about the limit (max 200 last members are shown) (NOTE(eqrfns): haven't seen this yet)
contactsBg: {{colors.surface_container.default.hex}} /* #222528 */; // contacts (and some other) box row background
contactsBgOver: {{colors.surface_container.default.hex}} /* #282e33 */; // contacts (and some other) box row background with mouse over
contactsNameFg: boxTextFg; // contacts (and some other) box row name text
contactsStatusFg: {{colors.outline.default.hex}} /* #808080 */; // contacts (and some other) box row additional text (like last seen stamp)
contactsStatusFgOver: {{colors.outline.default.hex}} /* #808080 */; // contacts (and some other) box row additional text (like last seen stamp) with mouse over
contactsStatusFgOnline: {{colors.primary.default.hex}} /* #55e1d3 */; // contacts (and some other) box row active additional text (like online status)
photoCropFadeBg: layerBg; // avatar crop box fade background (when choosing a new photo in Settings or for a group)
photoCropPointFg: {{colors.on_surface.default.hex}}7f /* #ffffff7f */; // avatar crop box corner rectangles (when choosing a new photo in Settings or for a group)
callArrowFg: {{colors.tertiary.default.hex}} /* #2bc7b7 */; // received phone call arrow (NOTE(eqrfns): this is not the color you see in chats, instead this is used by the "Calls" overview you can find in the hamburger menu)
callArrowMissedFg: {{colors.error.default.hex}} /* #dd5b4a */; // missed phone call arrow (in calls list box)
introBg: windowBg; // login background
introTitleFg: {{colors.on_surface_variant.default.hex}} /* #eeeeee */; // login title text
introDescriptionFg: {{colors.on_surface_variant.default.hex}}99 /* #999999 */; // login description text
introErrorFg: {{colors.error.default.hex}} /* #999999 */; // login error text (like when providing a wrong log in code)
introCoverTopBg: {{colors.primary_container.default.hex}} /* #188173 */; // intro gradient top (from) (NOTE(eqrfns): haven't checked this)
introCoverBottomBg: {{colors.primary_container.default.hex}} /* #188173 */; // intro gradient bottom (to)
introCoverIconsFg: {{colors.on_primary_container.default.hex}} /* #34a493 */; // intro cloud graphics
introCoverPlaneTrace: {{colors.on_primary_container.default.hex}} /* #329d8f */; // intro plane traces
introCoverPlaneInner: #ced9e2; // intro plane part (NOTE(eqrfns): haven't seen this yet)
introCoverPlaneOuter: #97a9b5; // intro plane part (NOTE(eqrfns): haven't seen this yet)
introCoverPlaneTop: #ffffff; // intro plane part (NOTE(eqrfns): haven't seen this yet)
dialogsMenuIconFg: menuIconFg; // main menu and lock telegram icon
dialogsMenuIconFgOver: menuIconFgOver; // main menu and lock telegram icon with mouse over
dialogsBg: windowBg; // chat list background
dialogsNameFg: {{colors.on_surface.default.hex}} /* #f5f5f5 */; // chat list name text
dialogsChatIconFg: dialogsNameFg; // chat list group or channel icon
dialogsDateFg: {{colors.outline.default.hex}} /* #6d727c */; // chat list date text
dialogsTextFg: {{colors.outline.default.hex}} /* #8d939e */; // chat list message text
dialogsTextFgService: {{colors.on_surface_variant.default.hex}} /* #ebebeb */; // chat list group sender name text (or media message type text)
dialogsDraftFg: {{colors.error.default.hex}} /* #ec6657 */; // chat list draft label
dialogsVerifiedIconBg: {{colors.secondary.default.hex}} /* #53edde */; // chat list verified icon background
dialogsVerifiedIconFg: {{colors.surface_container.default.hex}} /* #282e33 */; // chat list verified icon check (NOTE(eqrfns): not sure where this is used, but it is referenced in the code)
dialogsSendingIconFg: {{colors.outline.default.hex}} /* #727272 */; // chat list sending message icon (clock)
dialogsSentIconFg: {{colors.primary.default.hex}} /* #20eed9 */; // chat list sent message tick / double tick icon
dialogsUnreadBg: {{colors.primary_container.default.hex}} /* #05a091 */; // chat list unread badge background for not muted chat
dialogsUnreadBgMuted: {{colors.primary_container.default.hex | saturate: -50, "hsl" | auto_lightness: 5}}99 /* #495159 */; // chat list unread badge background for muted chat (NOTE(eqrfns): this is also used for the "pinned" icon, and also for folder icons in the "add to folder" submenu of a chat "More" menu. I hate this...)
dialogsUnreadFg: {{colors.on_primary_container.default.hex}} /* #ffffff */; // chat list unread badge text
dialogsOnlineBadgeFg: {{colors.primary.default.hex}} /* #0ae7d1 */; // chat list online status
dialogsBgOver: {{colors.surface_container_highest.default.hex}} /* #353c43 */; // chat list background with mouse over
dialogsNameFgOver: windowBoldFgOver; // chat list name text with mouse over
dialogsChatIconFgOver: dialogsNameFgOver; // chat list group or channel icon with mouse over
dialogsDateFgOver: {{colors.outline.default.hex}} /* #6d727c */; // chat list date text with mouse over
dialogsTextFgOver: {{colors.on_surface_variant.default.hex}} /* #a3a7ae */; // chat list message text with mouse over
dialogsTextFgServiceOver: {{colors.on_surface.default.hex}} /* #f0f0f0 */; // chat list group sender name text with mouse over
dialogsDraftFgOver: dialogsDraftFg; // chat list draft label with mouse over
dialogsVerifiedIconBgOver: {{colors.secondary.default.hex}} /* #53edde */; // chat list verified icon background with mouse over
dialogsVerifiedIconFgOver: dialogsVerifiedIconFg; // chat list verified icon check with mouse over
dialogsSendingIconFgOver: dialogsSendingIconFg; // chat list sending message icon (clock) with mouse over
dialogsSentIconFgOver: {{colors.primary.default.hex}} /* #41f0de */; // chat list sent message tick / double tick icon with mouse over
dialogsUnreadBgOver: {{colors.primary_container.default.hex}} /* #009687 */; // chat list unread badge background for not muted chat with mouse over
dialogsUnreadBgMutedOver: {{colors.primary_container.default.hex | saturate: -40, "hsl" | auto_lightness: 5}}99 /* #555e67 */; // chat list unread badge background for muted chat with mouse over
dialogsUnreadFgOver: dialogsUnreadFg; // chat list unread badge text with mouse over
dialogsBgActive: {{colors.primary_container.default.hex}} /* #009687 */; // chat list background for current (active) chat
dialogsNameFgActive: {{colors.on_primary_container.default.hex}} /* windowFgActive */; // chat list name text for current (active) chat
dialogsChatIconFgActive: dialogsNameFgActive; // chat list group or channel icon for current (active) chat
dialogsDateFgActive: {{colors.on_primary_container.default.hex}} /* windowFgActive */; // chat list date text for current (active) chat
dialogsTextFgActive: {{colors.on_primary_container.default.hex}} /* windowFgActive */; // chat list message text for current (active) chat
dialogsTextFgServiceActive: dialogsTextFgActive; // chat list group sender name text for current (active) chat
dialogsDraftFgActive: {{colors.on_primary_container.default.hex}}99 /* #c6f7f3 */; // chat list draft label for current (active) chat
dialogsVerifiedIconBgActive: dialogsTextFgActive; // chat list verified icon background for current (active) chat
dialogsVerifiedIconFgActive: dialogsBgActive; // chat list verified icon check for current (active) chat
dialogsSendingIconFgActive: {{colors.on_primary_container.default.hex}}99 /* #ffffff99 */; // chat list sending message icon (clock) for current (active) chat
dialogsSentIconFgActive: dialogsTextFgActive; // chat list sent message tick / double tick icon for current (active) chat
dialogsUnreadBgActive: dialogsTextFgActive; // chat list unread badge background for not muted chat for current (active) chat
dialogsUnreadBgMutedActive: {{colors.on_primary_container.default.hex}}99 /* #cbf7e8 */; // chat list unread badge background for muted chat for current (active) chat
dialogsUnreadFgActive: {{colors.primary_container.default.hex}} /* #039d8e */; // chat list unread badge text for current (active) chat
dialogsOnlineBadgeFgActive: {{colors.on_primary_container.default.hex}} /* #ffffff */; // chat list online status for current (active) chat
dialogsRippleBg: {{colors.surface_variant.default.hex}} /* #43474d */; //
dialogsRippleBgActive: {{colors.inverse_primary.default.hex}} /* #12a796 */; //
dialogsForwardBg: dialogsBgActive; // forwarding panel background (when forwarding messages in the smallest window size)
dialogsForwardFg: dialogsNameFgActive; // forwarding panel text (when forwarding messages in the smallest window size)
searchedBarBg: {{colors.surface_container_highest.default.hex}} /* #3a4047 */; // search results bar background (in chats list, contacts box..)
searchedBarFg: {{colors.on_surface_variant.default.hex}} /* #a8a8a8 */; // search results bar text (in chats list, contacts box..)
topBarBg: {{colors.surface_container.default.hex}} /* #282e33 */; // top bar background (in chat view, media overview..)
emojiPanBg: windowBg; // emoji panel background
emojiPanCategories: {{colors.surface_container_low.default.hex}} /* #20262b */; // emoji panel categories background
emojiPanHeaderFg: {{colors.outline.default.hex}}/* #90949a */; // emoji panel section header text
emojiPanHeaderBg: {{colors.on_surface.default.hex}}f2 /* #fffffff2 */; // emoji panel section header background
stickerPanDeleteBg: {{colors.scrim.default.hex}}cc; // delete X button background for custom sent stickers in stickers panel (legacy)
stickerPanDeleteFg: windowFgActive; // delete X button icon for custom sent stickers in stickers panel (legacy)
stickerPreviewBg: {{colors.scrim.default.hex}}b0; // sticker and GIF preview background (when you press and hold on a sticker)
historyTextInFg: windowFg; // inbox message text
historyTextInFgSelected: {{colors.on_primary_container.default.hex}} /* #ffffff */; // inbox message selected text or text in a selected message
historyTextOutFg: {{colors.on_secondary_container.default.hex}} /* #e4ecf2 */; // outbox message text
historyTextOutFgSelected: {{colors.on_primary_container.default.hex}} /* #ffffff */; // outbox message selected text or text in a selected message
historyLinkInFg: {{colors.primary.default.hex}} /* #37e1ca */; // inbox message link
historyLinkInFgSelected: {{colors.on_secondary_container.default.hex | auto_lightness: -5}} /* #a7fff3 */; // inbox message link in a selected text or message
historyLinkOutFg: {{colors.on_secondary_container.default.hex | blend: {{colors.tertiary.default.hex}}, 0.5}} /* #37e1ca */; // outbox message link
historyLinkOutFgSelected: {{colors.on_secondary_container.default.hex | auto_lightness: -5}} /* #a7fff3 */; // outbox message link in a selected text or message
historyFileNameInFg: historyTextInFg; // inbox media filename text
historyFileNameInFgSelected: historyTextInFgSelected /* #ffffff */; // inbox media filename text in a selected message
historyFileNameOutFg: historyTextOutFg; // outbox media filename text
historyFileNameOutFgSelected: historyTextOutFgSelected /* #ffffff */; // outbox media filename text in a selected message
historyOutIconFg: {{colors.on_secondary_container.default.hex}} /* #40e6c5 */; // outbox message tick / double tick icon
historyOutIconFgSelected: {{colors.on_primary_container.default.hex}} /* #ffffff */; // outbox message tick / double tick icon in a selected message
historyIconFgInverted: {{colors.secondary.dark.hex}} /* windowFgActive */; // media message tick / double tick icon (like in sent photo) (NOTE(eqrfns): forcing the dark theme looks better here IMO)
historySendingOutIconFg: {{colors.on_secondary_container.default.hex}} /* #9dfadd */; // outbox sending message icon (clock)
historySendingInIconFg: {{colors.outline.default.hex}} /* #76838b */; // inbox sending message icon (clock) (like in sent messages to yourself or in sent messages to a channel)
historySendingInvertedIconFg: {{colors.on_surface.default.hex}}c8 /* #ffffffc8 */; // media sending message icon (clock) (like in sent photo)
historyCallArrowInFg: {{colors.tertiary.default.hex}} /* #26c2ab */; // received phone call arrow
historyCallArrowInFgSelected: {{colors.on_primary_container.default.hex}} /* #ffffff */; // received phone call arrow in a selected message
historyCallArrowMissedInFg: callArrowMissedFg; // missed phone call arrow
historyCallArrowMissedInFgSelected: {{colors.on_primary_container.default.hex}} /* #ffffff */; // missed phone call arrow in a selected message
historyCallArrowOutFg: {{colors.on_secondary_container.default.hex}} /* #ffffff */; // outgoing phone call arrow
historyCallArrowOutFgSelected: {{colors.on_primary_container.default.hex}} /* #ffffff */; // outgoing phone call arrow
historyUnreadBarBg: {{colors.surface_container_highest.default.hex}} /* #33393f */; // new unread messages bar background
historyUnreadBarBorder: shadowFg; // new unread messages bar shadow
historyUnreadBarFg: {{colors.primary.default.hex}} /* #3cd3bf */; // new unread messages bar text
historyForwardChooseBg: {{colors.scrim.default.hex}}4c; // forwarding messages in a large window size "choose recipient" background
historyForwardChooseFg: {{colors.primary.default.hex}} /* windowFgActive */; // forwarding messages in a large window size "choose recipient" text
historyPeer1NameFg: {{colors.primary.default.hex | blend: {{"#ec7577" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #ec7577 */; // red group member name
historyPeer1NameFgSelected: historyTextInFgSelected /* #ffffff */; // red group member name in a selected message
historyPeer1UserpicBg: #ff845e; // red userpic background
historyPeer2NameFg: {{colors.primary.default.hex | blend: {{"#86d67f" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #86d67f */; // green group member name
historyPeer2NameFgSelected: historyTextInFgSelected /* #ffffff */; // green group member name in a selected message
historyPeer2UserpicBg: #9ad164; // green userpic background
historyPeer3NameFg: {{colors.primary.default.hex | blend: {{"#e4c054" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #e4c054 */; // yellow group member name
historyPeer3NameFgSelected: historyTextInFgSelected /* #ffffff */; // yellow group member name in a selected message
historyPeer3UserpicBg: #e5ca77; // yellow userpic background (actually unused)
historyPeer4NameFg: {{colors.primary.default.hex | blend: {{"#68c7f3" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #68c7f3 */; // blue group member name
historyPeer4NameFgSelected: historyTextInFgSelected /* #ffffff */; // blue group member name in a selected message
historyPeer4UserpicBg: #5caffa; // blue userpic background
historyPeer5NameFg: {{colors.primary.default.hex | blend: {{"#b383f3" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #b383f3 */; // purple group member name
historyPeer5NameFgSelected: historyTextInFgSelected /* #ffffff */; // purple group member name in a selected message
historyPeer5UserpicBg: #b694f9; // purple userpic background
historyPeer6NameFg: {{colors.primary.default.hex | blend: {{"#e16794" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #e16794 */; // pink group member name
historyPeer6NameFgSelected: historyTextInFgSelected /* #ffffff */; // pink group member name in a selected message
historyPeer6UserpicBg: #ff8aac; // pink userpic background
historyPeer7NameFg: {{colors.primary.default.hex | blend: {{"#57c9e0" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #57c9e0 */; // sea group member name
historyPeer7NameFgSelected: historyTextInFgSelected /* #ffffff */; // sea group member name in a selected message
historyPeer7UserpicBg: #5bcbe3; // sea userpic background
historyPeer8NameFg: {{colors.primary.default.hex | blend: {{"#efb05d" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #efb05d */; // orange group member name
historyPeer8NameFgSelected: historyTextInFgSelected /* #ffffff */; // orange group member name in a selected message
historyPeer8UserpicBg: #febb5b; // orange userpic background
historyPeerUserpicFg: #ffffff /* windowFgActive */; // default userpic initials
historyScrollBarBg: {{colors.on_surface_variant.default.hex}}7a /* #8989897a */; // scroll bar current rectangle, the bar itself in the chat view (adjusted)
historyScrollBarBgOver: {{colors.outline.default.hex}}bc /* #6b6b6bbc */; // scroll bar current rectangle with mouse over it in the chat view (adjusted)
historyScrollBg: {{colors.outline.default.hex | auto_lightness: 5}}4c /* #5f5f5f4c */; // scroll bar background (adjusted)
historyScrollBgOver: {{colors.outline.default.hex}}6b /* #6262626b */; // scroll bar background with mouse over the scroll bar (adjusted)
historyPeer1UserpicBg2: #d45246; // the second red userpic background
historyPeer2UserpicBg2: #46ba43; // the second green userpic background
historyPeer3UserpicBg2: #e5ca77; // the second yellow userpic background (actually unused)
historyPeer4UserpicBg2: #408acf; // the second blue userpic background
historyPeer5UserpicBg2: #6c61df; // the second purple userpic background
historyPeer6UserpicBg2: #d95574; // the second pink userpic background
historyPeer7UserpicBg2: #359ad4; // the second sea userpic background
historyPeer8UserpicBg2: #f68136; // the second orange userpic background
historyPeerSavedMessagesBg2: historyPeer4UserpicBg2; // the second saved messages userpic background
msgInBg: {{colors.surface_container_high.default.hex}} /* #33393f */; // inbox message background
msgInBgSelected: {{colors.primary_container.default.hex}} /* #009687 */; // inbox selected message background (and background of selected text in those messages)
msgOutBg: {{colors.secondary_container.default.hex}} /* #2a2f33 */; // outbox message background
msgOutBgSelected: {{colors.primary_container.default.hex}} /* #009687 */; // outbox selected message background (and background of selected text in those messages)
msgSelectOverlay: {{colors.primary.default.hex}}4c /* #35d4bf4c */; // overlay which is filling the media parts of selected messages (like in selected photo message)
msgStickerOverlay: {{colors.primary.default.hex}}7f /* #35d4bf7f */; // overlay which is filling the selected sticker message (NOTE(eqrfns): this color is somehow bugged, it randomy does not get updated when I change the theme)
msgInServiceFg: windowActiveTextFg; // inbox message information text (like information about a forwarded message original sender)
msgInServiceFgSelected: {{colors.on_surface.default.hex}} /* #ffffff */; // inbox selected message information text (like information about a forwarded message original sender)
msgOutServiceFg: {{colors.on_secondary_container.default.hex}} /* #60e5ca */; // outbox message information text (like information about a forwarded message original sender)
msgOutServiceFgSelected: {{colors.on_secondary_container.default.hex}} /* #ffffff */; // outbox message information text (like information about a forwarded message original sender)
msgInShadow: {{colors.shadow.default.hex}}00; // inbox message shadow (below the bubble)
msgInShadowSelected: {{colors.shadow.default.hex}}00; // inbox selected message shadow (below the bubble)
msgOutShadow: {{colors.shadow.default.hex}}00; // outbox message shadow (below the bubble)
msgOutShadowSelected: {{colors.primary_container.default.hex}}00 /* #37a78d00 */; // outbox selected message shadow (below the bubble)
msgInDateFg: {{colors.secondary.default.hex}} /* #828d94 */; // inbox message time text
msgInDateFgSelected: {{colors.on_primary_container.default.hex}} /* #ffffff */; // inbox selected message time text
msgOutDateFg: {{colors.on_secondary_container.default.hex}}99 /* #737f87 */; // outbox message time text
msgOutDateFgSelected: {{colors.on_primary_container.default.hex}} /* #ffffff */; // outbox selected message time text
msgServiceFg: {{colors.secondary.default.hex}}; // service message text (like date dividers or service message about the group title being changed)
msgServiceBg: {{colors.surface_variant.default.hex}}c8 /* #363c43c8 */; // service message background (like in a service message about group title being changed) (adjusted)
msgServiceBgSelected: {{colors.inverse_primary.default.hex}} /* #009687 */; // service message selected text background (like in a service message about group title being changed) (adjusted)
msgInReplyBarColor: {{colors.primary.default.hex}} /* #32ceb7 */; // inbox message reply outline (NOTE(eqrfns): this can be seen at east in the interface scale preview)
msgInReplyBarSelColor: {{colors.on_surface.default.hex}} /* #ffffff */; // inbox selected message reply outline (NOTE(eqrfns): coudn't figure out how to see this)
msgOutReplyBarColor: {{colors.on_secondary_container.default.hex}} /* #32ceb7 */; // outbox message reply outline
msgOutReplyBarSelColor: {{colors.on_primary_container.default.hex}} /* #ffffff */; // outbox selected message reply outline
msgImgReplyBarColor: msgServiceFg; // sticker message reply outline (NOTE(eqrfns): this is the color of the text that shows up when you reply with a sticker. This took me some time to figure out)
msgInMonoFg: {{colors.tertiary.default.hex | auto_lightness: -10}} /* #5aab9f */; // inbox message monospace text (like a message sent with `test` text)
msgOutMonoFg: {{colors.on_secondary_container.default.hex | auto_lightness: 5 | blend: {{colors.tertiary.default.hex}}, 1.0}} /* #c2f2ec */; // outbox message monospace text (NOTE(eqrfns): not sure if this is OK)
msgInMonoFgSelected: {{colors.on_primary_container.default.hex | auto_lightness: -5}} /* #a7fff3 */; // inbox message monospace text in a selected text or message
msgOutMonoFgSelected: {{colors.on_primary_container.default.hex | auto_lightness: -5}} /* #c9fff8 */; // outbox message monospace text in a selected text or message
msgDateImgFg: {{colors.secondary.dark.hex}} /* msgServiceFg */; // media message time text (like time text in a sent photo) (NOTE(eqrfns): forced dark theme looks better IMO)
msgDateImgBg: {{colors.scrim.default.hex}}54; // media message time bubble background (like time bubble in a sent photo) or file with thumbnail download icon circle background
msgDateImgBgOver: {{colors.scrim.default.hex}}74; // media message download icon circle background with mouse over (like file with thumbnail download icon)
msgDateImgBgSelected: {{colors.scrim.default.hex}}87 /* #1c706587 */; // selected media message time bubble background
msgFileThumbLinkInFg: lightButtonFg; // inbox media file message with thumbnail download / open with button text
msgFileThumbLinkInFgSelected: lightButtonFgOver; // inbox selected media file message with thumbnail download / open with button text
msgFileThumbLinkOutFg: {{colors.on_secondary_container.default.hex}} /* #60e5ca */; // outbox media file message with thumbnail download / open with button text
msgFileThumbLinkOutFgSelected: {{colors.on_primary_container.default.hex}} /* #ffffff */; // outbox selected media file message with thumbnail download / open with button text
msgFileInBg: {{colors.primary.default.hex}} /* #50d4c2 */; // inbox audio file download circle background (NOTE(eqrfns): this is actually used for ANY file)
msgFileInBgOver: {{colors.primary.default.hex | auto_lightness: 10}} /* #48cfbd */; // inbox audio file download circle background with mouse over (NOTE(eqrfns): this is actualy for the play circle in the audio files overiew)
msgFileInBgSelected: {{colors.on_primary_container.default.hex}} /* #ffffff */; // inbox selected audio file download circle background (NOTE(eqrfns): this is used both for the overview, and for the chat history)
msgFileOutBg: {{colors.on_secondary_container.default.hex}} /* #11bfab */; // outbox audio file download circle background
msgFileOutBgOver: {{colors.on_secondary_container.default.hex | auto_lightness: 10}} /* #ffffff */; // outbox audio file download circle background with mouse over (NOTE(eqrfns): seems to be unused in the source code?)
msgFileOutBgSelected: {{colors.on_primary_container.default.hex}} /* #ffffff */; // outbox selected audio file download circle background
msgFile1Bg: #72b1df; // blue shared links / files without image square thumbnail
msgFile1BgDark: #5c9ece; // blue shared files without image download circle background
msgFile1BgOver: #5294c4; // blue shared files without image download circle background with mouse over
msgFile1BgSelected: #5099d0; // blue shared files without image download circle background if file is selected
msgFile2Bg: #5fbe67; // green shared links / shared files without image square thumbnail
msgFile2BgDark: #4da859; // green shared files without image download circle background
msgFile2BgOver: #44a050; // green shared files without image download circle background with mouse over
msgFile2BgSelected: #50ac9b; // green shared files without image download circle background if file is selected
msgFile3Bg: #e47272; // red shared links / shared files without image square thumbnail
msgFile3BgDark: #cd5b5e; // red shared files without image download circle background
msgFile3BgOver: #c35154; // red shared files without image download circle background with mouse over
msgFile3BgSelected: #9f6a82; // red shared files without image download circle background if file is selected
msgFile4Bg: #efc274; // yellow shared links / shared files without image square thumbnail
msgFile4BgDark: #e6a561; // yellow shared files without image download circle background
msgFile4BgOver: #dc9c5a; // yellow shared files without image download circle background with mouse over
msgFile4BgSelected: #b19d84; // yellow shared files without image download circle background if file is selected
historyFileInIconFg: msgInBg /* #33393f */; // inbox file without thumbnail (like audio file) download arrow icon
historyFileInIconFgSelected: msgInBgSelected /* #009687 */; // inbox selected file without thumbnail (like audio file) download arrow icon
historyFileInRadialFg: {{colors.surface_container_highest.default.hex}} /* #33393f */; // inbox file without thumbnail (like audio file) radial download animation line
historyFileInRadialFgSelected: historyFileInIconFgSelected; // inbox selected file without thumbnail (like audio file) radial download animation line
historyFileOutIconFg: msgOutBg /* #33393f */; // outbox file without thumbnail (like audio file) download arrow icon
historyFileOutIconFgSelected: msgOutBgSelected /* #009687 */; // outbox selected file without thumbnail (like audio file) download arrow icon
historyFileOutRadialFg: historyFileOutIconFg; // outbox file without thumbnail (like audio file) radial download animation line
historyFileOutRadialFgSelected: historyFileOutIconFgSelected /* #009687 */; // outbox selected file without thumbnail (like audio file) radial download animation line (NOTE(eqrfns): you need to start downloading the file and then select the message to see this)
historyFileThumbIconFg: {{colors.on_surface.default.hex}} /* #efefef */; // file with thumbnail (or photo / video) download arrow icon
historyFileThumbIconFgSelected: {{colors.on_surface.default.hex}} /* #ffffff */; // selected file with thumbnail (or photo / video) download arrow icon
historyFileThumbRadialFg: historyFileThumbIconFg; // file with thumbnail (or photo / video) radial download animation line
historyFileThumbRadialFgSelected: {{colors.on_surface.default.hex}} /* #ffffff */; // selected file with thumbnail (or photo / video) radial download animation line
historyVideoMessageProgressFg: historyFileThumbIconFg; // radial playback progress in round video messages
msgWaveformInActive: windowBgActive; // inbox voice message active waveform lines (like played part of currently playing voice message)
msgWaveformInActiveSelected: {{colors.on_primary_container.default.hex}} /* #ffffff */; // inbox selected voice message active waveform lines (like played part of currently playing voice message)
msgWaveformInInactive: {{colors.outline.default.hex}} /* #5d6b76 */; // inbox voice message inactive waveform lines (like upcoming part of currently playing voice message)
msgWaveformInInactiveSelected: {{colors.on_primary_container.default.hex}}80 /* #41d1be */; // inbox selected voice message inactive waveform lines (like upcoming part of currently playing voice message)
msgWaveformOutActive: {{colors.on_secondary_container.default.hex}} /* #11bfab */; // outbox voice message active waveform lines (like played part of currently playing voice message)
msgWaveformOutActiveSelected: {{colors.on_primary_container.default.hex}} /* #ffffff */; // outbox selected voice message active waveform lines (like played part of currently playing voice message)
msgWaveformOutInactive: {{colors.on_secondary_container.default.hex}}80 /* #596874 */; // outbox voice message inactive waveform lines (like upcoming part of currently playing voice message)
msgWaveformOutInactiveSelected: {{colors.on_primary_container.default.hex}}80 /* #41d1be */; // outbox selected voice message inactive waveform lines (like upcoming part of currently playing voice message)
msgBotKbOverBgAdd: {{colors.on_surface.default.hex}}14 /* #ffffff14 */; // this is painted over a bot inline keyboard button (which has msgServiceBg background) when mouse is over that button
msgBotKbIconFg: msgServiceFg; // bot inline keyboard button icon in the top-right corner (like in @vote bot when a poll is ready to be shared)
msgBotKbRippleBg: {{colors.on_surface_variant.default.hex}}10 /* #9e9d9d10 */; // bot inline keyboard button ripple effect
mediaInFg: msgInDateFg; // inbox media message status text (like in file that is being downloaded)
mediaInFgSelected: msgInDateFgSelected; // inbox selected media message status text (like in file that is being downloaded)
mediaOutFg: msgOutDateFg; // outbox media message status text (like in file that is being downloaded)
mediaOutFgSelected: msgOutDateFgSelected; // outbox selected media message status text (like in file that is being downloaded)
youtubePlayIconBg: #e83131c8; // youtube play icon background (when a link to a youtube video with a webpage preview is sent) NOTE(eqrfns): deliberately a static color
youtubePlayIconFg: #ffffff /* windowFgActive */; // youtube play icon arrow (when a link to a youtube video with a webpage preview is sent) NOTE(eqrfns): deliberately a static color
videoPlayIconBg: {{colors.scrim.default.hex}}7f; // other video play icon background (like when a link to a vimeo video with a webpage preview is sent)
videoPlayIconFg: {{colors.on_surface.default.hex}} /* #ffffff */; // other video play icon arrow (like when a link to a vimeo video with a webpage preview is sent)
toastBg: {{colors.shadow.default.hex}}b2; // toast notification background (like when you click on your t.me link when editing your username)
toastFg: {{colors.shadow.default.hex | invert}} /* windowFgActive */; // toast notification text (like when you click on your t.me link when editing your username)
reportSpamBg: {{colors.surface_container_highest.default.hex}} /* #363c42 */; // report spam panel background (like a non contact user writes your for the first time)
reportSpamFg: windowFg; // report spam panel text (when you send a report from that panel)
historyToDownBg: {{colors.secondary_container.default.hex}} /* #434d57 */; // arrow button background (to scroll to the end of the viewed chat)
historyToDownBgOver: {{colors.secondary_container.default.hex | auto_lightness: 10}} /* #515b65 */; // arrow button background with mouse over
historyToDownBgRipple: {{colors.secondary_container.default.hex | auto_lightness: 20}} /* #636d77 */; // arrow button ripple effect
historyToDownFg: {{colors.on_secondary_container.default.hex}} /* #adb4ba */; // arrow button icon
historyToDownFgOver: {{colors.on_secondary_container.default.hex}} /* menuIconFgOver */; // arrow button icon with mouse over
historyToDownShadow: {{colors.shadow.default.hex}}40; // arrow button shadow
historyComposeAreaBg: {{colors.surface_container.default.hex}} /* #282e33 */; // history compose area background (message write area / reply information / forwarding information)
historyComposeAreaFg: historyTextInFg; // history compose area text
historyComposeAreaFgService: msgInDateFg; // history compose area text when replying to a media message
historyComposeIconFg: menuIconFg; // history compose area icon (like emoji, attach, bot command..)
historyComposeIconFgOver: menuIconFgOver; // history compose area icon with mouse over
historySendIconFg: windowBgActive; // send message icon
historySendIconFgOver: windowBgActive; // send message icon with mouse over
historyPinnedBg: historyComposeAreaBg; // pinned message area background
historyReplyBg: historyComposeAreaBg; // reply / forward / edit message area background
historyReplyIconFg: windowBgActive; // reply / forward / edit message left icon
historyReplyCancelFg: cancelIconFg; // reply / forward / edit message cancel button
historyReplyCancelFgOver: cancelIconFgOver; // reply / forward / edit message cancel button with mouse over
historyComposeButtonBg: historyComposeAreaBg; // unblock / join channel / mute channel button background
historyComposeButtonBgOver: {{colors.surface_container_high.default.hex}} /* #31363c */; // unblock / join channel / mute channel button background with mouse over
historyComposeButtonBgRipple: {{colors.surface_container_low.default.hex}} /* #272b2f */; // unblock / join channel / mute channel button ripple effect
overviewCheckBg: {{colors.scrim.default.hex}}40; // shared files / links checkbox background for not selected rows when some rows are selected
overviewCheckFg: {{colors.on_surface.default.hex}} /* #ffffff */; // shared files / links checkbox icon for not selected rows when some rows are selected
overviewCheckFgActive: {{colors.on_primary.default.hex}} /* #ffffff */; // shared files / links checkbox icon for selected rows (NOTE(eqrfns): this is used over primary (boxTextFgGood al least))
overviewPhotoSelectOverlay: {{colors.primary.default.hex}}33 /* #40ace333 */; // shared photos / videos / links fill for selected rows
profileStatusFgOver: #ff00ff /* #9c9c9c */; // group members list in group profile user last seen text with mouse over (NOTE(eqrfns): seems unused in the sources?)
profileVerifiedCheckBg: windowBgActive; // profile verified check icon background
profileVerifiedCheckFg: {{colors.on_surface.default.hex}} /* #ffffff */; // profile verified check icon tick
profileAdminStartFg: windowBgActive; // group members list admin star icon
notificationsBoxMonitorFg: windowFg; // custom notifications settings box monitor color
notificationsBoxScreenBg: dialogsBgActive; // #6389a8; // custom notifications settings box monitor screen background
notificationSampleUserpicFg: windowBgActive; // custom notifications settings box small sample userpic placeholder
notificationSampleCloseFg: {{colors.on_surface.default.hex}} /* #d7d7d7 */; // custom notifications settings box small sample close button placeholder (NOTE(eqrfns): haven't seen this)
notificationSampleTextFg: {{colors.on_surface.default.hex}} /* #d7d7d7 */; // custom notifications settings box small sample text placeholder (NOTE(eqrfns): haven't seen this)
notificationSampleNameFg: {{colors.on_surface_variant.default.hex}} /* #939393 */; // custom notifications settings box small sample name placeholder (NOTE(eqrfns): haven't seen this)
changePhoneSimcardFrom: notificationSampleTextFg; // change phone number box left simcard icon
changePhoneSimcardTo: notificationSampleNameFg; // change phone number box right simcard and plane icons
mainMenuBg: windowBg; // main menu background
mainMenuCoverBg: windowBgActive /* #009687 */; // main menu top cover background (NOTE(eqrfns): these "cover" colors don't seem to show up anywhere)
mainMenuCoverFg: windowFgActive; // main menu top cover text
mainMenuCloudFg: activeButtonFg; // main menu top cover saved messages / archive button icon
mainMenuCloudBg: activeButtonBg /* #0e837d */; // main menu top cover saved messages / archive button background
mediaPlayerBg: windowBg; // audio file player background
mediaPlayerActiveFg: windowBgActive; // audio file player playback progress already played part
mediaPlayerInactiveFg: sliderBgInactive; // audio file player playback progress upcoming (not played yet) part with mouse over
mediaPlayerDisabledFg: #9dd1ef; // audio file player loading progress (when you're playing an audio file and switch to the previous one which is not loaded yet)
mediaviewFileBg: windowBg; // file rectangle background (when you view a png file in Media Viewer and go to a previous, not loaded yet, file)
mediaviewFileNameFg: windowFg; // file name in file rectangle
mediaviewFileSizeFg: windowSubTextFg; // file size text in file rectangle
mediaviewFileRedCornerFg: #d55959; // red file thumbnail placeholder corner in file rectangle (for a file without thumbnail, like .pdf)
mediaviewFileYellowCornerFg: #e8a659; // yellow file thumbnail placeholder corner in file rectangle (for a file without thumbnail, like .zip)
mediaviewFileGreenCornerFg: #49a957; // green file thumbnail placeholder corner in file rectangle (for a file without thumbnail, like .exe)
mediaviewFileBlueCornerFg: #599dcf; // blue file thumbnail placeholder corner in file rectangle (for a file without thumbnail, like .dmg)
mediaviewFileExtFg: activeButtonFg; // file extension text in file thumbnail placeholder in file rectangle
mediaviewMenuBg: #ff00ff /* #383838 */; // context menu in Media Viewer background (NOTE(eqrfns): seems defined, but unreferenced in the sources)
mediaviewMenuBgOver: {{colors.surface_container_highest.dark.hex}} /* #505050 */; // context menu item background with mouse over (NOTE(eqrfns): this is actually the inactive side of the playback speed control slider for some reason)
mediaviewMenuBgRipple: #ff00ff /* #676767 */; // context menu item ripple effect (NOTE(eqrfns): also unused?)
mediaviewMenuFg: {{colors.on_surface.dark.hex}} /* windowFgActive */; // context menu item text
mediaviewBg: {{colors.surface_container_low.dark.hex}}eb /* #222222eb */; // Media Viewer background
mediaviewVideoBg: imageBg; // Media Viewer background when viewing a video in full screen
mediaviewControlBg: {{colors.scrim.default.hex}}3c; // controls background (like next photo / previous photo)
mediaviewControlFg: {{colors.primary.dark.hex}} /* windowFgActive */; // controls icon (like next photo / previous photo)
mediaviewCaptionBg: {{colors.surface_container_lowest.dark.hex}}a9 /* #11111180 */; // caption text background (when viewing photo with caption)
mediaviewCaptionFg: mediaviewControlFg; // caption text
mediaviewTextLinkFg: {{colors.primary.dark.hex}} /* #66f7e4 */; // caption text link
mediaviewSaveMsgBg: toastBg; // save to file toast message background in Media Viewer
mediaviewSaveMsgFg: toastFg; // save to file toast message text
mediaviewPlaybackActive: {{colors.on_surface_variant.dark.hex}} /* #c7c7c7 */; // video playback progress already played part
mediaviewPlaybackInactive: {{colors.on_surface_variant.dark.hex}}55 /* #252525 */; // video playback progress upcoming (not played yet) part
mediaviewPlaybackActiveOver: {{colors.on_surface.dark.hex}} /* #ffffff */; // video playback progress already played part with mouse over
mediaviewPlaybackInactiveOver: {{colors.on_surface_variant.dark.hex}}aa /* #474747 */; // video playback progress upcoming (not played yet) part with mouse over (NOTE(eqrfns): this actually only shows up when rewinding the video. I assume this is the "buffered" part, but not sure)
mediaviewPlaybackProgressFg: {{colors.on_surface.dark.hex}}c7 /* #ffffffc7 */; // video playback progress text
mediaviewPlaybackIconFg: mediaviewPlaybackActive; // video playback controls icon
mediaviewPlaybackIconFgOver: mediaviewPlaybackActiveOver; // video playback controls icon with mouse over
mediaviewTransparentBg: {{colors.on_surface.default.hex}} /* #ffffff */; // transparent filling part (when viewing a transparent .png file in Media Viewer) (NOTE(eqrfns): this is one of the checkerboard colors)
mediaviewTransparentFg: {{colors.on_surface_variant.default.hex}} /* #cccccc */; // another transparent filling part (NOTE(eqrfns): this is annother checkerboard color)
notificationBg: windowBg; // custom notification window background
callBg: {{colors.surface_container.dark.hex}}f2 /* #26282cf2 */; // phone call popup background
callNameFg: {{colors.on_surface.dark.hex}} /* #ffffff */; // phone call popup name text
callFingerprintBg: {{colors.scrim.dark.hex}}66; // phone call popup emoji fingerprint background
callStatusFg: {{colors.on_surface_variant.dark.hex}} /* #aaabac */; // phone call popup status text (NOTE(eqrfns): haven't seen this on Linux)
callIconFg: {{colors.on_surface.dark.hex}} /* #ffffff */; // phone call popup answer, hangup and mute mic icon
callAnswerBg: {{colors.primary_container.dark.hex}} /* #5ad1bf */; // phone call popup answer button background (NOTE(eqrfns): this is one of those "bugged" colors that sometimes get stuck on theme change)
callAnswerRipple: {{colors.inverse_primary.dark.hex}} /* #42c2b1 */; // phone call popup answer button ripple effect
callAnswerBgOuter: {{colors.primary.dark.hex}}26 /* #3febc926 */; // phone call popup answer button outer ripple effect
callHangupBg: {{colors.error_container.dark.hex}} /* #d75a5a */; // phone call popup hangup button background
callHangupRipple: {{colors.on_error_container.dark.hex}}19 /* #c04646 */; // phone call popup hangup button ripple effect
callCancelBg: {{colors.on_surface.dark.hex}} /* #ffffff */; // phone call popup line busy cancel button background
callCancelFg: {{colors.inverse_on_surface.dark.hex}}; // phone call popup line busy cancel button icon
callCancelRipple: #f1f1f1; // phone call popup line busy cancel button ripple effect
callMuteRipple: {{colors.on_surface.default.hex}}12 /* #ffffff12 */; // phone call popup mute mic ripple effect
callBarBg: dialogsBgActive; // active phone call bar background
callBarMuteRipple: dialogsRippleBgActive; // active phone call bar mute and hangup button ripple effect
callBarBgMuted: #8f8f8f; // phone call bar with muted mic background
callBarUnmuteRipple: #7f7f7f; // phone call bar with muted mic mute and hangup button ripple effect
callBarFg: dialogsNameFgActive; // phone call bar text and icons
importantTooltipBg: toastBg; //
importantTooltipFg: toastFg; //
importantTooltipFgLink: {{colors.primary.dark.hex}} /* #65fce8 */; // group call important tooltip text link color (NOTE(eqrfns): haven't seen this yet)
filterInputActiveBg: {{colors.surface_container_highest.default.hex}} /* #3d444b */; // default rounded input field active background (like in chats list search field when field is focused)
botKbBg: {{colors.surface_container_highest.default.hex}} /* #3d444b */; // bot keyboard button background
botKbDownBg: {{colors.surface_variant.default.hex}} /* #494f55 */; // bot keyboard button ripple effect
emojiIconFg: {{colors.outline.default.hex}} /* #6c7278 */; // emoji category icon
emojiIconFgActive: #ff00ff /* #36cdb9 */; // active emoji category icon (NOTE(eqrfns): seems to be missing in the sources)
overviewCheckBorder: {{colors.outline.default.hex}} /* #e4eaef */; // shared media round checkbox border
sideBarBg: {{colors.surface_container_lowest.default.hex}} /* #18191d */; // filters side bar background
sideBarBgActive: {{colors.surface_container.default.hex}} /* #282e33 */; // filters side bar active background
sideBarBgRipple: {{colors.surface_container_low.default.hex}} /* #22272b */; // filters side bar ripple effect
sideBarTextFg: {{colors.outline.default.hex}} /* #8d939e */; // filters side bar text
sideBarTextFgActive: {{colors.primary.default.hex}} /* #24c9b9 */; // filters side bar active item text
sideBarIconFg: {{colors.outline.default.hex}} /* #8d939e */; // filters side bar icon
sideBarIconFgActive: {{colors.primary.default.hex}} /* #25dbc9 */; // filters side bar active item icon
sideBarBadgeBg: {{colors.primary.default.hex}} /* #25dbc9 */; // filters side bar badge background
sideBarBadgeBgMuted: {{colors.outline.default.hex}} /* #8d939e */; // filters side bar unimportant badge background
statisticsChartInactive: {{colors.surface_container_high.default.hex}} /* #313a43d8 */; // inactive area in footer of statistic charts (NOTE(eqrfns): haven't seen this)
statisticsChartActive: {{colors.outline_variant.default.hex}} /* #596879d8 */; // sides in footer of statistic charts (NOTE(eqrfns): haven't seen this)
// The following colors are not automatically exported into a theme as of Telegram Desktop 6.6.4.
// You can find them in the Telegram/lib_ui/ui/colors.palette file of the Telegram Desktop sources.
groupCallMenuBg: {{colors.surface_container.dark.hex}} /* #292d33 */; // group members list in group profile user last seen text with mouse over (NOTE(eqrfns): this is also used as a context menu background in media view)
groupCallMenuBgOver: {{colors.surface_container_high.dark.hex}} /* #343940 */; // group call popup menu with mouse over
groupCallMenuBgRipple: {{colors.surface_container_highest.dark.hex}} /* #3a4047 */; // group call popup menu ripple effect
groupCallMembersFg: {{colors.on_surface.dark.hex}} /* #ffffff */; // group call member name text (NOTE(eqrfns): this is used for the media view context menu text)
sideBarBadgeFg: {{colors.surface_container_lowest.default.hex}} /* #ffffff */; // filters side bar badge text (NOTE(eqrfns): this is used for sidebar counters)
callBgOpaque: {{colors.surface_container_low.dark.hex}} /* #1b1f23 */; // phone call popup background
callBgButton: {{colors.surface_container_lowest.dark.hex}}7f /* #1b1f237f */; // phone call window control buttons bg (NOTE(eqrfns): this is used for the top bar with signal strength and random emojis)
callIconBg: {{colors.on_surface.dark.hex}}1f /* #ffffff1f */; // phone call mute mic and camera button background
callIconBgActive: {{colors.on_surface.dark.hex}}e5 /* #ffffffe5 */; // phone call line busy cancel, muted mic and camera button background
callIconFgActive: {{colors.inverse_on_surface.dark.hex}} /* #222222 */; // phone call line busy cancel, muted mic and camera icon
callIconActiveRipple: {{colors.inverse_on_surface.dark.hex}}19 /* #f1f1f1 */; // phone call line busy cancel, muted mic and camera ripple effect
groupCallBg: {{colors.surface_container_low.dark.hex}} /* #1a2026 */; // group call popup background
groupCallActiveFg: {{colors.primary.dark.hex}} /* #4db8ff */; // group call active controls text (NOTE(eqrfns): this is used for regular calls too)
groupCallMembersBg: {{colors.surface_container.dark.hex}} /* #2c333d */; // group call members list background
groupCallMembersBgOver: {{colors.surface_container_high.dark.hex}} /* #323a45 */; // group call members list row with mouse over
groupCallMembersBgRipple: {{colors.surface_container_highest.dark.hex}} /* #39424f */; // group call member row ripple effect
groupCallMemberActiveIcon: {{colors.tertiary.dark.hex}} /* #8deb90 */; // group call active member icon
groupCallMemberActiveStatus: {{colors.tertiary.dark.hex}} /* #8deb90 */; // group call active member status text
groupCallMemberInactiveIcon: {{colors.outline.dark.hex}} /* #84888f */; // group call inactive member icon
groupCallMemberInactiveStatus: {{colors.secondary.dark.hex}} /* #61c0ff */; // group call inactive member status text
groupCallMemberMutedIcon: {{colors.error.dark.hex}} /* #ed7372 */; // group call muted by admin member icon
groupCallMemberNotJoinedStatus: {{colors.on_surface_variant.dark.hex}} /* #91979e */; // group call non joined member status text
groupCallIconFg: {{colors.on_surface.dark.hex}} /* #ffffff */; // group call mute / settings / leave icon
// I'll leave these group call button colors as they are for now.
groupCallLive1: #0dcc39; // group call live button color1
groupCallLive2: #0bb6bd; // group call live button color2
groupCallMuted1: #0992ef; // group call muted button color1
groupCallMuted2: #16ccfb; // group call muted button color2
groupCallForceMutedBar1: #c65493; // group call force muted top bar color1
groupCallForceMutedBar2: #7a6af1; // group call force muted top bar color2
groupCallForceMutedBar3: #5f95e8; // group call force muted top bar color3
groupCallForceMuted1: #4f9cff; // group call force muted button color1
groupCallForceMuted2: #9b52e9; // group call force muted button color2
groupCallForceMuted3: #eb5353; // group call force muted button color3
groupCallLeaveBg: #f75c5c7f; // group call leave button background
groupCallLeaveBgRipple: #f75c5c9e; // group call leave button ripple effect
groupCallVideoTextFg: #ffffffe0; // group call text over video
groupCallVideoSubTextFg: #ffffffc0; // group call additional text over video
// NOTE(eqrfns): These "chart" colors are also used for syntax highlighting!
// Unfortunately, there is probably no way to make them look good with high-contrast themes in both inbox and outbox messages
// if using non-surface background (like secondary_container, as in my case) for outbox messages.
statisticsChartLineBlue: {{colors.primary.default.hex | blend: {{"#327fe5" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #327fe5 */; // represents blue color on statistical charts
statisticsChartLineGreen: {{colors.primary.default.hex | blend: {{"#61c752" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #61c752 */; // represents green color on statistical charts
statisticsChartLineRed: {{colors.primary.default.hex | blend: {{"#e05356" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #e05356 */; // represents red color on statistical charts
statisticsChartLineGolden: {{colors.primary.default.hex | blend: {{"#eba52d" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #eba52d */; // represents golden color on statistical charts
statisticsChartLineLightblue: {{colors.primary.default.hex | blend: {{"#58a8ed" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #58a8ed */; // represents lightblue color on statistical charts
statisticsChartLineLightgreen: {{colors.primary.default.hex | blend: {{"#8fcf39" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #8fcf39 */; // represents lightgreen color on statistical charts
statisticsChartLineOrange: {{colors.primary.default.hex | blend: {{"#f28c39" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #f28c39 */; // represents orange color on statistical charts
statisticsChartLineIndigo: {{colors.primary.default.hex | blend: {{"#7f79f3" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #7f79f3 */; // represents indigo color on statistical charts
statisticsChartLinePurple: {{colors.primary.default.hex | blend: {{"#9f79e8" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #9f79e8 */; // represents purple color on statistical charts
statisticsChartLineCyan: {{colors.primary.default.hex | blend: {{"#40d0ca" | to_color}}, 1.0 | harmonize: {{colors.primary.default.hex}}}} /* #40d0ca */; // represents cyan color on statistical charts
//botKbColor: windowBoldFgOver; // bot keyboard button text
//botKbPrimaryBg: #298acfcc; // bot keyboard Primary button background
//botKbDangerBg: #e05356cc; // bot keyboard Danger button background
//botKbSuccessBg: #61c752cc; // bot keyboard Success button background
//botKbInlinePrimaryBg: #378eaeb3; // inline bot keyboard Primary button background
//botKbInlineDangerBg: #c9543eb3; // inline bot keyboard Danger button background
//botKbInlineSuccessBg: #489d38b3; // inline bot keyboard Success button background
//boxDividerBg: windowBgOver; // gray divider in boxes and layers
//boxDividerFg: windowShadowFg; // gray divider shadow in boxes and layers
//paymentsTipActive: #01ad0f; // tip button text in payments checkout form
//dialogsArchiveFg: #525252 | dialogsNameFg; // chat list archive name text
//dialogsScamFg: dialogsDraftFg; // chat list scam label
//dialogsArchiveFgOver: #525252 | dialogsNameFgOver; // chat list archive name text with mouse over
//dialogsScamFgOver: dialogsDraftFgOver; // chat list scam label with mouse over
//dialogsScamFgActive: dialogsDraftFgActive; // chat list scam label for current (active) chat
//emojiSubIconFgActive: #666666 | windowBoldFg; // active emoji subcategory icon
//stickerPanPremium1: #5a99ff; // premium sticker pack icon gradient 1
//stickerPanPremium2: #45b9f3; // premium sticker pack icon gradient 2
//historyPeerSavedMessagesBg: historyPeer4UserpicBg; // saved messages userpic background
//historyPeerArchiveUserpicBg: dialogsUnreadBgMuted; // archive folder userpic background
//settingsIconBg1: #f06964; // red settings icon background
//settingsIconBg2: #6dc534; // green settings icon background
//settingsIconBg3: #ed9f20; // light-orange settings icon background
//settingsIconBg4: #56b3f5; // light-blue settings icon background
//settingsIconBg5: #7595ff; // dark-blue settings icon background
//settingsIconBg6: #b580e2; // purple settings icon background
//settingsIconBg8: #f2925b; // dark-orange settings icon background
//settingsIconBgArchive: #9da2b0; // archive main menu icon background
//settingsIconFg: #ffffff; // settings icon shape
//mapPointDrop: #fd4444; // geo location marker background
//mapPointDot: #ffffff; // geo location marker point
//overviewCheckBgActive: windowBgActive; // shared media / files / links checkbox background for selected rows
//mediaviewPlaybackIconRipple: #ffffff14; // video playback controls ripple effect
//mediaviewPipControlsFg: #ffffffd9; // picture-in-picture controls
//mediaviewPipControlsFgOver: #ffffff; // picture-in-picture controls with mouse over
//mediaviewPipPlaybackActive: #ffffffda; // picture-in-picture playback progress already played part
//mediaviewPipPlaybackInactive: #ffffff26; // picture-in-picture playback progress upcoming (not played yet) part
//outdatedFg: #ffffff; // operating system version is outdated bar text
//outdateSoonBg: #e08543; // operating system version is soon outdated bar background
//outdatedBg: #e05745; // operating system version is already outdated bar background
//spellUnderline: #ff000088 | attentionButtonFg; // misspelled words
//walletTitleBg: #121213; // wallet window title background when window is inactive
//walletTitleBgActive: walletTitleBg; // wallet window title background when window is active
//walletTitleButtonBg: walletTitleBg; // wallet window title minimize/maximize/restore button background when window is inactive (Windows only)
//walletTitleButtonFg: #5a5a5b; // wallet window title minimize/maximize/restore button icon when window is inactive (Windows only)
//walletTitleButtonBgOver: #373738; // wallet window title minimize/maximize/restore button background with mouse over when window is inactive (Windows only)
//walletTitleButtonFgOver: #747475; // wallet window title minimize/maximize/restore button icon with mouse over when window is inactive (Windows only)
//walletTitleButtonBgActive: walletTitleButtonBg; // wallet window title minimize/maximize/restore button background when window is active (Windows only)
//walletTitleButtonFgActive: walletTitleButtonFg; // wallet window title minimize/maximize/restore button icon when window is active (Windows only)
//walletTitleButtonBgActiveOver: walletTitleButtonBgOver; // wallet window title minimize/maximize/restore button background with mouse over when window is active (Windows only)
//walletTitleButtonFgActiveOver: walletTitleButtonFgOver; // wallet window title minimize/maximize/restore button icon with mouse over when window is active (Windows only)
//walletTitleButtonCloseBg: walletTitleButtonBg; // wallet window title close button background when window is inactive (Windows only)
//walletTitleButtonCloseFg: walletTitleButtonFg; // wallet window title close button icon when window is inactive (Windows only)
//walletTitleButtonCloseBgOver: titleButtonCloseBgOver; // wallet window title close button background with mouse over when window is inactive (Windows only)
//walletTitleButtonCloseFgOver: titleButtonCloseFgOver; // wallet window title close button icon with mouse over when window is inactive (Windows only)
//walletTitleButtonCloseBgActive: walletTitleButtonCloseBg; // wallet window title close button background when window is active (Windows only)
//walletTitleButtonCloseFgActive: walletTitleButtonCloseFg; // wallet window title close button icon when window is active (Windows only)
//walletTitleButtonCloseBgActiveOver: walletTitleButtonCloseBgOver; // wallet window title close button background with mouse over when window is active (Windows only)
//walletTitleButtonCloseFgActiveOver: walletTitleButtonCloseFgOver; // wallet window title close button icon with mouse over when window is active (Windows only)
//walletTopBg: #1e1f21; // wallet top part background
//walletBalanceFg: #ffffff; // wallet balance text
//walletSubBalanceFg: #f9f9f9; // wallet balance label text
//walletTopLabelFg: #999999; // wallet top updated label text
//walletTopIconFg: walletTopLabelFg; // wallet top refresh and menu icons
//walletTopIconRipple: #ffffff12; // wallet top menu icon ripple effect
//songCoverOverlayFg: #00000066; // song cover overlay
//photoEditorItemBaseHandleFg: #3ccaef; // photo editor handle circle
//premiumButtonBg1: #55a5ff; // upgrade to premium button gradient 1
//premiumButtonBg2: #a767ff; // upgrade to premium button gradient 2
//premiumButtonBg3: #db5c9d; // upgrade to premium button gradient 3
//premiumButtonFg: #ffffff; // upgrade to premium button text
//premiumIconBg1: #f38926; // icon in premium settings gradient 1
//premiumIconBg2: #e44456; // icon in premium settings gradient 2
//premiumIconBg3: #4acd43; // icon in premium settings gradient 3
//creditsBg1: #ffb222; // credits icon gradient 1, normal
//creditsBg2: #FFD951; // credits icon gradient 2, light
//creditsBg3: #f0b400; // credits icon gradient 3, dark
//creditsFg: #ba7000; // credits text on light background
//creditsStroke: #da8735; // credits icon stroke
//currencyFg: #168acd; // currency icon, blue
//rankAdminFg: #49a355; // admin badge text and pill, green
//rankOwnerFg: #956ac8; // owner badge text and pill, purple
//rankUserFg: windowSubTextFg; // regular user badge text, gray

View file

@ -0,0 +1,275 @@
// --- Window & Basic Colors ---
windowBg: {{colors.background.default.hex}};
windowFg: {{colors.on_background.default.hex}};
windowBgOver: {{colors.surface_container_low.default.hex}};
windowBgRipple: {{colors.surface_container_high.default.hex}};
windowFgOver: {{colors.on_surface.default.hex}};
windowSubTextFg: {{colors.on_surface_variant.default.hex}};
windowSubTextFgOver: {{colors.on_surface.default.hex}};
windowBoldFg: {{colors.on_surface.default.hex}};
windowBoldFgOver: {{colors.on_surface.default.hex}};
windowBgActive: {{colors.primary.default.hex}};
windowFgActive: {{colors.on_primary.default.hex}};
windowActiveTextFg: {{colors.primary.default.hex}};
windowShadowFg: #0000005c;
windowShadowFgFallback: {{colors.background.default.hex}};
shadowFg: {{colors.on_background.default.hex}}33;
slideFadeOutBg: #0000003c;
slideFadeOutShadowFg: #0000005c;
imageBg: {{colors.background.default.hex}};
imageBgTransparent: #ffffff;
// --- Buttons ---
activeButtonBg: {{colors.primary.default.hex}};
activeButtonBgOver: {{colors.primary.default.hex}}e6;
activeButtonBgRipple: {{colors.primary.default.hex}}cc;
activeButtonFg: {{colors.on_primary.default.hex}};
activeButtonFgOver: {{colors.on_primary.default.hex}};
activeButtonSecondaryFg: {{colors.on_primary.default.hex}};
activeButtonSecondaryFgOver: {{colors.on_primary.default.hex}};
activeLineFg: {{colors.primary.default.hex}};
activeLineFgError: {{colors.error.default.hex}};
lightButtonBg: {{colors.background.default.hex}};
lightButtonBgOver: {{colors.surface_container_low.default.hex}};
lightButtonBgRipple: {{colors.surface_container_high.default.hex}};
lightButtonFg: {{colors.primary.default.hex}};
lightButtonFgOver: {{colors.primary.default.hex}};
attentionButtonFg: {{colors.error.default.hex}};
attentionButtonFgOver: {{colors.on_error.default.hex}};
attentionButtonBgOver: {{colors.error.default.hex}};
attentionButtonBgRipple: {{colors.error.default.hex}};
outlineButtonBg: {{colors.background.default.hex}};
outlineButtonBgOver: {{colors.surface_container_low.default.hex}};
outlineButtonOutlineFg: {{colors.primary.default.hex}};
outlineButtonBgRipple: {{colors.surface_container_high.default.hex}};
// --- Menus ---
menuBg: {{colors.surface_container.default.hex}};
menuBgOver: {{colors.surface_container_high.default.hex}};
menuBgRipple: {{colors.surface_container_highest.default.hex}};
menuIconFg: {{colors.on_surface_variant.default.hex}};
menuIconFgOver: {{colors.primary.default.hex}};
menuSubmenuArrowFg: {{colors.on_surface_variant.default.hex}};
menuFgDisabled: {{colors.outline.default.hex}};
menuSeparatorFg: {{colors.outline_variant.default.hex}};
// --- Scrollbars & Inputs ---
scrollBarBg: {{colors.primary.default.hex}}66;
scrollBarBgOver: {{colors.primary.default.hex}}aa;
scrollBg: #0000001a;
scrollBgOver: #0000002c;
smallCloseIconFg: {{colors.on_surface_variant.default.hex}};
smallCloseIconFgOver: {{colors.on_surface.default.hex}};
radialFg: {{colors.on_primary_container.default.hex}};
radialBg: #00000056;
placeholderFg: {{colors.on_surface_variant.default.hex}};
placeholderFgActive: {{colors.primary.default.hex}};
inputBorderFg: {{colors.outline_variant.default.hex}};
filterInputBorderFg: {{colors.primary.default.hex}};
checkboxFg: {{colors.primary.default.hex}};
sliderBgInactive: {{colors.surface_container_high.default.hex}};
sliderBgActive: {{colors.primary.default.hex}};
tooltipBg: {{colors.surface_container_highest.default.hex}};
tooltipFg: {{colors.on_surface.default.hex}};
tooltipBorderFg: {{colors.primary.default.hex}};
// --- Title Bar & Trays ---
titleBg: {{colors.background.default.hex}};
titleShadow: #00000003;
titleButtonFg: {{colors.on_surface_variant.default.hex}};
titleButtonBgOver: {{colors.surface_container_low.default.hex}};
titleButtonFgOver: {{colors.on_surface.default.hex}};
titleButtonCloseBgOver: #e81123;
titleButtonCloseFgOver: #ffffff;
titleFgActive: {{colors.on_surface.default.hex}};
titleFg: {{colors.on_surface_variant.default.hex}};
trayCounterBg: {{colors.primary.default.hex}};
trayCounterBgMute: {{colors.surface_container_high.default.hex}};
trayCounterFg: {{colors.on_primary.default.hex}};
trayCounterBgMacInvert: #ffffff;
trayCounterFgMacInvert: #ffffff01;
// --- Box & Overlays ---
layerBg: #0000007f;
cancelIconFg: {{colors.on_surface_variant.default.hex}};
cancelIconFgOver: {{colors.on_surface.default.hex}};
boxBg: {{colors.background.default.hex}};
boxTextFg: {{colors.on_background.default.hex}};
boxTextFgGood: {{colors.primary.default.hex}};
boxTextFgError: {{colors.error.default.hex}};
boxTitleFg: {{colors.on_background.default.hex}};
boxSearchBg: {{colors.surface_container_low.default.hex}};
boxSearchCancelIconFg: {{colors.on_surface_variant.default.hex}};
boxSearchCancelIconFgOver: {{colors.on_surface.default.hex}};
boxTitleAdditionalFg: {{colors.on_surface_variant.default.hex}};
boxTitleCloseFg: {{colors.on_surface_variant.default.hex}};
boxTitleCloseFgOver: {{colors.on_surface.default.hex}};
membersAboutLimitFg: {{colors.error.default.hex}};
// --- Contacts & Intro ---
contactsBg: {{colors.background.default.hex}};
contactsBgOver: {{colors.surface_container_low.default.hex}};
contactsNameFg: {{colors.on_background.default.hex}};
contactsStatusFg: {{colors.on_surface_variant.default.hex}};
contactsStatusFgOver: {{colors.on_surface_variant.default.hex}};
contactsStatusFgOnline: {{colors.primary.default.hex}};
photoCropFadeBg: #0000007f;
photoCropPointFg: #ffffff7f;
introBg: {{colors.background.default.hex}};
introTitleFg: {{colors.on_background.default.hex}};
introDescriptionFg: {{colors.on_surface_variant.default.hex}};
introErrorFg: {{colors.error.default.hex}};
introCoverTopBg: {{colors.primary.default.hex}};
introCoverBottomBg: {{colors.background.default.hex}};
introCoverIconsFg: {{colors.primary.default.hex}};
introCoverPlaneTrace: {{colors.primary.default.hex}}69;
introCoverPlaneInner: {{colors.primary.default.hex}};
introCoverPlaneOuter: {{colors.background.default.hex}};
introCoverPlaneTop: #ffffff;
// --- Dialogs (Chat list) ---
dialogsMenuIconFg: {{colors.on_surface_variant.default.hex}};
dialogsMenuIconFgOver: {{colors.primary.default.hex}};
dialogsBg: {{colors.background.default.hex}};
dialogsNameFg: {{colors.on_background.default.hex}};
dialogsChatIconFg: {{colors.on_background.default.hex}};
dialogsDateFg: {{colors.on_surface_variant.default.hex}};
dialogsTextFg: {{colors.on_surface_variant.default.hex}};
dialogsTextFgService: {{colors.primary.default.hex}};
dialogsDraftFg: {{colors.error.default.hex}};
dialogsVerifiedIconBg: {{colors.primary.default.hex}};
dialogsVerifiedIconFg: {{colors.on_primary.default.hex}};
dialogsSendingIconFg: {{colors.on_surface_variant.default.hex}};
dialogsSentIconFg: {{colors.primary.default.hex}};
dialogsUnreadBg: {{colors.primary.default.hex}};
dialogsUnreadBgMuted: {{colors.outline_variant.default.hex}};
dialogsUnreadFg: {{colors.on_primary.default.hex}};
dialogsBgOver: {{colors.surface_container_low.default.hex}};
dialogsNameFgOver: {{colors.on_surface.default.hex}};
dialogsChatIconFgOver: {{colors.on_surface.default.hex}};
dialogsDateFgOver: {{colors.on_surface.default.hex}};
dialogsTextFgOver: {{colors.on_surface.default.hex}};
dialogsTextFgServiceOver: {{colors.primary.default.hex}};
dialogsDraftFgOver: {{colors.error.default.hex}};
dialogsVerifiedIconBgOver: {{colors.primary.default.hex}};
dialogsVerifiedIconFgOver: {{colors.on_primary.default.hex}};
dialogsSendingIconFgOver: {{colors.on_surface.default.hex}};
dialogsSentIconFgOver: {{colors.primary.default.hex}};
dialogsUnreadBgOver: {{colors.primary.default.hex}};
dialogsUnreadBgMutedOver: {{colors.surface_container_high.default.hex}};
dialogsUnreadFgOver: {{colors.on_primary.default.hex}};
dialogsBgActive: {{colors.surface_container_high.default.hex}};
dialogsNameFgActive: {{colors.on_surface.default.hex}};
dialogsChatIconFgActive: {{colors.on_surface.default.hex}};
dialogsDateFgActive: {{colors.on_surface.default.hex}};
dialogsTextFgActive: {{colors.on_surface.default.hex}};
dialogsTextFgServiceActive: {{colors.on_surface.default.hex}};
dialogsDraftFgActive: {{colors.on_surface.default.hex}};
dialogsVerifiedIconBgActive: {{colors.on_surface.default.hex}};
dialogsVerifiedIconFgActive: {{colors.surface_container_high.default.hex}};
dialogsSendingIconFgActive: {{colors.on_surface.default.hex}}99;
dialogsSentIconFgActive: {{colors.on_surface.default.hex}};
dialogsUnreadBgActive: {{colors.on_primary_container.default.hex}};
dialogsUnreadBgMutedActive: {{colors.on_surface_variant.default.hex}};
dialogsUnreadFgActive: {{colors.primary_container.default.hex}};
dialogsForwardBg: {{colors.surface_container_low.default.hex}};
dialogsForwardFg: {{colors.on_surface.default.hex}};
searchedBarBg: {{colors.surface_container_low.default.hex}};
searchedBarBorder: {{colors.background.default.hex}};
searchedBarFg: {{colors.on_surface_variant.default.hex}};
topBarBg: {{colors.background.default.hex}};
emojiPanBg: {{colors.background.default.hex}};
emojiPanCategories: {{colors.surface_container_low.default.hex}};
emojiPanHeaderFg: {{colors.on_surface.default.hex}};
emojiPanHeaderBg: {{colors.surface_container_low.default.hex}};
// --- History (Chat) ---
historyTextInFg: {{colors.on_surface.default.hex}};
historyTextOutFg: {{colors.on_primary.default.hex}};
historyCaptionInFg: {{colors.on_surface.default.hex}};
historyCaptionOutFg: {{colors.on_primary.default.hex}};
historyFileNameInFg: {{colors.on_surface.default.hex}};
historyFileNameOutFg: {{colors.on_primary.default.hex}};
historyOutIconFg: {{colors.on_primary.default.hex}};
historyOutIconFgSelected: #ffffff;
historyIconFgInverted: {{colors.on_primary.default.hex}};
historySendingOutIconFg: {{colors.on_primary.default.hex}}aa;
historySendingInIconFg: {{colors.on_surface_variant.default.hex}};
historySendingInvertedIconFg: #ffffffc8;
historySystemBg: {{colors.surface_container_high.default.hex}}7f;
historySystemBgSelected: {{colors.primary.default.hex}}a2;
historySystemFg: #ffffff;
historyUnreadBarBg: {{colors.surface_container_high.default.hex}};
historyUnreadBarBorder: {{colors.surface_container_high.default.hex}};
historyUnreadBarFg: {{colors.primary.default.hex}};
// Peer Colors (Multi-color names in groups)
historyPeer1NameFg: {{colors.error.default.hex}};
historyPeer1UserpicBg: {{colors.error.default.hex}};
historyPeer2NameFg: {{colors.primary.default.hex}};
historyPeer2UserpicBg: {{colors.primary.default.hex}};
historyPeer3NameFg: {{colors.tertiary.default.hex}};
historyPeer3UserpicBg: {{colors.tertiary.default.hex}};
historyPeer4NameFg: {{colors.secondary.default.hex}};
historyPeer4UserpicBg: {{colors.secondary.default.hex}};
historyPeer5NameFg: {{colors.inverse_primary.default.hex}};
historyPeer5UserpicBg: {{colors.inverse_primary.default.hex}};
historyPeerUserpicFg: {{colors.background.default.hex}};
// Messages
msgInBg: {{colors.surface_container_high.default.hex}};
msgInBgSelected: {{colors.surface_container_highest.default.hex}};
msgOutBg: {{colors.primary.default.hex}};
msgOutBgSelected: {{colors.primary_fixed_dim.default.hex}};
msgSelectOverlay: {{colors.primary.default.hex}}4c;
msgInDateFg: {{colors.on_surface_variant.default.hex}};
msgInDateFgSelected: {{colors.on_surface.default.hex}};
msgOutDateFg: {{colors.on_primary.default.hex}}99;
msgOutDateFgSelected: {{colors.on_primary.default.hex}};
msgServiceBg: {{colors.surface_container_high.default.hex}}7f;
msgServiceFg: #ffffff;
msgInReplyBarColor: {{colors.primary.default.hex}};
msgOutReplyBarColor: {{colors.on_primary.default.hex}};
msgInMonoFg: {{colors.primary.default.hex}};
msgOutMonoFg: {{colors.on_primary.default.hex}};
// Files & Media
msgFileInBg: {{colors.primary.default.hex}};
msgFileInBgOver: {{colors.primary_fixed_dim.default.hex}};
msgFileOutBg: {{colors.background.default.hex}};
historyFileInRadialFg: {{colors.primary.default.hex}};
historyFileOutRadialFg: {{colors.background.default.hex}};
msgWaveformInActive: {{colors.primary.default.hex}};
msgWaveformInInactive: {{colors.surface_container_highest.default.hex}};
msgWaveformOutActive: {{colors.on_primary.default.hex}};
msgWaveformOutInactive: {{colors.on_primary.default.hex}}80;
// --- Compose Area ---
historyComposeAreaBg: {{colors.background.default.hex}};
historyComposeAreaFg: {{colors.on_background.default.hex}};
historyComposeIconFg: {{colors.on_surface_variant.default.hex}};
historyComposeIconFgOver: {{colors.primary.default.hex}};
historySendIconFg: {{colors.primary.default.hex}};
historySendIconFgOver: {{colors.primary_fixed_dim.default.hex}};
historyReplyBg: {{colors.background.default.hex}};
historyReplyIconFg: {{colors.primary.default.hex}};
historyReplyCancelFg: {{colors.on_surface_variant.default.hex}};
// --- SideBar (Main Menu) ---
sideBarBg: {{colors.background.default.hex}};
sideBarBgActive: {{colors.surface_container_high.default.hex}};
sideBarBgRipple: {{colors.primary.default.hex}}33;
sideBarTextFgActive: {{colors.primary.default.hex}};
sideBarIconFgActive: {{colors.primary.default.hex}};
sideBarTextFg: {{colors.on_surface_variant.default.hex}};
sideBarIconFg: {{colors.on_surface_variant.default.hex}};
// --- Media View ---
mediaviewBg: {{colors.background.default.hex}}eb;
mediaviewFileBg: {{colors.background.default.hex}};
mediaviewFileNameFg: {{colors.on_background.default.hex}};
mediaviewMenuBg: {{colors.surface_container.default.hex}};
mediaviewMenuFg: #ffffff;
mediaviewPlaybackActive: {{colors.primary.default.hex}};
mediaviewPlaybackInactive: {{colors.surface_container_high.default.hex}};

View file

@ -0,0 +1,19 @@
# Television Colors
# Generated with Matugen
background = '{{colors.surface.default.hex}}'
border_fg = '{{colors.outline.default.hex}}'
text_fg = '{{colors.on_surface.default.hex}}'
dimmed_text_fg = '{{colors.on_surface_variant.default.hex}}'
input_text_fg = '{{colors.secondary.default.hex}}'
result_count_fg = '{{colors.secondary.default.hex}}'
result_name_fg = '{{colors.on_surface.default.hex}}'
result_line_number_fg = '{{colors.secondary.default.hex}}'
result_value_fg = '{{colors.secondary.default.hex}}'
selection_bg = '{{colors.primary.default.hex}}'
selection_fg = '{{colors.on_primary.default.hex}}'
match_fg = '{{colors.inverse_primary.default.hex}}'
preview_title_fg = '{{colors.tertiary.default.hex}}'
channel_mode_fg = '{{colors.tertiary.default.hex}}'
remote_control_mode_fg = '{{colors.secondary.default.hex}}'
send_to_channel_mode_fg = '{{colors.tertiary.default.hex}}'

View file

@ -0,0 +1,26 @@
]4;0;{{colors.surface.dark.hex}}
\]4;8;{{colors.surface_container_high.dark.hex}}
\]4;1;{{colors.error.dark.hex | auto_lightness: 15 }}
\]4;9;{{colors.error.dark.hex | auto_lightness: 10 }}
\]4;2;{{colors.tertiary.dark.hex | auto_lightness: 25 }}
\]4;10;{{colors.tertiary.dark.hex | auto_lightness: 10 }}
\]4;3;{{colors.tertiary.dark.hex | auto_lightness: 20 }}
\]4;11;{{colors.tertiary_fixed.dark.hex | auto_lightness: 10 }}
\]4;4;{{colors.secondary.dark.hex | auto_lightness: 25 }}
\]4;12;{{colors.secondary.dark.hex | auto_lightness: 10 }}
\]4;5;{{colors.secondary.dark.hex | auto_lightness: 20 }}
\]4;13;{{colors.secondary_fixed.dark.hex| auto_lightness: 10 }}
\]4;6;{{colors.primary.dark.hex | auto_lightness: 10 }}
\]4;14;{{colors.primary.dark.hex | auto_lightness: -5 }}
\]4;7;{{colors.on_surface_variant.dark.hex}}
\]4;15;{{colors.on_surface.dark.hex}}
\]11;{{colors.surface.dark.hex}}
\]19;{{colors.surface.dark.hex}}
\]4;232;{{colors.surface.dark.hex}}
\]4;257;{{colors.surface.dark.hex}}
\]708;{{colors.surface.dark.hex}}
\]10;{{colors.on_surface.dark.hex}}
\]17;{{colors.on_surface.dark.hex}}
\]4;256;{{colors.on_surface.dark.hex}}
\]12;{{colors.on_surface.dark.hex}}
\]13;{{colors.on_surface.dark.hex}}

View file

@ -0,0 +1,18 @@
# Auto-generated by Matugen
set -g status-bg "{{colors.surface_container_lowest.default.hex}}"
set -gq @thm_bar_bg "{{colors.surface_container_lowest.default.hex}}"
set -gq @thm_bg "{{colors.surface.default.hex}}"
set -gq @thm_fg "{{colors.on_surface.default.hex}}"
set -gq @thm_primary "{{colors.primary.default.hex}}"
set -gq @thm_inverse_primary "{{colors.inverse_primary.default.hex}}"
set -gq @thm_surface_low "{{colors.surface_container_low.default.hex}}"
set -gq @thm_surface "{{colors.surface_container.default.hex}}"
set -gq @thm_surface_variant "{{colors.surface_container_high.default.hex}}"
set -gq @thm_outline "{{colors.outline_variant.default.hex}}"
set -gq @thm_text_variant "{{colors.on_surface_variant.default.hex}}"
# Some variables/options must be re-set, which can be done here
set -g status-style "bg=#{@thm_bg},fg=#{@thm_fg}"
set -g window-active-style "bg=#{@thm_bg},fg=#{@thm_fg}"

View file

@ -0,0 +1,67 @@
#browser {
--colorFg: {{colors.on_surface.default.rgb}} !important; /* foreground text */
--colorFgAlpha: {{colors.on_surface.default.rgba | set_alpha: 0.10}} !important; /* foreground text */
--colorFgIntense: {{colors.on_surface.default.rgb}} !important; /* foreground text */
--colorFgFaded: {{colors.on_surface.default.rgb | set_lightness: -10.0}} !important; /* unfocused window foreground text */
--colorFgFadedMore: {{colors.on_surface.default.rgb | set_lightness: -15.0}} !important; /* unfocused window foreground text */
--colorFgFadedMost: {{colors.on_surface.default.rgb | set_lightness: -25.0}} !important; /* unfocused window foreground text */
--colorBg: {{colors.secondary_container.default.rgb}} !important; /* adress bar and selected tab and settings sidebar */
--colorBgAlpha: {{colors.secondary_container.default.rgba | set_alpha: 0.90}} !important; /* adress bar and selected tab and settings sidebar */
--colorBgAlphaHeavy: {{colors.secondary_container.default.rgba | set_alpha: 0.65}} !important; /* adress bar and selected tab and settings sidebar */
--colorBgAlphaHeavier: {{colors.secondary_container.default.rgba | set_alpha: 0.25}} !important; /* adress bar and selected tab and settings sidebar */
--colorBgAlphaBlur: {{colors.surface.default.rgb}} !important; /* adress bar and selected tab */
--colorBgDark: {{colors.surface.default.rgb}} !important; /* n/a */
--colorBgDarker: {{colors.surface.default.rgb | set_lightness: -10.0}} !important; /* n/a */
--colorBgLight: {{colors.surface.default.rgb | set_lightness: 5.0}} !important; /* unfocused adress bar and selected tab */
--colorBgLighter: {{colors.surface.default.rgb | set_lightness: 15.0}} !important; /* unfocused adress bar and selected tab */
--colorBgLightIntense: {{colors.surface_dim.default.rgb | set_lightness: 15.0}} !important; /* n/a */
--colorBgIntense: {{colors.surface_dim.default.rgb}} !important; /* search field */
--colorBgIntenser: {{colors.surface_dim.default.rgb | set_lightness: -5.0}} !important; /* search field */
--colorBgIntserAlpha: {{colors.surface_dim.default.rgba | set_lightness: -5.0 | set_alpha: 0.92}} !important; /* search field */
--colorBgInverse: {{colors.surface_variant.default.rgb}} !important; /* only on crtl+f => not found */
--colorBgInverser: {{colors.surface_variant.default.rgb | set_lightness: 10.0}} !important; /* only on crtl+f => not found */
--colorBgFaded: {{colors.primary.default.rgb}} !important; /* n/a */
--colorHighlightBg: {{colors.primary.default.rgb}} !important; /* text highlight and search field border */
--colorHighlightBgFaded: {{colors.primary_fixed_dim.default.rgb | set_lightness: 10.0}} !important; /* text highlight and search field border */
--colorHighlightBgAlpha: {{colors.primary.default.rgba | set_alpha: 0.10}} !important; /* text highlight and search field border */
--colorHighlightBgDark: {{colors.inverse_primary .default.rgb | set_lightness: -10.0}} !important; /* text highlight and search field border */
--colorHighlightFg: {{colors.on_primary.default.rgb}} !important; /* selected text */
--colorHighlightFgAlpha: {{colors.on_primary.default.rgba | set_alpha: 0.50}} !important; /* selected text */
--colorHighlightFgAlphaHeavy: {{colors.on_primary.default.rgba | set_alpha: 0.25}} !important; /* selected text */
--colorAccentBg: {{colors.surface.default.rgb}} !important; /* tab bg color */
--colorAccentBgAlpha: {{colors.surface.default.rgba | set_alpha: 0.55}} !important; /* tab bg color */
--colorAccentBgAlphaHeavy: {{colors.surface.default.rgba | set_alpha: 0.35}} !important; /* tab bg color */
--colorAccentBgDark: {{colors.surface_container_low.default.rgb}} !important; /* n/a */
--colorAccentBgDarker: {{colors.surface_container_lowest.default.rgb}} !important; /* n/a */
--colorAccentBgFaded: {{colors.surface_dim.default.rgb}} !important; /* unfocused tab bg color */
--colorAccentBgFadedMore: {{colors.surface_container_low.default.rgb}} !important; /* n/a */
--colorAccentBgFadedMost: {{colors.surface_container_lowest.default.rgb}} !important; /* n/a */
--colorAccentBorder: {{colors.outline_variant.default.rgb}} !important; /* n/a */
--colorAccentBorderDark: {{colors.outline_variant.default.rgb | set_lightness: -10.0}} !important; /* n/a */
--colorAccentFg: {{colors.on_surface.default.rgb}} !important; /* tab titles and vivaldi sign */
--colorAccentFgFaded: {{colors.on_surface_variant.default.rgb | set_lightness: -20.0}} !important; /* tab titles and vivaldi sign */
--colorAccentFgAlpha: {{colors.on_surface.default.rgba | set_alpha: 0.15}} !important; /* tab titles and vivaldi sign */
--colorAccentFgAlphaHeavy: {{colors.on_surface.default.rgba | set_alpha: 0.35}} !important; /* tab titles and vivaldi sign */
--colorBorder: {{colors.outline.default.rgb}} !important; /* some borders */
--colorBorderDisabled: {{colors.surface_tint.default.rgb}} !important; /* some borders disabled */
--colorBorderSubtle: {{colors.outline.default.rgb | set_lightness: -5.0}} !important; /* some borders disabled */
--colorBorderIntense: {{colors.outline_variant.default.rgb}} !important; /* some borders disabled */
--colorSuccessBg: rgb(118 100.00% 32.75%);
--colorSuccessBgAlpha: rgba(118 100.00% 32.75% / 0.10);
--colorSuccessFg: rgb(0 0.00% 100.00%);
--colorWarningBg: rgb(48 100.00% 50.00%);
--colorWarningBgAlpha: rgba(48 100.00% 50.00% / 0.10);
--colorWarningFg: rgb(0 0.00% 0.00%);
--colorErrorBg: {{colors.error_container.default.rgb}} !important;
--colorErrorBgAlpha: {{colors.error_container.default.rgba | set_alpha: 0.10}} !important;
--colorErrorFg: {{colors.on_error.default.rgb}} !important;
/* --colorWindowBg: {{colors.error.default.rgb}} !important; new page monotone bg (replaces image background) */
/* --colorWindowFg: {{colors.error.default.rgb}} !important; fg for previos*/
}
/* in some color schemes settings appear too bright. this is meant to fix it. */
.vivaldi-settings,
.settings-content,
.settings-sidebar {
background-color: {{colors.surface.default.rgb}} !important;
}

View file

@ -0,0 +1,10 @@
:root{
--window_bg_color: {{colors.surface.default.hex}};
--accent_bg_color: {{colors.primary.default.hex}};
--theme_fg_color: {{colors.on_error_container.default.hex}};
--error_bg_color: {{colors.on_tertiary.default.hex}};
--error_fg_color: {{colors.surface_container_lowest.default.hex}};
--hover_fg_color: {{colors.on_secondary_fixed.default.hex}};
};

View file

@ -0,0 +1,32 @@
[colors]
background = "{{colors.background.default.hex}}"
foreground = "{{colors.on_surface.default.hex}}"
cursor_bg = "{{colors.on_surface.default.hex}}"
cursor_border = "{{colors.on_surface.default.hex}}"
cursor_fg = "{{colors.on_surface_variant.default.hex}}"
selection_bg = "{{colors.secondary_fixed_dim.default.hex}}"
selection_fg = "{{colors.on_secondary.default.hex}}"
split = "{{colors.secondary_fixed_dim.default.hex}}"
ansi = [
"#191919",
"#D90202",
"#7FB11B",
"#FFD739",
"#3570D7",
"#BE84FF",
"#66D9EF",
"#F8F8F8"
]
brights = [
"#4D4D4D",
"#FF4747",
"#A0D04D",
"#FFEB4D",
"#6A9FF7",
"#D9A6FF",
"#80F5FF",
"#FFFFFF"
]

View file

@ -0,0 +1,23 @@
{
"name": "Matugen Dark Generated Theme",
"black": "{{colors.surface.dark.hex}}",
"red": "{{colors.error.dark.hex | auto_lightness: 15 }}",
"green": "{{colors.tertiary.dark.hex | auto_lightness: 25 }}",
"yellow": "{{colors.tertiary.dark.hex | auto_lightness: 20 }}",
"blue": "{{colors.secondary.dark.hex | auto_lightness: 25 }}",
"purple": "{{colors.secondary.dark.hex | auto_lightness: 20 }}",
"cyan": "{{colors.primary.dark.hex | auto_lightness: 10 }}",
"white": "{{colors.on_surface_variant.dark.hex}}",
"brightBlack": "{{colors.surface_container_high.dark.hex}}",
"brightRed": "{{colors.error.dark.hex | auto_lightness: 10 }}",
"brightGreen": "{{colors.tertiary.dark.hex | auto_lightness: 10 }}",
"brightYellow": "{{colors.tertiary_fixed.dark.hex | auto_lightness: 10 }}",
"brightBlue": "{{colors.secondary.dark.hex | auto_lightness: 10 }}",
"brightPurple": "{{colors.secondary_fixed.dark.hex| auto_lightness: 10 }}",
"brightCyan": "{{colors.primary.dark.hex | auto_lightness: -5 }}",
"brightWhite": "{{colors.on_surface.dark.hex}}",
"background": "{{colors.surface.dark.hex}}",
"foreground": "{{colors.on_surface.dark.hex}}",
"selectionBackground": "{{colors.primary.dark.hex}}",
"cursorColor": "{{colors.on_surface.dark.hex}}"
}

View file

@ -0,0 +1,10 @@
# Path to Windows Terminal settings
$p = "$env:LOCALAPPDATA\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json"
# Load the new scheme from the specified JSON file
$n = Get-Content "C:\Windows\Temp\matugen_windows_term.json" | ConvertFrom-Json
# Load existing settings
$s = Get-Content $p | ConvertFrom-Json
# Remove any existing scheme with the same name and add the new scheme
$s.schemes = @($s.schemes | Where-Object { $_.name -ne $n.name }) + $n
# Save the updated settings back to the file with sufficient depth to preserve structure
$s | ConvertTo-Json -Depth 10 | Set-Content $p

View file

@ -0,0 +1,49 @@
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Wine\X11 Driver]
"Decorated"="N"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes]
"AppsUseClassicTheme"=dword:00000001
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Colors]
"ActiveBorder"="{{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }}"
"ActiveTitle"="{{ colors.surface_dim.default.red }} {{ colors.surface_dim.default.green }} {{ colors.surface_dim.default.blue }}"
"AppWorkSpace"="{{ colors.surface.default.red }} {{ colors.surface.default.green }} {{ colors.surface.default.blue }}"
"Background"="{{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }}"
"ButtonAlternativeFace"="{{ colors.primary.default.red }} {{ colors.primary.default.green }} {{ colors.primary.default.blue }}"
"ButtonDkShadow"="{{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }}"
"ButtonFace"="{{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }}"
"ButtonHilight"="{{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }}"
"ButtonLight"="{{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }}"
"ButtonShadow"="{{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }}"
"ButtonText"="{{ colors.on_background.default.red }} {{ colors.on_background.default.green }} {{ colors.on_background.default.blue }}"
"GradientActiveTitle"="{{ colors.surface_dim.default.red }} {{ colors.surface_dim.default.green }} {{ colors.surface_dim.default.blue }}"
"GradientInactiveTitle"="{{ colors.surface_dim.default.red }} {{ colors.surface_dim.default.green }} {{ colors.surface_dim.default.blue }}"
"GrayText"="{{ colors.secondary_container.default.red }} {{ colors.secondary_container.default.green }} {{ colors.secondary_container.default.blue }}"
"Hilight"="{{ colors.primary_container.default.red }} {{ colors.primary_container.default.green }} {{ colors.primary_container.default.blue }}"
"HilightText"="{{ colors.primary.default.red }} {{ colors.primary.default.green }} {{ colors.primary.default.blue }}"
"InactiveBorder"="{{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }}"
"InactiveTitle"="{{ colors.surface_dim.default.red }} {{ colors.surface_dim.default.green }} {{ colors.surface_dim.default.blue }}"
"InactiveTitleText"="{{ colors.on_background.default.red }} {{ colors.on_background.default.green }} {{ colors.on_background.default.blue }}"
"InfoText"="{{ colors.on_surface.default.red }} {{ colors.on_surface.default.green }} {{ colors.on_surface.default.blue }}"
"InfoWindow"="{{ colors.surface.default.red }} {{ colors.surface.default.green }} {{ colors.surface.default.blue }}"
"Menu"="{{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }}"
"MenuBar"="{{ colors.surface_dim.default.red }} {{ colors.surface_dim.default.green }} {{ colors.surface_dim.default.blue }}"
"MenuHilight"="{{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }}"
"MenuText"="{{ colors.on_background.default.red }} {{ colors.on_background.default.green }} {{ colors.on_background.default.blue }}"
"Scrollbar"="{{ colors.surface_container_low.default.red }} {{ colors.surface_container_low.default.green }} {{ colors.surface_container_low.default.blue }}"
"TitleText"="{{ colors.on_background.default.red }} {{ colors.on_background.default.green }} {{ colors.on_background.default.blue }}"
"Window"="{{ colors.surface_container_low.default.red }} {{ colors.surface_container_low.default.green }} {{ colors.surface_container_low.default.blue }}"
"WindowFrame"="{{ colors.background.default.red }} {{ colors.background.default.green }} {{ colors.background.default.blue }}"
"WindowText"="{{ colors.on_background.default.red }} {{ colors.on_background.default.green }} {{ colors.on_background.default.blue }}"

View file

@ -0,0 +1,921 @@
# : Manager [[[
[mgr]
cwd = { fg = "{{colors.on_surface.default.hex}}" }
# Find
find_keyword = { fg = "{{colors.error.default.hex}}", bold = true, italic = true, underline = true }
find_position = { fg = "{{colors.error.default.hex}}", bold = true, italic = true }
# Marker
marker_copied = { fg = "{{colors.tertiary_fixed.default.hex | auto_lightness: 20.0}}", bg = "{{colors.tertiary_fixed.default.hex | auto_lightness: 20.0}}" }
marker_cut = { fg = "{{colors.tertiary_fixed.default.hex}}", bg = "{{colors.tertiary_fixed.default.hex}}" }
marker_marked = { fg = "{{colors.error.default.hex}}", bg = "{{colors.error.default.hex}}" }
marker_selected = { fg = "{{colors.tertiary.default.hex}}", bg = "{{colors.tertiary.default.hex}}" }
# Count
count_copied = { fg = "{{colors.on_tertiary_fixed.default.hex}}", bg = "{{colors.tertiary_fixed.default.hex}}" }
count_cut = { fg = "{{colors.on_tertiary_fixed.default.hex}}", bg = "{{colors.tertiary_fixed.default.hex}}" }
count_selected = { fg = "{{colors.on_primary.default.hex}}", bg = "{{colors.tertiary.default.hex}}" }
# Border
border_symbol = "│"
border_style = { fg = "{{colors.surface_tint.default.hex}}" }
# : ]]]
# : Indicator [[[
[indicator]
padding = { open = "█", close = "█" }
# : ]]]
# : Tabs [[[
[tabs]
active = { fg = "{{colors.primary.default.hex}}", bold = true, bg = "{{colors.surface.default.hex}}" }
inactive = { fg = "{{colors.secondary.default.hex}}", bg = "{{colors.surface.default.hex}}" }
sep_inner = { open = "[", close = "]" }
# : ]]]
# : Mode [[[
[mode]
# Mode
normal_main = { bg = "{{colors.primary.default.hex}}", fg = "{{colors.on_primary.default.hex}}", bold = true }
normal_alt = { bg = "{{colors.surface_variant.default.hex}}", fg = "{{colors.on_surface_variant.default.hex}}" }
# Select mode
select_main = { bg = "{{colors.secondary.default.hex}}", fg = "{{colors.on_secondary.default.hex}}", bold = true }
select_alt = { bg = "{{colors.surface_variant.default.hex}}", fg = "{{colors.on_surface_variant.default.hex}}" }
# Unset mode
unset_main = { bg = "{{colors.tertiary.default.hex}}", fg = "{{colors.on_tertiary.default.hex}}", bold = true }
unset_alt = { bg = "{{colors.surface_variant.default.hex}}", fg = "{{colors.on_surface_variant.default.hex}}" }
# : ]]]
# : Status [[[
[status]
sep_left = { open = "🭁", close = "🭠" }
sep_right = { open = "🭁", close = "🭠" }
# Permissions
perm_type = { fg = "{{colors.secondary.default.hex | auto_lightness: 30.0}}" }
perm_write = { fg = "{{colors.tertiary.default.hex | auto_lightness: 30.0}}" }
perm_read = { fg = "{{colors.error.default.hex | auto_lightness: 30.0}}" }
perm_exec = { fg = "{{colors.tertiary_fixed.default.hex | auto_lightness: 30.0}}" }
perm_sep = { fg = "{{colors.primary_fixed.default.hex | auto_lightness: 30.0}}" }
# Progress
progress_label = { bold = true }
progress_normal = { fg = "{{colors.primary.default.hex}}", bg = "{{colors.surface_bright.default.hex}}" }
progress_error = { fg = "{{colors.error.default.hex}}", bg = "{{colors.surface_bright.default.hex}}" }
# : ]]]
# : Which [[[
[which]
cols = 3
mask = { bg = "{{colors.surface_bright.default.hex}}" }
cand = { fg = "{{colors.primary.default.hex}}" }
rest = { fg = "{{colors.on_primary.default.hex}}" }
desc = { fg = "{{colors.on_surface.default.hex}}" }
separator = " ▶ "
separator_style = { fg = "{{colors.on_surface.default.hex}}" }
# : ]]]
# : Notify [[[
[notify]
title_info = { fg = "{{colors.tertiary.default.hex}}" }
title_warn = { fg = "{{colors.primary.default.hex}}" }
title_error = { fg = "{{colors.error.default.hex}}" }
# : ]]]
# : Picker [[[
[pick]
border = { fg = "{{colors.primary.default.hex}}" }
active = { fg = "{{colors.tertiary.default.hex}}", bold = true }
inactive = {}
# : ]]]
# : Input [[[
[input]
border = { fg = "{{colors.primary.default.hex}}" }
value = { fg = "{{colors.on_surface.default.hex}}" }
# : ]]]
# : Completion [[[
[cmp]
border = { fg = "{{colors.primary.default.hex}}", bg = "{{colors.on_primary.default.hex}}" }
# : ]]]
# : Tasks [[[
[tasks]
border = { fg = "{{colors.primary.default.hex}}" }
title = {}
hovered = { fg = "{{colors.tertiary_fixed.default.hex}}", underline = true }
# : ]]]
# : Help [[[
[help]
on = { fg = "{{colors.on_surface.default.hex}}" }
run = { fg = "{{colors.on_surface.default.hex}}" }
footer = { fg = "{{colors.on_secondary.default.hex}}", bg = "{{colors.secondary.default.hex}}" }
# : ]]]
# : File-specific styles [[[
[filetype]
rules = [
# Images
{ mime = "image/*", fg = "#94e2d5" },
# Media
{ mime = "{audio,video}/*", fg = "#f9e2af" },
# Archives
{ mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "#f5c2e7" },
# Documents
{ mime = "application/{pdf,doc,rtf}", fg = "#a6e3a1" },
# Special files
{ name = "*", is = "orphan", bg = "{{colors.error_container.default.hex}}" },
{ name = "*", is = "exec", fg = "{{colors.on_error_container.default.hex}}" },
# Fallback
{ url = "*", fg = "{{colors.on_surface.default.hex}}" },
{ url = "*/", fg = "{{colors.surface_tint.default.hex}}" },
]
# : ]]]
[icon]
globs = []
dirs = [
{ name = ".config", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".git", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".github", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".npm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Desktop", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Development", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Documents", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Downloads", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Library", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Movies", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Music", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Pictures", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Public", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Videos", text = "", fg = "{{colors.primary.default.hex}}" },
]
files = [
{ name = ".babelrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".bash_profile", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".bashrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".clang-format", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".clang-tidy", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".codespellrc", text = "󰓆", fg = "{{colors.primary.default.hex}}" },
{ name = ".condarc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".dockerignore", text = "󰡨", fg = "{{colors.primary.default.hex}}" },
{ name = ".ds_store", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".editorconfig", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".env", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".eslintignore", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".eslintrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".git-blame-ignore-revs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".gitattributes", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".gitconfig", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".gitignore", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".gitlab-ci.yml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".gitmodules", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".gtkrc-2.0", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".gvimrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".justfile", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".luacheckrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".luaurc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".mailmap", text = "󰊢", fg = "{{colors.primary.default.hex}}" },
{ name = ".nanorc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".npmignore", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".npmrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".nuxtrc", text = "󱄆", fg = "{{colors.primary.default.hex}}" },
{ name = ".nvmrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".pnpmfile.cjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".pre-commit-config.yaml", text = "󰛢", fg = "{{colors.primary.default.hex}}" },
{ name = ".prettierignore", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".prettierrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".prettierrc.cjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".prettierrc.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".prettierrc.json", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".prettierrc.json5", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".prettierrc.mjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".prettierrc.toml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".prettierrc.yaml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".prettierrc.yml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".pylintrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".settings.json", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".SRCINFO", text = "󰣇", fg = "{{colors.primary.default.hex}}" },
{ name = ".vimrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".Xauthority", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".xinitrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".Xresources", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".xsession", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".zprofile", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".zshenv", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = ".zshrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "_gvimrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "_vimrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "AUTHORS", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "AUTHORS.txt", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "brewfile", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "bspwmrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "build", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "build.gradle", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "build.zig.zon", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "bun.lock", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "bun.lockb", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cantorrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "checkhealth", text = "󰓙", fg = "{{colors.primary.default.hex}}" },
{ name = "cmakelists.txt", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "code_of_conduct", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "code_of_conduct.md", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "commit_editmsg", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "commitlint.config.js", text = "󰜘", fg = "{{colors.primary.default.hex}}" },
{ name = "commitlint.config.ts", text = "󰜘", fg = "{{colors.primary.default.hex}}" },
{ name = "compose.yaml", text = "󰡨", fg = "{{colors.primary.default.hex}}" },
{ name = "compose.yml", text = "󰡨", fg = "{{colors.primary.default.hex}}" },
{ name = "config", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "containerfile", text = "󰡨", fg = "{{colors.primary.default.hex}}" },
{ name = "copying", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "copying.lesser", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Directory.Build.props", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Directory.Build.targets", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Directory.Packages.props", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "docker-compose.yaml", text = "󰡨", fg = "{{colors.primary.default.hex}}" },
{ name = "docker-compose.yml", text = "󰡨", fg = "{{colors.primary.default.hex}}" },
{ name = "dockerfile", text = "󰡨", fg = "{{colors.primary.default.hex}}" },
{ name = "eslint.config.cjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "eslint.config.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "eslint.config.mjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "eslint.config.ts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ext_typoscript_setup.txt", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "favicon.ico", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fp-info-cache", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fp-lib-table", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "FreeCAD.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Gemfile", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gnumakefile", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "go.mod", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "go.sum", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "go.work", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gradle-wrapper.properties", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gradle.properties", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gradlew", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "groovy", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gruntfile.babel.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gruntfile.coffee", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gruntfile.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gruntfile.ts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gtkrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gulpfile.babel.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gulpfile.coffee", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gulpfile.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gulpfile.ts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "hypridle.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "hyprland.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "hyprlandd.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "hyprlock.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "hyprpaper.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "hyprsunset.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "i18n.config.js", text = "󰗊", fg = "{{colors.primary.default.hex}}" },
{ name = "i18n.config.ts", text = "󰗊", fg = "{{colors.primary.default.hex}}" },
{ name = "i3blocks.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "i3status.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "index.theme", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ionic.config.json", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "Jenkinsfile", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "justfile", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kalgebrarc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kdeglobals", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kdenlive-layoutsrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kdenliverc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kritadisplayrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kritarc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "license", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "license.md", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "lxde-rc.xml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "lxqt.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "makefile", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mix.lock", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mpv.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "next.config.cjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "next.config.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "next.config.ts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "node_modules", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "nuxt.config.cjs", text = "󱄆", fg = "{{colors.primary.default.hex}}" },
{ name = "nuxt.config.js", text = "󱄆", fg = "{{colors.primary.default.hex}}" },
{ name = "nuxt.config.mjs", text = "󱄆", fg = "{{colors.primary.default.hex}}" },
{ name = "nuxt.config.ts", text = "󱄆", fg = "{{colors.primary.default.hex}}" },
{ name = "package-lock.json", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "package.json", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "PKGBUILD", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "platformio.ini", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "playwright.config.cjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "playwright.config.cts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "playwright.config.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "playwright.config.mjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "playwright.config.mts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "playwright.config.ts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pnpm-lock.yaml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pnpm-workspace.yaml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pom.xml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "prettier.config.cjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "prettier.config.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "prettier.config.mjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "prettier.config.ts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "prisma.config.mts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "prisma.config.ts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "procfile", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "PrusaSlicer.ini", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "PrusaSlicerGcodeViewer.ini", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "py.typed", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "QtProject.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "rakefile", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "readme", text = "󰂺", fg = "{{colors.primary.default.hex}}" },
{ name = "readme.md", text = "󰂺", fg = "{{colors.primary.default.hex}}" },
{ name = "rmd", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "robots.txt", text = "󰚩", fg = "{{colors.primary.default.hex}}" },
{ name = "security", text = "󰒃", fg = "{{colors.primary.default.hex}}" },
{ name = "security.md", text = "󰒃", fg = "{{colors.primary.default.hex}}" },
{ name = "settings.gradle", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "svelte.config.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "sxhkdrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "sym-lib-table", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "tailwind.config.js", text = "󱏿", fg = "{{colors.primary.default.hex}}" },
{ name = "tailwind.config.mjs", text = "󱏿", fg = "{{colors.primary.default.hex}}" },
{ name = "tailwind.config.ts", text = "󱏿", fg = "{{colors.primary.default.hex}}" },
{ name = "tmux.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "tmux.conf.local", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "tsconfig.json", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "unlicense", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vagrantfile", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vercel.json", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vite.config.cjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vite.config.cts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vite.config.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vite.config.mjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vite.config.mts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vite.config.ts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vitest.config.cjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vitest.config.cts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vitest.config.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vitest.config.mjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vitest.config.mts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vitest.config.ts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vlcrc", text = "󰕼", fg = "{{colors.primary.default.hex}}" },
{ name = "webpack", text = "󰜫", fg = "{{colors.primary.default.hex}}" },
{ name = "weston.ini", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "workspace", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "wrangler.jsonc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "wrangler.toml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "xdph.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "xmobarrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "xmobarrc.hs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "xmonad.hs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "xorg.conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "xsettingsd.conf", text = "", fg = "{{colors.primary.default.hex}}" },
]
exts = [
{ name = "3gp", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "3mf", text = "󰆧", fg = "{{colors.primary.default.hex}}" },
{ name = "7z", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "a", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "aac", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ada", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "adb", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ads", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ai", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "aif", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "aiff", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "android", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ape", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "apk", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "apl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "app", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "applescript", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "asc", text = "󰦝", fg = "{{colors.primary.default.hex}}" },
{ name = "asm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ass", text = "󰨖", fg = "{{colors.primary.default.hex}}" },
{ name = "astro", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "avif", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "awk", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "azcli", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "bak", text = "󰁯", fg = "{{colors.primary.default.hex}}" },
{ name = "bash", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "bat", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "bazel", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "bib", text = "󱉟", fg = "{{colors.primary.default.hex}}" },
{ name = "bicep", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "bicepparam", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "bin", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "blade.php", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "blend", text = "󰂫", fg = "{{colors.primary.default.hex}}" },
{ name = "blp", text = "󰺾", fg = "{{colors.primary.default.hex}}" },
{ name = "bmp", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "bqn", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "brep", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "bz", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "bz2", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "bz3", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "bzl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "c", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "c++", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cache", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cast", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cbl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ccm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cfc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cfg", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cfm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "clj", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cljc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cljd", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cljs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cmake", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cob", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cobol", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "coffee", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "conda", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "conf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "config.ru", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cow", text = "󰆚", fg = "{{colors.primary.default.hex}}" },
{ name = "cp", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cpp", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cppm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cpy", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cr", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "crdownload", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cs", text = "󰌛", fg = "{{colors.primary.default.hex}}" },
{ name = "csh", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cshtml", text = "󱦗", fg = "{{colors.primary.default.hex}}" },
{ name = "cson", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "csproj", text = "󰪮", fg = "{{colors.primary.default.hex}}" },
{ name = "css", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "csv", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cu", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cue", text = "󰲹", fg = "{{colors.primary.default.hex}}" },
{ name = "cuh", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cxx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "cxxm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "d", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "d.ts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "dart", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "db", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "dconf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "desktop", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "diff", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "dll", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "doc", text = "󰈬", fg = "{{colors.primary.default.hex}}" },
{ name = "Dockerfile", text = "󰡨", fg = "{{colors.primary.default.hex}}" },
{ name = "dockerignore", text = "󰡨", fg = "{{colors.primary.default.hex}}" },
{ name = "docx", text = "󰈬", fg = "{{colors.primary.default.hex}}" },
{ name = "dot", text = "󱁉", fg = "{{colors.primary.default.hex}}" },
{ name = "download", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "drl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "dropbox", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "dump", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "dwg", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "dxf", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "ebook", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ebuild", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "edn", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "eex", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ejs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "el", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "elc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "elf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "elm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "eln", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "env", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "eot", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "epp", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "epub", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "erb", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "erl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ex", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "exe", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "exs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "f#", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "f3d", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "f90", text = "󱈚", fg = "{{colors.primary.default.hex}}" },
{ name = "fbx", text = "󰆧", fg = "{{colors.primary.default.hex}}" },
{ name = "fcbak", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fcmacro", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fcmat", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fcparam", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fcscript", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fcstd", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fcstd1", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fctb", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fctl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fdmdownload", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "feature", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fish", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "flac", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "flc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "flf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fnl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fodg", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fodp", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fods", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fodt", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "frag", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fsi", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fsscript", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "fsx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gcode", text = "󰐫", fg = "{{colors.primary.default.hex}}" },
{ name = "gd", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gemspec", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "geom", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gif", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "git", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "glb", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gleam", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "glsl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gnumakefile", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "go", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "godot", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gpr", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gql", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gradle", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "graphql", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gresource", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "gv", text = "󱁉", fg = "{{colors.primary.default.hex}}" },
{ name = "gz", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "h", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "haml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "hbs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "heex", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "hex", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "hh", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "hpp", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "hrl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "hs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "htm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "html", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "http", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "huff", text = "󰡘", fg = "{{colors.primary.default.hex}}" },
{ name = "hurl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "hx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "hxx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ical", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "icalendar", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ico", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ics", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ifb", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ifc", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "ige", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "iges", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "igs", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "image", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "img", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "import", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "info", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ini", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ino", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ipynb", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "iso", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ixx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "jar", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "java", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "jl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "jpeg", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "jpg", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "json", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "json5", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "jsonc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "jsx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "jwmrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "jxl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kbx", text = "󰯄", fg = "{{colors.primary.default.hex}}" },
{ name = "kdb", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kdbx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kdenlive", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kdenlivetitle", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kicad_dru", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kicad_mod", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kicad_pcb", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kicad_prl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kicad_pro", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kicad_sch", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kicad_sym", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kicad_wks", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ko", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kpp", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kra", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "krz", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ksh", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kt", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "kts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "lck", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "leex", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "less", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "lff", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "lhs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "lib", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "license", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "liquid", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "lock", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "log", text = "󰌱", fg = "{{colors.primary.default.hex}}" },
{ name = "lrc", text = "󰨖", fg = "{{colors.primary.default.hex}}" },
{ name = "lua", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "luac", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "luau", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "m", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "m3u", text = "󰲹", fg = "{{colors.primary.default.hex}}" },
{ name = "m3u8", text = "󰲹", fg = "{{colors.primary.default.hex}}" },
{ name = "m4a", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "m4v", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "magnet", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "makefile", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "markdown", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "material", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "md", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "md5", text = "󰕥", fg = "{{colors.primary.default.hex}}" },
{ name = "mdx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mint", text = "󰌪", fg = "{{colors.primary.default.hex}}" },
{ name = "mjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mk", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mkv", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mli", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mo", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mobi", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mojo", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mov", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mp3", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mp4", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mpp", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "msf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "mustache", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "nfo", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "nim", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "nix", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "norg", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "nswag", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "nu", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "o", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "obj", text = "󰆧", fg = "{{colors.primary.default.hex}}" },
{ name = "odf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "odg", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "odin", text = "󰟢", fg = "{{colors.primary.default.hex}}" },
{ name = "odp", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ods", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "odt", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "oga", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ogg", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ogv", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ogx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "opus", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "org", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "otf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "out", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "part", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "patch", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pck", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pcm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pdf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "php", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pls", text = "󰲹", fg = "{{colors.primary.default.hex}}" },
{ name = "ply", text = "󰆧", fg = "{{colors.primary.default.hex}}" },
{ name = "pm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "png", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "po", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pot", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pp", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ppt", text = "󰈧", fg = "{{colors.primary.default.hex}}" },
{ name = "pptx", text = "󰈧", fg = "{{colors.primary.default.hex}}" },
{ name = "prisma", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pro", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ps1", text = "󰨊", fg = "{{colors.primary.default.hex}}" },
{ name = "psb", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "psd", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "psd1", text = "󰨊", fg = "{{colors.primary.default.hex}}" },
{ name = "psm1", text = "󰨊", fg = "{{colors.primary.default.hex}}" },
{ name = "pub", text = "󰷖", fg = "{{colors.primary.default.hex}}" },
{ name = "pxd", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pxi", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "py", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pyc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pyd", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pyi", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pyo", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pyw", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "pyx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "qm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "qml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "qrc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "qss", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "query", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "R", text = "󰟔", fg = "{{colors.primary.default.hex}}" },
{ name = "r", text = "󰟔", fg = "{{colors.primary.default.hex}}" },
{ name = "rake", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "rar", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "rasi", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "razor", text = "󱦘", fg = "{{colors.primary.default.hex}}" },
{ name = "rb", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "res", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "resi", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "rlib", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "rmd", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "rproj", text = "󰗆", fg = "{{colors.primary.default.hex}}" },
{ name = "rs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "rss", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "s", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "sass", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "sbt", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "sc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "scad", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "scala", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "scm", text = "󰘧", fg = "{{colors.primary.default.hex}}" },
{ name = "scss", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "sh", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "sha1", text = "󰕥", fg = "{{colors.primary.default.hex}}" },
{ name = "sha224", text = "󰕥", fg = "{{colors.primary.default.hex}}" },
{ name = "sha256", text = "󰕥", fg = "{{colors.primary.default.hex}}" },
{ name = "sha384", text = "󰕥", fg = "{{colors.primary.default.hex}}" },
{ name = "sha512", text = "󰕥", fg = "{{colors.primary.default.hex}}" },
{ name = "sig", text = "󰘧", fg = "{{colors.primary.default.hex}}" },
{ name = "signature", text = "󰘧", fg = "{{colors.primary.default.hex}}" },
{ name = "skp", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "sldasm", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "sldprt", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "slim", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "sln", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "slnx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "slvs", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "sml", text = "󰘧", fg = "{{colors.primary.default.hex}}" },
{ name = "so", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "sol", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "spec.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "spec.jsx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "spec.ts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "spec.tsx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "spx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "sql", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "sqlite", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "sqlite3", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "srt", text = "󰨖", fg = "{{colors.primary.default.hex}}" },
{ name = "ssa", text = "󰨖", fg = "{{colors.primary.default.hex}}" },
{ name = "ste", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "step", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "stl", text = "󰆧", fg = "{{colors.primary.default.hex}}" },
{ name = "stories.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "stories.jsx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "stories.mjs", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "stories.svelte", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "stories.ts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "stories.tsx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "stories.vue", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "stp", text = "󰻫", fg = "{{colors.primary.default.hex}}" },
{ name = "strings", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "styl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "sub", text = "󰨖", fg = "{{colors.primary.default.hex}}" },
{ name = "sublime", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "suo", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "sv", text = "󰍛", fg = "{{colors.primary.default.hex}}" },
{ name = "svelte", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "svg", text = "󰜡", fg = "{{colors.primary.default.hex}}" },
{ name = "svgz", text = "󰜡", fg = "{{colors.primary.default.hex}}" },
{ name = "svh", text = "󰍛", fg = "{{colors.primary.default.hex}}" },
{ name = "swift", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "t", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "tbc", text = "󰛓", fg = "{{colors.primary.default.hex}}" },
{ name = "tcl", text = "󰛓", fg = "{{colors.primary.default.hex}}" },
{ name = "templ", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "terminal", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "test.js", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "test.jsx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "test.ts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "test.tsx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "tex", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "tf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "tfvars", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "tgz", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "tmpl", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "tmux", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "toml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "torrent", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "tres", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ts", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "tscn", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "tsconfig", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "tsx", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ttf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "twig", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "txt", text = "󰈙", fg = "{{colors.primary.default.hex}}" },
{ name = "txz", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "typ", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "typoscript", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "ui", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "v", text = "󰍛", fg = "{{colors.primary.default.hex}}" },
{ name = "vala", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vert", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vh", text = "󰍛", fg = "{{colors.primary.default.hex}}" },
{ name = "vhd", text = "󰍛", fg = "{{colors.primary.default.hex}}" },
{ name = "vhdl", text = "󰍛", fg = "{{colors.primary.default.hex}}" },
{ name = "vi", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vim", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vsh", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vsix", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "vue", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "wasm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "wav", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "webm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "webmanifest", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "webp", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "webpack", text = "󰜫", fg = "{{colors.primary.default.hex}}" },
{ name = "wma", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "wmv", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "woff", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "woff2", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "wrl", text = "󰆧", fg = "{{colors.primary.default.hex}}" },
{ name = "wrz", text = "󰆧", fg = "{{colors.primary.default.hex}}" },
{ name = "wv", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "wvc", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "x", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "xaml", text = "󰙳", fg = "{{colors.primary.default.hex}}" },
{ name = "xcf", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "xcplayground", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "xcstrings", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "xls", text = "󰈛", fg = "{{colors.primary.default.hex}}" },
{ name = "xlsx", text = "󰈛", fg = "{{colors.primary.default.hex}}" },
{ name = "xm", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "xml", text = "󰗀", fg = "{{colors.primary.default.hex}}" },
{ name = "xpi", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "xslt", text = "󰗀", fg = "{{colors.primary.default.hex}}" },
{ name = "xul", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "xz", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "yaml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "yml", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "zig", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "zip", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "zsh", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "zst", text = "", fg = "{{colors.primary.default.hex}}" },
{ name = "🔥", text = "", fg = "{{colors.primary.default.hex}}" },
]
conds = [
# Special files
{ if = "orphan", text = "", fg = "{{colors.primary.default.hex}}" },
{ if = "link", text = "", fg = "{{colors.primary.default.hex}}" },
{ if = "block", text = "", fg = "{{colors.primary.default.hex}}" },
{ if = "char", text = "", fg = "{{colors.primary.default.hex}}" },
{ if = "fifo", text = "", fg = "{{colors.primary.default.hex}}" },
{ if = "sock", text = "", fg = "{{colors.primary.default.hex}}" },
{ if = "sticky", text = "", fg = "{{colors.primary.default.hex}}" },
{ if = "dummy", text = "", fg = "{{colors.primary.default.hex}}" },
# Fallback
{ if = "dir", text = "", fg = "{{colors.primary.default.hex}}" },
{ if = "exec", text = "", fg = "{{colors.primary.default.hex}}" },
{ if = "!dir", text = "", fg = "{{colors.primary.default.hex}}" },
]
# : }}}

View file

@ -0,0 +1,93 @@
" -----------------------------------------------------------------------------
" Zathura settings
" -----------------------------------------------------------------------------
set selection-clipboard clipboard
" Colors
set default-bg "{{colors.on_primary.default.rgba | set_alpha: 1.0}}"
set default-fg "{{colors.primary.default.hex}}"
set statusbar-bg "{{colors.on_primary.default.hex}}"
set statusbar-fg "{{colors.primary.default.hex}}"
set inputbar-bg "{{colors.on_primary.default.hex}}"
set inputbar-fg "{{colors.primary.default.hex}}"
set notification-error-bg "{{colors.on_error.default.hex}}"
set notification-error-fg "{{colors.error.default.hex}}"
set notification-warning-bg "{{colors.primary_fixed.default.hex}}"
set notification-warning-fg "{{colors.error_container.default.hex}}"
set highlight-color "{{colors.primary_fixed.default.hex}}"
set highlight-active-color "{{colors.primary_fixed_dim.default.hex}}"
set completion-highlight-fg "{{colors.on_primary.default.hex}}"
set completion-highlight-bg {{colors.primary.default.hex}}""
set completion-bg "{{colors.on_primary.default.hex}}"
set completion-fg "{{colors.primary.default.hex}}"
set notification-bg "{{colors.on_primary.default.hex}}"
set notification-fg "{{colors.primary.default.hex}}"
set recolor "true"
set recolor-lightcolor "{{colors.on_primary.default.rgba | set_alpha: 1.0}}"
set recolor-darkcolor "{{colors.primary.default.hex}}"
set recolor-reverse-video "true"
set recolor-keephue "true"
" Clipboard
set selection-clipboard clipboard
" Search
set incremental-search true
set search-hadjust true
" Autoadjust
set adjust-open width
" Typography
set font "FiraCode Nerd Font 12"
" -----------------------------------------------------------------------------
" Zathura mappings
" -----------------------------------------------------------------------------
" remove status bar
set guioptions none
" Zoom in/out
map [normal] z zoom in
map [normal] Z zoom out
map [fullscreen] z zoom in
map [fullscreen] Z zoom out
" Toggle mode
map [normal] D toggle_page_mode
map [fullscreen] D toggle_page_mode
" Scroll
map [normal] u scroll half-up
map [normal] d scroll half-down
map [fullscreen] u scroll half-up
map [fullscreen] d scroll half-down
" Fullscreen
map [normal] f toggle_fullscreen
map [fullscreen] f toggle_fullscreen
" Reload
map [normal] <C-r> reload
map [fullscreen] <C-r> reload
" Status bar
map [normal] b toggle_statusbar
map [fullscreen] b toggle_statusbar
" Set width as in mupdf
map [normal] H adjust_window best-fit
map [normal] W adjust_window width
map [fullscreen] H adjust_window best-fit
map [fullscreen] W adjust_window width
map [normal] i set recolor
map [fullscreen] i set recolor

View file

@ -0,0 +1,591 @@
{
"$schema": "https://zed.dev/schema/themes/v0.2.0.json",
"name": "Matugen",
"author": "Matugen",
"themes": [
{
"name": "Matugen Dark",
"appearance": "dark",
"style": {
"accents": [
"{{colors.primary.dark.hex}}",
"{{colors.secondary.dark.hex}}",
"{{colors.tertiary.dark.hex}}"
],
"background.appearance": "opaque",
"border": "{{colors.outline_variant.dark.hex}}",
"border.variant": "{{colors.outline.dark.hex}}",
"border.focused": "{{colors.primary.dark.hex}}",
"border.selected": "{{colors.primary.dark.hex}}",
"border.transparent": "{{colors.outline_variant.dark.hex}}40",
"border.disabled": "{{colors.outline_variant.dark.hex}}60",
"elevated_surface.background": "{{colors.surface_container_high.dark.hex}}",
"surface.background": "{{colors.surface.dark.hex}}",
"background": "{{colors.background.dark.hex}}",
"element.background": "{{colors.surface_container.dark.hex}}",
"element.hover": "{{colors.surface_container_high.dark.hex}}",
"element.active": "{{colors.surface_container_highest.dark.hex}}",
"element.selected": "{{colors.secondary_container.dark.hex}}",
"element.disabled": "{{colors.surface_variant.dark.hex}}",
"drop_target.background": "{{colors.primary_container.dark.hex}}80",
"ghost_element.background": null,
"ghost_element.hover": "{{colors.surface_container.dark.hex}}80",
"ghost_element.active": "{{colors.surface_container_high.dark.hex}}",
"ghost_element.selected": "{{colors.secondary_container.dark.hex}}80",
"ghost_element.disabled": "{{colors.surface_variant.dark.hex}}60",
"text": "{{colors.on_surface.dark.hex}}",
"text.muted": "{{colors.on_surface_variant.dark.hex}}",
"text.placeholder": "{{colors.on_surface_variant.dark.hex}}99",
"text.disabled": "{{colors.on_surface.dark.hex}}60",
"text.accent": "{{colors.primary.dark.hex}}",
"icon": "{{colors.on_surface.dark.hex}}",
"icon.muted": "{{colors.on_surface_variant.dark.hex}}",
"icon.disabled": "{{colors.on_surface.dark.hex}}60",
"icon.placeholder": "{{colors.on_surface_variant.dark.hex}}80",
"icon.accent": "{{colors.primary.dark.hex}}",
"status_bar.background": "{{colors.surface.dark.hex}}",
"title_bar.background": "{{colors.surface.dark.hex}}",
"title_bar.inactive_background": "{{colors.surface_dim.dark.hex}}",
"toolbar.background": "{{colors.surface_container_low.dark.hex}}",
"tab_bar.background": "{{colors.surface_container.dark.hex}}",
"tab.inactive_background": "{{colors.surface_container_low.dark.hex}}",
"tab.active_background": "{{colors.surface_container_high.dark.hex}}",
"search.match_background": "{{colors.tertiary_container.dark.hex}}80",
"panel.background": "{{colors.surface_container_low.dark.hex}}",
"panel.focused_border": "{{colors.primary.dark.hex}}",
"pane.focused_border": "{{colors.primary.dark.hex}}",
"scrollbar.thumb.background": "{{colors.on_surface_variant.dark.hex}}80",
"scrollbar.thumb.hover_background": "{{colors.on_surface_variant.dark.hex}}c0",
"scrollbar.thumb.border": "{{colors.outline_variant.dark.hex}}40",
"scrollbar.track.background": "{{colors.surface_container.dark.hex}}",
"scrollbar.track.border": "{{colors.outline_variant.dark.hex}}20",
"editor.foreground": "{{colors.on_surface.dark.hex}}",
"editor.background": "{{colors.surface_container_low.dark.hex}}",
"editor.gutter.background": "{{colors.surface_container_low.dark.hex}}",
"editor.subheader.background": "{{colors.surface_container.dark.hex}}",
"editor.indent_guide": "{{colors.outline_variant.dark.hex}}60",
"editor.indent_guide_active": "{{colors.outline.dark.hex}}",
"editor.active_line.background": "{{colors.surface_container_high.dark.hex}}80",
"editor.highlighted_line.background": "{{colors.surface_container_high.dark.hex}}60",
"editor.line_number": "{{colors.on_surface_variant.dark.hex}}",
"editor.active_line_number": "{{colors.primary.dark.hex}}",
"editor.invisible": "{{colors.outline_variant.dark.hex}}80",
"editor.wrap_guide": "{{colors.outline_variant.dark.hex}}40",
"editor.active_wrap_guide": "{{colors.outline.dark.hex}}80",
"editor.document_highlight.read_background": "{{colors.primary_container.dark.hex}}60",
"editor.document_highlight.write_background": "{{colors.secondary_container.dark.hex}}80",
"terminal.background": "{{colors.surface_container_low.dark.hex}}",
"terminal.foreground": "{{colors.on_surface.dark.hex}}",
"terminal.bright_foreground": "{{colors.on_surface.dark.hex}}",
"terminal.dim_foreground": "{{colors.on_surface_variant.dark.hex}}",
"terminal.ansi.black": "{{colors.surface_dim.dark.hex}}",
"terminal.ansi.bright_black": "{{colors.surface_container_high.dark.hex}}",
"terminal.ansi.dim_black": "{{colors.surface.dark.hex}}",
"terminal.ansi.red": "{{colors.error.dark.hex}}",
"terminal.ansi.bright_red": "{{colors.error.dark.hex}}",
"terminal.ansi.dim_red": "{{colors.on_error_container.dark.hex}}",
"terminal.ansi.green": "{{colors.tertiary.dark.hex}}",
"terminal.ansi.bright_green": "{{colors.tertiary.dark.hex}}",
"terminal.ansi.dim_green": "{{colors.on_tertiary_container.dark.hex}}",
"terminal.ansi.yellow": "{{colors.tertiary_fixed_dim.dark.hex}}",
"terminal.ansi.bright_yellow": "{{colors.tertiary_fixed.dark.hex}}",
"terminal.ansi.dim_yellow": "{{colors.on_tertiary_fixed.dark.hex}}",
"terminal.ansi.blue": "{{colors.primary.dark.hex}}",
"terminal.ansi.bright_blue": "{{colors.primary.dark.hex}}",
"terminal.ansi.dim_blue": "{{colors.on_primary_container.dark.hex}}",
"terminal.ansi.magenta": "{{colors.secondary.dark.hex}}",
"terminal.ansi.bright_magenta": "{{colors.secondary.dark.hex}}",
"terminal.ansi.dim_magenta": "{{colors.on_secondary_container.dark.hex}}",
"terminal.ansi.cyan": "{{colors.primary_fixed_dim.dark.hex}}",
"terminal.ansi.bright_cyan": "{{colors.primary_fixed.dark.hex}}",
"terminal.ansi.dim_cyan": "{{colors.on_primary_fixed_variant.dark.hex}}",
"terminal.ansi.white": "{{colors.on_surface.dark.hex}}",
"terminal.ansi.bright_white": "{{colors.on_surface.dark.hex}}",
"terminal.ansi.dim_white": "{{colors.on_surface_variant.dark.hex}}",
"link_text.hover": "{{colors.primary.dark.hex}}",
"conflict": "{{colors.error.dark.hex}}",
"conflict.background": "{{colors.error_container.dark.hex}}80",
"conflict.border": "{{colors.on_error_container.dark.hex}}",
"created": "{{colors.tertiary.dark.hex}}",
"created.background": "{{colors.tertiary_container.dark.hex}}80",
"created.border": "{{colors.on_tertiary_container.dark.hex}}",
"deleted": "{{colors.error.dark.hex}}",
"deleted.background": "{{colors.error_container.dark.hex}}80",
"deleted.border": "{{colors.on_error_container.dark.hex}}",
"error": "{{colors.error.dark.hex}}",
"error.background": "{{colors.error_container.dark.hex}}",
"error.border": "{{colors.on_error_container.dark.hex}}",
"hidden": "{{colors.outline_variant.dark.hex}}",
"hidden.border": "{{colors.outline_variant.dark.hex}}60",
"hint": "{{colors.primary.dark.hex}}",
"hint.background": "{{colors.primary_container.dark.hex}}80",
"hint.border": "{{colors.on_primary_container.dark.hex}}",
"ignored": "{{colors.on_surface_variant.dark.hex}}60",
"ignored.background": "{{colors.surface_variant.dark.hex}}40",
"ignored.border": "{{colors.outline_variant.dark.hex}}40",
"info": "{{colors.primary.dark.hex}}",
"info.background": "{{colors.primary_container.dark.hex}}80",
"info.border": "{{colors.on_primary_container.dark.hex}}",
"modified": "{{colors.secondary.dark.hex}}",
"modified.background": "{{colors.secondary_container.dark.hex}}80",
"modified.border": "{{colors.on_secondary_container.dark.hex}}",
"predictive": "{{colors.on_surface_variant.dark.hex}}80",
"predictive.border": "{{colors.outline.dark.hex}}",
"predictive.background": "{{colors.surface_container_highest.dark.hex}}80",
"renamed": "{{colors.secondary.dark.hex}}",
"renamed.border": "{{colors.on_secondary_container.dark.hex}}",
"renamed.background": "{{colors.secondary_container.dark.hex}}80",
"success": "{{colors.tertiary.dark.hex}}",
"success.background": "{{colors.tertiary_container.dark.hex}}80",
"success.border": "{{colors.on_tertiary_container.dark.hex}}",
"unreachable": "{{colors.on_surface_variant.dark.hex}}60",
"unreachable.background": "{{colors.surface_variant.dark.hex}}40",
"unreachable.border": "{{colors.outline_variant.dark.hex}}60",
"warning": "{{colors.tertiary_fixed_dim.dark.hex}}",
"warning.background": "{{colors.tertiary_container.dark.hex}}80",
"warning.border": "{{colors.on_tertiary_container.dark.hex}}",
"players": [
{
"cursor": "{{colors.primary.dark.hex}}",
"background": "{{colors.primary_container.dark.hex}}80",
"selection": "{{colors.primary_container.dark.hex}}60"
},
{
"cursor": "{{colors.secondary.dark.hex}}",
"background": "{{colors.secondary_container.dark.hex}}80",
"selection": "{{colors.secondary_container.dark.hex}}60"
}
],
"syntax": {
"boolean": {
"color": "{{colors.tertiary.dark.hex}}",
"font_style": null,
"font_weight": null
},
"comment": {
"color": "{{colors.on_surface_variant.dark.hex}}",
"font_style": "italic",
"font_weight": null
},
"comment.doc": {
"color": "{{colors.on_surface_variant.dark.hex}}",
"font_style": "italic",
"font_weight": null
},
"constant": {
"color": "{{colors.tertiary.dark.hex}}",
"font_style": null,
"font_weight": null
},
"constructor": {
"color": "{{colors.secondary.dark.hex}}",
"font_style": null,
"font_weight": null
},
"emphasis": {
"color": "{{colors.primary.dark.hex}}",
"font_style": "italic",
"font_weight": null
},
"emphasis.strong": {
"color": "{{colors.primary.dark.hex}}",
"font_style": null,
"font_weight": 700
},
"function": {
"color": "{{colors.primary.dark.hex}}",
"font_style": null,
"font_weight": null
},
"keyword": {
"color": "{{colors.secondary.dark.hex}}",
"font_style": null,
"font_weight": null
},
"number": {
"color": "{{colors.tertiary_fixed.dark.hex}}",
"font_style": null,
"font_weight": null
},
"operator": {
"color": "{{colors.on_surface_variant.dark.hex}}",
"font_style": null,
"font_weight": null
},
"property": {
"color": "{{colors.on_surface.dark.hex}}",
"font_style": null,
"font_weight": null
},
"punctuation": {
"color": "{{colors.on_surface_variant.dark.hex}}",
"font_style": null,
"font_weight": null
},
"punctuation.bracket": {
"color": "{{colors.secondary_fixed.dark.hex}}",
"font_style": null,
"font_weight": null
},
"punctuation.delimiter": {
"color": "{{colors.on_surface_variant.dark.hex}}",
"font_style": null,
"font_weight": null
},
"punctuation.list_marker": {
"color": "{{colors.on_surface_variant.dark.hex}}",
"font_style": null,
"font_weight": null
},
"punctuation.special": {
"color": "{{colors.secondary.dark.hex}}",
"font_style": null,
"font_weight": null
},
"string": {
"color": "{{colors.tertiary.dark.hex}}",
"font_style": null,
"font_weight": null
},
"string.escape": {
"color": "{{colors.tertiary_fixed_dim.dark.hex}}",
"font_style": null,
"font_weight": null
},
"string.regex": {
"color": "{{colors.tertiary_fixed.dark.hex}}",
"font_style": null,
"font_weight": null
},
"string.special": {
"color": "{{colors.on_tertiary_container.dark.hex}}",
"font_style": null,
"font_weight": null
},
"string.special.symbol": {
"color": "{{colors.tertiary.dark.hex}}",
"font_style": null,
"font_weight": null
},
"tag": {
"color": "{{colors.secondary.dark.hex}}",
"font_style": null,
"font_weight": null
},
"text.literal": {
"color": "{{colors.tertiary.dark.hex}}",
"font_style": null,
"font_weight": null
},
"type": {
"color": "{{colors.primary_fixed.dark.hex}}",
"font_style": null,
"font_weight": null
},
"variable": {
"color": "{{colors.on_surface.dark.hex}}",
"font_style": null,
"font_weight": null
},
"variable.special": {
"color": "{{colors.primary.dark.hex}}",
"font_style": null,
"font_weight": null
}
}
}
},
{
"name": "Matugen Light",
"appearance": "light",
"style": {
"accents": [
"{{colors.primary.light.hex}}",
"{{colors.secondary.light.hex}}",
"{{colors.tertiary.light.hex}}"
],
"background.appearance": "opaque",
"border": "{{colors.outline_variant.light.hex}}",
"border.variant": "{{colors.outline.light.hex}}",
"border.focused": "{{colors.primary.light.hex}}",
"border.selected": "{{colors.primary.light.hex}}",
"border.transparent": "{{colors.outline_variant.light.hex}}40",
"border.disabled": "{{colors.outline_variant.light.hex}}60",
"elevated_surface.background": "{{colors.surface_container_high.light.hex}}",
"surface.background": "{{colors.surface.light.hex}}",
"background": "{{colors.background.light.hex}}",
"element.background": "{{colors.surface_container.light.hex}}",
"element.hover": "{{colors.surface_container_high.light.hex}}",
"element.active": "{{colors.surface_container_highest.light.hex}}",
"element.selected": "{{colors.secondary_container.light.hex}}",
"element.disabled": "{{colors.surface_variant.light.hex}}",
"drop_target.background": "{{colors.primary_container.light.hex}}80",
"ghost_element.background": null,
"ghost_element.hover": "{{colors.surface_container.light.hex}}80",
"ghost_element.active": "{{colors.surface_container_high.light.hex}}",
"ghost_element.selected": "{{colors.secondary_container.light.hex}}80",
"ghost_element.disabled": "{{colors.surface_variant.light.hex}}60",
"text": "{{colors.on_surface.light.hex}}",
"text.muted": "{{colors.on_surface_variant.light.hex}}",
"text.placeholder": "{{colors.on_surface_variant.light.hex}}99",
"text.disabled": "{{colors.on_surface.light.hex}}60",
"text.accent": "{{colors.primary.light.hex}}",
"icon": "{{colors.on_surface.light.hex}}",
"icon.muted": "{{colors.on_surface_variant.light.hex}}",
"icon.disabled": "{{colors.on_surface.light.hex}}60",
"icon.placeholder": "{{colors.on_surface_variant.light.hex}}80",
"icon.accent": "{{colors.primary.light.hex}}",
"status_bar.background": "{{colors.surface.light.hex}}",
"title_bar.background": "{{colors.surface.light.hex}}",
"title_bar.inactive_background": "{{colors.surface_dim.light.hex}}",
"toolbar.background": "{{colors.surface_container_low.light.hex}}",
"tab_bar.background": "{{colors.surface_container.light.hex}}",
"tab.inactive_background": "{{colors.surface_container_low.light.hex}}",
"tab.active_background": "{{colors.surface_container_high.light.hex}}",
"search.match_background": "{{colors.tertiary_container.light.hex}}80",
"panel.background": "{{colors.surface_container_low.light.hex}}",
"panel.focused_border": "{{colors.primary.light.hex}}",
"pane.focused_border": "{{colors.primary.light.hex}}",
"scrollbar.thumb.background": "{{colors.on_surface_variant.light.hex}}80",
"scrollbar.thumb.hover_background": "{{colors.on_surface_variant.light.hex}}c0",
"scrollbar.thumb.border": "{{colors.outline_variant.light.hex}}40",
"scrollbar.track.background": "{{colors.surface_container.light.hex}}",
"scrollbar.track.border": "{{colors.outline_variant.light.hex}}20",
"editor.foreground": "{{colors.on_surface.light.hex}}",
"editor.background": "{{colors.surface_container_low.light.hex}}",
"editor.gutter.background": "{{colors.surface_container_low.light.hex}}",
"editor.subheader.background": "{{colors.surface_container.light.hex}}",
"editor.indent_guide": "{{colors.outline_variant.light.hex}}60",
"editor.indent_guide_active": "{{colors.outline.light.hex}}",
"editor.active_line.background": "{{colors.surface_container_high.light.hex}}80",
"editor.highlighted_line.background": "{{colors.surface_container_high.light.hex}}60",
"editor.line_number": "{{colors.on_surface_variant.light.hex}}",
"editor.active_line_number": "{{colors.primary.light.hex}}",
"editor.invisible": "{{colors.outline_variant.light.hex}}80",
"editor.wrap_guide": "{{colors.outline_variant.light.hex}}40",
"editor.active_wrap_guide": "{{colors.outline.light.hex}}80",
"editor.document_highlight.read_background": "{{colors.primary_container.light.hex}}60",
"editor.document_highlight.write_background": "{{colors.secondary_container.light.hex}}80",
"terminal.background": "{{colors.surface_container_low.light.hex}}",
"terminal.foreground": "{{colors.on_surface.light.hex}}",
"terminal.bright_foreground": "{{colors.on_surface.light.hex}}",
"terminal.dim_foreground": "{{colors.on_surface_variant.light.hex}}",
"terminal.ansi.black": "{{colors.surface_dim.light.hex}}",
"terminal.ansi.bright_black": "{{colors.surface_container_high.light.hex}}",
"terminal.ansi.dim_black": "{{colors.surface.light.hex}}",
"terminal.ansi.red": "{{colors.error.light.hex}}",
"terminal.ansi.bright_red": "{{colors.error.light.hex}}",
"terminal.ansi.dim_red": "{{colors.on_error_container.light.hex}}",
"terminal.ansi.green": "{{colors.tertiary.light.hex}}",
"terminal.ansi.bright_green": "{{colors.tertiary.light.hex}}",
"terminal.ansi.dim_green": "{{colors.on_tertiary_container.light.hex}}",
"terminal.ansi.yellow": "{{colors.tertiary_fixed_dim.light.hex}}",
"terminal.ansi.bright_yellow": "{{colors.tertiary_fixed.light.hex}}",
"terminal.ansi.dim_yellow": "{{colors.on_tertiary_fixed.light.hex}}",
"terminal.ansi.blue": "{{colors.primary.light.hex}}",
"terminal.ansi.bright_blue": "{{colors.primary.light.hex}}",
"terminal.ansi.dim_blue": "{{colors.on_primary_container.light.hex}}",
"terminal.ansi.magenta": "{{colors.secondary.light.hex}}",
"terminal.ansi.bright_magenta": "{{colors.secondary.light.hex}}",
"terminal.ansi.dim_magenta": "{{colors.on_secondary_container.light.hex}}",
"terminal.ansi.cyan": "{{colors.primary_fixed_dim.light.hex}}",
"terminal.ansi.bright_cyan": "{{colors.primary_fixed.light.hex}}",
"terminal.ansi.dim_cyan": "{{colors.on_primary_fixed_variant.light.hex}}",
"terminal.ansi.white": "{{colors.on_surface.light.hex}}",
"terminal.ansi.bright_white": "{{colors.on_surface.light.hex}}",
"terminal.ansi.dim_white": "{{colors.on_surface_variant.light.hex}}",
"link_text.hover": "{{colors.primary.light.hex}}",
"conflict": "{{colors.error.light.hex}}",
"conflict.background": "{{colors.error_container.light.hex}}80",
"conflict.border": "{{colors.on_error_container.light.hex}}",
"created": "{{colors.tertiary.light.hex}}",
"created.background": "{{colors.tertiary_container.light.hex}}80",
"created.border": "{{colors.on_tertiary_container.light.hex}}",
"deleted": "{{colors.error.light.hex}}",
"deleted.background": "{{colors.error_container.light.hex}}80",
"deleted.border": "{{colors.on_error_container.light.hex}}",
"error": "{{colors.error.light.hex}}",
"error.background": "{{colors.error_container.light.hex}}",
"error.border": "{{colors.on_error_container.light.hex}}",
"hidden": "{{colors.outline_variant.light.hex}}",
"hidden.border": "{{colors.outline_variant.light.hex}}60",
"hint": "{{colors.primary.light.hex}}",
"hint.background": "{{colors.primary_container.light.hex}}80",
"hint.border": "{{colors.on_primary_container.light.hex}}",
"ignored": "{{colors.on_surface_variant.light.hex}}60",
"ignored.background": "{{colors.surface_variant.light.hex}}40",
"ignored.border": "{{colors.outline_variant.light.hex}}40",
"info": "{{colors.primary.light.hex}}",
"info.background": "{{colors.primary_container.light.hex}}80",
"info.border": "{{colors.on_primary_container.light.hex}}",
"modified": "{{colors.secondary.light.hex}}",
"modified.background": "{{colors.secondary_container.light.hex}}80",
"modified.border": "{{colors.on_secondary_container.light.hex}}",
"predictive": "{{colors.on_surface_variant.light.hex}}80",
"predictive.border": "{{colors.outline.light.hex}}",
"predictive.background": "{{colors.surface_container_highest.light.hex}}80",
"renamed": "{{colors.secondary.light.hex}}",
"renamed.border": "{{colors.on_secondary_container.light.hex}}",
"renamed.background": "{{colors.secondary_container.light.hex}}80",
"success": "{{colors.tertiary.light.hex}}",
"success.background": "{{colors.tertiary_container.light.hex}}80",
"success.border": "{{colors.on_tertiary_container.light.hex}}",
"unreachable": "{{colors.on_surface_variant.light.hex}}60",
"unreachable.background": "{{colors.surface_variant.light.hex}}40",
"unreachable.border": "{{colors.outline_variant.light.hex}}60",
"warning": "{{colors.tertiary_fixed_dim.light.hex}}",
"warning.background": "{{colors.tertiary_container.light.hex}}80",
"warning.border": "{{colors.on_tertiary_container.light.hex}}",
"players": [
{
"cursor": "{{colors.primary.light.hex}}",
"background": "{{colors.primary_container.light.hex}}80",
"selection": "{{colors.primary_container.light.hex}}60"
},
{
"cursor": "{{colors.secondary.light.hex}}",
"background": "{{colors.secondary_container.light.hex}}80",
"selection": "{{colors.secondary_container.light.hex}}60"
}
],
"syntax": {
"boolean": {
"color": "{{colors.tertiary.light.hex}}",
"font_style": null,
"font_weight": null
},
"comment": {
"color": "{{colors.on_surface_variant.light.hex}}",
"font_style": "italic",
"font_weight": null
},
"comment.doc": {
"color": "{{colors.on_surface_variant.light.hex}}",
"font_style": "italic",
"font_weight": null
},
"constant": {
"color": "{{colors.tertiary.light.hex}}",
"font_style": null,
"font_weight": null
},
"constructor": {
"color": "{{colors.secondary.light.hex}}",
"font_style": null,
"font_weight": null
},
"emphasis": {
"color": "{{colors.primary.light.hex}}",
"font_style": "italic",
"font_weight": null
},
"emphasis.strong": {
"color": "{{colors.primary.light.hex}}",
"font_style": null,
"font_weight": 700
},
"function": {
"color": "{{colors.primary.light.hex}}",
"font_style": null,
"font_weight": null
},
"keyword": {
"color": "{{colors.secondary.light.hex}}",
"font_style": null,
"font_weight": null
},
"number": {
"color": "{{colors.tertiary_fixed.light.hex}}",
"font_style": null,
"font_weight": null
},
"operator": {
"color": "{{colors.on_surface_variant.light.hex}}",
"font_style": null,
"font_weight": null
},
"property": {
"color": "{{colors.on_surface.light.hex}}",
"font_style": null,
"font_weight": null
},
"punctuation": {
"color": "{{colors.on_surface_variant.light.hex}}",
"font_style": null,
"font_weight": null
},
"punctuation.bracket": {
"color": "{{colors.secondary_fixed.light.hex}}",
"font_style": null,
"font_weight": null
},
"punctuation.delimiter": {
"color": "{{colors.on_surface_variant.light.hex}}",
"font_style": null,
"font_weight": null
},
"punctuation.list_marker": {
"color": "{{colors.on_surface_variant.light.hex}}",
"font_style": null,
"font_weight": null
},
"punctuation.special": {
"color": "{{colors.secondary.light.hex}}",
"font_style": null,
"font_weight": null
},
"string": {
"color": "{{colors.tertiary.light.hex}}",
"font_style": null,
"font_weight": null
},
"string.escape": {
"color": "{{colors.tertiary_fixed_dim.light.hex}}",
"font_style": null,
"font_weight": null
},
"string.regex": {
"color": "{{colors.tertiary_fixed.light.hex}}",
"font_style": null,
"font_weight": null
},
"string.special": {
"color": "{{colors.on_tertiary_container.light.hex}}",
"font_style": null,
"font_weight": null
},
"string.special.symbol": {
"color": "{{colors.tertiary.light.hex}}",
"font_style": null,
"font_weight": null
},
"tag": {
"color": "{{colors.secondary.light.hex}}",
"font_style": null,
"font_weight": null
},
"text.literal": {
"color": "{{colors.tertiary.light.hex}}",
"font_style": null,
"font_weight": null
},
"type": {
"color": "{{colors.primary_fixed.light.hex}}",
"font_style": null,
"font_weight": null
},
"variable": {
"color": "{{colors.on_surface.light.hex}}",
"font_style": null,
"font_weight": null
},
"variable.special": {
"color": "{{colors.primary.light.hex}}",
"font_style": null,
"font_weight": null
}
}
}
}
]
}

View file

@ -0,0 +1,133 @@
themes {
matugen {
// Text: readable content on surfaces
text_unselected {
base {{colors.on_surface.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
background {{colors.surface_container.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_0 {{colors.primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_1 {{colors.secondary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_2 {{colors.tertiary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_3 {{colors.on_surface_variant.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
}
text_selected {
base {{colors.on_surface.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
background {{colors.surface_container_high.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_0 {{colors.primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_1 {{colors.secondary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_2 {{colors.tertiary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_3 {{colors.on_surface_variant.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
}
// Ribbon (tab bar)
ribbon_selected {
base {{colors.on_primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
background {{colors.primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_0 {{colors.tertiary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_1 {{colors.on_primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_2 {{colors.secondary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_3 {{colors.primary_container.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
}
ribbon_unselected {
base {{colors.on_surface_variant.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
background {{colors.surface_container_high.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_0 {{colors.error.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_1 {{colors.on_surface.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_2 {{colors.primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_3 {{colors.secondary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
}
// Table
table_title {
base {{colors.primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
background 0
emphasis_0 {{colors.tertiary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_1 {{colors.secondary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_2 {{colors.on_surface_variant.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_3 {{colors.outline.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
}
table_cell_selected {
base {{colors.on_surface.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
background {{colors.surface_container_high.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_0 {{colors.primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_1 {{colors.secondary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_2 {{colors.tertiary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_3 {{colors.on_surface_variant.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
}
table_cell_unselected {
base {{colors.on_surface.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
background {{colors.surface_container.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_0 {{colors.primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_1 {{colors.secondary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_2 {{colors.tertiary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_3 {{colors.on_surface_variant.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
}
// List
list_selected {
base {{colors.on_surface.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
background {{colors.surface_container_high.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_0 {{colors.primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_1 {{colors.secondary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_2 {{colors.tertiary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_3 {{colors.on_surface_variant.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
}
list_unselected {
base {{colors.on_surface.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
background {{colors.surface_container.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_0 {{colors.primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_1 {{colors.secondary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_2 {{colors.tertiary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_3 {{colors.on_surface_variant.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
}
// Frame (pane borders)
frame_selected {
base {{colors.primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
background 0
emphasis_0 {{colors.secondary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_1 {{colors.tertiary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_2 {{colors.on_surface_variant.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_3 0
}
frame_highlight {
base {{colors.tertiary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
background 0
emphasis_0 {{colors.primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_1 {{colors.secondary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_2 {{colors.tertiary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_3 {{colors.on_surface_variant.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
}
// Exit codes
exit_code_success {
base {{colors.secondary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
background 0
emphasis_0 {{colors.tertiary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_1 {{colors.surface_container.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_2 {{colors.secondary_container.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_3 {{colors.primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
}
exit_code_error {
base {{colors.error.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
background 0
emphasis_0 {{colors.on_error_container.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
emphasis_1 0
emphasis_2 0
emphasis_3 0
}
// Multiplayer user colors
multiplayer_user_colors {
player_1 {{colors.primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
player_2 {{colors.secondary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
player_3 {{colors.tertiary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
player_4 {{colors.on_primary_fixed.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
player_5 {{colors.on_secondary_fixed.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
player_6 {{colors.on_tertiary_fixed.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
player_7 {{colors.error.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
player_8 {{colors.outline.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
player_9 {{colors.inverse_primary.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
player_10 {{colors.primary_fixed_dim.dark.rgb | replace: "rgb(", "" | replace: ")", "" | replace: ", ", " "}}
}
}
}

View file

@ -0,0 +1,177 @@
* {
--base: {{colors.surface_container_lowest.default.hex}};
--surface: {{colors.surface_container_low.default.hex}};
--overlay: {{colors.surface_container.default.hex}};
--muted: {{colors.surface_container_high.default.hex}};
--subtle: {{colors.surface_container_highest.default.hex}};
--text: {{colors.on_surface.default.hex}};
--secondary: {{colors.secondary.default.hex}};
--primary: {{colors.primary.default.hex}};
--on_primary: {{colors.on_primary.default.hex}};
}
:root {
/* --- Core Palette Overrides --- */
--zen-colors-primary: var(--base) !important;
--zen-primary-color: var(--base) !important;
--zen-colors-secondary: var(--surface) !important;
--zen-colors-tertiary: var(--overlay) !important;
--zen-colors-border: var(--primary) !important;
/* --- Internal Zen Color Variables --- */
--zen-primary-color: var(--primary) !important;
--zen-colors-primary: var(--base) !important;
--zen-colors-secondary: var(--surface) !important;
--zen-colors-tertiary: var(--base) !important;
/* --- Backgrounds --- */
--toolbar-bgcolor: var(--base) !important;
--newtab-background-color: var(--overlay) !important;
--zen-themed-toolbar-bg: var(--base) !important;
--zen-main-browser-background: var(--base) !important;
--toolbox-bgcolor-inactive: var(--base) !important;
--zen-urlbar-background: var(--surface) !important;
--zen-colors-input-bg: var(--surface) !important;
--zen-themed-toolbar-bg-transparent: transparent !important;
/* --- Text & Icons --- */
--lwt-text-color: var(--text) !important;
--toolbarbutton-icon-fill: var(--primary) !important;
--toolbar-field-color: var(--text) !important;
--toolbar-field-focus-color: var(--text) !important;
--toolbar-color: var(--text) !important;
--toolbox-textcolor: var(--text) !important;
--toolbox-textcolor-inactive: var(--text) !important;
--tab-selected-textcolor: var(--primary) !important;
--newtab-text-primary-color: var(--text) !important;
/* --- Popups, Menus & Sidebars --- */
--arrowpanel-color: var(--text) !important;
--arrowpanel-background: var(--overlay) !important;
--sidebar-text-color: var(--text) !important;
--lwt-sidebar-text-color: var(--text) !important;
--lwt-sidebar-background-color: var(--base) !important;
}
/* --- Sidebar & Layout --- */
#navigator-toolbox,
#zen-tabbox-wrapper,
.sidebar-panel {
background-color: var(--base) !important;
}
#zen-sidebar-splitter {
background-color: var(--base) !important;
opacity: 1 !important;
}
.sidebar-placesTree {
background-color: var(--surface) !important;
}
#zen-workspaces-button {
background-color: var(--surface) !important;
}
#zen-appcontent-navbar-container {
background-color: var(--base) !important;
}
/* --- Navigation Controls --- */
#back-button .toolbarbutton-icon,
#forward-button .toolbarbutton-icon,
#reload-button .toolbarbutton-icon,
#stop-button .toolbarbutton-icon,
#PanelUI-menu-button .toolbarbutton-icon,
#unified-extensions-button .toolbarbutton-icon,
#nav-bar-overflow-button .toolbarbutton-icon,
#zen-toggle-compact-mode .toolbarbutton-icon {
fill: var(--primary) !important;
color: var(--primary) !important;
}
#back-button[disabled] .toolbarbutton-icon,
#forward-button[disabled] .toolbarbutton-icon {
opacity: 0.3 !important;
}
toolbar .toolbarbutton-1 {
&:not([disabled]) {
&:is([open], [checked]) > :is(
.toolbarbutton-icon,
.toolbarbutton-text,
.toolbarbutton-badge-stack
) {
fill: var(--base);
}
}
}
/* --- URL Bar --- */
#urlbar-input {
color: var(--text) !important;
}
#urlbar-input::selection {
background-color: var(--primary) !important;
color: var(--on_primary) !important;
}
.urlbar-background {
background-color: var(--base) !important;
}
#urlbar-input-container {
background-color: var(--base) !important;
}
.urlbarView-url {
color: var(--primary) !important;
}
.urlbarView-favicon {
background-color: var(--base) !important;
}
#urlbar-results {
background-color: var(--overlay) !important;
color: var(--text) !important;
}
/* --- UI Components --- */
#zen-toast-container {
color: var(--primary) !important;
}
#PanelUI-menu-button[open] .toolbarbutton-icon {
fill: var(--primary) !important;
}
#permissions-granted-icon {
color: var(--base) !important;
}
.tab-background[selected=""] {
background: var(--overlay) !important;
}
.content-shortcuts {
background-color: var(--surface) !important;
border-color: var(--secondary) !important;
}
#zenEditBookmarkPanelFaviconContainer {
background: var(--base) !important;
}
#TabsToolbar {
background-color: var(--base) !important;
}
hbox#titlebar {
background-color: var(--base) !important;
}

View file

@ -0,0 +1,83 @@
/* Common variables affecting all pages */
@-moz-document url-prefix("about:") {
:root {
--in-content-page-color: {{colors.secondary.default.hex}} !important;
--color-accent-primary: {{colors.primary.default.hex}} !important;
/* --color-accent-primary-hover: rgb(249, 217, 240) !important;
--color-accent-primary-active: rgb(245, 195, 219) !important; */
background-color: {{colors.surface_container.default.hex}} !important;
--in-content-page-background: {{colors.surface_container.default.hex}} !important;
}
}
/* Variables and styles specific to about:newtab and about:home */
@-moz-document url("about:newtab"), url("about:home") {
:root {
--newtab-background-color: {{colors.surface_container.default.hex}} !important;
--newtab-background-color-secondary: {{colors.surface_container_high.default.hex}} !important;
--newtab-element-hover-color: {{colors.surface_container_high.default.hex}} !important;
--newtab-text-primary-color: {{colors.secondary.default.hex}} !important;
--newtab-wordmark-color: {{colors.secondary.default.hex}} !important;
--newtab-primary-action-background: {{colors.primary.default.hex}} !important;
}
.icon {
color: {{colors.primary.default.hex}} !important;
}
.card-outer:is(:hover, :focus, .active):not(.placeholder) .card-title {
color: {{colors.primary.default.hex}} !important;
}
}
/* Variables and styles specific to about:preferences */
@-moz-document url-prefix("about:preferences") {
:root {
--zen-colors-tertiary: {{colors.surface_container_low.default.hex}} !important;
--in-content-text-color: {{colors.secondary.default.hex}} !important;
--link-color: {{colors.primary.default.hex}} !important;
/* --link-color-hover: rgb(249, 217, 240) !important; */
--zen-colors-primary: {{colors.surface_container_high.default.hex}} !important;
--in-content-box-background: {{colors.surface_container_high.default.hex}} !important;
--zen-primary-color: {{colors.primary.default.hex}} !important;
}
button,
groupbox menulist {
background: {{colors.surface_container_high.default.hex}} !important;
color: {{colors.secondary.default.hex}} !important;
}
.main-content {
background-color: {{colors.surface_container_lowest.default.hex}} !important;
}
}
/* Variables and styles specific to about:addons */
@-moz-document url-prefix("about:addons") {
:root {
--zen-dark-color-mix-base: {{colors.surface_container_low.default.hex}} !important;
--background-color-box: {{colors.surface_container.default.hex}} !important;
}
}
/* Variables and styles specific to about:protections */
@-moz-document url-prefix("about:protections") {
:root {
--zen-primary-color: {{colors.surface_container.default.hex}} !important;
--in-content-primary-button-text-color-hover: {{colors.secondary.default.hex}} !important;
--in-content-primary-button-background: {{colors.surface_container.default.hex}} !important;
--in-content-primary-button-text-color: {{colors.secondary.default.hex}} !important;
}
.card {
background-color: {{colors.surface_container_high.default.hex}} !important;
}
}
/* Pane UI button visibility issue fix */
#PanelUI-menu-button[open] .toolbarbutton-icon {
fill: {{colors.primary.default.hex}} !important;
}
}

View file

@ -0,0 +1,104 @@
/* DMS Matugen Zen Browser Theme */
:root {
--zen-primary-color: {{colors.primary_container.default.hex}} !important;
--toolbarbutton-icon-fill: {{colors.primary.default.hex}} !important;
--toolbar-field-color: {{colors.on_background.default.hex}} !important;
--tab-selected-textcolor: {{colors.primary.default.hex}} !important;
--toolbar-color: {{colors.on_background.default.hex}} !important;
--arrowpanel-color: {{colors.on_surface.default.hex}} !important;
--arrowpanel-background: {{colors.surface_container.default.hex}} !important;
--sidebar-text-color: {{colors.on_background.default.hex}} !important;
--zen-main-browser-background: {{colors.background.default.hex}} !important;
}
.sidebar-placesTree {
background-color: {{colors.surface_container.default.hex}} !important;
}
#zen-workspaces-button {
background-color: {{colors.surface_container.default.hex}} !important;
}
#TabsToolbar {
background-color: {{colors.background.default.hex}} !important;
}
.urlbar-background {
background-color: {{colors.surface_container.default.hex}} !important;
}
.urlbar-input::selection {
color: {{colors.on_primary.default.hex}} !important;
background-color: {{colors.primary.default.hex}} !important;
}
.urlbarView-url {
color: {{colors.on_surface_variant.default.hex}} !important;
}
toolbar .toolbarbutton-1 {
&:not([disabled]) {
&:is([open], [checked])
> :is(
.toolbarbutton-icon,
.toolbarbutton-text,
.toolbarbutton-badge-stack
) {
fill: {{colors.primary.default.hex}}
}
}
}
.identity-color-blue {
--identity-tab-color: {{base16.base0d.dark.color}} !important;
--identity-icon-color: {{base16.base0d.dark.color}} !important;
}
.identity-color-turquoise {
--identity-tab-color: {{base16.base0c.dark.color}} !important;
--identity-icon-color: {{base16.base0c.dark.color}} !important;
}
.identity-color-green {
--identity-tab-color: {{base16.base0b.dark.color}} !important;
--identity-icon-color: {{base16.base0b.dark.color}} !important;
}
.identity-color-yellow {
--identity-tab-color: {{base16.base0a.dark.color}} !important;
--identity-icon-color: {{base16.base0a.dark.color}} !important;
}
.identity-color-orange {
--identity-tab-color: {{base16.base09.dark.color}} !important;
--identity-icon-color: {{base16.base09.dark.color}} !important;
}
.identity-color-red {
--identity-tab-color: {{base16.base08.dark.color}} !important;
--identity-icon-color: {{base16.base08.dark.color}} !important;
}
.identity-color-pink {
--identity-tab-color: {{base16.base0e.dark.color}} !important;
--identity-icon-color: {{base16.base0e.dark.color}} !important;
}
.identity-color-purple {
--identity-tab-color: {{base16.base0e.dark.color}} !important;
--identity-icon-color: {{base16.base0e.dark.color}} !important;
}
#zen-appcontent-navbar-container {
background-color: {{colors.background.default.hex}} !important;
}
#PanelUI-menu-button .toolbarbutton-icon,
#downloads-button .toolbarbutton-icon,
#unified-extensions-button .toolbarbutton-icon {
fill: {{colors.primary.default.hex}} !important;
color: {{colors.primary.default.hex}} !important;
}
#PanelUI-menu-button .toolbarbutton-badge-stack,
#downloads-button .toolbarbutton-badge-stack,
#unified-extensions-button .toolbarbutton-badge-stack {
fill: {{colors.primary.default.hex}} !important;
color: {{colors.primary.default.hex}} !important;
}
toolbar .toolbarbutton-1 > .toolbarbutton-icon {
fill: {{colors.primary.default.hex}} !important;
}