apps
The community/apps directory contains a collection of subdirectories, each providing specific configurations and commands for various applications. These configurations use a combination of .talon files for voice commands and .py files for implementing the underlying logic and actions. Most of these applications have their own README.md files which provide a more detailed explanation of how to use that particular application with Talon.
Here's a summary of the most important or interesting subdirectories:
-
apple_terminal: This directory provides support for using Talon with the Apple Terminal application. It activates tags for terminal functionality, readline keybindings, and other shell-related features, such asgit,anaconda, andkubectl. It also remaps some actions and provides file manager actions based on the terminal's current path. -
outlook: This directory contains Talon scripts for interacting with Outlook, with separate files for the web version (outlook_web.talon) and the Windows desktop application (outlook_win.talon). -
terraform: This directory provides voice commands for the Terraform CLI, with a coreterraform.talonfile and aterraform.pyfile that defines the application context and theuser.terraform_clienttag. -
iterm: This directory contains configuration files for the iTerm2 terminal application on macOS. It defines custom actions and activates tags for enhanced terminal interaction, includingterminal,user.generic_unix_shell,user.git,user.kubectl,user.tabs, anduser.readlinetags. -
slack: This directory provides voice control for the Slack application on macOS, Windows, and Linux. It uses separate.pyand.talonfiles for each operating system to define actions and commands, such asline_insert_down, workspace navigation, channel navigation, and messaging features. -
windbg: This directory provides voice control for the WinDbg debugger. It defines actions for stepping through code, viewing breakpoints, and other debugging tasks usingwindbg.py, whilewindbg.talonprovides the voice commands that trigger those actions. -
visualstudio: This directory contains files that provide voice control for the Visual Studio IDE on Windows. It defines actions for navigation, code editing, and debugging using the.pyfiles, and voice commands that trigger those actions in the.talonfile. It also includes tags to enable additional modules. -
vivaldi: This directory provides support for controlling the Vivaldi browser. It defines actions for toggling panels, closing tabs, and performing browser functions invivaldi.py, and it defines platform-specific overrides invivaldi_mac.py.vivaldi.talonbinds voice commands to those actions. -
wsl: This directory contains files to enable voice control of the Windows Subsystem for Linux (WSL) within the Windows Terminal. Thewsl.pyfile translates paths between Windows and WSL, and thewsl.talonfile provides voice commands that leverage that. -
notepad++: This directory provides Talon bindings for Notepad++ on Windows, including actions for tab navigation, commenting, line manipulation, and find and replace using keyboard shortcuts. -
gnome_terminal: This directory contains configuration for the Gnome Terminal application. It defines actions for tab and window management, and activates theterminal,user.tabs,user.generic_unix_shell,user.git, anduser.kubectltags. -
stata: This directory contains files to add support for the Stata application. It provides actions for defining the language for code contexts and executing Stata commands. -
vscode: This directory provides comprehensive support for VS Code. It includes acommand_clientsubdirectory that provides a mechanism for Talon to communicate with VS Code using a file-based RPC system. It also provides many custom commands and tags via thevscode.talonandvscode.pyfiles. - The
command_clientsubdirectory has its own subdirectories, which are also of interest:command_client/rpc_clientprovides the generic RPC client, which is used to send commands to VS Code and handle responses.
-
foxit_reader: This directory contains files to enable Talon control of the Foxit Reader application, including actions for page navigation, and tab management. -
discord: This directory contains files to control the Discord application. It defines actions indiscord.pythat are implemented for macOS indiscord_mac.pyand for Windows and Linux indiscord_win.py, and it provides voice commands that map to those actions indiscord.talon. -
opera: This directory provides support for controlling the Opera web browser on macOS, Windows and Linux, including tab management and browser actions. It provides actions common to all platforms inopera.py, and platform-specific implementations inopera_mac.pyandopera_win_linux.py. -
orion: This directory contains files to support the Orion browser on macOS, including actions for opening new tabs, managing downloads, extensions, and the tab overview. -
nitro_reader: This directory provides support for interacting with Nitro Reader, specifically Nitro Reader 5. Thenitro_reader_5.pyfile provides implementations for opening tabs, and navigating pages, whilenitro_reader_5.talonactivates theuser.pagesanduser.tabstags. -
kindle: This directory provides support for controlling the Kindle application. Thekindle.pyfile defines the app,kindle.talonactivates theuser.pagestag, andkindle_win.pydefines the implementation of those page navigation commands. -
mintty: This directory provides configuration for the Mintty terminal application, including file management actions, and remapped editing actions. It activates theterminal,user.generic_unix_shell,user.file_manager,user.git, anduser.kubectltags. -
notepad: This directory contains the Talon files for controlling the Windows Notepad application. Thenotepad.talonfile activates theuser.tabsanduser.find_and_replacetags, andnotepad.pydefines the application context and afilename()action. -
adobe: This directory contains configurations for Adobe Acrobat Reader DC. It implements actions for tabbing, zooming, and page navigation inadobe_acrobat_reader_dc_win.py, and theadobe_acrobat_reader_dc.talonfile activates theuser.tabsanduser.pagestags. -
keepassx: This directory provides commands for common KeePassX actions like opening, saving, and locking databases, as well as adding, editing, and deleting entries. The implementation is inkeepassx_linux.talon, and is intended for use on Linux. -
kubectl: This directory provides voice commands for interacting withkubectl, the Kubernetes command-line tool. Thekubectl.talonfile contains the commands, and thekubectl.pyfile defines theuser.kubectltag, and provides lists that are used inkubectl.talon. -
evince: This directory provides support for controlling the Evince document viewer on Linux. Theevince_linux.pyfile provides implementations of various page navigation actions, andevince.talonsets theuser.pagestag, enabling those actions. -
evernote: This directory provides a small configuration specific to Evernote on macOS. Themac.talonfile sets akey_waitsetting that helps with the multiple keypress issues that Talon can sometimes have. -
windows_explorer: This directory provides support for interacting with Windows Explorer and file dialogs. Thewindows_explorer.pyfile provides implementations for file and folder actions, andwindows_explorer.talonprovides voice commands that call those actions. -
1password: This directory provides platform specific commands for using 1Password. The1password.pyfile defines the application and custom actions, and the1password_mac.pyand1password_win.pyimplement the actions by simulating keyboard presses. The1password.talonand1password_global.talonfiles provide voice commands for those actions. -
jetbrains: This directory provides support for interacting with JetBrains IDEs. It uses an HTTP-based RPC system to communicate with the IDE, and thejetbrains.talonfile defines a large number of useful commands for navigating and refactoring code, using the actions injetbrains.py. -
thunderbird: This directory provides support for controlling the Thunderbird email client, including inbox navigation, message composition, contact management, calendar and tasks. It includes OS-specific implementations, and it has specific configurations for different views within the application. -
gdb: This directory contains files to enable voice control of the GNU Debugger (GDB). Thegdb_active.talonfile defines the voice commands and thegdb.pyfile defines theuser.gdbtag, which is toggled bygdb_global.talon. -
windows_terminal: This directory contains configurations for the Windows Terminal application, including support for tabs, splits, and file management actions. Thewindows_terminal.pyfile implements the actions, andwindows_terminal.talonactivates the necessary tags. -
protonmail: This directory contains scripts for interacting with the ProtonMail web application, including navigation, email management, and composer actions. Theprotonmail.talonfile contains most of the voice commands. -
calibre: This directory provides support for controlling the Calibre ebook management software and its ebook viewer. Thecalibre.pyfile defines the context for the main application, andcalibre_viewer.pyandcalibre_viewer.talonprovides the configurations for the ebook viewer. -
i3wm: This directory provides configurations for the i3 window manager on Linux. It provides commands for managing workspaces and windows. Thei3wm.pyfile provides the implementations of variousi3-msgcommands, andi3wm.talonbinds those to voice commands. -
tmux: This directory contains files to enable voice control oftmux. It provides basic pane management withtmux.talonand a more comprehensive command set for Linux withtmux_linux.talon, all using actions defined intmux.py. -
brave: This directory contains configurations for the Brave browser. Thebrave.talonfile activates thebrowseranduser.tabstags, and thebrave.pyfile defines atab_close_wrapperaction. -
anaconda: This directory provides integration with thecondapackage manager. Theanaconda.talonfile defines the voice commands, and theanaconda.pyfile defines theuser.anacondatag which enables them. -
gitlab: This directory provides voice commands for interacting with GitLab in a web browser. The commands are implemented in thegitlab.talonfile. -
chrome: This directory provides configurations for the Google Chrome browser. Thechrome.pyfile defines the application context, and thechrome.talonfile enables thebrowseranduser.tabstags and defines some additional commands for Chrome. -
rstudio: This directory contains support for the RStudio application on macOS. The commands are defined in therstudio_mac.talonfile, and provide a variety of actions for coding, debugging, and navigating the IDE. -
github: This directory provides voice commands for interacting with GitHub in a web browser. The commands are implemented in thegithub_web.talonfile. -
amethyst: This directory provides voice commands for the Amethyst window manager on macOS. Theamethyst.talonfile contains the relevant commands. -
taskwarrior: This directory provides voice commands for the Taskwarrior command-line task manager. The commands are implemented in thetaskwarrior_linux.talonfile, and are intended for use on Linux. -
powershell: This directory provides configurations for the Windows PowerShell. Thepowershell_win.pyfile implements the actions, and thepowershell_win.talonactivates theterminal,user.generic_windows_shell,user.git,user.anaconda, anduser.file_managertags. -
warp: This directory provides support for the Warp terminal application on macOS. Thewarp.talonfile activates a number of tags, andwarp.pydefines the application context. -
dunst: This directory provides configurations for the Dunst notification daemon. Thedunst.talonfile contains the voice commands. -
windows_command_processor: This directory contains support for the Windows Command Prompt and Windows Terminal, including actions for file management and terminal interaction. The actions are implemented incommand_processor_win.pyandcommand_processor_actions_win.py. -
teams: This directory contains support for controlling the Microsoft Teams application. Theteams_linux.pyfile defines some Linux specific actions,teams.pydefines the application, andteams.talonandteams_mac.talondefine the voice commands for Linux/Windows and macOS, respectively. -
finder: This directory contains configurations for the macOS Finder. Thefinder.pyimplements actions related to file management and navigation, whilefinder.talonactivates tags and provides voice commands to call those actions. -
signal: This directory contains configuration for the Signal application on Linux. Thesignal_linux.talonfile contains the voice commands. -
nautilus: This directory provides configurations for the Nautilus file manager on Linux. Thenautilus.pyfile implements the actions, andnautilus.talonactivates theuser.tabsanduser.file_managertags. -
arc: This directory provides support for the Arc browser. Thearc.pyfile defines custom actions,little-arc_mac.talondefines a command for opening a new "Little Arc" window, andarc_mac.talonactivates thebrowser,user.tabs, anduser.command_searchtags. -
edge: This directory provides support for the Microsoft Edge browser. Theedge.pyfile defines an action for opening the extensions page, andedge.talonactivates thebrowseranduser.tabstags. -
firefox: This directory provides support for the Firefox browser. Thefirefox.pyfile defines the application context and some generic actions, and the platform specific implementations are infirefox_win_linux.pyandfirefox_mac.py. The voice commands are infirefox.talon. -
termite: This directory provides configuration for the Termite terminal application. Thetermite.talonfile activates theuser.kubectl,user.git,user.taskwarrior, andterminaltags. -
guake: This directory provides configuration for the Guake terminal application on Linux. Theguake_linux.pyfile activates theuser.git,user.kubectl,user.tabs, andterminaltags, and provides tab management actions. -
sumatrapdf: This directory provides configurations for the SumatraPDF application. Thesumatrapdf.talonfile activates theuser.pagesanduser.tabstags, and thesumatrapdf.pyimplements actions for tab management, zooming, and page navigation. -
talon: This directory contains configurations that are specific to the Talon application itself.talon/talon_replprovides commands for interacting with the Talon REPL, and includes commands for debugging and inspecting the state of the Talon runtime.talon/talon_debug_windowprovides commands that are available when the Talon debug window is active, including commands to inspect internal talon structures, and dictating key combinations.
-
dock: This directory contains configurations to interact with the macOS Dock. Thedock.pyfile defines actions for sending notifications and activating App Exposé, anddock.talondefines voice commands that trigger those actions. -
git: This directory provides commands for interacting with Git from the command line. It provides a set of commands, arguments and convenience functions, that are implemented ingit.talon, and used bygit_add_patch.talon, usinguser.git_command,user.git_argument, and other lists defined ingit.py. -
safari: This directory provides support for the Safari browser. Thesafari.pyfile defines the application context and some browser actions, andsafari.talonactivates thebrowseranduser.tabstags. -
eclipse: This directory provides voice commands for the Eclipse IDE on Windows. Theeclipse_win.pyfile implements the actions, andeclipse.talondefines the voice commands that use those actions, and also defines some keybindings. -
obsidian: This directory provides support for the Obsidian application. Theobsidian.pyfile sets the default code language to markdown, andobsidian.talonactivates theuser.tabstag. -
emacs: This directory provides support for the Emacs text editor. Theemacs.pyfile provides implementations of various actions, andemacs.talondefines voice commands for those actions. Theemacs_commands.csvprovides data to create short and spoken forms of Emacs commands, which are loaded byemacs_commands.py. -
meld: This directory contains files that provide support for the Meld visual diff and merge tool, providing tab management and actions for moving between changes. Themeld.pyfile implements the basic actions, andmeld.talonprovides the voice commands. -
terminator: This directory provides configurations for the Terminator terminal emulator on Linux. Theterminator_linux.pyfile sets up the application context, and provides implementations of various user, app, and edit actions. -
kde_konsole: This directory provides support for the KDE Konsole terminal emulator on Linux. Thekde_konsole.pyfile defines actions for tab management and remapped edit actions, andkde_konsole.talonactivates theterminal,user.generic_unix_shell,user.git,user.anaconda, anduser.tabstags. -
okular: This directory provides support for the Okular document viewer. Theokular.pyfile provides actions for page navigation, andokular.talonactivates theuser.pagestag. -
vscode/command_client: This directory is part of the VS Code support and provides a mechanism for Talon to communicate with VS Code using a file based RPC system.vscode/command_client/rpc_client: This subdirectory provides the core functionality for implementing RPC using files. It includes a variety of utilities to prevent file locking and race conditions.
The top-level README.md file explains the use of browser.host and suggests browser extensions for non-macOS platforms to populate the browser.host matcher, which is used in some of the web app configurations.
These subdirectories contain configurations for a wide variety of applications, and they use a combination of .talon files for voice commands and .py files for the implementation. They often use tags to enable additional functionality from other parts of the Talon configuration. The README.md files that are contained within each directory provide more specific information.