deleted: ../apps-list-zero.md

new file:   DankMaterialShell/.changelog-1.4
 	new file:   DankMaterialShell/.firstlaunch
 	new file:   DankMaterialShell/firefox.css
 	new file:   DankMaterialShell/plugins/cavaVisualizer
 	new file:   DankMaterialShell/plugins/dankAudioVisualizer
 	new file:   DankMaterialShell/plugins/desktopCommand
 	new file:   DankMaterialShell/settings.json
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-blue-dark.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-blue-light.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-blue.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-cyan-dark.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-cyan-light.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-cyan.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-dark.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-lavender-dark.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-lavender-light.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-lavender.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-light.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-mint-dark.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-mint-light.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-mint.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-pink-dark.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-pink-light.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-pink.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-salmon-dark.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-salmon-light.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/preview-salmon.svg
 	new file:   DankMaterialShell/themes/peaceAndQuiet/theme.json
 	new file:   DankMaterialShell/themes/zzz/theme.json
 	new file:   DankMaterialShell/themes/zzz/theme1.json
 	new file:   DankMaterialShell/zen.css
 	new file:   Kvantum/KvLibadwaitaDark#/KvLibadwaitaDark#.kvconfig
 	new file:   Kvantum/kvantum.kvconfig
 	new file:   aichat/config.yaml
 	modified:   btop/btop.conf
 	new file:   btop/themes/noctalia.theme
 	new file:   calcurse/conf
 	new file:   calcurse/keys
 	new file:   cava/config
 	new file:   cava/shaders/bar_spectrum.frag
 	new file:   cava/shaders/eye_of_phi.frag
 	new file:   cava/shaders/northern_lights.frag
 	new file:   cava/shaders/pass_through.vert
 	new file:   cava/shaders/spectrogram.frag
 	new file:   cava/shaders/winamp_line_style_spectrum.frag
 	new file:   cava/themes/solarized_dark
 	new file:   cava/themes/tricolor
 	new file:   fastfetch/0.01.jsonc
 	new file:   fastfetch/0.02.jsonc
 	new file:   fastfetch/color.jsonc
 	new file:   fastfetch/setts/all.jsonc
 	new file:   fastfetch/setts/archey.jsonc
 	new file:   fastfetch/setts/ci.jsonc
 	new file:   fastfetch/setts/examples/10.jsonc
 	new file:   fastfetch/setts/examples/11.jsonc
 	new file:   fastfetch/setts/examples/12.jsonc
 	new file:   fastfetch/setts/examples/13.jsonc
 	new file:   fastfetch/setts/examples/14.jsonc
 	new file:   fastfetch/setts/examples/15.jsonc
 	new file:   fastfetch/setts/examples/16.jsonc
 	new file:   fastfetch/setts/examples/17.jsonc
 	new file:   fastfetch/setts/examples/18.jsonc
 	new file:   fastfetch/setts/examples/19.jsonc
 	new file:   fastfetch/setts/examples/2.jsonc
 	new file:   fastfetch/setts/examples/20.jsonc
 	new file:   fastfetch/setts/examples/21.jsonc
 	new file:   fastfetch/setts/examples/22.jsonc
 	new file:   fastfetch/setts/examples/23.jsonc
 	new file:   fastfetch/setts/examples/24.jsonc
 	new file:   fastfetch/setts/examples/25.jsonc
 	new file:   fastfetch/setts/examples/26.jsonc
 	new file:   fastfetch/setts/examples/27.jsonc
 	new file:   fastfetch/setts/examples/28.jsonc
 	new file:   fastfetch/setts/examples/29.jsonc
 	new file:   fastfetch/setts/examples/3.jsonc
 	new file:   fastfetch/setts/examples/30.jsonc
 	new file:   fastfetch/setts/examples/4.jsonc
 	new file:   fastfetch/setts/examples/5.jsonc
 	new file:   fastfetch/setts/examples/6.jsonc
 	new file:   fastfetch/setts/examples/7.jsonc
 	new file:   fastfetch/setts/examples/8.jsonc
 	new file:   fastfetch/setts/examples/9.jsonc
 	new file:   fastfetch/setts/neofetch.jsonc
 	new file:   fastfetch/setts/paleofetch.jsonc
 	new file:   fastfetch/setts/screenfetch.jsonc
 	modified:   fish/config.fish
 	modified:   fish/fish_variables
 	new file:   fish/fish_variables2DWmNcGa9T
 	new file:   fish/functions/ffcolor.fish
 	modified:   fish/functions/fish_prompt.fish.bak
 	new file:   fish/functions/lt.fish
 	modified:   fish/functions/p.fish
 	new file:   fish/functions/tide/configure/icons.fish
 	new file:   fish/functions/vpn-debug.fish
 	modified:   fish/functions/vpn.fish
 	new file:   foot/dank-colors.ini
 	modified:   foot/foot.ini
 	new file:   fsel/config.toml
 	modified:   fuzzel/fuzzel.ini
 	modified:   hyprwave/config.conf
 	new file:   hyprwhspr/config.json
 	new file:   hyprwhspr/mic_osd.pid
 	new file:   i3/config
 	new file:   ironbar/config.json
 	new file:   ironbar/schema-v0.18.0.json
 	new file:   ironbar/scripts/pomo
 	new file:   ironbar/scripts/walker.sh
 	new file:   ironbar/style.css
 	new file:   keymap.xkb
 	new file:   kitty/dank-tabs.conf
 	new file:   kitty/dank-theme.conf
 	new file:   matugen/config.toml
 	new file:   matugen/custom3.json
 	modified:   mimeapps.list
 	modified:   mpDris2/mpDris2.conf
 	new file:   niri/animation.kdl
 	new file:   niri/bak.config.kdl
 	new file:   niri/binds.kdl
 	new file:   niri/caps
 	modified:   niri/config.kdl
 	new file:   niri/config.kdl.backup1776208575
 	new file:   niri/config.kdl.backup1776211503
 	new file:   niri/config.kdl.backup1776211623
 	new file:   niri/dms/alttab.kdl
 	new file:   niri/dms/binds.kdl
 	new file:   niri/dms/colors.kdl
 	new file:   niri/dms/cursor.kdl
 	new file:   niri/dms/layout.kdl
 	new file:   niri/dms/outputs.kdl
 	new file:   niri/dms/profiles/profile_1776211496314_g03e3q.kdl
 	new file:   niri/dms/windowrules.kdl
 	new file:   niri/dms/wpblur.kdl
 	new file:   niri/emoji.png
 	new file:   niri/executable_caps
 	new file:   niri/input.kdl
 	new file:   niri/ironbar-toggle.sh
 	new file:   niri/layer-rule.kdl
 	new file:   niri/layout.kdl
 	new file:   niri/lock.sh
 	new file:   niri/noctalia-toggle.sh
 	new file:   niri/output-pc.kdl
 	new file:   niri/spawn-at-startup.kdl
 	new file:   niri/window-rule.kdl
 	new file:   nix/nix.conf
 	modified:   nvim/lazy-lock.json
 	modified:   nvim/lazyvim.json
 	new file:   nvim/lua/plugins/dankcolors.lua
 	new file:   nvim/lua/plugins/gpanders-nvim-parinfer.lua
 	new file:   nvim/lua/plugins/tokyo-night.lua
 	new file:   nvim/lua/tokyonight.nvim
 	new file:   nwg-look/config
 	new file:   omarchy/current/background
 	new file:   omarchy/hooks/theme-set
 	new file:   omarchy/hooks/theme-set.d/00-fish.sh
 	new file:   omarchy/hooks/theme-set.d/00-fzf.sh
 	new file:   omarchy/hooks/theme-set.d/10-discord.sh
 	new file:   omarchy/hooks/theme-set.d/10-gtk.sh
 	new file:   omarchy/hooks/theme-set.d/10-qt6ct.sh
 	new file:   omarchy/hooks/theme-set.d/10-spotify.sh
 	new file:   omarchy/hooks/theme-set.d/10-superfile.sh
 	new file:   omarchy/hooks/theme-set.d/10-vicinae.sh
 	new file:   omarchy/hooks/theme-set.d/15-typora.sh
 	new file:   omarchy/hooks/theme-set.d/20-nwg-dock-hyprland.sh
 	new file:   omarchy/hooks/theme-set.d/20-zed.sh
 	new file:   omarchy/hooks/theme-set.d/30-cursor.sh
 	new file:   omarchy/hooks/theme-set.d/30-vscode.sh
 	new file:   omarchy/hooks/theme-set.d/30-windsurf.sh
 	new file:   omarchy/hooks/theme-set.d/40-cava.sh
 	new file:   omarchy/hooks/theme-set.d/40-firefox.sh
 	new file:   omarchy/hooks/theme-set.d/40-steam.sh
 	new file:   omarchy/hooks/theme-set.d/40-zen.sh
 	new file:   omarchy/hooks/theme-set.d/50-heroic.sh
 	new file:   omarchy/themes/aether
 	new file:   pomo/config.json
 	new file:   scripts/niri/caps
 	new file:   scripts/niri/ru.png
 	new file:   scripts/niri/us.png
 	new file:   starship.toml
 	modified:   swaync/config.json
 	new file:   swaync/config_1.json
 	modified:   swaync/style.css
 	new file:   swaync/style_1.css
 	new file:   systemd/user/default.target.wants/mpDris2.service
 	new file:   systemd/user/default.target.wants/mpd.service
 	new file:   systemd/user/default.target.wants/mpris-proxy.service
 	new file:   systemd/user/default.target.wants/openrazer-daemon.service
 	new file:   systemd/user/default.target.wants/pipewire-pulse.service
 	new file:   systemd/user/default.target.wants/pipewire.service
 	new file:   systemd/user/default.target.wants/ydotool.service
 	new file:   systemd/user/elephant.service
 	new file:   systemd/user/gnome-session.target.wants/gnome-remote-desktop.service
 	new file:   systemd/user/graphical-session.target.wants/elephant.service
 	new file:   systemd/user/graphical-session.target.wants/hyprwhspr.service
 	new file:   systemd/user/hyprwhspr.service
 	new file:   systemd/user/sockets.target.wants/mpd.socket
 	new file:   systemd/user/sockets.target.wants/pipewire-pulse.socket
 	new file:   systemd/user/sockets.target.wants/pipewire.socket
 	new file:   tofi/config
 	new file:   user-dirs.conf
 	renamed:    ../user-dirs.dirs -> user-dirs.dirs
 	new file:   user-dirs.locale
 	modified:   walker/config.toml
 	new file:   wl-kbptr/config
 	new file:   xdg-desktop-portal/portals.conf
 	new file:   xsettingsd/xsettingsd.conf
 	new file:   yt-dlp/config
 	new file:   zathura/zathurarc
 	renamed:    ../zram-generator.conf -> zram-generator.conf
 	modified:   ../copy.sh
 	deleted:    ../nix-packages.md
 	new file:   ../nix-pkgs.txt
 	deleted:    ../pacman-packages.md
 	renamed:    ../apps-list.md -> ../pkgs.txt
 	renamed:    ../services.md -> ../services.txt
