apple_terminal
The community/apps/apple_terminal
directory contains files that provide support for using Talon with the Apple Terminal application.
The core functionality is defined in apple_terminal.talon
. This file activates several important tags:
* terminal
: This tag makes the commands defined in terminal.talon
available, providing general terminal functionality.
* user.readline
: This tag enables readline keybindings for editing commands within the terminal.
* user.generic_unix_shell
: This tag activates the commands and functions in terminal.talon
, which provide generic Unix shell functionality.
* user.git
, user.anaconda
, and user.kubectl
: These tags make commands specific to those applications available, but can be disabled if not used.
* user.tabs
and user.file_manager
: These tags activate additional functionality related to tab management and file management within the terminal.
The apple_terminal.talon
file also defines suspend
and resume
commands. The suspend
command sends ctrl-z
to the terminal, which suspends the current process. The resume
command types fg
followed by enter, which resumes the suspended process.
The file apple_terminal.py
defines the application context and implements custom actions for the Apple Terminal.
* It defines a context that matches the apple_terminal
application.
* It remaps the edit.delete_line()
action to ctrl-u
.
* It provides file manager actions within a user
context such as:
* file_manager_current_path()
: Extracts the current path from the terminal's window title.
* file_manager_open_directory(path)
: Inserts a cd
command into the terminal.
* file_manager_open_parent()
: Inserts a cd ..
command into the terminal.
* file_manager_select_directory(path)
: Inserts the provided path.
* file_manager_new_folder(name)
: Inserts a mkdir
command with the provided name.
* file_manager_open_file(path)
: Inserts the provided path, followed by enter.
* file_manager_select_file(path)
: Inserts the provided path.
* It defines application actions within an app
context, specifically tab_previous()
and tab_next()
which use the keyboard shortcuts for switching tabs in the Apple Terminal application.