mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
* Add Chrome and Brave browser policy support for theme colors Replace chromium --set-theme-color commands with managed policies - Add RGB to hex conversion function - Create /etc/chromium/policies/managed/color.json for Chrome - Create /etc/brave/policies/managed/color.json for Brave - Remove deprecated chromium command line theme setting * force reload * remove sudo * renamed flag due to code review on google side * Add the required directories * Cleanup * Slim down * Unnecessary --------- Co-authored-by: David Heinemeier Hansson <david@hey.com>
72 lines
2.2 KiB
Bash
Executable File
72 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [[ -z $1 && $1 != "CNCLD" ]]; then
|
|
echo "Usage: omarchy-theme-set <theme-name>"
|
|
exit 1
|
|
fi
|
|
|
|
THEMES_DIR="$HOME/.config/omarchy/themes/"
|
|
CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
|
|
|
|
THEME_NAME=$(echo "$1" | sed -E 's/<[^>]+>//g' | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
|
|
THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
|
|
|
# Check if the theme entered exists
|
|
if [[ ! -d "$THEME_PATH" ]]; then
|
|
echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
# Update theme symlinks
|
|
ln -nsf "$THEME_PATH" "$CURRENT_THEME_DIR"
|
|
|
|
# Change gnome modes
|
|
if [[ -f ~/.config/omarchy/current/theme/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
|
|
if [[ -f ~/.config/omarchy/current/theme/icons.theme ]]; then
|
|
gsettings set org.gnome.desktop.interface icon-theme "$(<~/.config/omarchy/current/theme/icons.theme)"
|
|
else
|
|
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
|
|
fi
|
|
|
|
# Change browser colors via policies
|
|
if omarchy-cmd-present chromium || omarchy-cmd-present brave; then
|
|
if [[ -f ~/.config/omarchy/current/theme/chromium.theme ]]; then
|
|
rgb=$(<~/.config/omarchy/current/theme/chromium.theme)
|
|
THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${rgb//,/ })
|
|
else
|
|
# Use a default, neutral grey if theme doesn't have a color
|
|
THEME_HEX_COLOR="#1c2027"
|
|
fi
|
|
|
|
if omarchy-cmd-present chromium; then
|
|
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/chromium/policies/managed/color.json" >/dev/null
|
|
chromium --refresh-platform-policy --no-startup-window
|
|
fi
|
|
|
|
if omarchy-cmd-present brave; then
|
|
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/brave/policies/managed/color.json" >/dev/null
|
|
brave --refresh-platform-policy --no-startup-window
|
|
fi
|
|
fi
|
|
|
|
# Trigger alacritty config reload
|
|
touch "$HOME/.config/alacritty/alacritty.toml"
|
|
|
|
# Restart components to apply new theme
|
|
pkill -SIGUSR2 btop
|
|
omarchy-restart-waybar
|
|
omarchy-restart-swayosd
|
|
makoctl reload
|
|
hyprctl reload
|
|
|
|
# Set new background
|
|
omarchy-theme-bg-next
|