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, includingthunderbird
,thunderbird_inbox
,thunderbird_calendar
,thunderbird_tasks
,thunderbird_composer
, andthunderbird_contacts
. It also defines thethunderbird_mod
andthunderbird_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 bythunderbird_contacts
andthunderbird_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 theb
key and "mail delete" is mapped to thedelete
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 thetab_reopen
,tab_jump
,tab_final
,thunderbird_mod
, andthunderbird_calendar_view
actions for Linux, usingctrl
as the modifier key for most actions. -
thunderbird_win.py
: Implements the same actions for Windows, usingctrl
as the modifier key for most actions. -
thunderbird_mac.py
: Implements the same actions for macOS, usingcmd
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.