This commit is contained in:
nekochemist 2026-04-19 21:44:51 +05:00
parent 2a13fe3170
commit 6604f0b324
215 changed files with 25265 additions and 3898 deletions

View file

@ -0,0 +1 @@
/home/unconfer/.config/aether/theme/backgrounds/screenshot-from-2026-03-18 16-27-26.png

162
config/omarchy/hooks/theme-set Executable file
View file

@ -0,0 +1,162 @@
#!/bin/bash
# Omarchy 3.3+ uses colors.toml as the source of truth for theme colors.
# Previously we read from alacritty.toml, but that file is now generated
# from templates and may contain unrendered {{ placeholders }}.
input_file="$HOME/.config/omarchy/current/theme/colors.toml"
if [[ ! -f "$input_file" ]]; then
error "colors.toml not found at $input_file. Ensure your theme is compatible with Omarchy 3.3+ and includes colors.toml."
fi
# Extract color value from colors.toml (flat key=value format)
extract_color() {
local color_name="$1"
awk -v color="$color_name" '
$1 == color && /=/ {
if (match($0, /#([0-9a-fA-F]{6})/)) {
print substr($0, RSTART + 1, 6)
exit
}
}
' "$input_file"
}
success() {
echo -e "\e[32m[SUCCESS]\e[0m $1"
}
skipped() {
echo -e "\033[0;34m[SKIPPED]\e[0m $1 not found. Skipping.."
exit 0
}
warning() {
echo -e "\033[0;33m[WARNING]\e[0m $1"
}
error() {
echo -e "\e[31m[ERROR]\e[0m $1"
exit 1
}
export -f success warning error skipped
hex2rgb() {
hex_input=$1
r=$((16#${hex_input:0:2}))
g=$((16#${hex_input:2:2}))
b=$((16#${hex_input:4:2}))
echo "$r, $g, $b"
}
rgb2hex() {
r=$1
g=$2
b=$3
printf "%02x%02x%02x" $r $g $b
}
change_shade() {
local hex_color=$1
local shade=$2
hex_input=$1
r=$((16#${hex_input:0:2}))
g=$((16#${hex_input:2:2}))
b=$((16#${hex_input:4:2}))
r=$((r + shade))
g=$((g + shade))
b=$((b + shade))
rgb2hex $r $g $b
}
restart_scripts=()
restart_file=$(mktemp)
export restart_file
require_restart() {
echo "$1" >> "$restart_file"
}
export -f rgb2hex hex2rgb change_shade require_restart
# Extract colors from colors.toml (Omarchy 3.3+ format)
primary_foreground=$(extract_color "foreground")
primary_background=$(extract_color "background")
cursor_color=$(extract_color "cursor")
selection_foreground=$(extract_color "selection_foreground")
selection_background=$(extract_color "selection_background")
normal_black=$(extract_color "color0")
normal_red=$(extract_color "color1")
normal_green=$(extract_color "color2")
normal_yellow=$(extract_color "color3")
normal_blue=$(extract_color "color4")
normal_magenta=$(extract_color "color5")
normal_cyan=$(extract_color "color6")
normal_white=$(extract_color "color7")
bright_black=$(extract_color "color8")
bright_red=$(extract_color "color9")
bright_green=$(extract_color "color10")
bright_yellow=$(extract_color "color11")
bright_blue=$(extract_color "color12")
bright_magenta=$(extract_color "color13")
bright_cyan=$(extract_color "color14")
bright_white=$(extract_color "color15")
export primary_background primary_foreground cursor_color selection_foreground selection_background
export normal_black normal_red normal_green normal_yellow normal_blue normal_magenta normal_cyan normal_white
export bright_black bright_red bright_green bright_yellow bright_blue bright_magenta bright_cyan bright_white
rgb_primary_foreground=$(hex2rgb $primary_foreground)
rgb_primary_background=$(hex2rgb $primary_background)
rgb_normal_black=$(hex2rgb $normal_black)
rgb_normal_red=$(hex2rgb $normal_red)
rgb_normal_green=$(hex2rgb $normal_green)
rgb_normal_yellow=$(hex2rgb $normal_yellow)
rgb_normal_blue=$(hex2rgb $normal_blue)
rgb_normal_magenta=$(hex2rgb $normal_magenta)
rgb_normal_cyan=$(hex2rgb $normal_cyan)
rgb_normal_white=$(hex2rgb $normal_white)
rgb_bright_black=$(hex2rgb $bright_black)
rgb_bright_red=$(hex2rgb $bright_red)
rgb_bright_green=$(hex2rgb $bright_green)
rgb_bright_yellow=$(hex2rgb $bright_yellow)
rgb_bright_blue=$(hex2rgb $bright_blue)
rgb_bright_magenta=$(hex2rgb $bright_magenta)
rgb_bright_cyan=$(hex2rgb $bright_cyan)
rgb_bright_white=$(hex2rgb $bright_white)
export rgb_primary_foreground rgb_primary_background
export rgb_normal_black rgb_normal_red rgb_normal_green rgb_normal_yellow rgb_normal_blue rgb_normal_magenta rgb_normal_cyan rgb_normal_white
export rgb_bright_black rgb_bright_red rgb_bright_green rgb_bright_yellow rgb_bright_blue rgb_bright_magenta rgb_bright_cyan rgb_bright_white
if [[ -d ~/.config/omarchy/hooks/theme-set.d ]]; then
for hook in ~/.config/omarchy/hooks/theme-set.d/*.sh; do
if [[ -f "$hook" && -x "$hook" ]]; then
if ! "$hook" "$@"; then
error "Hook $(basename "$hook") failed!" >&2
fi
fi
done
if [[ -f "$restart_file" ]]; then
mapfile -t restart_scripts < "$restart_file"
rm "$restart_file"
fi
if [[ ${#restart_scripts[@]} -gt 0 ]]; then
running=()
for app in "${restart_scripts[@]}"; do
if pgrep -x "$app" > /dev/null; then
running+=("${app^}")
fi
done
if [[ ${#running[@]} -gt 0 ]]; then
apps=""
for app in "${running[@]}"; do
apps+="- $app"$'\n'
done
notify-send "Omarchy Theme Hook" "The following apps require a restart to apply theme:\n\n$apps"
fi
fi
fi

View file

@ -0,0 +1,40 @@
#!/bin/bash
output_file="$HOME/.config/omarchy/current/theme/colors.fish"
if ! command -v fish >/dev/null 2>&1; then
skipped "Fish - Colors"
fi
cat > "$output_file" << EOF
set -U background '#${primary_background}'
set -U foreground '#${primary_foreground}'
set -U cursor '#${primary_foreground}'
set -U color0 '#${normal_black}'
set -U color1 '#${normal_red}'
set -U color2 '#${normal_green}'
set -U color3 '#${normal_yellow}'
set -U color4 '#${normal_blue}'
set -U color5 '#${normal_magenta}'
set -U color6 '#${normal_cyan}'
set -U color7 '#${normal_white}'
set -U color8 '#${bright_black}'
set -U color9 '#${bright_red}'
set -U color10 '#${bright_green}'
set -U color11 '#${bright_yellow}'
set -U color12 '#${bright_blue}'
set -U color13 '#${bright_magenta}'
set -U color14 '#${bright_cyan}'
set -U color15 '#${bright_white}'
set -U fish_color_normal normal
set -U fish_color_command green
set -U fish_color_param cyan
set -U fish_pager_color_completion
set -U fish_pager_color_description \$fish_color_quote yellow
set -U fish_pager_color_progress brwhite --background=cyan
set -U fish_color_history_current --bold
EOF
fish -c "source $output_file"
success "fish colors updated!"

View file

@ -0,0 +1,42 @@
#!/bin/bash
output_file="$HOME/.config/omarchy/current/theme/fzf.fish"
if ! command -v fish >/dev/null 2>&1; then
skipped "Fish - FZF"
fi
cat > "$output_file" << EOF
set -l color00 '#${normal_black}'
set -l color01 '#${normal_red}'
set -l color02 '#${normal_green}'
set -l color03 '#${normal_yellow}'
set -l color04 '#${normal_blue}'
set -l color05 '#${normal_magenta}'
set -l color06 '#${normal_cyan}'
set -l color07 '#${normal_white}'
set -l color08 '#${bright_black}'
set -l color09 '#${bright_red}'
set -l color0A '#${bright_green}'
set -l color0B '#${bright_yellow}'
set -l color0C '#${bright_blue}'
set -l color0D '#${bright_magenta}'
set -l color0E '#${bright_cyan}'
set -l color0F '#${bright_white}'
set -l FZF_NON_COLOR_OPTS
for arg in (echo \$FZF_DEFAULT_OPTS | tr " " "\n")
if not string match -q -- "--color*" \$arg
set -a FZF_NON_COLOR_OPTS \$arg
end
end
set -Ux FZF_DEFAULT_OPTS "\$FZF_NON_COLOR_OPTS"\
" --color=bg+:\$color00,bg:\$color00,spinner:\$color0E,hl:\$color0D"\
" --color=fg:\$color07,header:\$color0D,info:\$color0A,pointer:\$color0E"\
" --color=marker:\$color0E,fg+:\$color06,prompt:\$color0A,hl+:\$color0D"
EOF
fish -c "source $output_file"
success "fzf colors updated!"

View file

@ -0,0 +1,87 @@
#!/bin/bash
output_file="$HOME/.config/omarchy/current/theme/vencord.theme.css"
possible_paths=(
"$HOME/.config/Vencord/themes"
"$HOME/.config/vesktop/themes"
"$HOME/.config/Equicord/themes"
"$HOME/.config/equibop/themes"
"/var/lib/flatpak/app/com.discordapp.Discord/themes"
"/var/lib/flatpak/app/dev.vencord.Vesktop/themes"
"/var/lib/flatpak/app/io.github.equicord.equibop/themes",
"$HOME/.var/app/dev.vencord.Vesktop/config/vesktop/themes"
)
create_dynamic_theme() {
cat > "$output_file" << EOF
/**
* @name Match System
* @author @bypass_
* @version 0.1.0
* @description Match your current system theme.
* @source https://github.com/imbypass/base16-Discord
**/
@import url("https://imbypass.github.io/base16-discord/omarchy-discord.theme.css");
:root {
--color00: #${primary_background};
--color01: #${primary_background};
--color02: #${primary_background};
--color03: #${normal_white};
--color04: #${bright_white};
--color05: #${bright_white};
--color06: #${bright_white};
--color07: #${bright_white};
--color08: #${normal_red};
--color09: #${normal_yellow};
--color10: #${bright_yellow};
--color11: #${normal_green};
--color12: #${normal_cyan};
--color13: #${normal_blue};
--color14: #${normal_magenta};
--color15: #${normal_yellow};
}
EOF
for path in "${possible_paths[@]}"; do
if [ -d "$path" ]; then
if [[ -f "$path/vencord.theme.css" ]]; then
rm "$path/vencord.theme.css"
fi
cp "$output_file" "$path/vencord.theme.css"
for file in "$path"/*; do
if [ -f "$file" ]; then
touch "$file"
fi
done
fi
done
}
check_for_theme() {
if [[ -f $HOME/.config/omarchy/current/theme/vencord.theme.css ]]; then
for path in "${possible_paths[@]}"; do
if [ -d "$path" ]; then
if [[ -f "$path/vencord.theme.css" ]]; then
rm "$path/vencord.theme.css"
fi
cp -f $HOME/.config/omarchy/current/theme/vencord.theme.css "$path/vencord.theme.css"
fi
for file in "$path"/*; do
if [ -f "$file" ]; then
touch "$file"
fi
done
done
else
create_dynamic_theme
fi
}
check_for_theme
success "Discord theme updated!"
exit 0

View file

@ -0,0 +1,218 @@
#!/bin/bash
output_file="$HOME/.config/omarchy/current/theme/gtk.css"
light_file="$HOME/.config/omarchy/current/theme/light.mode"
gtk3_dir="$HOME/.config/gtk-3.0"
gtk4_dir="$HOME/.config/gtk-4.0"
gtk3_file="$gtk3_dir/gtk.css"
gtk4_file="$gtk4_dir/gtk.css"
create_dynamic_theme() {
cat > "$output_file" << EOF
@define-color background #${primary_background};
@define-color foreground #${primary_foreground};
@define-color black #${primary_background};
@define-color red #${normal_red};
@define-color green #${normal_green};
@define-color yellow #${normal_yellow};
@define-color blue #${normal_blue};
@define-color magenta #${normal_magenta};
@define-color cyan #${normal_cyan};
@define-color white #${normal_white};
@define-color bright_black #${bright_black};
@define-color bright_red #${bright_red};
@define-color bright_green #${bright_green};
@define-color bright_yellow #${bright_yellow};
@define-color bright_blue #${bright_blue};
@define-color bright_magenta #${bright_magenta};
@define-color bright_cyan #${bright_cyan};
@define-color bright_white #${bright_white};
@define-color accent_bg_color @blue;
@define-color accent_fg_color @background;
@define-color accent_color @cyan;
@define-color window_bg_color @background;
@define-color window_fg_color @foreground;
@define-color view_bg_color @black;
@define-color view_fg_color @foreground;
@define-color sidebar_bg_color @black;
@define-color sidebar_fg_color @foreground;
@define-color sidebar_backdrop_color @black;
@define-color sidebar_shade_color @black;
@define-color headerbar_bg_color @background;
@define-color headerbar_fg_color @foreground;
@define-color headerbar_backdrop_color @black;
@define-color headerbar_shade_color @black;
@define-color card_bg_color @background;
@define-color card_fg_color @foreground;
@define-color popover_bg_color @black;
@define-color popover_fg_color @foreground;
@define-color destructive_bg_color @red;
@define-color destructive_fg_color @background;
@define-color success_bg_color @green;
@define-color success_fg_color @background;
@define-color warning_bg_color @yellow;
@define-color warning_fg_color @background;
@define-color error_bg_color @red;
@define-color error_fg_color @background;
@define-color dialog_bg_color @background;
@define-color dialog_fg_color @foreground;
@define-color borders alpha(@foreground, 0.1);
@define-color theme_fg_color @foreground;
@define-color theme_text_color @foreground;
@define-color theme_bg_color @background;
@define-color theme_base_color @black;
@define-color theme_selected_bg_color @blue;
@define-color theme_selected_fg_color @background;
@define-color insensitive_bg_color @background;
@define-color insensitive_fg_color @bright_black;
@define-color insensitive_base_color @black;
@define-color theme_unfocused_fg_color @foreground;
@define-color theme_unfocused_text_color @foreground;
@define-color theme_unfocused_bg_color @background;
@define-color theme_unfocused_base_color @black;
@define-color theme_unfocused_selected_bg_color @blue;
@define-color theme_unfocused_selected_fg_color @background;
@define-color unfocused_insensitive_color @bright_black;
@define-color unfocused_borders alpha(@foreground, 0.1);
@define-color warning_color @yellow;
@define-color error_color @red;
@define-color success_color @green;
@define-color destructive_color @red;
@define-color content_view_bg @black;
@define-color text_view_bg @black;
messagedialog {
background-color: @dialog_bg_color;
}
messagedialog label {
color: @dialog_fg_color;
font-size: 14pt;
font-weight: bold;
}
messagedialog .secondary-text {
font-size: 10pt;
font-style: italic;
}
messagedialog button {
background-color: @black;
color: @foreground;
border: 1px solid @bright_black;
padding: 10px;
}
messagedialog button:hover {
background-color: @blue;
}
banner revealer widget {
background: @bright_black;
padding: 5px;
color: @foreground;
}
alertdialog.background {
background-color: @dialog_bg_color;
color: @dialog_fg_color;
}
alertdialog .titlebar {
background-color: @headerbar_bg_color;
color: @headerbar_fg_color;
}
alertdialog box {
background-color: @dialog_bg_color;
}
alertdialog label {
color: @dialog_fg_color;
}
filechooser .dialog-action-box {
border-top: 1px solid @bright_black;
}
filechooser .dialog-action-box:backdrop {
border-top-color: @black;
}
filechooser #pathbarbox {
border-bottom: 1px solid @bright_black;
}
filechooserbutton:drop(active) {
box-shadow: none;
border-color: transparent;
}
toast {
background-color: @black;
color: @foreground;
}
toast button.circular.flat.image-button:hover {
color: @background;
background-color: @red;
}
/* .svg-icon {
filter: invert(79%) sepia(18%) saturate(611%) hue-rotate(192deg)
brightness(103%) contrast(94%);
} */
EOF
}
if [ ! -d "$gtk3_dir" ]; then
mkdir -p "$gtk3_dir"
fi
if [ ! -d "$gtk4_dir" ]; then
mkdir -p "$gtk4_dir"
fi
if [ -f "$output_file" ]; then
if [ ! -f "$gtk3_dir/gtk.css.backup" ]; then
cp "$gtk3_file" "$gtk3_dir/gtk.css.backup"
fi
cp -f "$output_file" "$gtk3_file"
if [ ! -f "$gtk4_dir/gtk.css.backup" ]; then
cp "$gtk4_file" "$gtk4_dir/gtk.css.backup"
fi
cp -f "$output_file" "$gtk4_file"
else
create_dynamic_theme
cp "$output_file" "$gtk3_file"
cp "$output_file" "$gtk4_file"
fi
if [ -f "$light_file" ]; then
gsettings set org.gnome.desktop.interface color-scheme "prefer-light"
gsettings set org.gnome.desktop.interface gtk-theme adw-gtk3-tmp
gsettings set org.gnome.desktop.interface gtk-theme adw-gtk3
else
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
gsettings set org.gnome.desktop.interface gtk-theme adw-gtk3-tmp-dark
gsettings set org.gnome.desktop.interface gtk-theme adw-gtk3-dark
fi
pkill -f xdg-desktop-portal-gtk
require_restart "nautilus"
success "GTK theme updated!"
exit 0

View file

@ -0,0 +1,39 @@
#!/bin/bash
new_qt_file="$HOME/.config/omarchy/current/theme/qt6ct.conf"
if ! command -v qt6ct >/dev/null 2>&1; then
skipped "Qt6ct"
fi
base00=$normal_black
base01=$(change_shade $normal_black 5)
base02=$(change_shade $normal_black 10)
base03=$(change_shade $normal_black 15)
base04=$(change_shade $normal_black 20)
base05=$primary_foreground
base06=$(change_shade $primary_foreground -5)
base07=$(change_shade $primary_foreground -10)
base08=$normal_red
base09=$normal_yellow
base0A=$bright_yellow
base0B=$normal_green
base0C=$normal_cyan
base0D=$normal_blue
base0E=$normal_magenta
base0F=$bright_red
if [ ! -f "$new_qt_file" ]; then
cat > "$new_qt_file" << EOF
[ColorScheme]
active_colors=#ff${base05}, #ff${base01}, #ff${base01}, #ff${base05}, #ff${base03}, #ff${base04}, #ff${base05}, #ff${base06}, #ff${base05}, #ff${base01}, #ff${base00}, #ff${base03}, #ff${base02}, #ff${base05}, #ff${base09}, #ff${base08}, #ff${base02}, #ff${base05}, #ff${base01}, #ff${base05}, #8f${base05}
disabled_colors=#ff${base00}, #ff${base01}, #ff${base01}, #ff${base04}, #ff${base03}, #ff${base04}, #ff${base00}, #ff${base00}, #ff${base00}, #ff${base01}, #ff${base00}, #ff${base03}, #ff${base02}, #ff${base04}, #ff${base09}, #ff${base08}, #ff${base02}, #ff${base04}, #ff${base01}, #ff${base00}, #8f${base00}
inactive_colors=#ff${base04}, #ff${base01}, #ff${base01}, #ff${base05}, #ff${base03}, #ff${base04}, #ff${base05}, #ff${base06}, #ff${base05}, #ff${base01}, #ff${base00}, #ff${base03}, #ff${base02}, #ff${base05}, #ff${base09}, #ff${base08}, #ff${base02}, #ff${base05}, #ff${base01}, #ff${base05}, #8f${base05}
EOF
fi
mkdir -p "$HOME/.config/qt6ct/colors"
cp -p -f "$new_qt_file" "$HOME/.config/qt6ct/colors/omarchy.conf"
success "Qt6 theme updated!"
exit 0

View file

@ -0,0 +1,109 @@
#!/bin/bash
create_spicetify_styling() {
mkdir -p "$HOME/.config/spicetify/Themes/omarchy"
cat > "$HOME/.config/spicetify/Themes/omarchy/user.css" << EOF
:root,
.encore-dark-theme,
.encore-base-set,
.encore-inverted-light-set {
--background-highlight: rgba(var(--spice-rgb-highlight), 0.25) !important;
}
.main-nowPlayingBar-container {
background-color: var(--background-base);
border-radius: 0.5rem;
padding: 0.5rem;
color: var(--spice-text);
}
.main-entityHeader-backgroundColor {
display: none !important;
}
.main-actionBarBackground-background {
display: none !important;
}
.main-home-homeHeader {
display: none !important;
}
.main-topBar-background,
.main-home-filterChipsSection {
background-color: var(--spice-main) !important;
}
EOF
}
change_spicetify_theme() {
spicetify config current_theme omarchy > /dev/null
spicetify config color_scheme base > /dev/null
}
create_dynamic_theme() {
color00=${primary_background}
color01=${normal_black}
color02=${bright_black}
color03=${normal_white}
color04=${bright_white}
color05=${primary_foreground}
color06=${bright_white}
color07=${bright_white}
color08=${normal_red}
color09=${normal_yellow}
color0A=${bright_yellow}
color0B=${normal_green}
color0C=${normal_cyan}
color0D=${normal_blue}
color0E=${normal_magenta}
color0F=${bright_red}
cat > "$HOME/.config/spicetify/Themes/omarchy/color.ini" << EOF
[base]
main = ${color00}
player = ${color00}
card = ${color00}
main-elevated = ${color00}
sidebar = ${color00}
shadow = ${color00}
notification = ${color02}
button-disabled = ${color02}
misc = ${color03}
selected-row = ${color03}
button = ${color03}
highlight = ${color07}
notification-error = ${color08}
button-active = ${color0B}
subtext = ${color03}
text = ${color07}
EOF
}
if ! command -v spicetify >/dev/null 2>&1; then
skipped "Spicetify"
fi
spotify_was_running=false
if pgrep -x "spotify" > /dev/null 2>&1; then
spotify_was_running=true
fi
create_spicetify_styling
create_dynamic_theme
change_spicetify_theme
if [ "$spotify_was_running" = true ]; then
spicetify apply > /dev/null 2>&1 &
else
setsid bash -c '
spicetify apply > /dev/null 2>&1 &
for i in {1..250}; do
if pgrep -x "spotify" > /dev/null 2>&1; then
sleep 0.2
killall -9 spotify > /dev/null 2>&1
exit 0
fi
sleep 0.1
done
' > /dev/null 2>&1 < /dev/null &
fi
success "Spotify theme updated!"
exit 0

View file

@ -0,0 +1,70 @@
#!/bin/bash
output_file="$HOME/.config/omarchy/current/theme/superfile.toml"
if ! command -v spf >/dev/null 2>&1; then
skipped "Superfile"
fi
if [ ! -f "$output_file" ]; then
cat > "$output_file" << EOF
# ========= Border =========
file_panel_border = '#${normal_white}'
sidebar_border = '#${normal_white}'
footer_border = '#${normal_white}'
# ========= Border Active =========
file_panel_border_active = '#${normal_blue}'
sidebar_border_active = '#${normal_blue}'
footer_border_active = '#${normal_blue}'
modal_border_active = '#${normal_blue}'
# ========= Background (bg) =========
full_screen_bg = '#${primary_background}'
file_panel_bg = '#${primary_background}'
sidebar_bg = '#${primary_background}'
footer_bg = '#${primary_background}'
modal_bg = '#${primary_background}'
# ========= Foreground (fg) =========
full_screen_fg = '#${primary_foreground}'
file_panel_fg = '#${primary_foreground}'
sidebar_fg = '#${primary_foreground}'
footer_fg = '#${primary_foreground}'
modal_fg = '#${primary_foreground}'
# ========= Special Color =========
cursor = '#${primary_foreground}'
correct = '#${normal_green}'
error = '#${normal_red}'
hint = '#${normal_cyan}'
cancel = '#${normal_red}'
gradient_color = ['#${normal_black}', "#${bright_black}"]
# ========= File Panel Special Items =========
file_panel_top_directory_icon = '#${normal_black}'
file_panel_top_path = '#${bright_black}'
file_panel_item_selected_fg = '#${bright_black}'
file_panel_item_selected_bg = '#${primary_background}'
# ========= Sidebar Special Items =========
sidebar_title = '#${bright_white}'
sidebar_item_selected_fg = '#${bright_black}'
sidebar_item_selected_bg = '#${primary_background}'
sidebar_divider = '#${normal_white}'
# ========= Modal Special Items =========
modal_cancel_fg = "#383838"
modal_cancel_bg = '#${normal_red}'
modal_confirm_fg = "#383838"
modal_confirm_bg = '#${normal_green}'
EOF
fi
mkdir -p "$HOME/.config/superfile/theme/"
cp -p -f "$output_file" "$HOME/.config/superfile/theme/omarchy.toml"
require_restart "spf"
success "Superfile theme updated!"
exit 0

View file

@ -0,0 +1,52 @@
#!/bin/bash
output_file="$HOME/.config/omarchy/current/theme/vicinae.toml"
if ! command -v vicinae >/dev/null 2>&1; then
skipped "Vicinae"
fi
if [ ! -f "$output_file" ]; then
cat > "$output_file" << EOF
[meta]
version = 1
name = "Omarchy"
description = "Follow your Omarchy system theme."
variant = "dark"
inherits = "vicinae-dark"
icon = "$HOME/.local/share/omarchy/icon.png"
[colors.core]
background = "#${primary_background}"
foreground = "#${primary_foreground}"
secondary_background = "#$(change_shade $primary_background 5)"
border = "#${bright_black}"
accent = "#${normal_yellow}"
[colors.list.item.hover]
background = "#$(change_shade $primary_background 10)"
foreground = "#${primary_foreground}"
[colors.list.item.selection]
background = "#$(change_shade $primary_background 15)"
foreground = "#${primary_foreground}"
[colors.accents]
blue = "#${normal_blue}"
green = "#${normal_green}"
magenta = "#${normal_magenta}"
orange = "#${normal_yellow}"
purple = "#${bright_magenta}"
red = "#${normal_red}"
yellow = "#${bright_yellow}"
cyan = "#${normal_cyan}"
EOF
fi
mkdir -p "$HOME/.local/share/vicinae/themes/"
cp -p -f "$output_file" "$HOME/.local/share/vicinae/themes/omarchy.toml"
vicinae theme set omarchy
success "Vicinae theme updated!"
exit 0

View file

@ -0,0 +1,182 @@
#!/bin/bash
# Typora theme hook - generates CSS with current omarchy theme colors
new_typora_file="$HOME/.config/omarchy/current/theme/typora.css"
typora_dir="$HOME/.config/Typora/themes"
create_dynamic_theme() {
# Calculate darker shade for sidebar
sidebar_bg=$(change_shade "$primary_background" -15)
# Calculate selection color
select_bg=$(change_shade "$normal_blue" -60)
# Calculate hover/active colors
hover_bg=$(change_shade "$primary_background" 20)
cat > "$new_typora_file" << EOF
@import "night/mermaid.dark.css";
@import "night/codeblock.dark.css";
@import "night/sourcemode.dark.css";
:root {
--bg-color: #${primary_background};
--side-bar-bg-color: #${sidebar_bg};
--text-color: #${primary_foreground};
--select-text-bg-color: #${select_bg};
--item-hover-bg-color: #${hover_bg};
--control-text-color: #${bright_black};
--control-text-hover-color: #${primary_foreground};
--window-border: 1px solid #${hover_bg};
--active-file-bg-color: #${hover_bg};
--active-file-border-color: #${normal_blue};
--primary-color: #${normal_blue};
--active-file-text-color: #${primary_foreground};
--item-hover-text-color: #${primary_foreground};
--rawblock-edit-panel-bd: #${sidebar_bg};
--search-select-bg-color: #${select_bg};
}
html {
font-size: 16px;
-webkit-font-smoothing: antialiased;
}
html,
body {
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
background: #${primary_background};
background: var(--bg-color);
fill: currentColor;
line-height: 1.625rem;
}
#write {
max-width: 914px;
}
@media only screen and (min-width: 1400px) {
#write {
max-width: 1024px;
}
}
@media only screen and (min-width: 1800px) {
#write {
max-width: 1200px;
}
}
html,
body,
button,
input,
select,
textarea,
div.code-tooltip-content {
color: #${primary_foreground};
border-color: transparent;
}
div.code-tooltip,
.md-hover-tip .md-arrow:after {
background: #${sidebar_bg};
}
.native-window #md-notification {
border: 1px solid #${bright_black};
}
.popover.bottom > .arrow:after {
border-bottom-color: #${sidebar_bg};
}
html,
body,
button,
input,
select,
textarea {
font-family: "Inter", "SF Pro", -apple-system, BlinkMacSystemFont, sans-serif;
}
hr {
height: 2px;
border: 0;
margin: 24px 0 !important;
}
/* Headers */
h1, h2, h3, h4, h5, h6 {
font-family: "SF Pro", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
color: #${primary_foreground};
}
/* Links */
a {
color: #${normal_blue};
}
/* Code */
code, pre, .md-fences {
font-family: "JetBrainsMono Nerd Font", "Fira Code", monospace;
background: #${sidebar_bg};
}
/* Inline code */
code {
color: #${normal_cyan};
padding: 2px 4px;
border-radius: 4px;
}
/* Blockquotes */
blockquote {
border-left: 4px solid #${normal_blue};
color: #${bright_black};
}
/* Tables */
table tr:nth-child(2n) {
background: #${sidebar_bg};
}
table th {
background: #${hover_bg};
}
/* Scrollbars */
::-webkit-scrollbar-thumb {
background: #${hover_bg};
}
::-webkit-scrollbar-thumb:hover {
background: #${bright_black};
}
EOF
}
# Check if Typora is installed
if ! command -v typora >/dev/null 2>&1; then
skipped "Typora"
fi
mkdir -p "$typora_dir"
if [ -f "$new_typora_file" ]; then
cp -f "$new_typora_file" "$typora_dir/omarchy.css"
else
create_dynamic_theme
cp -f "$new_typora_file" "$typora_dir/omarchy.css"
fi
success "Typora theme updated!"
require_restart "typora"
exit 0

View file

@ -0,0 +1,125 @@
#!/bin/bash
# This script respects user's existing nwg-dock-hyprland configuration.
# It searches ~/.config/hypr/*.conf for exec/exec-once commands and preserves user flags.
# Falls back to default configuration only if no user command is found.
output_file="$HOME/.config/omarchy/current/theme/nwg-dock.css"
default_dock_command="nwg-dock-hyprland -r -mb 10 -mt 10 -i 22 -x -nolauncher"
if ! command -v nwg-dock-hyprland >/dev/null 2>&1; then
skipped "NWG Dock"
fi
# Search for user's nwg-dock-hyprland command in Hyprland config files
user_dock_command=""
hypr_config_dir="$HOME/.config/hypr"
if [[ -d "$hypr_config_dir" ]]; then
# Find all config files containing nwg-dock-hyprland exec commands
mapfile -t dock_files < <(grep -l -E "^\s*(exec|exec-once)\s*=.*nwg-dock-hyprland" "$hypr_config_dir"/*.conf 2>/dev/null)
# Find all matching command lines
mapfile -t dock_commands < <(grep -h -E "^\s*(exec|exec-once)\s*=.*nwg-dock-hyprland" "$hypr_config_dir"/*.conf 2>/dev/null)
# Check for multiple commands and warn user
if [[ ${#dock_commands[@]} -gt 1 ]]; then
warning "Multiple nwg-dock-hyprland commands found in Hyprland config:"
for file in "${dock_files[@]}"; do
warning " - $file"
done
warning "Using first occurrence. Please consolidate to a single command."
fi
# Extract the command from first match
if [[ ${#dock_commands[@]} -gt 0 ]]; then
# Remove 'exec' or 'exec-once' prefix and '=' sign, trim whitespace
user_dock_command=$(echo "${dock_commands[0]}" | sed 's/^[[:space:]]*exec\(-once\)\?[[:space:]]*=[[:space:]]*//')
# Validate extraction succeeded
if [[ -z "$user_dock_command" || ! "$user_dock_command" =~ nwg-dock-hyprland ]]; then
warning "Failed to parse user's nwg-dock-hyprland command: ${dock_commands[0]}"
warning "Using default configuration."
user_dock_command=""
fi
fi
fi
if [[ ! -f "$output_file" ]]; then
mkdir -p "$(dirname "$output_file")"
cat >"$output_file" <<EOF
window {
background: #${primary_background}; /* base01 */
border-color: #${bright_black}; /* base02 */
border: 2px solid #${bright_black};
}
button,
image {
color: #${bright_white}; /* base07 */
}
button {
color: #${normal_white}; /* base05 */
padding: 3px;
}
button:hover {
background-color: rgba($rgb_bright_black, 0.5); /* base02 */
}
EOF
mkdir -p "$HOME/.config/nwg-dock-hyprland"
style_file="$HOME/.config/nwg-dock-hyprland/style.css"
if [[ ! -f $style_file ]]; then
cat > $style_file <<EOF
@import url("./colors.css");
window {
border-radius: 12px;
border-style: solid;
border-width: 2px;
}
#box {
padding: 6px;
}
button,
image {
background: none;
border-style: none;
box-shadow: none;
}
button {
padding: 5px;
margin-left: 4px;
margin-right: 4px;
margin-top: 4px;
font-size: 18px;
}
button:focus {
box-shadow: none;
}
EOF
fi
fi
cp "$output_file" "$HOME/.config/nwg-dock-hyprland/colors.css"
# Kill existing dock instance
killall nwg-dock-hyprland 2>/dev/null
# Restart dock with user's command or default
if [[ -n "$user_dock_command" ]]; then
eval "$user_dock_command" &
disown
else
eval "$default_dock_command" &
disown
fi
success "Dock theme updated!"

View file

@ -0,0 +1,128 @@
#!/bin/bash
new_zed_file="$HOME/.config/omarchy/current/theme/zed.json"
create_dynamic_theme() {
cat > "$new_zed_file" << EOF
{
"\$schema": "https://zed.dev/schema/themes/v0.1.0.json",
"name": "Omarchyy",
"author": "@bypass_",
"themes": [
{
"name": "Omarchy",
"appearance": "dark",
"style": {
"background": "#${primary_background}90",
"editor.background": "#${primary_background}90",
"editor.foreground": "#${primary_foreground}",
"text": "#${primary_foreground}",
"text.muted": "#${primary_foreground}70",
"text.ignored": "#${primary_foreground}40",
"text.placeholder": "#${primary_foreground}50",
"ignored": "#${primary_foreground}30",
"element.hover": "#${primary_foreground}30",
"ghost_element.hover": "#${bright_black}30",
"ghost_element.selected": "#${bright_black}30",
"ghost_element.active": "#${bright_black}60",
"border": "#${normal_black}",
"editor.highlighted_line.background": "#${bright_black}10",
"editor.active_line.background": "#${bright_black}10",
"panel.background": "#${normal_black}90",
"title_bar.background": "#${normal_black}90",
"title_bar.inactive_background": "#${normal_black}90",
"status_bar.background": "#${normal_black}90",
"drop_target.background": "#${normal_black}90",
"elevated_surface.background": "#${normal_black}",
"toolbar.background": "#${normal_black}90",
"tab_bar.background": "#${normal_black}90",
"tab.inactive_background": "#${normal_black}90",
"tab.active_background": "#${bright_black}30",
"scrollbar.track.background": "transparent",
"scrollbar.track.border": "#${normal_black}",
"scrollbar.thumb.background": "#${primary_foreground}",
"editor.gutter.background": "#${normal_black}90",
"terminal.background": "#${normal_black}10",
"terminal.foreground": "#${primary_foreground}",
"terminal.dim_foreground": "#${primary_foreground}",
"terminal.bright_foreground": "#${primary_foreground}",
"terminal.ansi.black": "#${normal_black}",
"terminal.ansi.red": "#${normal_red}",
"terminal.ansi.green": "#${normal_green}",
"terminal.ansi.yellow": "#${normal_yellow}",
"terminal.ansi.blue": "#${normal_blue}",
"terminal.ansi.magenta": "#${normal_magenta}",
"terminal.ansi.cyan": "#${normal_cyan}",
"terminal.ansi.white": "#${normal_white}",
"terminal.ansi.bright_black": "#${bright_black}",
"terminal.ansi.bright_red": "#${bright_red}",
"terminal.ansi.bright_green": "#${bright_green}",
"terminal.ansi.bright_yellow": "#${bright_yellow}",
"terminal.ansi.bright_blue": "#${bright_blue}",
"terminal.ansi.bright_magenta": "#${bright_magenta}",
"terminal.ansi.bright_cyan": "#${bright_cyan}",
"terminal.ansi.bright_white": "#${bright_white}",
"modified": "#${normal_red}",
"syntax": {
"attribute": {
"color": "#${normal_white}"
},
"boolean": {
"color": "#${normal_green}"
},
"comment": {
"color": "#${bright_black}"
},
"comment.doc": {
"color": "#${bright_black}"
},
"constant": {
"color": "#${bright_green}"
},
"function": {
"color": "#${bright_cyan}"
},
"keyword": {
"color": "#${normal_blue}"
},
"number": {
"color": "#${normal_magenta}"
},
"operator": {
"color": "#${normal_blue}"
},
"string": {
"color": "#${normal_red}"
},
"variable": {
"color": "#${normal_green}"
}
},
"players": [
{
"cursor": "#${primary_foreground}",
"background": "#${normal_black}",
"selection": "#${primary_foreground}30"
}
]
}
}
]
}
EOF
}
if ! command -v zeditor >/dev/null 2>&1 && ! command -v zed >/dev/null 2>&1; then
skipped "Zed"
fi
mkdir -p "$HOME/.config/zed/themes"
if [ -f "$new_zed_file" ]; then
cp -f "$new_zed_file" "$HOME/.config/zed/themes/omarchy.json"
else
create_dynamic_theme
cp -f "$new_zed_file" "$HOME/.config/zed/themes/omarchy.json"
fi
success "Zed theme updated!"
exit 0

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,39 @@
#!/bin/bash
if ! command -v cava >/dev/null 2>&1; then
skipped "Cava"
fi
theme_template="$HOME/.config/omarchy/current/theme/cava_theme"
if [ ! -f "$theme_template" ]; then
cat > "$theme_template" << EOF
[color]
gradient = 1
gradient_count = 8
gradient_color_1 = '#${normal_cyan:-${primary_foreground}}'
gradient_color_2 = '#${normal_blue:-${primary_foreground}}'
gradient_color_3 = '#${bright_blue:-${normal_blue:-${primary_foreground}}}'
gradient_color_4 = '#${normal_magenta:-${primary_foreground}}'
gradient_color_5 = '#${bright_magenta:-${normal_magenta:-${primary_foreground}}}'
gradient_color_6 = '#${bright_cyan:-${normal_cyan:-${primary_foreground}}}'
gradient_color_7 = '#${bright_magenta:-${normal_magenta:-${primary_foreground}}}'
gradient_color_8 = '#${normal_cyan:-${primary_foreground}}'
EOF
fi
theme_dir="$HOME/.config/cava/themes"
mkdir -p "$theme_dir"
cp -f "$theme_template" "$theme_dir/omarchy"
config_file="$HOME/.config/cava/config"
if [ -f "$config_file" ] && ! grep -q "theme = 'omarchy'" "$config_file"; then
sed -i "/^\[color\]/a theme = 'omarchy'" "$config_file"
fi
if pgrep -x cava >/dev/null 2>&1; then
( pkill -USR2 cava ) >/dev/null 2>&1 &
fi
success "Cava theme updated!"
exit 0

View file

@ -0,0 +1,304 @@
#!/bin/bash
output_file="$HOME/.config/omarchy/current/theme/firefox.css"
if ! command -v firefox >/dev/null 2>&1; then
skipped "Firefox"
fi
find_default_profile() {
awk -F= '
/^\[Install/ { in_install=1 }
in_install && /^Default=/ { print $2; exit }
' "$HOME/.mozilla/firefox/profiles.ini"
}
default_profile="$HOME/.mozilla/firefox/$(find_default_profile)"
enable_userchrome() {
local prefs_file="$default_profile/prefs.js"
local pref_name="toolkit.legacyUserProfileCustomizations.stylesheets"
if grep -q "user_pref(\"$pref_name\"" "$prefs_file"; then
if grep -q "user_pref(\"$pref_name\", false)" "$prefs_file"; then
sed -i.bak "s/user_pref(\"$pref_name\", false);/user_pref(\"$pref_name\", true);/" "$prefs_file"
fi
else
echo "user_pref(\"$pref_name\", true);" >> "$prefs_file"
fi
}
enable_userchrome
mkdir -p "$default_profile/chrome"
cat > "$output_file" << EOF
:root {
--color00: #${primary_background};
--color01: #${primary_background};
--color02: #${primary_background};
--color03: #${normal_white};
--color04: #${bright_white};
--color05: #${primary_foreground};
--color06: #${bright_white};
--color07: #${bright_white};
--color08: #${normal_red};
--color09: #${normal_yellow};
--color0A: #${bright_yellow};
--color0B: #${normal_green};
--color0C: #${normal_cyan};
--color0D: #${normal_blue};
--color0E: #${normal_magenta};
--color0F: #${bright_red};
}
EOF
if [[ -d "$default_profile" ]]; then
cp "$output_file" "$default_profile/chrome/colors.css"
fi
if [[ ! -f "$default_profile/chrome/userChrome.css" ]]; then
cat > "$default_profile/chrome/userChrome.css" << EOF
@import url("./colors.css");
:root {
--base00: var(--color00);
--base01: color-mix(in srgb, var(--color00) 98%, white);
--base02: color-mix(in srgb, var(--color00) 94%, white);
--base03: var(--color03);
--base04: var(--color04);
--base05: var(--color05);
--base06: var(--color06);
--base07: var(--color07);
--base08: var(--color08);
--base09: var(--color09);
--base0A: var(--color0A);
--base0B: var(--color0B);
--base0C: var(--color0C);
--base0D: var(--color0D);
--base0E: var(--color0E);
--base0F: var(--color0F);
}
:root {
--panel-separator-zap-gradient: linear-gradient(
90deg,
var(--base0E) 0%,
var(--base0F) 52.08%,
var(--base0A) 100%
) !important;
--toolbarbutton-border-radius: 6px !important;
--toolbarbutton-icon-fill: var(--base04) !important;
--urlbarView-separator-color: var(--base01) !important;
--urlbar-box-bgcolor: var(--base01) !important;
}
/* Tabs colors */
#tabbrowser-tabs:not([movingtab])
> #tabbrowser-arrowscrollbox
> .tabbrowser-tab
> .tab-stack
> .tab-background[multiselected="true"],
#tabbrowser-tabs:not([movingtab])
> #tabbrowser-arrowscrollbox
> .tabbrowser-tab
> .tab-stack
> .tab-background[selected="true"] {
background-image: none !important;
background-color: var(--toolbar-bgcolor) !important;
}
/* Inactive tabs color */
#navigator-toolbox {
background-color: var(--base00) !important;
}
/* Window colors */
:root {
--toolbar-bgcolor: var(--base01) !important;
--tabs-border-color: var(--base01) !important;
--lwt-sidebar-background-color: var(--base00) !important;
--lwt-toolbar-field-focus: var(--base01) !important;
}
/* Sidebar color */
#sidebar-box,
.sidebar-placesTree {
background-color: var(--base00) !important;
}
.tab-background {
border-radius: 6px !important;
border: 0px solid rgba(0, 0, 0, 0) !important;
}
.tab-background[selected] {
background-color: var(--base02) !important;
}
#tabbrowser-tabs {
margin-left: 1px;
margin-top: 3px;
margin-bottom: 3px;
}
.tabbrowser-tab[last-visible-tab="true"] {
border: 0px solid rgba(0, 0, 0, 0) !important;
}
toolbarbutton {
border-radius: 6px !important;
}
/* Url Bar */
#urlbar-input {
accent-color: var(--base0D) !important;
}
#urlbar-input-container {
background-color: var(--base01) !important;
border: 0px solid rgba(0, 0, 0, 0) !important;
}
#urlbar[focused="true"] > #urlbar-background {
box-shadow: none !important;
}
#urlbar-background {
border-radius: 6px !important;
}
#navigator-toolbox {
border: none !important;
}
.urlbarView-url {
color: var(--base05) !important;
}
#star-button {
--toolbarbutton-icon-fill-attention: var(--base0D) !important;
}
#vertical-tabs.customization-target {
background-color: var(--base00) !important;
}
splitter#sidebar-tools-and-extensions-splitter {
display: none !important;
}
.tools-and-extensions[aria-orientation="vertical"] {
background-color: var(--base00) !important;
}
.tools-and-extensions.actions-list {
background-color: var(--base00) !important;
}
#identity-box,
#trust-icon-container,
#tracking-protection-icon-container {
fill: var(--base04) !important;
}
.logo-and-wordmark {
display: none !important;
}
.search-inner-wrapper {
margin-top: 10% !important;
}
.urlbar-input::placeholder,
.searchbar-textbox::placeholder {
opacity: 1;
color: var(--base03) !important;
}
.urlbar-input {
color: var(--base05) !important;
}
:root {
--arrowpanel-background: var(--base01) !important;
--arrowpanel-border-color: var(--base00) !important;
--color-accent-primary-active: var(--base0D) !important;
--color-accent-primary-hover: var(--base0D) !important;
--color-accent-primary: var(--base0D) !important;
--focus-outline-color: var(--base00) !important;
--icon-color-critical: var(--base08) !important;
--icon-color-information: var(--base0D) !important;
--icon-color-success: var(--base0B) !important;
--icon-color-warning: var(--base0A) !important;
--outline-color-error: var(--base08) !important;
--tab-block-margin: 0 !important;
--tab-border-radius: 0 !important;
--text-color-error: var(--base08) !important;
--toolbar-field-border-color: var(--base00) !important;
--toolbar-field-focus-background-color: var(--base02) !important;
--toolbar-field-focus-border-color: var(--base00) !important;
--toolbarbutton-border-radius: 6px !important;
--in-content-page-background: var(--base01) !important;
--input-text-background-color: var(--base02) !important;
}
EOF
fi
if [[ ! -f "$default_profile/chrome/userContent.css" ]]; then
cat > "$default_profile/chrome/userContent.css" <<EOF
@import url("./colors.css");
:root {
--base00: var(--color00);
--base01: color-mix(in srgb, var(--color00) 98%, white);
--base02: color-mix(in srgb, var(--color00) 94%, white);
--base03: var(--color03);
--base04: var(--color04);
--base05: var(--color05);
--base06: var(--color06);
--base07: var(--color07);
--base08: var(--color08);
--base09: var(--color09);
--base0A: var(--color0A);
--base0B: var(--color0B);
--base0C: var(--color0C);
--base0D: var(--color0D);
--base0E: var(--color0E);
--base0F: var(--color0F);
}
:root {
--color-accent-primary-active: var(--base0D) !important;
--color-accent-primary-hover: var(--base0D) !important;
--color-accent-primary: var(--base0D) !important;
--focus-outline-color: var(--base00) !important;
--icon-color-critical: var(--base08) !important;
--icon-color-information: var(--base0D) !important;
--icon-color-success: var(--base0B) !important;
--icon-color-warning: var(--base0A) !important;
--in-content-page-background: var(--base00) !important;
--input-text-background-color: var(--base02) !important;
--newtab-background-color-secondary: var(--base02) !important;
--newtab-background-color: var(--base01) !important;
--newtab-text-primary-color: var(--base05) !important;
--newtab-text-secondary-text: var(--base04) !important;
--newtab-wallpaper-color: var(--base01) !important;
--outline-color-error: var(--base08) !important;
--tab-block-margin: 0 !important;
--tab-border-radius: 0 !important;
--text-color-error: var(--base08) !important;
--toolbar-field-border-color: var(--base00) !important;
--toolbar-field-border-color: var(--base01) !important;
--toolbar-field-focus-background-color: var(--base02) !important;
--toolbar-field-focus-border-color: var(--base01) !important;
--toolbarbutton-border-radius: 6px !important;
}
body {
border: none;
}
.logo-and-wordmark {
display: none !important;
}
.search-inner-wrapper {
margin-top: 10% !important;
}
EOF
fi
require_restart "firefox"
success "Firefox theme updated!"
exit 0

