Skip to content

mode_indicator

The community/plugin/mode_indicator directory contains a plugin that displays a graphical indicator showing the current Talon mode. The indicator is a circle with a color that changes based on the active mode (command, dictation, sleep, etc.) and the microphone status.

The core logic resides in mode_indicator.py. This file defines the plugin's behavior using the Talon framework. It manages the indicator's display, position, size, and color. The indicator is drawn on a canvas, and its appearance is controlled by several settings, which can be configured in the mode_indicator.talon file.

Here is how it works:

  • The script initializes several settings to control the mode indicator's appearance, such as mode_indicator_show (whether to show the indicator), mode_indicator_size, mode_indicator_x, mode_indicator_y, and various color settings for different modes and microphone states.
  • The on_update_contexts function determines the current Talon mode (sleep, dictation, mixed, command, or other) based on the active contexts. When the mode changes, the indicator is updated.
  • The poll_microphone function checks the active microphone and updates the indicator if the microphone state has changed (e.g., muted).
  • The update_indicator function handles showing, hiding, and moving the indicator based on the user.mode_indicator_show setting.
  • The on_draw function is called by the canvas to draw the indicator as a colored circle with a gradient. The colors are determined by the current mode and configured in mode_indicator.talon.
  • The move_indicator function calculates the indicator's position based on the user's settings for x and y position.
  • The on_update_settings is called when the settings are changed and updates the indicator if any of the mode indicator settings changed.
  • The on_ready function registers callbacks to listen for context and setting changes.

The file mode_indicator.talon provides the default settings for the mode indicator. This is where users can customize the indicator's appearance, including its size, position, transparency, colors for different modes and microphone states. By default the indicator is not shown, the size is 30 pixels, it is centered horizontally, and at the top vertically. The default colors are: black for mute, grey for sleep, gold for dictation, MediumSeaGreen for mixed, CornflowerBlue for command, and GhostWhite for other.

The README.md file provides a basic description of the plugin, example images of the different modes, and a link to a demo video on YouTube: YouTube - Mode indicator demo. It also explains how to enable the plugin by changing the user.mode_indicator_show setting in mode_indicator.talon.