terminator
This directory provides voice control integration for Terminator, a popular, highly-configurable terminal emulator for Linux that supports multiple resizable terminal panels (splits) within a single window.
The integration is implemented entirely within a single file:
- terminator_linux.py: Defines the Terminator application context and implements the platform-specific keyboard shortcuts for window, tab, split, and edit operations on Linux.
Application Definition & Context
The Python module registers the application under Linux by matching its executable name (terminator) or window class name (Terminator).
When Terminator is the active window, the module activates several tag contexts:
* terminal & user.generic_unix_shell: Activates general terminal and shell command behaviors.
* user.tabs: Enables tab management commands.
* user.splits: Enables window splitting and split navigation commands.
* user.git & user.kubectl: Automatically brings in specialized command sets for version control and Kubernetes management when working inside this terminal.
Key Mappings and Actions
terminator_linux.py overrides three major sets of Talon action classes to align with Terminator's native keyboard shortcuts:
Panel Splits (user.splits)
Terminator is well-known for its advanced splitting features. This module maps Talon's abstract split commands to Terminator's native keybindings:
* Creating Splits: split_window_vertically (Ctrl+Shift+E) and split_window_horizontally (Ctrl+Shift+O).
* Navigation: Navigating focus up, down, left, or right via standard Alt + Arrow keys, as well as cycling through panels.
* Management: Maximizing/restoring a panel (Ctrl+Shift+X), resetting layouts, or clearing active splits.
Tabs & Windows (app)
Standard app actions are redirected to Terminator-specific key combinations:
* Tabs: Opening (Ctrl+Shift+T), closing (Ctrl+Shift+W), and cycling through tabs (Ctrl+PageUp / Ctrl+PageDown).
* Windows: Spawning a new terminal window (Ctrl+Shift+I) and closing windows (Ctrl+Shift+Q).
Text & Terminal Editing (edit)
Overrides common terminal shortcuts that differ from standard GUI application shortcuts on Linux:
* Clipboard: Redirects copy and paste actions to use the terminal-safe Ctrl+Shift+C and Ctrl+Shift+V.
* Scrolling: Maps page up and page down to use Shift+PageUp and Shift+PageDown.
* Searching & Deletion: Binds the find function to Ctrl+Shift+F and line deletion to Ctrl+K after navigating to the beginning of the line.