[German] Pallets vs. Shortcuts

In my tutorial I show how to create pallets step by step and why I prefer to work with pallets in Keyboard Maestro.
I always call my palettes with a custom context menu (BetterTouch Tool).

The tutorial is in German, since I was not the most hardworking student in English :upside_down_face:

Very nice video!

Another advantage of KM palettes/shortcuts over OS shortcuts is that you can easily sync them to your other Macs.

This is why I have moved all of my custom/altered shortcuts into KM, leaving the original intact. No longer need to spend that time customizing a new machine, which can sometimes be several times a year.

I make backups and a sync of the macro library @Tom and @cfriend. Since I have the experience that the macro’s do not run identical on different devices (iMac & MBP / different hardware), I’ve separated this.

You have always the possibility to deactivate a macro group for a specific computer:

That way you can set up groups for hardware-specific versions of macros.

Danke Dir für die Info @Tom . Hier in dem Video mal ein Beispiel was ich meine. Wenn ich dies syncen würde, dann läuft das Makro auf dem MBP Pro late 2015 flüssig und auf dem iMac 2013 hängt es sich auf.
Ich erstelle ein solches Makro und Importiere mir dies dann auf den jeweils anderen Mac und passe es an. Daher habe ich 2 Sync’s am Start. Den Sync mache ich eigentlich nur, für meine jährlichen “Clean Installs”.

Kannst Du mir vielleicht bei einem Problem helfen? Manchmal hängen sich Makros auf und wenn ich diese erneut starte, läuft alles durcheinander.
Gibt es eine Möglichkeit, beim Beenden des Makros, nicht ausgeführte Aktion zu löschen?

I don’t know what the forum policy concerning non-English posts is. But you are excluding 90% of the readers from the discussion, and this may be perceived as not very “polite”, especially when the questions are not German-specific :wink:
Besides that, you are hurting yourself, because you won’t get as many answers that way.

(If you feel very uncomfortable writing in English you could ask @peternlewis to open a “German” category. (Maybe this would be a good idea anyway? It would lower the threshold for German-only speakers to participate at all.))

That being said,

It’s not clear to me what exactly the problem is.

What do you mean with “nicht ausgeführte Aktion zu löschen”? [‘delete a not executed action’]

When a macro terminates most often all actions have terminated as well; otherwise the macro wouldn’t terminate. (External scripts being an exception.)

You can also fine-tune the terminating behavior of many actions by setting/adjusting the timeout. Click the gear icon of an action to access the setting:

For some actions you can also set whether an error should abort the macro:


A lesser known thing is the %ActionResult% token (Wiki article). With this token you can further fine-tune what the macro should do in function of the outcome of any action.

The %ActionResult% token always refers to the immediately preceding action. But you can store the value in a variable, so you can make use of it also at a later point in the macro.

Thanks for the detailed answer. Will write in English in the future :+1:
My question was that when a macro is interrupted and I then restart it again, the previous non-executed actions will be run at restart.

So my question is whether there is an action that deletes the non-executed actions.

There is no specific policy on language, and I try very hard to remember that the vast majority of the world speaks a language other than Engine, but as @Tom points out, myself and most others on the list do not speak any specific other language, so it is worth posting a question in English simply to improve your changes of getting an answer.

I would suggest a good policy would be to use English if you are reasonably fluent in it (there should be no problem with grammatical inaccuracies and such, as long as you can accurately get your question across). If the poster is not fluent enough in English, then the next best solution would be to post in your native tongue and include a computer-generate translation (eg Google Translate) in to English.

Either way feel free to clarify that English is not your native language if desired, but no one should ever be critical of someone’s ability to write “proper” English, the only issue would be clarity of the question.

1 Like

Hello @peternlewis, many thanks for the explanation. Since I am the originator of the post from @Tom. I vow to improve and will write in English in the future :+1:

Can I adjust my KM tutorials in German? I would like to explain KM to the German users and my English is just miserable. The tutorials I describe with [German].If questions arise, I will answer these in English (Google Translate). Greetings from Germany :nerd_face:

