diff --git a/bin/omarchy-theme-set b/bin/omarchy-theme-set index eeb5009..8685a6f 100755 --- a/bin/omarchy-theme-set +++ b/bin/omarchy-theme-set @@ -1,10 +1,7 @@ #!/bin/bash -# omarchy-theme-set: Set a theme, specified by its name. -# Usage: omarchy-theme-set - -if [[ -z "$1" && "$1" != "CNCLD" ]]; then - echo "Usage: omarchy-theme-set " >&2 +if [[ -z $1 && $1 != "CNCLD" ]]; then + echo "Usage: omarchy-theme-set " exit 1 fi @@ -16,8 +13,8 @@ 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" >&2 - exit 2 + echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR" + exit 1 fi # Update theme symlinks @@ -39,19 +36,24 @@ else gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue" fi -# Change Chromium colors -if command -v chromium &>/dev/null; then - if [[ -f ~/.config/omarchy/current/theme/light.mode ]]; then - chromium --no-startup-window --set-color-scheme="light" - else - chromium --no-startup-window --set-color-scheme="dark" - 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 - chromium --no-startup-window --set-theme-color="$(<~/.config/omarchy/current/theme/chromium.theme)" + 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 - chromium --no-startup-window --set-theme-color="28,32,39" + 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 diff --git a/install/config/theme.sh b/install/config/theme.sh index 13ea9a5..183cf8d 100644 --- a/install/config/theme.sh +++ b/install/config/theme.sh @@ -19,3 +19,10 @@ ln -snf ~/.config/omarchy/current/theme/btop.theme ~/.config/btop/themes/current mkdir -p ~/.config/mako ln -snf ~/.config/omarchy/current/theme/mako.ini ~/.config/mako/config + +# Add managed policy directories for Chromium and Brave for theme changes +sudo mkdir -p /etc/chromium/policies/managed +sudo chmod a+rw /etc/chromium/policies/managed + +sudo mkdir -p /etc/brave/policies/managed +sudo chmod a+rw /etc/brave/policies/managed diff --git a/migrations/1757147211.sh b/migrations/1757147211.sh new file mode 100644 index 0000000..f74afe5 --- /dev/null +++ b/migrations/1757147211.sh @@ -0,0 +1,7 @@ +echo "Create managed policy directories for Chromium and Brave for theme switching" + +sudo mkdir -p /etc/chromium/policies/managed +sudo chmod a+rw /etc/chromium/policies/managed + +sudo mkdir -p /etc/brave/policies/managed +sudo chmod a+rw /etc/brave/policies/managed