fix(alacritty): strip inline color overrides to enforce live dynamic colors.toml import
This commit is contained in:
parent
4cb5174b1d
commit
e62f0d1f93
@ -26,7 +26,7 @@ def sync_gtk(bg, surface, current_line, fg, accent, is_dark):
|
|||||||
f.write(css_content)
|
f.write(css_content)
|
||||||
|
|
||||||
def sync_alacritty(bg, surface, current_line, fg, accent, sub_accent):
|
def sync_alacritty(bg, surface, current_line, fg, accent, sub_accent):
|
||||||
import glob, os, subprocess
|
import glob, os, re
|
||||||
alacritty_dir = os.path.expanduser('~/.config/alacritty')
|
alacritty_dir = os.path.expanduser('~/.config/alacritty')
|
||||||
os.makedirs(alacritty_dir, exist_ok=True)
|
os.makedirs(alacritty_dir, exist_ok=True)
|
||||||
colors_file = os.path.join(alacritty_dir, 'colors.toml')
|
colors_file = os.path.join(alacritty_dir, 'colors.toml')
|
||||||
@ -64,28 +64,50 @@ magenta = "{sub_accent}"
|
|||||||
cyan = "#80ffea"
|
cyan = "#80ffea"
|
||||||
white = "{fg}"
|
white = "{fg}"
|
||||||
"""
|
"""
|
||||||
with open(colors_file, 'w') as f:
|
try:
|
||||||
|
with open(colors_file, 'w', encoding='utf-8') as f:
|
||||||
f.write(colors_block)
|
f.write(colors_block)
|
||||||
f.flush()
|
f.flush()
|
||||||
os.fsync(f.fileno())
|
os.fsync(f.fileno())
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
if os.path.exists(toml_file):
|
if os.path.exists(toml_file):
|
||||||
try:
|
try:
|
||||||
with open(toml_file, 'r') as f:
|
with open(toml_file, 'r', encoding='utf-8') as f:
|
||||||
content = f.read()
|
content = f.read()
|
||||||
|
|
||||||
|
lines = content.splitlines()
|
||||||
|
cleaned_lines = []
|
||||||
|
in_colors = False
|
||||||
|
for line in lines:
|
||||||
|
stripped = line.strip()
|
||||||
|
if stripped.startswith('[colors') or stripped.startswith('[[colors'):
|
||||||
|
in_colors = True
|
||||||
|
continue
|
||||||
|
elif in_colors and stripped.startswith('[') and not stripped.startswith('[colors') and not stripped.startswith('[[colors'):
|
||||||
|
in_colors = False
|
||||||
|
|
||||||
|
if not in_colors:
|
||||||
|
cleaned_lines.append(line)
|
||||||
|
|
||||||
|
content = '\n'.join(cleaned_lines)
|
||||||
|
|
||||||
if 'colors.toml' not in content:
|
if 'colors.toml' not in content:
|
||||||
|
import_line = 'import = ["colors.toml"]\n'
|
||||||
if '[general]' in content:
|
if '[general]' in content:
|
||||||
content = content.replace('[general]', '[general]\nimport = ["~/.config/alacritty/colors.toml"]')
|
content = content.replace('[general]', '[general]\n' + import_line)
|
||||||
else:
|
else:
|
||||||
content = '[general]\nimport = ["~/.config/alacritty/colors.toml"]\n\n' + content
|
content = '[general]\n' + import_line + '\n' + content
|
||||||
with open(toml_file, 'w') as f:
|
|
||||||
f.write(content)
|
with open(toml_file, 'w', encoding='utf-8') as f:
|
||||||
|
f.write(content.strip() + '\n')
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
with open(toml_file, 'w') as f:
|
with open(toml_file, 'w', encoding='utf-8') as f:
|
||||||
f.write('[general]\nimport = ["~/.config/alacritty/colors.toml"]\nlive_config_reload = true\n')
|
f.write('[general]\nimport = ["colors.toml"]\nlive_config_reload = true\n')
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user