View file

@ -0,0 +1,131 @@
#!/bin/bash
output_file="$HOME/.config/omarchy/current/theme/steam.css"
if ! command -v steam >/dev/null 2>&1; then
skipped "Steam"
fi
if ! command -v python >/dev/null 2>&1; then
skipped "Python 3"
fi
cat > "$output_file" << EOF
:root {
/* The main accent color and the matching text value */
--adw-accent-bg-rgb: ${rgb_normal_blue} !important;
--adw-accent-fg-rgb: ${rgb_primary_background} !important;
--adw-accent-rgb: ${rgb_normal_blue} !important;
/* destructive-action buttons */
--adw-destructive-bg-rgb: ${rgb_normal_red} !important;
--adw-destructive-fg-rgb: ${rgb_primary_foreground} !important;
--adw-destructive-rgb: ${rgb_normal_red} !important;
/* Levelbars, entries, labels and infobars. These don't need text colors */
--adw-success-bg-rgb: ${rgb_normal_green} !important;
--adw-success-fg-rgb: ${rgb_normal_black} !important;
--adw-success-rgb: ${rgb_normal_green} !important;
--adw-warning-bg-rgb: ${rgb_bright_yellow} !important;
--adw-warning-fg-rgb: ${rgb_primary_background} !important;
--adw-warning-fg-a: 0.8 !important;
--adw-warning-rgb: ${rgb_bright_yellow} !important;
--adw-error-bg-rgb: ${rgb_normal_red} !important;
--adw-error-fg-rgb: ${rgb_normal_black} !important;
--adw-error-rgb: ${rgb_normal_red} !important;
/* Window */
--adw-window-bg-rgb: ${rgb_primary_background} !important;
--adw-window-fg-rgb: ${rgb_primary_foreground} !important;
/* Views - e.g. text view or tree view */
--adw-view-bg-rgb: ${rgb_normal_black} !important;
--adw-view-fg-rgb: ${rgb_primary_foreground} !important;
/* Header bar, search bar, tab bar */
--adw-headerbar-bg-rgb: ${rgb_primary_background} !important;
--adw-headerbar-fg-rgb: ${rgb_primary_foreground} !important;
--adw-headerbar-border-rgb: ${rgb_bright_black} !important;
--adw-headerbar-backdrop-rgb: ${rgb_normal_black} !important;
--adw-headerbar-shade-rgb: 0, 0, 0 !important;
--adw-headerbar-shade-a: 0.36 !important;
--adw-headerbar-darker-shade-rgb: 0, 0, 0 !important;
--adw-headerbar-darker-shade-a: 0.9 !important;
/* Split pane views */
--adw-sidebar-bg-rgb: ${rgb_primary_background} !important;
--adw-sidebar-fg-rgb: ${rgb_primary_foreground} !important;
--adw-sidebar-backdrop-rgb: ${rgb_bright_black} !important;
--adw-sidebar-shade-rgb: 0, 0, 0 !important;
--adw-sidebar-shade-a: 0.36 !important;
--adw-secondary-sidebar-bg-rgb: ${rgb_primary_background} !important;
--adw-secondary-sidebar-fg-rgb: ${rgb_primary_foreground} !important;
--adw-secondary-sidebar-backdrop-rgb: ${rgb_bright_black} !important;
--adw-secondary-sidebar-shade-rgb: 0, 0, 0 !important;
--adw-secondary-sidebar-shade-a: 0.36 !important;
/* Cards, boxed lists */
--adw-card-bg-rgb: 255, 255, 255 !important;
--adw-card-bg-a: 0.08 !important;
--adw-card-fg-rgb: 255, 255, 255 !important;
--adw-card-shade-rgb: 0, 0, 0 !important;
--adw-card-shade-a: 0.36 !important;
/* Dialogs */
--adw-dialog-bg-rgb: ${rgb_primary_background} !important;
--adw-dialog-fg-rgb: ${rgb_primary_foreground} !important;
/* Popovers */
--adw-popover-bg-rgb: ${rgb_primary_background} !important;
--adw-popover-fg-rgb: ${rgb_primary_foreground} !important;
--adw-popover-shade-rgb: 0, 0, 0 !important;
--adw-popover-shade-a: 0.36 !important;
/* Thumbnails */
--adw-thumbnail-bg-rgb: ${rgb_primary_background} !important;
/* Miscellaneous */
--adw-shade-rgb: 0, 0, 0 !important;
--adw-shade-a: 0.36 !important;
}
EOF
adwaita_location=$HOME/.local/share/steam-adwaita
font_path=$(fc-list $(omarchy-font-current) file | grep -ioP '.*\.ttf' | head -n 1)
install_steam_theme() {
if [[ ! -d "$adwaita_location" ]]; then
git clone https://github.com/tkashkin/Adwaita-for-Steam $adwaita_location > /dev/null 2>&1
fi
}
modify_steam_theme() {
if [[ ! -d "$adwaita_location/adwaita/colorthemes/omarchy" ]]; then
mkdir $adwaita_location/adwaita/colorthemes/omarchy/
fi
}
modify_install_script() {
if ! grep -q "omarchy" "$adwaita_location/install.py"; then
sed -i.bak 's/\("cantarell"\)/\1, "omarchy"/' $adwaita_location/install.py
fi
}
install_steam_theme
modify_steam_theme
modify_install_script
if [[ ! -d $adwaita_location ]]; then
warning "Steam theme installation failed!"
exit 1
fi
cp -p -f "$output_file" "$adwaita_location/adwaita/colorthemes/omarchy/omarchy.css"
cd $adwaita_location && ./install.py \
--color-theme omarchy \
--extras library/hide_whats_new > /dev/null 2>&1
require_restart "steam"
success "Steam theme updated!"
exit 0

