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. Themessaging.talonfile defines the voice commands, whilemessaging.pydefines the underlying actions.file_manager: This tag implements a voice-controlled file manager. Thefile_manager.talonfile defines commands for navigating directories, selecting files, creating folders, opening terminals, and showing file properties. The core logic is implemented infile_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. Thebrowser.pyfile defines actions for tab navigation, address bar control, and browsing history manipulation. Thebrowser.talonfile binds those actions to voice commands. Thebrowser_mac.pyfile 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]". Thecommand_search.pyfile defines thecommand_searchtag and action, while thecommand_search.talonfile 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. Thechapters.pyfile defines actions for jumping between chapters, and thechapters.talonfile maps these actions to voice commands.pages: This tag is intended to be used for applications or contexts that support page navigation. Thepages.pydefines theuser.pagestag and actions for navigating between pages, and also rotation. Thepages.talonbinds these actions to voice commands and also enables theuser.navigationtag.splits: This tag provides functionality for managing window splits, commonly found in tiling window managers and some IDEs. Thesplits.pyfile defines actions for manipulating window splits, andsplits.talonbinds these actions to voice commands.find: This tag provides simple find functionality. Thefind.pyfile defines thefindtag, and thefind.talonfile 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. Theline_commands.pyfile defines actions such as selecting lines, moving lines, indenting, and moving by camel case. Theline_commands.talonfile 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. Theemoji.pyfile defines theuser.emojitag and the lists that will be populated with emoji. Theemoji.talonfile binds those lists to voice commands. Theemoticon.talon-list,kaomoji.talon-list, andemoji.talon-listfiles define the content of those lists.find_and_replace: This tag provides more advanced find and replace functionality. Thefind_and_replace.pyfile defines actions for finding and replacing text. Thefind_and_replace.talonfile defines voice commands that use the actions infind_and_replace.py, and also enables theuser.findtag.debugger: This tag provides voice control of a debugger. Thedebugger.talonfile defines the voice commands and thedebugger.pyfile 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. Themultiple_cursors.pydefines the actions that are used for multi-cursor selection, and themultiple_cursors.talonfile defines the voice commands for those actions.terminal: This tag provides support for interacting with terminal applications using Talon. Theterminal.pyfile defines the actions for interacting with the terminal, andunix_shell.pyandwindows_shell.pyimplement these actions for Unix-like and Windows environments respectively. Theterminal.talonfile defines the voice commands for these actions. Thereadline.pyfile provides actions for editing text in terminals using readline keybindings. Theunix_utilities.py,unix_utilities.talon, andunix_utility.talon-listfiles 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. Theaddress.talonfile provides voice commands for navigating to an address, copying an address, and focusing the address input field. Theaddress.pyfile defines theaddresstag 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.