Removing noise during typed string

Hi, i am starting to use typed string triggered macros often and am finding that my mac makes noises with each keypress on some occasions. It seems to happen when the keys i press do not have a function in the front app or text box to write the characters in. Is there anyway to make these noises stop?

Thanks, Dan

You can try adding a Toggle System Sound Mute Action at the beginning and end of your macro.

You should not generally use a Typed String trigger except in a context that is expecting to have text typed in. If you do, you most especially should turn off the option to delete the characters. Otherwise, if you have an object selected in whatever application you are in (eg a file in the Finder), and Keyboard Maestro types the delete to delete the non-existing character you just typed, that object might be deleted.

Instead, give bunches of your macros the same hot key and avail yourself of the Conflict Palette instead.

Thanks for the help guys, as always!

I just tried this but it didn't really work. It does make the sound stop for a microsecond, but all of the noises are still heard bc the System Mute action is triggered after i hit the keys. (also it cuts out the music that i'm listening to, which i would prefer not to be cut out)

hmmm, i've been using Typed String triggers a lot more often because i find that they are much easier to remember a lot of them. I have turned off the delete option for all of them to prevent accidental deletion. Is there any other reason that you recommend against using them?

And what do you mean by "avail yourself of the Conflict Palette instead." Do you mean using my mouse to select which macro i want after hitting the hotkey (that has a bunch of macros assigned to it)? Isn't that slower?

I’m also wondering if maybe i can just permanently turn off the system sound that plays whenever i type letters that aren’t in a textbox or performing a keyboard shortcut function. I don’t think that i need that sound for anything and it would accomplish what i’m looking to do here, although i could be missing something. Any input whether this is a good/bad idea or if/how its possible to do?

IMO, it is dangerous to use typed string triggers in a app window where text is NOT accepted. It is just a matter of time before you cause an unintended action, maybe irreversible and maybe without you knowing it, in the app.

Keep in mind that as you type, BOTH the app and KM are receiving your keystrokes.

You can come close to achieving the utility of typed string by using the Trigger Macro by Name action (KM Wiki) in a Macro. It allows you to show the Trigger by Name dialog (much like Mac Spotlight) with a hotkey, and then type the macro name. For example:

Here I have typed ;rel, which uses my standard prefix for typed strings, a semicolon.

So, yes, it requires two extra keystrokes:

  1. Hotkey to trigger
  2. RETURN to execute the selected macro

but I have found this quickly becomes muscle memory. :wink:

It has the fringe benefit of not producing any sounds. :smile:

You might prefer the UI of a similar macro by @DanThomas:
MACRO: Execute Macro by Name (Spotlight)

EDIT: 2017-09-05 9:51 PM CT

Example of @DanThomas' Macro

The native KM Trigger by Name is good, but I prefer @DanThomas's macro.

1 Like

Yes, because they are going to be typed into the front application, and can then do pretty much anything depending on the application. Normal typed keys would usually not be overly dangerous, but in some apps they will still perform actions, or leave behind keystrokes, or whatever.

Try it. On three of your Typed String triggered macros that you use this way, give them all the same hot key trigger (leave your Typed String trigger there for the moment).

Then press the hot key and see how the Conflict Palette works.

This way you just remember one hot key, and all the rest are shown to you. You can still type the highlighted characters, so there is no need to use the mouse.

1 Like

Thanks Peter and Michael for the advice!

I’ve just tried the three solutions you provided and it definitely seems like these are better solutions than the typed strings i was using! Now i’m just trying to figure out which solution(s) is best to use.

Here’s some questions and thoughts about each:

  1. The trigger macro by name action only works for me when i type out several letters to differentiate it from other searches, so its taking longer to find the macro that i’m looking for. Is there a way that i’m missing to set shortcuts to access the macros you want with less keystrokes? When you type ;rel , is that something you programmed into Keyboard Maestro previously to make it easier to find?

  2. Dan Thomas’ macro only works for me when Keyboard Maestro is at the front. It seems like an unnecessary step to need to open Keyboard Maestro whenever i want to find/run the macro. Is this how you use it?

  3. The conflict palette method seems to work well, i’m just wondering if i should use this or if there’s a benefit to figuring out the issues with the trigger/execute macro by name macros instead. Do you guys have any recommendations whether its better to use the conflict palette method or the trigger/execute macro by name macros? Or is it good to use both for different purposes?