View file

@ -0,0 +1,314 @@
#!/bin/bash
output_file="$HOME/.config/omarchy/current/theme/zen.css"
if ! command -v zen-browser >/dev/null 2>&1; then
skipped "Zen Browser"
fi
find_default_profile() {
awk -F= '
/^\[Install/ { in_install=1 }
in_install && /^Default=/ { print $2; exit }
' "$HOME/.zen/profiles.ini"
}
default_profile="$HOME/.zen/$(find_default_profile)"
echo $default_profile
enable_userchrome() {
local prefs_file="$default_profile/prefs.js"
local pref_name="toolkit.legacyUserProfileCustomizations.stylesheets"
if grep -q "user_pref(\"$pref_name\"" "$prefs_file"; then
if grep -q "user_pref(\"$pref_name\", false)" "$prefs_file"; then
sed -i.bak "s/user_pref(\"$pref_name\", false);/user_pref(\"$pref_name\", true);/" "$prefs_file"
fi
else
echo "user_pref(\"$pref_name\", true);" >> "$prefs_file"
fi
}
enable_userchrome
mkdir -p "$default_profile/chrome"
cat > "$output_file" << EOF
:root {
--color00: #${primary_background};
--color01: #${primary_background};
--color02: #${primary_background};
--color03: #${normal_white};
--color04: #${bright_white};
--color05: #${primary_foreground};
--color06: #${bright_white};
--color07: #${bright_white};
--color08: #${normal_red};
--color09: #${normal_yellow};
--color0A: #${bright_yellow};
--color0B: #${normal_green};
--color0C: #${normal_cyan};
--color0D: #${normal_blue};
--color0E: #${normal_magenta};
--color0F: #${bright_red};
}
EOF
cp "$output_file" "$default_profile/chrome/colors.css"
if [[ ! -f "$default_profile/chrome/userChrome.css" ]]; then
cat > "$default_profile/chrome/userChrome.css" << EOF
@import url("./colors.css");
:root {
--base00: var(--color00);
--base01: color-mix(in srgb, var(--color00) 98%, white);
--base02: color-mix(in srgb, var(--color00) 94%, white);
--base03: var(--color03);
--base04: var(--color04);
--base05: var(--color05);
--base06: var(--color06);
--base07: var(--color07);
--base08: var(--color08);
--base09: var(--color09);
--base0A: var(--color0A);
--base0B: var(--color0B);
--base0C: var(--color0C);
--base0D: var(--color0D);
--base0E: var(--color0E);
--base0F: var(--color0F);
}
:root {
--panel-separator-zap-gradient: linear-gradient(
90deg,
var(--base0E) 0%,
var(--base0F) 52.08%,
var(--base0A) 100%
) !important;
--toolbarbutton-border-radius: 6px !important;
--toolbarbutton-icon-fill: var(--base04) !important;
--urlbarView-separator-color: var(--base01) !important;
--urlbar-box-bgcolor: var(--base01) !important;
}
/* Tabs colors */
#tabbrowser-tabs:not([movingtab])
> #tabbrowser-arrowscrollbox
> .tabbrowser-tab
> .tab-stack
> .tab-background[multiselected="true"],
#tabbrowser-tabs:not([movingtab])
> #tabbrowser-arrowscrollbox
> .tabbrowser-tab
> .tab-stack
> .tab-background[selected="true"] {
background-image: none !important;
background-color: var(--toolbar-bgcolor) !important;
}
/* Inactive tabs color */
#navigator-toolbox {
background-color: var(--base00) !important;
}
/* Window colors */
:root {
--toolbar-bgcolor: var(--base01) !important;
--tabs-border-color: var(--base01) !important;
--lwt-sidebar-background-color: var(--base00) !important;
--lwt-toolbar-field-focus: var(--base01) !important;
}
/* Sidebar color */
#sidebar-box,
.sidebar-placesTree {
background-color: var(--base00) !important;
}
.tab-background {
border-radius: 6px !important;
border: 0px solid rgba(0, 0, 0, 0) !important;
}
.tab-background[selected] {
background-color: var(--base02) !important;
}
#tabbrowser-tabs {
margin-left: 1px;
margin-top: 3px;
margin-bottom: 3px;
}
.tabbrowser-tab[last-visible-tab="true"] {
border: 0px solid rgba(0, 0, 0, 0) !important;
}
toolbarbutton {
border-radius: 6px !important;
}
/* Url Bar */
#urlbar-input {
accent-color: var(--base0D) !important;
}
#urlbar-input-container {
background-color: var(--base01) !important;
border: 0px solid rgba(0, 0, 0, 0) !important;
}
#urlbar[focused="true"] > #urlbar-background {
box-shadow: none !important;
}
#urlbar-background {
border-radius: 6px !important;
}
#navigator-toolbox {
border: none !important;
}
.urlbarView-url {
color: var(--base05) !important;
}
#star-button {
--toolbarbutton-icon-fill-attention: var(--base0D) !important;
}
#vertical-tabs.customization-target {
background-color: var(--base00) !important;
}
splitter#sidebar-tools-and-extensions-splitter {
display: none !important;
}
.tools-and-extensions[aria-orientation="vertical"] {
background-color: var(--base00) !important;
}
.tools-and-extensions.actions-list {
background-color: var(--base00) !important;
}
#identity-box,
#trust-icon-container,
#tracking-protection-icon-container {
fill: var(--base04) !important;
}
.logo-and-wordmark {
display: none !important;
}
.search-inner-wrapper {
margin-top: 10% !important;
}
.urlbar-input::placeholder,
.searchbar-textbox::placeholder {
opacity: 1;
color: var(--base03) !important;
}
.urlbar-input {
color: var(--base05) !important;
}
:root {
--arrowpanel-background: var(--base01) !important;
--arrowpanel-border-color: var(--base00) !important;
--color-accent-primary-active: var(--base0D) !important;
--color-accent-primary-hover: var(--base0D) !important;
--color-accent-primary: var(--base0D) !important;
--focus-outline-color: var(--base00) !important;
--icon-color-critical: var(--base08) !important;
--icon-color-information: var(--base0D) !important;
--icon-color-success: var(--base0B) !important;
--icon-color-warning: var(--base0A) !important;
--outline-color-error: var(--base08) !important;
--tab-block-margin: 0 !important;
--tab-border-radius: 0 !important;
--text-color-error: var(--base08) !important;
--toolbar-field-border-color: var(--base00) !important;
--toolbar-field-focus-background-color: var(--base02) !important;
--toolbar-field-focus-border-color: var(--base00) !important;
--toolbarbutton-border-radius: 6px !important;
--in-content-page-background: var(--base01) !important;
--input-text-background-color: var(--base02) !important;
--zen-main-browser-background: var(--base00) !important;
}
EOF
fi
if [[ ! -f "$default_profile/chrome/userContent.css" ]]; then
cat > "$default_profile/chrome/userContent.css" <<EOF
@import url("./colors.css");
:root {
--base00: var(--color00);
--base01: color-mix(in srgb, var(--color00) 98%, white);
--base02: color-mix(in srgb, var(--color00) 94%, white);
--base03: var(--color03);
--base04: var(--color04);
--base05: var(--color05);
--base06: var(--color06);
--base07: var(--color07);
--base08: var(--color08);
--base09: var(--color09);
--base0A: var(--color0A);
--base0B: var(--color0B);
--base0C: var(--color0C);
--base0D: var(--color0D);
--base0E: var(--color0E);
--base0F: var(--color0F);
}
:root {
--color-accent-primary-active: var(--base0D) !important;
--color-accent-primary-hover: var(--base0D) !important;
--color-accent-primary: var(--base0D) !important;
--focus-outline-color: var(--base00) !important;
--icon-color-critical: var(--base08) !important;
--icon-color-information: var(--base0D) !important;
--icon-color-success: var(--base0B) !important;
--icon-color-warning: var(--base0A) !important;
--in-content-page-background: var(--base00) !important;
--input-text-background-color: var(--base02) !important;
--newtab-background-color-secondary: var(--base02) !important;
--newtab-background-color: var(--base01) !important;
--newtab-text-primary-color: var(--base05) !important;
--newtab-text-secondary-text: var(--base04) !important;
--newtab-wallpaper-color: var(--base01) !important;
--outline-color-error: var(--base08) !important;
--tab-block-margin: 0 !important;
--tab-border-radius: 0 !important;
--text-color-error: var(--base08) !important;
--toolbar-field-border-color: var(--base00) !important;
--toolbar-field-border-color: var(--base01) !important;
--toolbar-field-focus-background-color: var(--base02) !important;
--toolbar-field-focus-border-color: var(--base01) !important;
--toolbarbutton-border-radius: 6px !important;
--zen-main-browser-background: var(--base00) !important;
}
body {
border: none;
}
.logo-and-wordmark {
display: none !important;
}
.search-inner-wrapper {
margin-top: 10% !important;
}
EOF
fi
if pgrep -x "zen-browser" > /dev/null; then
pkill -x "zen-browser" > /dev/null
sleep 2
if pgrep -x "zen-browser" > /dev/null; then
pkill -9 -x "zen-browser" > /dev/null
sleep 1
fi
zen-browser > /dev/null &
fi
require_restart "zen-browser"
success "Zen Browser theme updated!"
exit 0

