summaryrefslogtreecommitdiffstats
path: root/roles/hyprtheme
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2026-01-14 23:12:28 +0100
committerAhmed Abdelhalim <[email protected]>2026-01-14 23:12:28 +0100
commit5bb4cb6d7138fcac012305b50f52ffd53f9bd2c2 (patch)
tree70a18261e4ed8e247293186348771582612b83d5 /roles/hyprtheme
parent7986ef492d2ea651730bc0d1324e39f3d56276e5 (diff)
Add hyprtheme (based on omarchy themes) role with 2 themes
Diffstat (limited to 'roles/hyprtheme')
-rw-r--r--roles/hyprtheme/defaults/main.yml2
-rw-r--r--roles/hyprtheme/files/scripts/theme-bg-next49
-rw-r--r--roles/hyprtheme/files/scripts/theme-set57
-rw-r--r--roles/hyprtheme/files/themes/catppuccin/backgrounds/a_flower_on_a_dark_background.pngbin0 -> 360648 bytes
-rw-r--r--roles/hyprtheme/files/themes/catppuccin/backgrounds/leef_dark_purple_minimalist.pngbin0 -> 950831 bytes
-rw-r--r--roles/hyprtheme/files/themes/catppuccin/neovim.lua13
-rw-r--r--roles/hyprtheme/files/themes/everforest/backgrounds/1-everforest.jpgbin0 -> 322827 bytes
-rw-r--r--roles/hyprtheme/files/themes/everforest/backgrounds/a_pile_of_cut_logs.jpgbin0 -> 3687179 bytes
-rw-r--r--roles/hyprtheme/files/themes/everforest/neovim.lua10
-rw-r--r--roles/hyprtheme/tasks/main.yml40
-rw-r--r--roles/hyprtheme/tasks/template-theme.yml32
-rw-r--r--roles/hyprtheme/templates/theme/alacritty.toml.j247
-rw-r--r--roles/hyprtheme/templates/theme/btop.theme.j283
-rw-r--r--roles/hyprtheme/templates/theme/ghostty.conf.j222
-rw-r--r--roles/hyprtheme/templates/theme/hyprland.conf.j23
-rw-r--r--roles/hyprtheme/templates/theme/hyprlock.conf.j210
-rw-r--r--roles/hyprtheme/templates/theme/icons.theme.j21
-rw-r--r--roles/hyprtheme/templates/theme/kitty.conf.j227
-rw-r--r--roles/hyprtheme/templates/theme/swayosd.css.j25
-rw-r--r--roles/hyprtheme/templates/theme/walker.css.j26
-rw-r--r--roles/hyprtheme/templates/theme/waybar.css.j24
-rw-r--r--roles/hyprtheme/vars/catppuccin.yml26
-rw-r--r--roles/hyprtheme/vars/everforest.yml28
23 files changed, 465 insertions, 0 deletions
diff --git a/roles/hyprtheme/defaults/main.yml b/roles/hyprtheme/defaults/main.yml
new file mode 100644
index 00000000..aef5809e
--- /dev/null
+++ b/roles/hyprtheme/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+hyprtheme_default_font: "JetBrainsMono Nerd Font"
diff --git a/roles/hyprtheme/files/scripts/theme-bg-next b/roles/hyprtheme/files/scripts/theme-bg-next
new file mode 100644
index 00000000..c3259a45
--- /dev/null
+++ b/roles/hyprtheme/files/scripts/theme-bg-next
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+# Cycles through the background images available
+
+THEMES_PATH="$HOME/.config/hyprthemes/"
+THEME_BACKGROUNDS_PATH="$THEMES_PATH/current/backgrounds/"
+CURRENT_BACKGROUND_LINK="$THEMES_PATH/current/background"
+
+mapfile -d '' -t BACKGROUNDS < <(find -L "$THEME_BACKGROUNDS_PATH" -maxdepth 1 -type f -print0 2>/dev/null | sort -z)
+TOTAL=${#BACKGROUNDS[@]}
+
+if [[ $TOTAL -eq 0 ]]; then
+ notify-send "No background was found for theme" -t 2000
+ pkill -x swaybg
+ setsid uwsm-app -- swaybg --color '#000000' >/dev/null 2>&1 &
+else
+ # Get current background from symlink
+ if [[ -L "$CURRENT_BACKGROUND_LINK" ]]; then
+ CURRENT_BACKGROUND=$(readlink "$CURRENT_BACKGROUND_LINK")
+ else
+ # Default to first background if no symlink exists
+ CURRENT_BACKGROUND=""
+ fi
+
+ # Find current background index
+ INDEX=-1
+ for i in "${!BACKGROUNDS[@]}"; do
+ if [[ "${BACKGROUNDS[$i]}" == "$CURRENT_BACKGROUND" ]]; then
+ INDEX=$i
+ break
+ fi
+ done
+
+ # Get next background (wrap around)
+ if [[ $INDEX -eq -1 ]]; then
+ # Use the first background when no match was found
+ NEW_BACKGROUND="${BACKGROUNDS[0]}"
+ else
+ NEXT_INDEX=$(((INDEX + 1) % TOTAL))
+ NEW_BACKGROUND="${BACKGROUNDS[$NEXT_INDEX]}"
+ fi
+
+ # Set new background symlink
+ ln -nsf "$NEW_BACKGROUND" "$CURRENT_BACKGROUND_LINK"
+
+ # Relaunch swaybg
+ pkill -x swaybg
+ setsid uwsm-app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 &
+fi
diff --git a/roles/hyprtheme/files/scripts/theme-set b/roles/hyprtheme/files/scripts/theme-set
new file mode 100644
index 00000000..905ce932
--- /dev/null
+++ b/roles/hyprtheme/files/scripts/theme-set
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+# Extracted from omarchy with a little modifications
+if [[ -z $1 ]]; then
+ echo "Usage: theme-set <theme-name>"
+ exit 1
+fi
+
+THEMES_PATH="$HOME/.config/hyprthemes/themes"
+CURRENT_THEME_PATH="$HOME/.config/hyprthemes/current"
+THEME_NAME=$(echo "$1" | sed -E 's/<[^>]+>//g' | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
+
+if [[ ! -d "$THEMES_PATH/$THEME_NAME" ]]; then
+ echo "Theme '$THEME_NAME' does not exist"
+ exit 1
+fi
+
+# Get close to as atomic as possible.
+ln -sfn "$THEMES_PATH/$THEME_NAME" "$CURRENT_THEME_PATH.new"
+rm -rf "$CURRENT_THEME_PATH"
+mv "$CURRENT_THEME_PATH.new" "$CURRENT_THEME_PATH"
+./.config/hyprthemes/scripts/theme-bg-next
+
+pkill -x waybar || true
+setsid uwsm-app -- waybar >/dev/null 2>&1 &
+
+# pkill -x swayosd-server || true
+# setsid uwsm-app -- swayosd-server >/dev/null 2>&1 &
+
+hyprctl reload >/dev/null 2>&1
+
+pkill -SIGUSR2 btop || true
+
+makoctl reload
+
+if [[ -f ~/.config/alacritty/alacritty.toml ]]; then
+ touch ~/.config/alacritty/alacritty.toml
+fi
+killall -SIGUSR1 kitty >/dev/null 2>&1 || true
+killall -SIGUSR2 ghostty >/dev/null 2>&1 || true
+
+# if [[ -f ~/.config/hyprthemes/current/light.mode ]]; then
+ # gsettings set org.gnome.desktop.interface color-scheme "prefer-light"
+ # gsettings set org.gnome.desktop.interface gtk-theme "Adwaita"
+# else
+ # gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
+ # gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
+# fi
+
+# # Change gnome icon theme color
+# GNOME_ICONS_THEME=~/.config/hyprthemes/current/icons.theme
+# if [[ -f $GNOME_ICONS_THEME ]]; then
+ # gsettings set org.gnome.desktop.interface icon-theme "$(<$GNOME_ICONS_THEME)"
+# else
+ # gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
+# fi
+
diff --git a/roles/hyprtheme/files/themes/catppuccin/backgrounds/a_flower_on_a_dark_background.png b/roles/hyprtheme/files/themes/catppuccin/backgrounds/a_flower_on_a_dark_background.png
new file mode 100644
index 00000000..4090f188
--- /dev/null
+++ b/roles/hyprtheme/files/themes/catppuccin/backgrounds/a_flower_on_a_dark_background.png
Binary files differ
diff --git a/roles/hyprtheme/files/themes/catppuccin/backgrounds/leef_dark_purple_minimalist.png b/roles/hyprtheme/files/themes/catppuccin/backgrounds/leef_dark_purple_minimalist.png
new file mode 100644
index 00000000..be374e28
--- /dev/null
+++ b/roles/hyprtheme/files/themes/catppuccin/backgrounds/leef_dark_purple_minimalist.png
Binary files differ
diff --git a/roles/hyprtheme/files/themes/catppuccin/neovim.lua b/roles/hyprtheme/files/themes/catppuccin/neovim.lua
new file mode 100644
index 00000000..a8683876
--- /dev/null
+++ b/roles/hyprtheme/files/themes/catppuccin/neovim.lua
@@ -0,0 +1,13 @@
+return {
+ {
+ "catppuccin/nvim",
+ name = "catppuccin",
+ priority = 1000,
+ },
+ {
+ "LazyVim/LazyVim",
+ opts = {
+ colorscheme = "catppuccin",
+ },
+ },
+}
diff --git a/roles/hyprtheme/files/themes/everforest/backgrounds/1-everforest.jpg b/roles/hyprtheme/files/themes/everforest/backgrounds/1-everforest.jpg
new file mode 100644
index 00000000..6d75259d
--- /dev/null
+++ b/roles/hyprtheme/files/themes/everforest/backgrounds/1-everforest.jpg
Binary files differ
diff --git a/roles/hyprtheme/files/themes/everforest/backgrounds/a_pile_of_cut_logs.jpg b/roles/hyprtheme/files/themes/everforest/backgrounds/a_pile_of_cut_logs.jpg
new file mode 100644
index 00000000..166101a3
--- /dev/null
+++ b/roles/hyprtheme/files/themes/everforest/backgrounds/a_pile_of_cut_logs.jpg
Binary files differ
diff --git a/roles/hyprtheme/files/themes/everforest/neovim.lua b/roles/hyprtheme/files/themes/everforest/neovim.lua
new file mode 100644
index 00000000..80551c78
--- /dev/null
+++ b/roles/hyprtheme/files/themes/everforest/neovim.lua
@@ -0,0 +1,10 @@
+return {
+ { "neanias/everforest-nvim" },
+ {
+ "LazyVim/LazyVim",
+ opts = {
+ colorscheme = "everforest",
+ background = "soft",
+ },
+ },
+}
diff --git a/roles/hyprtheme/tasks/main.yml b/roles/hyprtheme/tasks/main.yml
new file mode 100644
index 00000000..a3762b98
--- /dev/null
+++ b/roles/hyprtheme/tasks/main.yml
@@ -0,0 +1,40 @@
+---
+- name: "Set themes fact"
+ ansible.builtin.set_fact:
+ hyprthemes:
+ - "catppuccin"
+ - "everforest"
+
+- name: "Create current theme directory"
+ ansible.builtin.file:
+ path: "{{ ansible_env.HOME }}/.config/hyprthemes/current"
+ state: "directory"
+ mode: "0755"
+
+- name: "Create themes directory"
+ ansible.builtin.file:
+ path: "{{ ansible_env.HOME }}/.config/hyprthemes/themes/{{ item }}"
+ state: "directory"
+ mode: "0755"
+ loop: "{{ hyprthemes }}"
+
+- name: "Create scripts directory"
+ ansible.builtin.file:
+ path: "{{ ansible_env.HOME }}/.config/hyprthemes/scripts"
+ state: "directory"
+ mode: "0755"
+
+- name: "Template themes"
+ ansible.builtin.include_tasks: "template-theme.yml"
+ vars:
+ theme_name: "{{ item }}"
+ loop: "{{ hyprthemes }}"
+
+- name: "Copy theme scripts"
+ ansible.builtin.copy:
+ src: "{{ item }}"
+ dest: "{{ ansible_env.HOME }}/.config/hyprthemes/{{ item }}"
+ mode: "0755"
+ loop:
+ - "scripts/theme-set"
+ - "scripts/theme-bg-next"
diff --git a/roles/hyprtheme/tasks/template-theme.yml b/roles/hyprtheme/tasks/template-theme.yml
new file mode 100644
index 00000000..bd94ce17
--- /dev/null
+++ b/roles/hyprtheme/tasks/template-theme.yml
@@ -0,0 +1,32 @@
+---
+- name: "Load theme variables"
+ ansible.builtin.include_vars: "vars/{{ theme_name }}.yml"
+
+- name: "Set theme files fact"
+ ansible.builtin.set_fact:
+ theme_files:
+ - "alacritty.toml"
+ - "btop.theme"
+ - "ghostty.conf"
+ - "hyprland.conf"
+ - "hyprlock.conf"
+ - "icons.theme"
+ - "kitty.conf"
+ - "swayosd.css"
+ - "walker.css"
+ - "waybar.css"
+
+- name: "Template theme files for: {{ theme_name }}"
+ ansible.builtin.template:
+ src: "theme/{{ file }}.j2"
+ dest: "{{ ansible_env.HOME }}/.config/hyprthemes/themes/{{ theme_name }}/{{ file }}"
+ mode: "0644"
+ loop: "{{ theme_files }}"
+ loop_control:
+ loop_var: file
+
+- name: "Copy static theme files for: {{ theme_name }}"
+ ansible.builtin.copy:
+ src: "themes/{{ theme_name }}/"
+ dest: "{{ ansible_env.HOME }}/.config/hyprthemes/themes/{{ theme_name }}/"
+ mode: "0644"
diff --git a/roles/hyprtheme/templates/theme/alacritty.toml.j2 b/roles/hyprtheme/templates/theme/alacritty.toml.j2
new file mode 100644
index 00000000..ff8bc8df
--- /dev/null
+++ b/roles/hyprtheme/templates/theme/alacritty.toml.j2
@@ -0,0 +1,47 @@
+[colors.primary]
+background = "{{ background }}"
+foreground = "{{ foreground }}"
+
+[colors.cursor]
+text = "{{ background }}"
+cursor = "{{ cursor }}"
+
+[colors.vi_mode_cursor]
+text = "{{ background }}"
+cursor = "{{ cursor }}"
+
+[colors.search.matches]
+foreground = "{{ background }}"
+background = "{{ color3 }}"
+
+[colors.search.focused_match]
+foreground = "{{ background }}"
+background = "{{ color1 }}"
+
+[colors.footer_bar]
+foreground = "{{ background }}"
+background = "{{ foreground }}"
+
+[colors.selection]
+text = "{{ selection_foreground }}"
+background = "{{ selection_background }}"
+
+[colors.normal]
+black = "{{ color0 }}"
+red = "{{ color1 }}"
+green = "{{ color2 }}"
+yellow = "{{ color3 }}"
+blue = "{{ color4 }}"
+magenta = "{{ color5 }}"
+cyan = "{{ color6 }}"
+white = "{{ color7 }}"
+
+[colors.bright]
+black = "{{ color8 }}"
+red = "{{ color9 }}"
+green = "{{ color10 }}"
+yellow = "{{ color11 }}"
+blue = "{{ color12 }}"
+magenta = "{{ color13 }}"
+cyan = "{{ color14 }}"
+white = "{{ color15 }}"
diff --git a/roles/hyprtheme/templates/theme/btop.theme.j2 b/roles/hyprtheme/templates/theme/btop.theme.j2
new file mode 100644
index 00000000..7b1b299d
--- /dev/null
+++ b/roles/hyprtheme/templates/theme/btop.theme.j2
@@ -0,0 +1,83 @@
+# Main background, empty for terminal default, need to be empty if you want transparent background
+theme[main_bg]="{{ background }}"
+
+# Main text color
+theme[main_fg]="{{ foreground }}"
+
+# Title color for boxes
+theme[title]="{{ foreground }}"
+
+# Highlight color for keyboard shortcuts
+theme[hi_fg]="{{ accent }}"
+
+# Background color of selected item in processes box
+theme[selected_bg]="{{ color8 }}"
+
+# Foreground color of selected item in processes box
+theme[selected_fg]="{{ accent }}"
+
+# Color of inactive/disabled text
+theme[inactive_fg]="{{ color8 }}"
+
+# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
+theme[graph_text]="{{ foreground }}"
+
+# Background color of the percentage meters
+theme[meter_bg]="{{ color8 }}"
+
+# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
+theme[proc_misc]="{{ foreground }}"
+
+# CPU, Memory, Network, Proc box outline colors
+theme[cpu_box]="{{ color5 }}"
+theme[mem_box]="{{ color2 }}"
+theme[net_box]="{{ color1 }}"
+theme[proc_box]="{{ accent }}"
+
+# Box divider line and small boxes line color
+theme[div_line]="{{ color8 }}"
+
+# Temperature graph color (Green -> Yellow -> Red)
+theme[temp_start]="{{ color2 }}"
+theme[temp_mid]="{{ color3 }}"
+theme[temp_end]="{{ color1 }}"
+
+# CPU graph colors (Teal -> Lavender)
+theme[cpu_start]="{{ color6 }}"
+theme[cpu_mid]="{{ color4 }}"
+theme[cpu_end]="{{ color5 }}"
+
+# Mem/Disk free meter (Mauve -> Lavender -> Blue)
+theme[free_start]="{{ color5 }}"
+theme[free_mid]="{{ color4 }}"
+theme[free_end]="{{ color6 }}"
+
+# Mem/Disk cached meter (Sapphire -> Lavender)
+theme[cached_start]="{{ color4 }}"
+theme[cached_mid]="{{ color6 }}"
+theme[cached_end]="{{ color5 }}"
+
+# Mem/Disk available meter (Peach -> Red)
+theme[available_start]="{{ color3 }}"
+theme[available_mid]="{{ color1 }}"
+theme[available_end]="{{ color1 }}"
+
+# Mem/Disk used meter (Green -> Sky)
+theme[used_start]="{{ color2 }}"
+theme[used_mid]="{{ color6 }}"
+theme[used_end]="{{ color4 }}"
+
+# Download graph colors (Peach -> Red)
+theme[download_start]="{{ color3 }}"
+theme[download_mid]="{{ color1 }}"
+theme[download_end]="{{ color1 }}"
+
+# Upload graph colors (Green -> Sky)
+theme[upload_start]="{{ color2 }}"
+theme[upload_mid]="{{ color6 }}"
+theme[upload_end]="{{ color4 }}"
+
+# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
+theme[process_start]="{{ color6 }}"
+theme[process_mid]="{{ color4 }}"
+theme[process_end]="{{ color5 }}"
diff --git a/roles/hyprtheme/templates/theme/ghostty.conf.j2 b/roles/hyprtheme/templates/theme/ghostty.conf.j2
new file mode 100644
index 00000000..bafc6498
--- /dev/null
+++ b/roles/hyprtheme/templates/theme/ghostty.conf.j2
@@ -0,0 +1,22 @@
+background = {{ background }}
+foreground = {{ foreground }}
+cursor-color = {{ cursor }}
+selection-background = {{ selection_background }}
+selection-foreground = {{ selection_foreground }}
+
+palette = 0={{ color0 }}
+palette = 1={{ color1 }}
+palette = 2={{ color2 }}
+palette = 3={{ color3 }}
+palette = 4={{ color4 }}
+palette = 5={{ color5 }}
+palette = 6={{ color6 }}
+palette = 7={{ color7 }}
+palette = 8={{ color8 }}
+palette = 9={{ color9 }}
+palette = 10={{ color10 }}
+palette = 11={{ color11 }}
+palette = 12={{ color12 }}
+palette = 13={{ color13 }}
+palette = 14={{ color14 }}
+palette = 15={{ color15 }}
diff --git a/roles/hyprtheme/templates/theme/hyprland.conf.j2 b/roles/hyprtheme/templates/theme/hyprland.conf.j2
new file mode 100644
index 00000000..8b0eda90
--- /dev/null
+++ b/roles/hyprtheme/templates/theme/hyprland.conf.j2
@@ -0,0 +1,3 @@
+$font = {{ hyprtheme_default_font }}
+$active = rgb({{ accent[1:] }})
+$inactive = rgb({{ color0[1:] }})
diff --git a/roles/hyprtheme/templates/theme/hyprlock.conf.j2 b/roles/hyprtheme/templates/theme/hyprlock.conf.j2
new file mode 100644
index 00000000..98a0beca
--- /dev/null
+++ b/roles/hyprtheme/templates/theme/hyprlock.conf.j2
@@ -0,0 +1,10 @@
+{% macro hex_to_rgb(hex) -%}
+{{ hex[1:3] | int(base=16)}}, {{ hex[3:5] | int(base=16) }}, {{ hex[5:7] | int(base=16) }}
+{%- endmacro %}
+
+$font = {{ hyprtheme_default_font }}
+$color = rgba({{ hex_to_rgb(background) }}, 1.0)
+$inner_color = rgba({{ hex_to_rgb(background) }}, 0.8)
+$outer_color = rgba({{ hex_to_rgb(accent) }}, 1.0)
+$font_color = rgba({{ hex_to_rgb(foreground) }}, 1.0)
+$check_color = rgba({{ hex_to_rgb(foreground) }}, 1.0)
diff --git a/roles/hyprtheme/templates/theme/icons.theme.j2 b/roles/hyprtheme/templates/theme/icons.theme.j2
new file mode 100644
index 00000000..6ca35abd
--- /dev/null
+++ b/roles/hyprtheme/templates/theme/icons.theme.j2
@@ -0,0 +1 @@
+{{ icons_theme }}
diff --git a/roles/hyprtheme/templates/theme/kitty.conf.j2 b/roles/hyprtheme/templates/theme/kitty.conf.j2
new file mode 100644
index 00000000..e74a5bbc
--- /dev/null
+++ b/roles/hyprtheme/templates/theme/kitty.conf.j2
@@ -0,0 +1,27 @@
+foreground {{ foreground }}
+background {{ background }}
+selection_foreground {{ selection_foreground }}
+selection_background {{ selection_background }}
+
+cursor {{ cursor }}
+cursor_text_color {{ background }}
+
+active_border_color {{ accent }}
+active_tab_background {{ accent }}
+
+color0 {{ color0 }}
+color1 {{ color1 }}
+color2 {{ color2 }}
+color3 {{ color3 }}
+color4 {{ color4 }}
+color5 {{ color5 }}
+color6 {{ color6 }}
+color7 {{ color7 }}
+color8 {{ color8 }}
+color9 {{ color9 }}
+color10 {{ color10 }}
+color11 {{ color11 }}
+color12 {{ color12 }}
+color13 {{ color13 }}
+color14 {{ color14 }}
+color15 {{ color15 }}
diff --git a/roles/hyprtheme/templates/theme/swayosd.css.j2 b/roles/hyprtheme/templates/theme/swayosd.css.j2
new file mode 100644
index 00000000..e06402c4
--- /dev/null
+++ b/roles/hyprtheme/templates/theme/swayosd.css.j2
@@ -0,0 +1,5 @@
+@define-color background-color {{ background }};
+@define-color border-color {{ foreground }};
+@define-color label {{ foreground }};
+@define-color image {{ foreground }};
+@define-color progress {{ accent }};
diff --git a/roles/hyprtheme/templates/theme/walker.css.j2 b/roles/hyprtheme/templates/theme/walker.css.j2
new file mode 100644
index 00000000..123ca92c
--- /dev/null
+++ b/roles/hyprtheme/templates/theme/walker.css.j2
@@ -0,0 +1,6 @@
+@define-color selected-text {{ accent }};
+@define-color text {{ foreground }};
+@define-color base {{ background }};
+@define-color border {{ foreground }};
+@define-color foreground {{ foreground }};
+@define-color background {{ background }};
diff --git a/roles/hyprtheme/templates/theme/waybar.css.j2 b/roles/hyprtheme/templates/theme/waybar.css.j2
new file mode 100644
index 00000000..a8b00988
--- /dev/null
+++ b/roles/hyprtheme/templates/theme/waybar.css.j2
@@ -0,0 +1,4 @@
+@define-color activeColor {{ accent }};
+@define-color inactiveColor {{ color0 }};
+@define-color background {{ background }};
+@define-color foreground {{ foreground }};
diff --git a/roles/hyprtheme/vars/catppuccin.yml b/roles/hyprtheme/vars/catppuccin.yml
new file mode 100644
index 00000000..c68b62dd
--- /dev/null
+++ b/roles/hyprtheme/vars/catppuccin.yml
@@ -0,0 +1,26 @@
+---
+accent: "#89b4fa"
+cursor: "#f5e0dc"
+foreground: "#cdd6f4"
+background: "#1e1e2e"
+selection_foreground: "#1e1e2e"
+selection_background: "#f5e0dc"
+
+color0: "#45475a"
+color1: "#f38ba8"
+color2: "#a6e3a1"
+color3: "#f9e2af"
+color4: "#89b4fa"
+color5: "#f5c2e7"
+color6: "#94e2d5"
+color7: "#bac2de"
+color8: "#585b70"
+color9: "#f38ba8"
+color10: "#a6e3a1"
+color11: "#f9e2af"
+color12: "#89b4fa"
+color13: "#f5c2e7"
+color14: "#94e2d5"
+color15: "#a6adc8"
+
+icons_theme: "Yaru-purple"
diff --git a/roles/hyprtheme/vars/everforest.yml b/roles/hyprtheme/vars/everforest.yml
new file mode 100644
index 00000000..00d19940
--- /dev/null
+++ b/roles/hyprtheme/vars/everforest.yml
@@ -0,0 +1,28 @@
+---
+accent: "#7fbbb3"
+cursor: "#d3c6aa"
+foreground: "#d3c6aa"
+background: "#111111"
+selection_foreground: "#111111"
+# background: "#2d353b"
+# selection_foreground: "#2d353b"
+selection_background: "#d3c6aa"
+
+color0: "#475258"
+color1: "#e67e80"
+color2: "#a7c080"
+color3: "#dbbc7f"
+color4: "#7fbbb3"
+color5: "#d699b6"
+color6: "#83c092"
+color7: "#d3c6aa"
+color8: "#475258"
+color9: "#e67e80"
+color10: "#a7c080"
+color11: "#dbbc7f"
+color12: "#7fbbb3"
+color13: "#d699b6"
+color14: "#83c092"
+color15: "#d3c6aa"
+
+icons_theme: "Yaru-sage"