93 lines
1.7 KiB
Python
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
|