diff options
author | Linnnus <[email protected]> | 2024-04-29 08:54:22 +0200 |
---|---|---|
committer | Linnnus <[email protected]> | 2024-04-29 08:54:22 +0200 |
commit | 16bbc166528b674751c638a6e2210b8d1d2bfa26 (patch) | |
tree | cf898bedfbf69237a890f58dc8d60feaaf1de2d3 /hosts/muhammed/home/iterm2/auto_theme.py | |
parent | 4d1dded46c30434de31203c124327987dc45a7ad (diff) |
muhammed: Make iterm2/neovim respect system dark mode
Diffstat (limited to 'hosts/muhammed/home/iterm2/auto_theme.py')
-rw-r--r-- | hosts/muhammed/home/iterm2/auto_theme.py | 26 |
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) |