Už jsem na to o víkendu zase narazil. Dvě z několika Zkratek s přiřazenou klávesovou kombinací přestaly reagovat. Ostatní fungovaly. Oprava byla snadná, přidat je znovu.
MacOS tohle dělá už doslova roky (viz např. macOS Ventura Shortcuts forgets keyboard shortcuts – solution? z roku 2022) a Apple to klasicky ignoruje. Důvod přitom není jasný, ale často se to stane po aktualizaci MacOS, nebo k tomu prý může dojít chybou synchronizace Zkratek přes iCloud. Spouštěč chyby může být i přidání nového zařízení, stejně jako to, že zkratku opravíte na iPhone či iPadu a tím se ztratí informace specifická jenom pro Mac.
Řešení?
To jedno co používám je, že si v Obsidianu v digitální dokumentaci udržují jaké zkratky mají jaké klávesy – a pokud něco přestane fungovat, tak to snadno najdu a ručně opravím.
Lze také přiřazovat jinde – ve zkratce zapněte Použít jako rychlou akci → Nabídka Služby a klávesy přiřaďte v Nastavení systému → Klávesnice → Klávesové zkratky → Služby. Tyto vazby ukládá systém jinde než Zkratky, takže bývají stabilnější. Nevýhoda: služby fungují jen v aplikacích, které je podporují.

Praktičtější může být přesunout klávesovou zkratku mimo aplikaci Zkratky. Spouštějte ji příkazem shortcuts run „Název zkratky“ a klávesy přiřaďte v aplikaci, která si nastavení drží sama: Karabiner-Elements, Raycast, Alfred, Keyboard Maestro nebo BetterTouchTool. Něco co jsem chvíli používal a opustil, nebavily mě další extra aplikace a často i nepřívětivé cesty, jak to nastavovat.
Někde je doporučováno neupravovat danou zkratku na jiných zařízeních, ale moje zkušenost je, že mi mizí nastavení u zkratek, na které jsem nesahal doslova rok či déle.
Nezkoušel jsem synchronizací těchto zkratek vypnout – což ale nejde “per zkratka”, jen pro všechny a bylo by to dost nepraktické.
Řešení s Karabiner-Elements
Osobně používám právě Karabiner pro další věci, takže můžu využit toho, že i zde je možné klávesovou zkratkou vyvolat shortcut.
Stačí do Complex Modifications > Add your own rule. Otevře editor, ukázkový text pak například nahradit tímto.
{
"description": "⌃⇧X → Open XnViewMP",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "x",
"modifiers": { "mandatory": ["control", "shift"] }
},
"to": [
{ "shell_command": "/usr/bin/shortcuts run 'Open XnViewMP'" }
]
}
]
}
Další zkratky pak ideálně vložit v podobě dalšího vlastního předpisu.
Pokud narazíte na to, že to výše uvedené vlastně spouští vše přímo ve shellu a tan nemá oprávnění, tak to spíš volejte takto:
{
"description": "⌃⇧E → Fotky z Photos do /tmp/",
"manipulators": [
{
"from": {
"key_code": "e",
"modifiers": { "mandatory": ["control", "shift"] }
},
"to": [{ "shell_command": "open -g 'shortcuts://run-shortcut?name=Fotky%20z%20Photos%20export%20do%20%2Ftmp%2F'" }],
"type": "basic"
}
]
}
Tohle spouští tu zkratku skrz aplikaci Shortcuts – a tam si nejprve tu zkratku spustíte ručně, čímž MacOS bude protestovat a umožní vám přidělit potřebná práva.
A pozor, to „-g“ je nutné, jinak vám bude otevírat aplikaci Shortcuts a hodí na ní focus.

