49 lines
935 B
Python
49 lines
935 B
Python
from talon import Context, Module, actions
|
|
|
|
# --- App definition ---
|
|
mod = Module()
|
|
mod.apps.okular = r"""
|
|
os: windows
|
|
and app.name: okular.exe
|
|
os: windows
|
|
and app.exe: /^okular\.exe$/i
|
|
"""
|
|
mod.apps.okular = """
|
|
os: linux
|
|
and app.name: okular
|
|
"""
|
|
# TODO: mac context and implementation
|
|
|
|
# Context matching
|
|
ctx = Context()
|
|
ctx.matches = """
|
|
os: windows
|
|
os: linux
|
|
app: okular
|
|
"""
|
|
|
|
|
|
# --- Implement actions ---
|
|
@ctx.action_class("user")
|
|
class UserActions:
|
|
# user.pages
|
|
def page_current():
|
|
actions.key("ctrl-g")
|
|
page = actions.edit.selected_text()
|
|
actions.key("escape")
|
|
return int(page)
|
|
|
|
def page_next():
|
|
actions.key("l")
|
|
|
|
def page_previous():
|
|
actions.key("h")
|
|
|
|
def page_jump(number: int):
|
|
actions.key("ctrl-g")
|
|
actions.sleep("100ms")
|
|
actions.insert(str(number))
|
|
actions.key("enter")
|
|
|
|
def page_final():
|
|
actions.key("ctrl-end")
|