/ de-omarchy / bin / omarchy-theme-set-browser
swadhinbiswas Initial de-omarchy: Omarchy UI layer for Arch-based distros · 8/22/2026
9f393b2
47 lines · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/bash

# omarchy:summary=Apply the current theme color to Chromium, Chrome, Edge, and Brave
# omarchy:hidden=true

CHROMIUM_THEME=$HOME/.local/state/omarchy/current/theme/chromium.theme

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_HEX_COLOR="#1c2027"
fi

set_browser_policy() {
  local policy_dir="$1"

  [[ -d $policy_dir ]] || return
  echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\", \"BrowserColorScheme\": \"device\"}" | tee "$policy_dir/color.json" >/dev/null
}

refresh_running_browser() {
  local process="$1"
  local command="$2"
  local pgrep_args="${3:--x}"

  if omarchy-cmd-present "$command" && pgrep $pgrep_args "$process" >/dev/null; then
    "$command" --refresh-platform-policy --no-startup-window &>/dev/null
  fi
}

set_browser_policy /etc/chromium/policies/managed
refresh_running_browser chromium chromium

set_browser_policy /etc/opt/chrome/policies/managed
refresh_running_browser chrome google-chrome-stable || refresh_running_browser chrome google-chrome

set_browser_policy /etc/opt/edge/policies/managed
refresh_running_browser msedge microsoft-edge-stable

set_browser_policy /etc/brave/policies/managed
refresh_running_browser brave brave
# Match on the binary path: the running process is named plain "brave", and a
# bare -f brave-origin pattern would also match the installer's own terminal.
refresh_running_browser /opt/brave-origin-bin/ brave-origin -f