Skip to content

thunderbird

This directory contains files that add support for the Thunderbird email client to Talon. It uses a combination of .talon files to define voice commands and .py files to implement the underlying logic, including platform specific differences.

The core functionality is split across several files:

  • thunderbird.py: Defines the different applications that will be used to determine the context of the user, including thunderbird, thunderbird_inbox, thunderbird_calendar, thunderbird_tasks, thunderbird_composer, and thunderbird_contacts. It also defines the thunderbird_mod and thunderbird_calendar_view actions.

  • thunderbird.talon: This file defines global commands available in Thunderbird, including commands to navigate to different tabs and open windows. Note that it explicitly excludes the contexts defined by thunderbird_contacts and thunderbird_composer.

  • thunderbird_inbox.talon: This file defines commands for navigating, marking, and sending emails in the inbox view. For example, "mail up" is mapped to the b key and "mail delete" is mapped to the delete key.

  • thunderbird_composer.talon: This file defines commands for composing emails such as saving, printing, and sending. It also includes commands for pasting and navigation.

  • thunderbird_contacts.talon: This file defines commands for managing contacts, such as creating, editing, and deleting contacts.

  • thunderbird_calendar.talon: This file defines commands for managing the calendar, including creating new events, deleting events, and changing the view.

  • thunderbird_tasks.talon: This file defines commands for managing tasks, including creating new tasks and deleting tasks.

The .py files provide platform-specific implementations of the actions defined in thunderbird.py:

  • thunderbird_linux.py: Implements the tab_reopen, tab_jump, tab_final, thunderbird_mod, and thunderbird_calendar_view actions for Linux, using ctrl as the modifier key for most actions.

  • thunderbird_win.py: Implements the same actions for Windows, using ctrl as the modifier key for most actions.

  • thunderbird_mac.py: Implements the same actions for macOS, using cmd as the modifier key for most actions.

These files work together to provide a comprehensive set of voice commands for interacting with Thunderbird. The .talon files define the commands, the .py files implement them, and thunderbird.py provides common definitions and actions. The separation of concerns into contexts allows users to have different commands available to them based on the area of the app they are currently using, and the separation by OS makes it possible for this extension to work across platforms.