The key is to put unique characters in the Macro Name, the closer to the beginning the better. Unfortunately, the KM Trigger by Name also searches all text in the Macro. That's why I like @DanThomas' macro better -- it searched ONLY in the macro name.

Are you sure you have the right macro? It does NOT require KM Editor app to even be open. Did you do as stated:

See the enclosed README file for installation instructions.

In case you are LaunchBar user (or a future LaunchBar user):

  1. Invoke LaunchBar with your shortcut/tap
  2. Type "KM" to select Keyboard Maestro
  3. Press Space and forward-type to your macro (or select it from the list)

This may sound similar to KM's "Trigger Macro by Name" action, but the crucial difference is that LaunchBar is learning from your habits. That is: After a while you'll find your most used macros at the top of the list – and LB is also learning from what you have first typed and what you have selected at the end.

Example:

Let's say, you have a macro called "Open ‘Nice AppleScripts’". (This macro will launch a website called "Nice AppleScripts".) And your aim is to launch that macro only by typing "nice". (Not by typing "onas" or "open nice" or "nice apple")

With KM's "Trigger Macro by Name" action:

If you have 15 macros with the word "nice" in the title (or the content), then you'll find your macro in a list of 15. You cannot change the list order. As long and as often you type "nice" you'll always see the same list in the same order.

With LaunchBar:

When you first type "nice" you'll get a list similar to what you get with "Trigger Macro by Name". Fine. You see your desired macro at position 7 in that list. You select it with the mouse (or the keyboard) and launch it.

Next time you type "nice" your desired macro will be #1 in the list and you just hit Return to launch it. And – unless you change your typing/selection habits – it will remain at that position in the list.

This way you can build up personal sequences of typed characters to launch your macros without actually having to "learn" them, and you don't have to modify the names of the macros to actually find them.

1 Like

The next version will add some Machine Learning to figure out your most used macros for any given expression which should help.

I can't really answer which is better as the Conflict Palette is the only method I personally use frequently. Really, it is a matter for you to figure out which method works best for you.

2 Likes

Are you saying that Trigger Macro by Name will work a bit more like LaunchBar (as described above)?

This would be big and great news!

3 Likes

Thanks again everybody!

When I select Keyboard Maestro with Launchbar and hit space, it doesn't allow me to search macros. The screenshot is what it shows me. Any idea why?

This should normally happen when you hit ⌘Y, not with Space. What is your LaunchBar version?

PS: See here for a short list of what the Spacebar does (well, what it normally does) for different selected apps.

Thanks Tom . It happens with I hit command Y as well.

I'm using Version 6.9 (6144).

Maybe i need to activate Keyboard Maestro macro indexing or something?

Ha, good point!

Indeed, it seems the Keyboard Maestro Macros action needs to be activated:

(Never would have thought of it, since I never deactivated it :wink:

PS: If you don't have the action you find it on the list of Featured Actions.

1 Like

Thanks Tom! just installed the action and its great!

I just tried using the palette method and its not working the way that i expected it. I set the same keyboard shortcut for many macros that set different defer dates in omnifocus. You can see these in the photo.

But its not letting me differentiate by days or weeks. When i hit 1, it is auto deferring 1 day, instead of allowing me to type again to select day or week or month. I tested it with a few macros the other day and it seemed to work fine- after typing 1, it would narrow the searches down and allow me to type w for week, d for day, etc. But not sure why its acting differently now. Any idea whats going on here?

Just saw this... yes, i just reviewed the readme files for both of the macros: Spotlight Search Prompt and Execute Macro by Name (Spotlight) .

I followed all those steps but still only opens when i have Keyboard Maestro at front. Not sure why