Skip to content

apps

Overview

This directory acts as the central hub for application-specific integrations within the Talon voice control system. It provides a robust, modular layer that maps spoken voice commands to specific application features, controls, and workflows across macOS, Windows, and Linux.

Rather than defining a fragmented vocabulary for every program, these integrations frequently leverage Talon's system-wide behaviors (represented as tags, such as user.tabs, user.file_manager, or user.pages). When you focus on a specific application, the python scripts in these directories override global Talon actions and map them to that application's specific keyboard shortcuts, APIs, or terminal commands.


How It Works

The system utilizes a structured, context-aware routing architecture. The typical integration is split into three main parts:

  1. Application Identification: A Python script uses Talon’s Module and Context APIs to declare and match an application across different operating systems. This matches bundle IDs (macOS), executable names (Windows/Linux), or window titles.
  2. Tag and Capability Activation: A corresponding .talon file activates standard system-wide capabilities (e.g., standard browser actions, terminal commands, or page-navigation controls) whenever the specified application matches the active window.
  3. Action Implementations & Overrides: The Python script overrides Talon's abstract actions to send the specific keyboard shortcuts or programmatic commands expected by the application.

For complex applications, integrations extend beyond basic keypress simulation to interact with local development servers, process registries, or OS-level IPC mechanisms.


Categorized Application Directory

To help navigate this extensive workspace, the integrations can be grouped by their functional roles:

IDEs and Text Editors

These integrations provide robust navigation, refactoring, code execution, and panels controls for major developer environments:

  • vscode: Integrates with Visual Studio Code (and derivatives like Cursor) using a high-performance, file-based RPC command server to trigger native actions directly, falling back to the Command Palette if the extension is missing.
  • jetbrains: Controls JetBrains IDEs (PyCharm, IntelliJ, etc.) by communicating with a local REST HTTP server exposed by the "Voice Code Idea" plugin, enabling reliable command execution independent of hotkeys.
  • eclipse: Overrides generic coding and navigation actions to map key sequences to Eclipse's IDE shortcuts.
  • emacs: Features an extensible table-driven command lookup system mapping Emacs Lisp functions to key combinations stored in a CSV file.
  • positron: Targets Posit's data science IDE, using the VS Code command API to control specialized data panels, plots, and notebooks.
  • obsidian: Connects voice inputs to Obsidian's note-taking tool using either local CLI commands or the internal Command Palette.
  • rstudio: Provides voice controls for RStudio on macOS, detailing specific R-operator and chunk-execution bindings.
  • notepad++ and notepad: Enable standard editing, tab controls, and line commands for popular Windows text editors.
  • apple_notes: Standardizes text styling and sidebar management in macOS Apple Notes.

Web Browsers and Web Applications

These directories enable general-purpose web browsing controls (back, forward, reload, tab switching) and streamline web-specific hotkeys:

  • chrome, firefox, edge, opera, arc, orion, vivaldi, and brave: Integrate popular web browsers across different operating systems, translating universal browser actions into native keyboard shortcuts.
  • github: Maps global navigation, repository tabs, pull requests, and CI/CD operations to GitHub's native web keys.
  • gitlab: Handles repository, issue tracking, and merge request navigation using sequential keystroke simulations on GitLab.
  • protonmail and outlook (Web): Optimize email composition and mailbox triage workflows inside web-based interfaces.
  • twitter: Bridges timeline navigation and action shortcuts on Twitter's web interface.

Note: As detailed in the main README.md, web application integrations that rely on browser.host matching require a browser extension (like "URL in Title") on certain operating systems to write the active URL into the window title.

Terminal Emulators and Shells

These integrations bridge Unix shell utilities, path tracking, and tabbed interfaces within terminal applications:

  • powershell: Extracts working directories from the Windows title bar and automates dynamic title updates.
  • wsl: Discovers local WSL installations from the registry, parses active paths from terminal windows, and leverages the wslpath utility to translate paths between Windows and Linux.
  • mintty: Standardizes command-line interactions on Windows (Cygwin/MSYS2/Git Bash) and parses paths using the cygpath backend.
  • windows_command_processor: Drives the legacy Windows Command Prompt (cmd.exe) in standalone or Windows Terminal windows.
  • windows_terminal: Maps splits, panes, tabs, and environment controls in Windows Terminal.
  • apple_terminal and iterm: Support macOS terminal development, providing path extraction, tab jumps, and Unix shell utilities.
  • gnome_terminal, kde_konsole, guake, terminator, termite, and xfce4_terminal: Map standard terminal shortcuts (like Ctrl-Shift-C/V for copy/paste) and window layouts inside Linux terminal emulators.

CLI Tools and Utilities

These modules activate specialized vocabulary groups for standard command-line programs:

  • git: Uses capturing rules and dictionary mappings to generate complex command structures (such as git commit -m) and provides single-character hotkeys during interactive patch staging.
  • gdb: Implements debugger workflows and maps commands for memory hexdumping and register inspection under a toggleable debugging tag.
  • kubectl: Enables shorthands prefixed with "cube" to manage container resources dynamically.
  • anaconda and terraform: Expose lifecycle management commands for Python environments (conda) and infrastructure-as-code deployments (terraform).
  • tmux: Maps standard tab and split window commands to tmux windows and panes using its CLI commands or keystroke prefix strings.
  • taskwarrior: Facilitates task management, modification, and lists from the terminal.

File and Window Managers

Integrations designed to manipulate the operating system GUI or layout:

  • windows_explorer: Standardizes Windows Explorer and File Dialog behavior, including OneDrive normalization and opening terminals in the active directory.
  • finder: Exposes macOS Finder controls, view modes, and folder history, utilizing AppleScript to spawn terminal windows in the active folder.
  • nautilus and dolphin: Support the primary file managers on Linux (GNOME and KDE Plasma).
  • i3wm and amethyst: Drive the i3 window manager (using i3-msg IPC calls) on Linux, and Amethyst tiling window controls on macOS.
  • dock: Interfaces with the macOS Dock to trigger App ExposĂ©, Launchpad, or show the desktop.

Document Viewers and PDF Readers

These modules wire standard page-turning and document-navigation commands to applications:

Messaging and Productivity Tools

  • discord and slack: Map navigation, sidebars, media drawers, and call states for communications platforms.
  • teams and signal: Integrate video meetings and private messenger controls across operating systems.
  • thunderbird: Uses fine-grained context routing based on localized window titles to isolate the mail list, message editor, calendar, and address book views inside Mozilla Thunderbird.
  • evernote: Adjusts keyboard delay tuning on macOS to allow reliable note editing.
  • 1password and keepassx: Deliver global auto-fill and secure credentials database management.
  • meld: Provides visual comparison, file merging, and patch execution shortcuts.
  • dunst: Controls notification daemon parameters and allows you to dismiss system notifications on Linux.

Talon Inspection and Testing

These configurations target internal development layouts of Talon:

  • talon/talon_debug_window: Detects the beta Talon Debug Window, exposing voice commands to filter actions, settings, and tags easily.
  • talon/talon_repl: Integrates with the interactive Talon REPL console to run input simulations and inspect system registries.