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

66 lines
1.4 KiB
Python

from talon import Context, Module, actions, clip, ui
# App definition
mod = Module()
mod.apps.nautilus = """
os: linux
and app.exe: nautilus
os: linux
and app.name: Org.gnome.Nautilus
os: linux
and app.name: Caja
"""
# Context matching
ctx = Context()
ctx.matches = r"""
app: nautilus
"""
# --- Implement actions ---
@ctx.action_class("app")
class AppActions:
# app.tabs
def tab_next():
actions.key("ctrl-pagedown")
def tab_previous():
actions.key("ctrl-pageup")
@ctx.action_class("user")
class UserActions:
# user.tabs
def tab_jump(number: int):
actions.key(f"alt-{number}")
# user.navigation
def go_back():
actions.key("alt-left")
def go_forward():
actions.key("alt-right")
# user.file_manager
def file_manager_open_parent():
actions.key("alt-up")
def file_manager_show_properties():
actions.key("ctrl-i")
def file_manager_open_directory(path: str):
actions.key("ctrl-l")
actions.insert(path)
actions.key("enter")
def file_manager_new_folder(name: str = None):
actions.key("ctrl-shift-n")
if name:
actions.insert(name)
def file_manager_terminal_here():
actions.key("ctrl-l")
with clip.capture() as path:
actions.edit.copy()
ui.launch(path="gnome-terminal", args=[f"--working-directory={path.get()}"])