Machen Sie bitte doch mal ein konkretes Beispiel für Ihre Anforderungen.
Ich benutze für Situationen, die Sie nennen, ein Programm namens "Hammerspoon". Es ist sehr mächtig, erfordert aber auch Einarbeitung. Hier 2 kurze Beispiele:
1. Folg. Zeilen in der config-Datei von Hammerspoon führen bei Drücken von Ctrl+Shift+F3 die Aktionskette "heuteDatum" aus über den Aufruf eines AppleScriptes
hs.hotkey.bind({ "ctrl", "shift" }, "f3", function()
hs.osascript.applescript[[tell application "tomedo" to call aktionskette "heuteDatum"]]
end)
2. Folg. Zeilen sind zwar lang, aber rel. einfach zu verstehen und führen bei Druck von CMD+Fx Tasten zur Anlage von bestimmten Karteieinträgen wenn tomedo die aktive App ist
function karteiEintrag(eintrag)
return function()
local app = hs.application.frontmostApplication()
if app:name() == "tomedo" then
local t = hs.appfinder.appFromName("tomedo")
if eintrag == 'f1' then
do
local m = { "Eintrag", "ANA (Anamnese)" }
hs.alert("F1")
t:selectMenuItem(m)
end
elseif eintrag == 'f2' then
do
local m = { "Eintrag", "VU (Voruntersuchung)" }
hs.alert("F2")
t:selectMenuItem(m)
end
elseif eintrag == 'f3' then
do
local m = { "Eintrag", "TO (TO)" }
hs.alert("F3")
t:selectMenuItem(m)
end
elseif eintrag == 'f4' then
do
local m = { "Eintrag", "BEF (Befund)" }
hs.alert("F4")
t:selectMenuItem(m)
end
elseif eintrag == 'f5' then
do
local m = { "Eintrag", "THE (Therapie)" }
hs.alert("F5")
t:selectMenuItem(m)
end
elseif eintrag == 'f6' then
do
local m = { "Eintrag", "WV (WV)" }
hs.alert("F6")
t:selectMenuItem(m)
end
elseif eintrag == 'f7' then
do
local m = { "Eintrag", "NOT (NOT)" }
hs.alert("F7")
t:selectMenuItem(m)
end
elseif eintrag == 'f8' then
do
local m = { "Eintrag", "OCT (OCT)" }
hs.alert("F8")
t:selectMenuItem(m)
end
end
else
hs.alert(app)
end
end
end
hs.hotkey.bind("cmd", "f1", karteiEintrag("f1"))
hs.hotkey.bind("cmd", "f2", karteiEintrag("f2"))
hs.hotkey.bind("cmd", "f3", karteiEintrag("f3"))
hs.hotkey.bind("cmd", "f4", karteiEintrag("f4"))
hs.hotkey.bind("cmd", "f5", karteiEintrag("f5"))
hs.hotkey.bind("cmd", "f6", karteiEintrag("f6"))
hs.hotkey.bind("cmd", "f7", karteiEintrag("f7"))
hs.hotkey.bind("cmd", "f8", karteiEintrag("f8"))
Hammerspoon benutzt die Sprache Lua (eine der einfacheren Programmiersprachen), um auf macOS API Funktionen zuzugreifen. Die Seite https://www.hammerspoon.org/go/ hat eine ganz gute Beschreibung mit Beispielen. Ansonsten muss man sich etwas reinfuchsen aber die Dokumentation ist SEHR gut und im Netz gibt es viele Beispiele.