View file

@ -0,0 +1,56 @@
#!/bin/bash
output_file="$HOME/.config/omarchy/current/theme/heroic.css"
if ! command -v heroic >/dev/null 2>&1; then
skipped "Heroic Launcher"
fi
if [[ ! -f "$output_file" ]]; then
cat > "$output_file" << EOF
body.heroic {
--background: #${primary_background};
--background-darker: #$(change_shade $primary_background -5);
--background-secondary: #$(change_shade $primary_background 5);
--background-lighter: #$(change_shade $primary_background 10);
--accent: #${normal_blue};
--text-default: #${primary_foreground};
--navbar-accent: #${normal_blue};
--navbar-active-background: #${bright_black};
--success: #${normal_green};
--success-hover: #${bright_green};
--primary: #${normal_blue};
--primary-hover: #${bright_blue};
--danger: #${normal_red};
--danger-hover: #${bright_red};
--anticheat-supported: #${normal_green};
--anticheat-planned: #${normal_cyan};
--icon-disabled: #${bright_red};
--cancel-button: #${normal_red};
--anticheat-broken: #${normal_red};
--accent-overlay: var(--accent);
--navbar-background: var(--background);
--body-background: var(--background-darker);
--current-background: var(--body-background);
--text-secondary: var(--text-default);
--text-tertiary: var(--background);
--navbar-active: var(--accent);
--input-background: var(--background);
--modal-background: var(--body-background);
--modal-border: var(--body-background);
--anticheat-denied: var(--danger);
--anticheat-running: var(--text-default);
--text-title: var(--text-default);
--icons-background: var(--background-lighter);
--action-icon: var(--navbar-accent);
--action-icon-hover: var(--text-default);
--action-icon-active: var(--accent);
--neutral-06: var(--text-default);
}
EOF
fi
require_restart "heroic"
success "Heroic theme updated!"
exit 0

View file

@ -0,0 +1 @@
/home/unconfer/.config/aether/theme