Smart System Setting Macro & submenu access

Hello? The Smart System Settings Macro is very useful to me. Since I can't use both hands, I roll the trackball with my foot and use it instead of a mouse. Therefore, using macros is essential for me. I am using the F6 key on 'Accessibility' as a trigger in this macro. However, I would like to toggle the 'Alternative pointer behavior' item, a two-level submenu of 'Accessibility', by pressing F6 just once. What should I do?

Hi! Thanks for your posting.

Regrets, I need to defer to other users who are more knowledgeable than me.

Could you maybe provide a bit more detail on exactly what it is you're trying to do? I think it's this, but I'm not sure: Press F6 to toggle the state of "Alternate pointer actions" in Pointer Control in the Accessibility section of System Settings ... is that right?

-rob.

That’s exactly right what I want! I want to click the button as little as possible.
Thank you for being so interested ~

I was hoping I'd be able to identify the preference value that toggling that setting changes, but I can't find it. If I could, we could try changing it directly in Terminal, which would be greatly preferable to the alternative, as I think that's going to involve some ugly GUI manipulation work.

I'll dig a bit more and see if I can't find it.

-rob.

Thank you for your attention to detail. I heard that I need to use Apple scripts to solve this problem, but it's too difficult for me.

I have an ugly workaround that should work until a real AppleScript expert shows up who knows how to access the subgroups properly—I don't.

Before I post it, can you tell me if you're on KM 10 or KM 11?

-rob.

I have KM 11.

OK, I'll post in a few hours—out of the house at the moment :).

-rob.

Sorry for the delay in posting, but there's a good reason :).

I had it all done, but came home and thought there had to be a better way. The version I wrote navigated the panel using Tabs and Returns, etc. And it worked, but it was very fragile: macOS 13 and 14, for instance, require differing numbers of tabs on each layout to reach that button.

However, using an app called UI Browser, I figured out how to directly reference the button, which is a more robust way to do this. I've made very good progress, but need to do some more work on it as it errors out way too easily. I should have something to post tomorrow morning-ish (west coast USA time).

-rob.

1 Like

OK, here's the rewritten macro. It works in KM10 and KM11, and in both Ventura and Sonoma. It's currently bound to F6, and will toggle the state of the "Alternate pointer actions" feature.

I have an app called UI Browser that made it (somewhat) easy to get this working, though—very annoyingly—Ventura and Sonoma use different structures to reach that button, so the AppleScript has to cover both possibilities.

Download Macro(s): _Pointer Control toggle.kmmacros (9.6 KB)

Macro screenshot

Macro notes
  • Macros are always disabled when imported into the Keyboard Maestro Editor.
    • The user must ensure the macro is enabled.
    • The user must also ensure the macro's parent macro-group is enabled.
System information
  • Tested on KM 10 and KM 11, and on both macOS Ventura and macOS Sonoma

The macro uses AppleScript and GUI scripting to get to the right panel, then checks the current value (as things are a bit different if it's currently enabled). It then clicks the button. If it was enabled, there's an (annoying) dialog box that appears and asks if you're sure you'd like to disable it; the macro waits for the "OK" button in that dialog to appear, but only if it was enabled when you ran the macro.

Please let me know how this works for you; it's my first try at using GUI manipulation via AppleScript, so I'm hopeful it works as well on your Mac as it does on mine.

-rob.

2 Likes

I was really impressed that you even did the coding yourself. I'll give it a try soon and let you know the results.

I tried with your macro. But the system setting stops at the below screen and stays in that state.


Is that the problem of the difference in OS language?
My systems are,

I don't actually know, but that seems a reasonable suspicion. Is there any way you can test with it set to English? And, unfortunately, if that's the issue, I don't know where to go for assistance in making the script work in other languages.

-rob.

I had a friend with a German system test, and our language guess was correct: We need to localize all the quoted text. I'll post an updated macro shortly that makes that easier for you to do.

-rob.

OK, here's a slightly modified macro:

Download Macro(s): _Pointer Control toggle.kmmacros (9.9 KB)

The only change is in the AppleScript code, where there's a new section near the top:

-- Set up variables to make localization easier
set textAccessibility to "Accessibility"
set textView to "View"
set textPointer to "Pointer Control"

On your Mac, replace the English words in quotes with the Korean words from the System Settings panel. The first one is the name of the Accessibility panel, the second one is the name of the View menu (which allows you to directly select any System Settings panel), and the last is the name of the item you click to get to the Pointer Control options.

This script worked perfectly for my German friend once he set the three variables.

-rob.

Thank you, Griffman. I admire your great job! I tried your new macro, but the macro stops in the middle of the Apple script. I think there are differences between the 'showed Korean menus' and the actual names in the System. Now I am updating the OS to Sonoma. I will try again, changing each line of the Apple script.
And, I wonder if the name of the "menu" at each stage...

"Accessibility"-> "손쉬운 사용"
"View" -> "포인터 제어기"
"Pointer Control" -> "대체 포인터 동작"


Would you show me screenshots of each stage in the English OS version?

fr Shin

Sorry for the confusion. "View" is the actual View menu in the menu bar:

image

Accessibility in System Settings:

image

Pointer Control in System Settings > Accessibility:

-rob.

There is a difference in the menu structure. I can’t see the "view" menu in Korean OS. There must be different actions in the Apple script.

You don't have a menu in the main menu bar that shows all the panels, like this?

Very tall screenshot hides here

It exists on a German system, it seems unlikely that it doesn't exist on a Korean system—whatever the title of that menu is is what you need to put in the AppleScript for the textView variable.

-rob.