thunderbird
This directory contains the Talon configuration files that provide comprehensive voice control for the Mozilla Thunderbird email client across macOS, Windows, and Linux.
Rather than treating Thunderbird as a single monolithic window, the implementation dynamically detects the specific context you are working in—such as your inbox, the email composer, the calendar, or your address book—and activates targeted voice commands tailored to that interface.
Core Application Definition & Context Routing
The central logic of the Thunderbird integration is managed by thunderbird.py. This file performs two major roles:
- Sub-Application Isolation: It defines custom application definitions based on window titles (supporting both English and German locales) to distinguish between different Thunderbird views:
thunderbird_inbox(matched when an@sign is in the window title, indicating an email view).thunderbird_calendar(matched by calendar month names or specific "Calendar/Kalender" title keywords).thunderbird_tasks(matched by "Tasks/Aufgaben" title keywords).thunderbird_composer(matched by "Write/Verfassen" title prefixes).thunderbird_contacts(matched by "Address Book/Adressbuch" titles).
- Action Declarations: It defines platform-agnostic action headers like
user.thunderbird_mod(keys: str)anduser.thunderbird_calendar_view(number: int).
Platform-Specific Key Mappings
Because macOS, Windows, and Linux use different modifier keys for standard application shortcuts (e.g., Cmd vs. Ctrl), the cross-platform action definitions are implemented in three platform-specific files:
- thunderbird_mac.py maps
thunderbird_modto thecmdmodifier and handles macOS tab navigation. - thunderbird_win.py maps
thunderbird_modtoctrland configures Windows-specific tab behavior. - thunderbird_linux.py maps
thunderbird_modtoctrlbut uses different modifiers likealtandctrlfor navigation, optimizing for Linux environments.
Scoped Voice Commands
By using the specific sub-application definitions declared in the Python logic, the .talon files below are strictly scoped to only active windows. This keeps commands intuitive and prevents keyword collisions.
General Interface and Tabs
The general thunderbird.talon file manages application-wide commands. It hooks into Talon's standard user.tabs tag and allows you to jump directly to primary sections:
- "go mails" or "go inbox" (switches to the first tab).
- "go calendar" (opens or focuses the Lightning calendar pane).
- "go tasks" (opens or focuses the tasks manager).
- "open contacts" (opens the address book window).
Mail and Inbox Management
When you are actively reading or organizing your mail, thunderbird_inbox.talon provides a robust suite of commands to navigate and process emails:
- Navigation: Jump between messages using "mail next", "mail last", or focus on unread emails with "unread mail next". Toggle the message preview pane using "toggle mail pane".
- Organization: Archive, delete, or mark messages with commands like "mail spam", "mail favorite", "mail read/unread", and "mail ignore".
- Responses: Quickly trigger actions such as "mail reply sender", "mail reply all", "mail forward", or "mail new".
Email Composition
When drafting a new email or replying, the thunderbird_composer.talon context handles typing and drafting helpers:
- Draft Controls: Save drafts, print, or send via voice.
- Editing Actions: Format content with commands like "link new", "unformatted paste" (to strip clipboard styling), and "cite paste" for blockquotes.
- Layout: Toggle the quick contacts panel next to your message with "toggle contacts".
Calendar & Task Tracking
For scheduling and time management, the suite offers two dedicated files:
- thunderbird_calendar.talon handles the Thunderbird Lightning calendar. It provides layout commands to switch views (e.g., "view day", "view week", "view month") and lets you create new events.
- thunderbird_tasks.talon provides simplified controls to create and delete task objects and quickly toggle the "Today" pane on the side of your window.
Address Book
Finally, thunderbird_contacts.talon implements simple, direct controls for managing the Address Book popup window, allowing you to create, edit, delete, or quickly send a message to a selected contact.