Status Bar Component: Mouse Mode

Like Status Bar Component, this demonstrates a custom status bar component. The difference is that this one displays the value of a variable: the mouse reporting status.

After starting this script, navigate to Preferences > Profiles > Session. Turn on Status Bar Enabled and select Configure Status Bar. Drag the Mouse Mode component into the bottom section.

This script is a long-running daemon since the registered function gets called whenever the size of a session changes. As such, it should go in the AutoLaunch folder.

import asyncio
import iterm2

async def main(connection):
    component = iterm2.StatusBarComponent(
        short_description="Mouse Mode",
        detailed_description="Indicates if mouse reporting is enabled",
        knobs=[],
        exemplar="[mouse on]",
        update_cadence=None,
        identifier="com.iterm2.example.mouse-mode")

    # This function gets called whenever any of the paths named in defaults (below) changes
    # or its configuration changes. This will be called when mouseReportingMode changes.
    @iterm2.StatusBarRPC
    async def coro(
            knobs,
            reporting=iterm2.Reference("mouseReportingMode")):
        if reporting < 0:
            return " "
        else:
            return "🐭"

    # Register the component.
    await component.async_register(connection, coro)

iterm2.run_forever(main)

Download