mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
40 lines
1.5 KiB
Bash
Executable File
40 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Sync Omarchy theme to VS Code, VSCodium, and Cursor
|
|
|
|
VS_CODE_THEME="$HOME/.config/omarchy/current/theme/vscode.json"
|
|
|
|
set_theme() {
|
|
local editor_cmd="$1"
|
|
local settings_path="$2"
|
|
local skip_flag="$3"
|
|
|
|
omarchy-cmd-present "$editor_cmd" && [[ ! -f "$skip_flag" ]] || return 0
|
|
|
|
if [[ -f "$VS_CODE_THEME" ]]; then
|
|
theme_name=$(jq -r '.name' "$VS_CODE_THEME")
|
|
extension=$(jq -r '.extension' "$VS_CODE_THEME")
|
|
|
|
if [[ -n "$extension" ]] && ! "$editor_cmd" --list-extensions | grep -Fxq "$extension"; then
|
|
"$editor_cmd" --install-extension "$extension" >/dev/null
|
|
fi
|
|
|
|
mkdir -p "$(dirname "$settings_path")"
|
|
[[ -f "$settings_path" ]] || printf '{\n}\n' >"$settings_path"
|
|
|
|
if ! grep -q '"workbench.colorTheme"' "$settings_path"; then
|
|
sed -i --follow-symlinks -E '0,/\{/{s/\{/{\ "workbench.colorTheme": "",/}' "$settings_path"
|
|
fi
|
|
|
|
sed -i --follow-symlinks -E \
|
|
"s/(\"workbench.colorTheme\"[[:space:]]*:[[:space:]]*\")[^\"]*(\")/\1$theme_name\2/" \
|
|
"$settings_path"
|
|
elif [[ -f "$settings_path" ]]; then
|
|
sed -i --follow-symlinks -E 's/\"workbench\.colorTheme\"[[:space:]]*:[^,}]*,?//' "$settings_path"
|
|
fi
|
|
}
|
|
|
|
set_theme "code" "$HOME/.config/Code/User/settings.json" "$HOME/.local/state/omarchy/toggles/skip-vscode-theme-changes"
|
|
set_theme "codium" "$HOME/.config/VSCodium/User/settings.json" "$HOME/.local/state/omarchy/toggles/skip-codium-theme-changes"
|
|
set_theme "cursor" "$HOME/.config/Cursor/User/settings.json" "$HOME/.local/state/omarchy/toggles/skip-cursor-theme-changes"
|