Absolutely you can use German in your tutorials, or anywhere else where you want to do long-form writing and it is appropriate. There are a lot of Polish articles on Keyboard Maestro for example, and it’s great to see the use across a range of countries and languages (I just wish I had the resources to localize Keyboard Maestro into different languages, but the practicalities of that are far beyond what I have available).

Using English and translation on the forum is primarily for ensuring you get the most help available. I’d rather folks ask in German than not at all.

1 Like

Thank you very much. Luckily there is Google Translate :wink:
In this way, once again a thousand thanks for the creation of KM :clap::+1::heart_eyes:

1 Like

I don’t think this is possible. KM Engine would have to track the exact progress of each macro, including results and every iteration in a loop, etc.

But there are many ways a macro can be interrupted:

  • KM Engine crashes
  • Computer crashes
  • Target of the macro disappears during execution
  • Macro produces an error or timeout (see my post above)

For each type of interruption you can make certain precautions. Stupid example: If you have a macro that modifies the content of 100,000 files, you could include a check for the file modification date. This way, when you restart the macro, it can more easily continue where it has left off.
Or, you could store information in variables, which can be retrieved later, when the macro is started again. (KM variables are persistent.)

But we don’t know what your macro is actually doing. So, it would be helpful to post the macro here.

If you have a macro that does something like this:

  • Do something
  • Pause Until looks like something happened

And if the “Do something” part fails for some reason but does not abort the macro, and then you trigger the macro again, you will now have two instances of the macro running. The second with “Do something” and then both will proceed.

You can use the Cancel All Other Macros action at the start of the macro to cancel all other running macros.

Alternatively, you can ensure the timeout on the “Pause Until” is small enough that the first macro ill abort before you trigger the second.

And you can use Semaphore Locks to ensure only one instance of the macro will be progressing - the other will not continue past the Semaphore until the first instance is killed.

@Tom @appleianer
Meines Erachtens ist Deepl viel viel besser als Google Translate.
https://www.deepl.com/translator

Bin schon umgestiegen @ronald und habe es in meinen Workflow (iMessage, Twitter, ScreenFlow etc.) eingebaut.

Den Text schreibe ich wegen der Formatierung und Übersicht in der Drafts App und nicht im sehr kleinem Eingabefeld von iMessage :wink:

1 Like

Hast du ein (teures) Abonnement, oder benutzt du die kostenlose Website-Version?
Deepl Übersetzungen sind viel besser als Google Translate, aber es bleibt ein wichtiges "aber", das heisst die Möglichkeit, Übersetzungen in Popup-Boxen mit Google Translate und Browser-Erweiterungen auf der Grundlage von Google Translate zu generieren. Mit Deepl sind scheinen übersetzeungen in einem neuen Browser tab.

Yes, the free translation. As you can see in the tweet @ronald, I press the escape key to copy the text. The KM macro automatically opens Google Chrome with the copied text. I only have to choose the language, make corrections if necessary and press Esscape again.
Google Chrome is closed and the translated text is inserted into the desired app (here iMessage).

For the popup function I use the App Mate Translate via my Setapp subscription. Very easy to use thanks to PopClip extension. Also valid for DeepL :wink:


Ja, die kostenlose Übersetzung. Wie Du in dem Tweet siehst @ronald, drücke ich die Escape Taste um den Text zu kopieren. Über das KM Makro öffnet sich automatisch Google Chrome mit dem kopierten Text. Ich muß nur die Sprache wählen, ggf. Korrekturen vornehmen und nochmal Esscape drücken.
Google Chrome wird geschlossen und der übersetzte Text in die gewünschte App (hier iMessage) eingefügt.

Für die Popup Funktion nutze ich über mein Setapp Abo die App Mate Translate. Dank PopClip Erweiterung sehr einfach zu bedienen. Gilt auch Für DeepL :wink:

1 Like

Wow !! Ich werde mich darum sofort kümmern ! Herzlichen Dank und freundliche Grüße