Skip to content

tags

The community/tags directory contains a collection of subdirectories, each representing a different tag in the Talon system. These tags are used to group related commands and functionality. This directory also contains a top-level README.md file which describes each of the subdirectories.

Here is a breakdown of the key subdirectories within community/tags:

  • messaging: This tag provides a generic set of commands and actions for controlling multi-channel messaging applications. It includes commands for navigating between workspaces and channels, marking channels as read, searching for messages, and uploading files. The messaging.talon file defines the voice commands, while messaging.py defines the underlying actions.
  • file_manager: This tag implements a voice-controlled file manager. The file_manager.talon file defines commands for navigating directories, selecting files, creating folders, opening terminals, and showing file properties. The core logic is implemented in file_manager.py, which handles the file system interactions, the user interface, and the updates of available files and directories.
  • browser: This tag provides a common interface for controlling web browsers. The browser.py file defines actions for tab navigation, address bar control, and browsing history manipulation. The browser.talon file binds those actions to voice commands. The browser_mac.py file provides macOS-specific actions that override the default actions on macOS.
  • command_search: This tag provides a way to search for and execute other Talon commands by name or description using a phrase like "please [command]". The command_search.py file defines the command_search tag and action, while the command_search.talon file defines the speech rules to trigger that action. The action needs to be implemented.
  • chapters: This tag is used to navigate chapters in a reader application. The chapters.py file defines actions for jumping between chapters, and the chapters.talon file maps these actions to voice commands.
  • pages: This tag is intended to be used for applications or contexts that support page navigation. The pages.py defines the user.pages tag and actions for navigating between pages, and also rotation. The pages.talon binds these actions to voice commands and also enables the user.navigation tag.
  • splits: This tag provides functionality for managing window splits, commonly found in tiling window managers and some IDEs. The splits.py file defines actions for manipulating window splits, and splits.talon binds these actions to voice commands.
  • find: This tag provides simple find functionality. The find.py file defines the find tag, and the find.talon file defines the voice commands that are associated with it, such as "hunt this" and "hunt next".
  • line_commands: This tag provides a set of generic line navigation and manipulation commands. The line_commands.py file defines actions such as selecting lines, moving lines, indenting, and moving by camel case. The line_commands.talon file maps these actions to voice commands such as "go 10", "comment line 5", and "drag line down".
  • emoji: This tag contains functionality for inserting emoji, emoticons, and kaomoji using Talon. The emoji.py file defines the user.emoji tag and the lists that will be populated with emoji. The emoji.talon file binds those lists to voice commands. The emoticon.talon-list, kaomoji.talon-list, and emoji.talon-list files define the content of those lists.
  • find_and_replace: This tag provides more advanced find and replace functionality. The find_and_replace.py file defines actions for finding and replacing text. The find_and_replace.talon file defines voice commands that use the actions in find_and_replace.py, and also enables the user.find tag.
  • debugger: This tag provides voice control of a debugger. The debugger.talon file defines the voice commands and the debugger.py file defines the actions that are called by the talon file. The python file also defines a list of valid registers.
  • multiple_cursors: This tag adds support for multiple cursors to Talon. The multiple_cursors.py defines the actions that are used for multi-cursor selection, and the multiple_cursors.talon file defines the voice commands for those actions.
  • terminal: This tag provides support for interacting with terminal applications using Talon. The terminal.py file defines the actions for interacting with the terminal, and unix_shell.py and windows_shell.py implement these actions for Unix-like and Windows environments respectively. The terminal.talon file defines the voice commands for these actions. The readline.py file provides actions for editing text in terminals using readline keybindings. The unix_utilities.py, unix_utilities.talon, and unix_utility.talon-list files provide a tag, a list of common unix utilities, and a voice command for using them.
  • address: This tag provides a way to navigate to a location using an address, like a file path or URL. The address.talon file provides voice commands for navigating to an address, copying an address, and focusing the address input field. The address.py file defines the address tag and actions and must be implemented by other files to handle the details of a specific address.

In summary, the community/tags directory is a collection of reusable components that provide common functionality in Talon. Each subdirectory contains a tag, and the associated files implement actions that provide specific functionality related to that tag. The voice commands for these actions are defined in .talon files within each subdirectory.