Skip to content

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:

  1. 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).
  2. Action Declarations: It defines platform-agnostic action headers like user.thunderbird_mod(keys: str) and user.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_mod to the cmd modifier and handles macOS tab navigation.
  • thunderbird_win.py maps thunderbird_mod to ctrl and configures Windows-specific tab behavior.
  • thunderbird_linux.py maps thunderbird_mod to ctrl but uses different modifiers like alt and ctrl for 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.