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