Skip to content

tags

This directory acts as the central interface definition layer for the Talon community configuration. It provides standardized, cross-platform voice syntax and abstract programming APIs for a vast array of application behaviors.

By utilizing Talon’s tag-and-action architecture, this directory decouples voice commands (which remain uniform for the user) from their concrete, application-specific implementations (which vary depending on the active OS, browser, IDE, or shell).

Architectural Design: The Tag-Action Pattern

Almost every module in this directory is structured into two core components that work together:

  1. The Python Interface (.py): Registers a unique tag (e.g., user.multiple_cursors) and declares a class of empty actions (e.g., multi_cursor_add_above()). These actions serve as virtual blueprints or fallbacks.
  2. The Talon Grammar (.talon): Defines the natural voice commands that the user actually speaks (e.g., "cursor up"). This file is scoped to the specific tag, meaning the commands are only active when an application has activated that tag.

Application-specific configurations (located elsewhere in the repository) "capture" these tags when their respective applications are focused. They override the abstract actions with the exact hotkeys, menu calls, or API scripts required by that specific software. This ensures you only need to memorize a single set of voice commands across many different programs.


Directory Modules

The subdirectories are organized around core domains of computer interaction:

  • file_manager: Implements hands-free file explorer control. It reads directory contents in the background, generates phonetic spoken names for files, and displays an imgui selection overlay so you can target items by index numbers.
  • address: Unifies path-based and URL-based navigation fields across file explorers, FTP clients, and web browsers.
  • browser: Standardizes tab and bookmark management, page reloads, and access to developer tools. It includes specialized fallback logic for macOS UI trees to retrieve active URLs safely.

Document & Media Reading

  • pages: Standardizes document navigation and rotation across PDF viewers, presentation software, and e-readers.
  • chapters: Standardizes navigation hooks for traversing sequential chapters in long-form reading applications.

Code Editing & Text Manipulation

  • line_commands: Provides cursor-teleporting, line ranges, indentation shifting, block reordering, and camelCase subword navigation for editors.
  • multiple_cursors: Unifies multi-selection and cursor spawning controls across IDEs like VS Code, JetBrains, and Sublime Text.
  • find & find_and_replace: Establish search interfaces, ranging from simple file hunts to advanced regex parameter toggles, bulk search-and-replace patterns, and clipboard-targeted modifications.
  • command_search: Instantiates a single "please" command to search and trigger an active application's native command palette or menu items.

Technical Developer Environments

  • terminal: Standardizes directory navigation and terminal manipulation across Unix shells and PowerShell. It implements Unix utility vocabularies and integrates Readline (Emacs-like) keyboard shortcuts to navigate terminal text efficiently.
  • debugger: Outlines a unified syntax for execution control (stepping, continuing), breakpoint management, and CPU register referencing across tools like GDB, LLDB, and WinDbg.

Communication & Layout

  • messaging: Decouples server and channel navigation, workspace switching, and chat controls for applications like Discord, Slack, and Microsoft Teams.
  • emoji: Registers spoken catalogs for standard Unicode emojis, classic Western ASCII emoticons, and Japanese kaomojis.
  • splits: Maps common window split commands (creating, navigating, and destroying tab panes) to abstract actions.

Central Index

  • README.md: A concise reference catalog detailing each capability folder found within this directory.