summaryrefslogtreecommitdiff
path: root/hosts/muhammed/home
diff options
context:
space:
mode:
authorLinnnus <[email protected]>2024-07-06 22:34:40 +0200
committerLinnnus <[email protected]>2024-07-06 22:34:40 +0200
commitdd989dbb656c8659a7fce54ca1714d3608e41557 (patch)
tree2cb7577b2d8a9054fb7cd796180fbcfe4487f6e4 /hosts/muhammed/home
parent62287fec47474be11fbc8638444639c0b56fc47e (diff)
muhammed: Update iTerm2 theme switching script
The script didn't check the theme upon startup, which caused some issues if the system-wide theme change happened while iTerm2 was closed. This new version always updates the iTerm2 theme based on the system theme upon startup.
Diffstat (limited to 'hosts/muhammed/home')
-rw-r--r--hosts/muhammed/home/iterm2/auto_theme.py31
1 files changed, 18 insertions, 13 deletions
diff --git a/hosts/muhammed/home/iterm2/auto_theme.py b/hosts/muhammed/home/iterm2/auto_theme.py
index 17a254d..0970304 100644
--- a/hosts/muhammed/home/iterm2/auto_theme.py
+++ b/hosts/muhammed/home/iterm2/auto_theme.py
@@ -3,24 +3,29 @@
import asyncio
import iterm2
+async def update(connection, theme):
+ # 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)
+
async def main(connection):
+ app = await iterm2.async_get_app(connection)
+ await update(connection, await app.async_get_variable("effectiveTheme"))
async with iterm2.VariableMonitor(connection, iterm2.VariableScopes.APP, "effectiveTheme", None) as mon:
while True:
# Block until theme changes
theme = await mon.async_get()
+ await update(connection, theme)
- # 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)