summaryrefslogtreecommitdiff
path: root/hosts/muhammed/home/iterm2/auto_theme.py
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/muhammed/home/iterm2/auto_theme.py')
-rw-r--r--hosts/muhammed/home/iterm2/auto_theme.py26
1 files changed, 26 insertions, 0 deletions
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)