iTerm2

iTerm2 is a terminal emulator for macOS. It supports dynamic profiles, images in terminals, and all sorts of other stuff.

Color Schemes

I use the Chalk and ChalkBoard color schemes:

Chalk

ChalkBoard

Other Colorschemes

You can configure your own, or download other color schemes here:

https://iterm2colorschemes.com/

DynamicProfiles

These allow you to move your configuration from one mac to another :)

# the dynamic profiles are stored here on non-M1 macs
ls ~/Library/Application Support/iTerm2/DynamicProfiles

How to use create a split and send a command to it in Python

make sure you’ve already done a pip install iterm2

#!/usr/bin/env python3.12
"""
       Name: Run a command in a split
     AUTHOR: https://github.com/jessebot
DESCRIPTION: I wrote this quickly to just run a command in a split on iterm2
    LICENSE: GNU AFFERO GENERAL PUBLIC LICENSE Version 3
"""

import iterm2
import argparse

# parse args
parser = argparse.ArgumentParser()
parser.add_argument("command4split",
                    help="str to run as a command in an iterm2 split")
args = parser.parse_args()
print()


async def main(connection):
    """
    Create split pane to the right, make the right pane active, and send a
    command to the newly created split
    """

    app = await iterm2.async_get_app(connection)

    # Create split pane to the right and make the right one active
    left_pane = app.current_terminal_window.current_tab.current_session
    right_pane = await left_pane.async_split_pane(vertical=True)

    # send the command to the newly created split
    await right_pane.async_send_text(args.command4split + "\n")

# run the iterm2 stuff
iterm2.run_until_complete(main)