How to make “Display text large" always display and until press Esc key

As the title says, what I want is when I active the macro by hotkey, the large size text would display there and do not disappear. When I press Esc key, the text disppear immediately, and do not need to wait for 5 seconds, just like how "Custom prompt with HTML text" works.

I prefer “Display text large" rather than "Custom prompt with HTML text" because:

  1. Another reason is "Custom prompt with HTML text" could not display Chinese well, and show messy code, and you may see that in the attachment.
  2. I want to use “Display text large" to display hotkeys of each software and the large size shows the information much more clearly. (the window of "Custom prompt with HTML text" is too small)
  3. No experience to edit HTML code.

Could you please help and provide some ideas? Thanks.

You could try something like this:

image

Alternatively, this
image

You could also try this:

1 Like

Sometimes I prefer seeing my Large Text displays in random colours, like this:

1 Like

FYI, my Display Large Text has full color support.

1 Like

thanks, I could under the logic of your macros but they do not work, it seems the "Display text large" action is not "display text" action but repeating "display & 5 seconds" many times and could not be stopped by 1-time Esc key.

Thanks for your help, and there are too much information in these macros, and most of them is not related to the problem I meet now.

Hi Airy,

I'm not sure whether I misunderstand.

The picture you provided is about setting big text to a large size and different colors, and it's an expanded topic of the solution of Tiffle, right?

I tried as he said, but it doesn't work. Does that work at your computer?

His macro works for me. If it didn't work for you, I can think of three possible causes: (1) it could be because you inserted a Pause action inside the loop. Is that possible? (2) Or it could be because you didn't wait long enough after pressing Escape (his approach creates scores of invisible windows which require time to close.) (3) Or it could be because you didn't set the action's setting to "Display Text Large."

If it's not one of these three things, show us a copy of your macro.

Personally, I think it's a bad idea to use Escape as the mechanism for closing the window, for a couple of reasons. My preferred approach is to have the user move the mouse to the top of the screen (or the top left corner.)

There were several things in my solution that differed from Tiff's approach. Some of my differences were cosmetic (e.g., "color") but some of them made the macro work better. For example I avoided his approach of starting up lots of windows simultaneously, and so my approach launches only one window at a time. My method also demonstrates a more reliable way of stopping the macro: by moving the Mouse to the top of the screen. So I don't think my macro is "extending" his macro, I think it's "improving its reliability."

Now, now @Airy - since the Display Text action executes in a synchronous fashion, only one window is active at a time. You can test that by putting a Play Sound action after the display action like this:
image

Having said that I'm not fond of my solution...

In that case you've done something incorrect. Show your macro for us to test.

Not entirely synchronous. If you have set the duration of the Display Text action to, say, 5 seconds, which is the default, the window will appear on the screen for five seconds AFTER the Display Text action has finished. To me, that's asynchronous.

When I run your latest code, with the Tink, I get five windows layered on top of each other. That's because the Display Text window stays alive for five seconds after the action completes, and the Tink action lasts for about 1 second. Five divided by one gives five layered windows. You can tell because the window is much darker than usual, which is caused by five translucent windows in the same position.

Another way to tell, is when I run your original version, without the Tink, my free RAM drops instantly from about 80% free to about 5% free, and that's probably because hundreds (or thousands) of windows are being displayed on my screen simultaneously.

Doesn't happen here with or without the sound.

Why would that be do you think?

I have no idea why your KM Engine works differently from mine. Maybe other people can chime in with their results? Here's what happens to my system when I run your code. You can see that after a couple of seconds all my RAM is consumed by the KM Engine which jumps from 200MB RAM to 20GB RAM as soon as I run your macro. I think it's a direct result of calling Display Text Large in an unrestricted loop.

image

Moreover, if I run this, I can see the Counter variable increasing at a rate of about 50 per second (although the rate drops considerably as system RAM disappears.) That's how many windows appear each second, and with a 5 second time to disappear, that means there are 250 windows on my screen at the same time. Since each window is in the same location, it's difficult for anyone to see that multiple windows are open at once.

Here's your macro (the one without the Tink) enhanced to show the count of hundreds of windows being created in the KM Progress Bar window. Do you see the count going up by 50 per second?

Demo Infinite WIndows Macro (v11.0.3)

Demo Infinite WIndows.kmmacros (5.3 KB)

Thanks for the macro.

I've simplified it like this:

image

Interesting that my KM Engine memory use goes from 167 MB to a maximum of 303 MB while the memory pressure graph shows no increase at all from the low starting level.

Yes, it does display a count that increases at an alarming rate so I take your point about the not quite synchronous behaviour!

Off to bed now - see you later.

That's curious. I can't explain the difference between your numbers and mine. Your numbers aren't too worrisome, but 20GB of RAM in 5 seconds is worrisome.

Thanks.

I met the same problem as you mentioned, though I did not monitor my RAM change. But I'm
sure it's the same beause:

  1. Ater running the macro, the response of my computer became very slow and I was evey afraid it would crash.
  2. For one large text window, there is some transparent effect, but with Tiffle's macro, the window background. is 100% black

So I called it was repeating "display & 5 seconds" many times.

I will study other macros you both provided.

Exactly. Opaque means "tens" or "hundreds" of windows overlapping each other (in my case, "50"). If you see some transparency, there's probably under 5 windows overlapping. I thought that Tiff would have noticed that.

Come to think of it, 50 per second means 250 overlapping windows on my Mac because the timeout for Display Text Large is 5 seconds. 50 times 5 is 250.

As my above post said, I meet the same problem (a lot of windows & memory pressure), and I tried to change the delay time from 5 seconds to 0 second, it seemed to work now and I will do more tests.

In attachment you may find the macros.

Large text - default 5 seconds delay.kmmacros (2.1 KB)
Large text -0 second delay.kmmacros (2.5 KB)

Thanks a lot for your help.

Thanks Airy, I prefer Esc key because it's easy to remember and some other software also use that for cancelling operations.

Please see the macro I upload above and it seems work if change the delay time from 5 seconds to 0 second.

I should have noticed that.

Just to be sure, I ran your original macro @Airy (without my simplifications) and the results are more or less the same - a few hundred MB extra RAM usage and no memory pressure change for the KM engine.

I'm at a loss to explain why there's a difference between our two systems. Just so you know, this is my Mac

image