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.talon
file and aterraform.py
file that defines the application context and theuser.terraform_client
tag. -
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.readline
tags. -
slack
: This directory provides voice control for the Slack application on macOS, Windows, and Linux. It uses separate.py
and.talon
files 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.talon
provides 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.py
files, and voice commands that trigger those actions in the.talon
file. 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.talon
binds 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.py
file translates paths between Windows and WSL, and thewsl.talon
file 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.kubectl
tags. -
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_client
subdirectory 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.talon
andvscode.py
files. - The
command_client
subdirectory has its own subdirectories, which are also of interest:command_client/rpc_client
provides 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.py
that are implemented for macOS indiscord_mac.py
and 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.py
andopera_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.py
file provides implementations for opening tabs, and navigating pages, whilenitro_reader_5.talon
activates theuser.pages
anduser.tabs
tags. -
kindle
: This directory provides support for controlling the Kindle application. Thekindle.py
file defines the app,kindle.talon
activates theuser.pages
tag, andkindle_win.py
defines 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.kubectl
tags. -
notepad
: This directory contains the Talon files for controlling the Windows Notepad application. Thenotepad.talon
file activates theuser.tabs
anduser.find_and_replace
tags, andnotepad.py
defines 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.talon
file activates theuser.tabs
anduser.pages
tags. -
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.talon
file contains the commands, and thekubectl.py
file defines theuser.kubectl
tag, and provides lists that are used inkubectl.talon
. -
evince
: This directory provides support for controlling the Evince document viewer on Linux. Theevince_linux.py
file provides implementations of various page navigation actions, andevince.talon
sets theuser.pages
tag, enabling those actions. -
evernote
: This directory provides a small configuration specific to Evernote on macOS. Themac.talon
file sets akey_wait
setting 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.py
file provides implementations for file and folder actions, andwindows_explorer.talon
provides voice commands that call those actions. -
1password
: This directory provides platform specific commands for using 1Password. The1password.py
file defines the application and custom actions, and the1password_mac.py
and1password_win.py
implement the actions by simulating keyboard presses. The1password.talon
and1password_global.talon
files 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.talon
file 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.talon
file defines the voice commands and thegdb.py
file defines theuser.gdb
tag, 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.py
file implements the actions, andwindows_terminal.talon
activates the necessary tags. -
protonmail
: This directory contains scripts for interacting with the ProtonMail web application, including navigation, email management, and composer actions. Theprotonmail.talon
file contains most of the voice commands. -
calibre
: This directory provides support for controlling the Calibre ebook management software and its ebook viewer. Thecalibre.py
file defines the context for the main application, andcalibre_viewer.py
andcalibre_viewer.talon
provides 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.py
file provides the implementations of variousi3-msg
commands, andi3wm.talon
binds those to voice commands. -
tmux
: This directory contains files to enable voice control oftmux
. It provides basic pane management withtmux.talon
and 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.talon
file activates thebrowser
anduser.tabs
tags, and thebrave.py
file defines atab_close_wrapper
action. -
anaconda
: This directory provides integration with theconda
package manager. Theanaconda.talon
file defines the voice commands, and theanaconda.py
file defines theuser.anaconda
tag which enables them. -
gitlab
: This directory provides voice commands for interacting with GitLab in a web browser. The commands are implemented in thegitlab.talon
file. -
chrome
: This directory provides configurations for the Google Chrome browser. Thechrome.py
file defines the application context, and thechrome.talon
file enables thebrowser
anduser.tabs
tags 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.talon
file, 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.talon
file. -
amethyst
: This directory provides voice commands for the Amethyst window manager on macOS. Theamethyst.talon
file contains the relevant commands. -
taskwarrior
: This directory provides voice commands for the Taskwarrior command-line task manager. The commands are implemented in thetaskwarrior_linux.talon
file, and are intended for use on Linux. -
powershell
: This directory provides configurations for the Windows PowerShell. Thepowershell_win.py
file implements the actions, and thepowershell_win.talon
activates theterminal
,user.generic_windows_shell
,user.git
,user.anaconda
, anduser.file_manager
tags. -
warp
: This directory provides support for the Warp terminal application on macOS. Thewarp.talon
file activates a number of tags, andwarp.py
defines the application context. -
dunst
: This directory provides configurations for the Dunst notification daemon. Thedunst.talon
file 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.py
andcommand_processor_actions_win.py
. -
teams
: This directory contains support for controlling the Microsoft Teams application. Theteams_linux.py
file defines some Linux specific actions,teams.py
defines the application, andteams.talon
andteams_mac.talon
define the voice commands for Linux/Windows and macOS, respectively. -
finder
: This directory contains configurations for the macOS Finder. Thefinder.py
implements actions related to file management and navigation, whilefinder.talon
activates tags and provides voice commands to call those actions. -
signal
: This directory contains configuration for the Signal application on Linux. Thesignal_linux.talon
file contains the voice commands. -
nautilus
: This directory provides configurations for the Nautilus file manager on Linux. Thenautilus.py
file implements the actions, andnautilus.talon
activates theuser.tabs
anduser.file_manager
tags. -
arc
: This directory provides support for the Arc browser. Thearc.py
file defines custom actions,little-arc_mac.talon
defines a command for opening a new "Little Arc" window, andarc_mac.talon
activates thebrowser
,user.tabs
, anduser.command_search
tags. -
edge
: This directory provides support for the Microsoft Edge browser. Theedge.py
file defines an action for opening the extensions page, andedge.talon
activates thebrowser
anduser.tabs
tags. -
firefox
: This directory provides support for the Firefox browser. Thefirefox.py
file defines the application context and some generic actions, and the platform specific implementations are infirefox_win_linux.py
andfirefox_mac.py
. The voice commands are infirefox.talon
. -
termite
: This directory provides configuration for the Termite terminal application. Thetermite.talon
file activates theuser.kubectl
,user.git
,user.taskwarrior
, andterminal
tags. -
guake
: This directory provides configuration for the Guake terminal application on Linux. Theguake_linux.py
file activates theuser.git
,user.kubectl
,user.tabs
, andterminal
tags, and provides tab management actions. -
sumatrapdf
: This directory provides configurations for the SumatraPDF application. Thesumatrapdf.talon
file activates theuser.pages
anduser.tabs
tags, and thesumatrapdf.py
implements actions for tab management, zooming, and page navigation. -
talon
: This directory contains configurations that are specific to the Talon application itself.talon/talon_repl
provides commands for interacting with the Talon REPL, and includes commands for debugging and inspecting the state of the Talon runtime.talon/talon_debug_window
provides 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.py
file defines actions for sending notifications and activating App Exposé, anddock.talon
defines 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.py
file defines the application context and some browser actions, andsafari.talon
activates thebrowser
anduser.tabs
tags. -
eclipse
: This directory provides voice commands for the Eclipse IDE on Windows. Theeclipse_win.py
file implements the actions, andeclipse.talon
defines the voice commands that use those actions, and also defines some keybindings. -
obsidian
: This directory provides support for the Obsidian application. Theobsidian.py
file sets the default code language to markdown, andobsidian.talon
activates theuser.tabs
tag. -
emacs
: This directory provides support for the Emacs text editor. Theemacs.py
file provides implementations of various actions, andemacs.talon
defines voice commands for those actions. Theemacs_commands.csv
provides 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.py
file implements the basic actions, andmeld.talon
provides the voice commands. -
terminator
: This directory provides configurations for the Terminator terminal emulator on Linux. Theterminator_linux.py
file 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.py
file defines actions for tab management and remapped edit actions, andkde_konsole.talon
activates theterminal
,user.generic_unix_shell
,user.git
,user.anaconda
, anduser.tabs
tags. -
okular
: This directory provides support for the Okular document viewer. Theokular.py
file provides actions for page navigation, andokular.talon
activates theuser.pages
tag. -
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.