#!/bin/bash

# omarchy:summary=Apply the current theme color to Chromium and Brave

CHROMIUM_THEME=~/.config/omarchy/current/theme/chromium.theme

if omarchy-cmd-present chromium || omarchy-cmd-present brave || omarchy-cmd-present brave-origin-beta; then
  if [[ -f $CHROMIUM_THEME ]]; then
    THEME_RGB_COLOR=$(<$CHROMIUM_THEME)
    THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${THEME_RGB_COLOR//,/ })
  else
    # Use a default, neutral grey if theme doesn't have a color
    THEME_RGB_COLOR="28,32,39"
    THEME_HEX_COLOR="#1c2027"
  fi

  if omarchy-cmd-present chromium; then
    echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\", \"BrowserColorScheme\": \"device\"}" | tee "/etc/chromium/policies/managed/color.json" >/dev/null
    pgrep -x chromium >/dev/null && chromium --refresh-platform-policy --no-startup-window &>/dev/null
  fi

  # Brave and Brave Origin Beta share /etc/brave/policies, so a single write covers both
  if omarchy-cmd-present brave || omarchy-cmd-present brave-origin-beta; then
    echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\", \"BrowserColorScheme\": \"device\"}" | tee "/etc/brave/policies/managed/color.json" >/dev/null
    if pgrep -x brave >/dev/null; then
      omarchy-cmd-present brave && brave --refresh-platform-policy --no-startup-window &>/dev/null
      omarchy-cmd-present brave-origin-beta && brave-origin-beta --refresh-platform-policy --no-startup-window &>/dev/null
    fi
  fi
fi
