Option to set maximum size for "Display text large"

When using Display Text Large, the docs say "The more text there is the smaller the text size so that it fits on a single line."

While this might be fine on a 13" laptop, it leads to gargantuan text on a 32" monitor β€” short strings are so large as to be illegible, and strings that work out at a sensible size will be tiny on laptops. The giant text also makes me feel like I'm being yelled at by the macro.

Could we maybe have an option in Settings to set a maximum size for this text? I'd rather have it not take the full width of the screen and be at a reasonable size than have giant text that I have to stand across the room to read…

(I looked in manual:Preferences [Keyboard Maestro Wiki] and couldn't find anything in the command-line preferences; this might be sufficiently niche that it's better there rather than in the UI.)

1 Like

There are currently workarounds to this problem, which I have used, which you can easily use until the day that your desired feature request is added to KM. To use my tricks you must become aware that there are several KM actions that can be used to "display large text." You already know about the "Display Text Large" action but did you know about these methods:

...and...

Bear in mind that for some of my tricks to work, you must turn off "Trim Results" in the cogwheel options.

Screenshot 2023-12-13 at 18.54.46

Now with those things in mind, you can force a maximum text size using these actions by adding a blank line (or two) before and after the desired output. Like this:

These methods will "trick" the "Display results large" feature to "shrink" the text but only if the text is really large. In certain cases, but not all cases, the grey box itself (the translucent box in which the text appears) will also be shrunken.

Using my approach, you can also solve other problems that can occur with displaying large text. For example, one of the problems with "Display results large" is that if there is a single line that is "very long", (which happens to me a lot) then all the text will be shrunken to fix this issue. However using my approach that is easily fixed, like this:

All of my approaches have minor side effects that may not be suitable to you, as you may discover when you use them. You may still want the "perfect" solution, but for people who don't demand perfection, these tricks work really well.

Thanks β€” unfortunately, these aren't in macros that I've written. Making changes like that to the original macros would mean having to reapply them every time there's an update β€” or persuading the macro author to make those changes :slightly_frowning_face:

While too-small text is an accessibility issue, so is too-large text. This really should be fixed in KM itself.

Okay.

But the KM Settings page isn't really used for action-specific settings. Those settings are usually put into actions like this one:

image

By putting them in the Settings page, macro writers would have no control over them. So it will most likely mean you will have to edit the macro to change this setting.

I don't know who wrote your macros, and I don't need to know, but you should share my trick with them for maximizing the font size. If they don't learn, they can't give you this feature in the future.

How about an HTML option?

Display Text Large (Caller Example).kmmacros (20 KB)

Macro screenshot

Display Text Large (Subroutine).kmmacros (23 KB)

Macro screenshot

Nothing wrong with that idea, but it doesn't stretch the text size to fit the screen. There are some (Javascript?) libraries that can do the math to measure the size of the output, but it's so nice when KM can do something without libraries.

I think my suggestion fits the brief as there's a field to explicitly set the text size. If you want it to fill the screen width, the standard Display Text Large action does that.

That's the idea. It's not something macro writers should be able to control. The control should belong to the person reading the output, as they're the ones who care most about what size the text is.

Accessibility means letting users configure things in a way that works for them, not giving them something that works for the author but doesn't necessarily work for the user.

In addition, a user setting works even when the macro author doesn't want to do any work beyond choosing "display results large". Or when the author has vanished.

Your perspective is very interesting. The KM language, and most languages that I know, don't really adhere to that philosophy. KM's design gives the programmer nearly all the control over the macros.

Modern operating systems do provide many features that do give users some control over output. For example, most OS's let the user place the windows wherever they want on the screen, or change the colour of the screen, or change the font sized and styles used in the app. And the accessibility features of OS's go further than this.

KM doesn't really have many features that give the user control over the output of the macro. You suggested that the KM Editor have features that the user can access to fix certain things. Well, the KM Editor is meant for the programmer, while the KM Engine is meant for the user. Almost everything, perhaps excluding the Palettes and Security panels, in the existing KM Editor's Settings panel is for the programmer, not the user.

Perhaps the KM Engine could have its own panel, and the user of KM macros should have access to a panel to change how the Engine works for them. What is the complete list of features that you would like to see for the KM Engine?

I do agree with your philosophy. For example, I have a macro (which I am quite proud of) that accepts error messages from other macros and displays the messages in the format that the user of the macro prefers. The user is allowed to switch between notifications, spoken audio messages, text messages sent to an SMS phone, giant text on screen, etc. I like giving my users that type of control (of course, I am my only user of my macros at this time.) I was considering uploading my macros like this one to encourage this approach.