Move all omarchy runtime state (themes, backgrounds, current theme) from ~/.config/omarchy/current to ~/.local/state/omarchy/current to keep the config dir free of generated files. Add mise task for recreating symlinks and update credential helpers for tea.
41 lines
1.6 KiB
Bash
Executable File
41 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# omarchy:summary=Sync Omarchy theme to VS Code, VSCodium, and Cursor
|
|
# omarchy:hidden=true
|
|
|
|
VS_CODE_THEME="$HOME/.local/state/omarchy/current/theme/vscode.json"
|
|
|
|
set_theme() {
|
|
local editor_cmd="$1"
|
|
local settings_path="$2"
|
|
|
|
omarchy-cmd-present "$editor_cmd" || 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 2>/dev/null | grep -Fxq "$extension"; then
|
|
"$editor_cmd" --install-extension "$extension" >/dev/null 2>&1
|
|
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
|
|
}
|
|
|
|
! omarchy-toggle-enabled skip-vscode-theme-changes && set_theme "code" "$HOME/.config/Code/User/settings.json"
|
|
! omarchy-toggle-enabled skip-vscode-insiders-theme-changes && set_theme "code-insiders" "$HOME/.config/Code - Insiders/User/settings.json"
|
|
! omarchy-toggle-enabled skip-codium-theme-changes && set_theme "codium" "$HOME/.config/VSCodium/User/settings.json"
|
|
! omarchy-toggle-enabled skip-cursor-theme-changes && set_theme "cursor" "$HOME/.config/Cursor/User/settings.json"
|