dotfiles/talon/user/community/apps/gnome_terminal/gnome_terminal.py

93 lines
1.7 KiB
Python

from talon import Context, Module, actions
# App definition
mod = Module()
mod.apps.gnome_terminal = """
os: linux
and app.exe: gnome-terminal-server
os: linux
and app.name: Gnome-terminal
os: linux
and app.name: Mate-terminal
"""
# Context matching
ctx = Context()
ctx.matches = r"""
app: gnome_terminal
"""
# --- Implement actions ---
@ctx.action_class("user")
class user_actions:
# user.tabs
def tab_jump(number):
actions.key(f"alt-{number}")
@ctx.action_class("app")
class app_actions:
# app.tabs
def tab_open():
actions.key("ctrl-shift-t")
def tab_previous():
actions.key("ctrl-pageup")
def tab_next():
actions.key("ctrl-pagedown")
def tab_close():
actions.key("ctrl-shift-w")
# global (overwrite linux/app.py)
def window_open():
actions.key("ctrl-shift-n")
def window_close():
actions.key("ctrl-shift-q")
# global (overwrite linux/edit.py)
@ctx.action_class("edit")
class EditActions:
def page_down():
actions.key("shift-pagedown")
def page_up():
actions.key("shift-pageup")
def paste():
actions.key("ctrl-shift-v")
def copy():
actions.key("ctrl-shift-c")
def find(text: str = None):
actions.key("ctrl-shift-f")
if text:
actions.insert(text)
def delete_line():
actions.edit.line_start()
actions.key("ctrl-k")
# afaik not possible in gnome-terminal
def extend_left():
pass
def extend_right():
pass
def extend_up():
pass
def extend_down():
pass
def extend_word_left():
pass
def extend_word_right():
pass