diff options
Diffstat (limited to 'hosts')
-rw-r--r-- | hosts/muhammed/home/iterm2/auto_theme.py | 26 | ||||
-rw-r--r-- | hosts/muhammed/home/iterm2/default.nix | 14 |
2 files changed, 31 insertions, 9 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) diff --git a/hosts/muhammed/home/iterm2/default.nix b/hosts/muhammed/home/iterm2/default.nix index d868e57..b6a9ecc 100644 --- a/hosts/muhammed/home/iterm2/default.nix +++ b/hosts/muhammed/home/iterm2/default.nix @@ -1,17 +1,13 @@ # This file configures iterm2. Note that the actual definition of iTerm2 for # home-manager is in `modules/home-manager/iterm2`. *That* file declares # `options.programs.iterm2.enable`. -{ - pkgs, - lib, - ... -}: let - inherit (lib) mkIf; - inherit (pkgs.stdenv) isDarwin; -in { - config = mkIf isDarwin { +{pkgs, ...}: { + config = { home.packages = with pkgs; [imgcat]; + # Install a script which automatically makes iTerm2 match the system-wide light/dark mode. + home.file."/Library/Application Support/iTerm2/Scripts/AutoLaunch/auto_theme.py".text = builtins.readFile ./auto_theme.py; + programs.iterm2 = { enable = true; # config = { |