From 16bbc166528b674751c638a6e2210b8d1d2bfa26 Mon Sep 17 00:00:00 2001 From: Linnnus Date: Mon, 29 Apr 2024 08:54:22 +0200 Subject: muhammed: Make iterm2/neovim respect system dark mode --- hosts/muhammed/home/iterm2/auto_theme.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 hosts/muhammed/home/iterm2/auto_theme.py (limited to 'hosts/muhammed/home/iterm2/auto_theme.py') diff --git a/hosts/muhammed/home/iterm2/auto_theme.py b/hosts/muhammed/home/iterm2/auto_theme.py new file mode 100644 index 0000000..17a254d --- /dev/null +++ b/hosts/muhammed/home/iterm2/auto_theme.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 + +import asyncio +import iterm2 + +async def main(connection): + async with iterm2.VariableMonitor(connection, iterm2.VariableScopes.APP, "effectiveTheme", None) as mon: + while True: + # Block until theme changes + theme = await mon.async_get() + + # Themes have space-delimited attributes, one of which will be light or dark. + parts = theme.split(" ") + if "dark" in parts: + preset = await iterm2.ColorPreset.async_get(connection, "Dark Background") + else: + preset = await iterm2.ColorPreset.async_get(connection, "Light Background") + + # Update the list of all profiles and iterate over them. + profiles=await iterm2.PartialProfile.async_query(connection) + for partial in profiles: + # Fetch the full profile and then set the color preset in it. + profile = await partial.async_get_full_profile() + await profile.async_set_color_preset(preset) + +iterm2.run_forever(main) -- cgit v1.2.3