Set Layer as Active and Start Typing Invokes macOS Dictation Notification

Hi,

This has been bugging me for a while now and it’s still an paper-cut in the current version of Rhino Version 8 (8.20.25133.14002, 2025-05-13) on macOS 14.7 (Sonoma).

When you for instance select a layer in the layer palette, and double-click to make it active, then start typing D… for commands, such as Distance, Diameter, DupEdge, etc., the sucky macOS Dictation dialogue pops up each and every time.

This also happens when Rhino as an application is in the background and you click on it anywhere other than the viewport to bring it to the front and start typing.

It’s annoying that I have to click on the active Rhino viewport, before starting to type any command, because it might conflict with some esoteric macOS key binding.

Can you please look into making Rhino keep focus. Maybe some ADHD pills would help?

Thanks.

strange, though you can set the shortcut for this to pop up i dont see anything that could trigger it, what did you set the shortcut for dictation to? maybe something in the accessibility settings that causes this?

I have no idea. It’s only triggered in Rhino when it loses focus, meaning the viewport is not selected, and a command is typed that commences with “D”.

In Finder on macOS, hitting D doesn’t even invoke the dialogue or really anything. The key mapping for doing this is different, namely hitting the CTRL key twice.

Hi Marc -

I’m afraid that’s not something that I can reproduce here.
Could you post the output from the SystemInfo command?
-wim

Here you go:

Rhino 8 SR20 2025-5-13 (Rhino 8, 8.20.25133.14002, Git hash:master @ 007e608777fd819d8976799b8426698dff88c962)
License type: Commercial, build 2025-05-13
License details: Cloud Zoo

Apple macOS Version 14.7 (Build 23H124) (Physical RAM: 64GB)
Mac Model Identifier: Mac13,2
Language: en-US (MacOS default)
.NET 8.0.14

Metal GPU Family Apple 7
Metal GPU Family Common 3
Metal GPU Family Mac 2
Graphics processors
  Apple M1 Ultra
    Thunderbolt Display (2560 x 1440 @ 60.00Hz)
GPU Vendor: Apple

USB devices
  Apple Inc.: Apple Thunderbolt Display
  Apple Inc.: FaceTime HD Camera (Display)
  Apple Inc.: Display Audio
  Apple, Inc: Apple Keyboard

Bluetooth devices
  None

Third party kernel extensions
  None

Third party plugins
  /usr/lib/swift/libswiftCore.dylib
  /usr/lib/swift/libswiftCoreFoundation.dylib
  /usr/lib/swift/libswiftCoreGraphics.dylib
  /usr/lib/swift/libswiftCoreImage.dylib
  /usr/lib/swift/libswiftDarwin.dylib
  /usr/lib/swift/libswiftDispatch.dylib
  /usr/lib/swift/libswiftIOKit.dylib
  /usr/lib/swift/libswiftMetal.dylib
  /usr/lib/swift/libswiftOSLog.dylib
  /usr/lib/swift/libswiftObjectiveC.dylib
  /usr/lib/swift/libswiftQuartzCore.dylib
  /usr/lib/swift/libswiftUniformTypeIdentifiers.dylib
  /usr/lib/swift/libswiftXPC.dylib
  /usr/lib/swift/libswift_Concurrency.dylib
  /usr/lib/swift/libswiftos.dylib
  /usr/lib/swift/libswiftsimd.dylib
  /usr/lib/swift/libswift_StringProcessing.dylib
  /usr/lib/swift/libswift_RegexParser.dylib
  /usr/lib/swift/libswiftCryptoTokenKit.dylib
  /usr/lib/usd/libusd_ms.dylib
  /usr/lib/swift/libswiftCoreAudio.dylib
  /usr/lib/swift/libswiftCoreLocation.dylib
  /usr/lib/swift/libswiftCoreMedia.dylib
  /usr/lib/swift/libswiftCompression.dylib
  /usr/lib/swift/libswiftCoreMIDI.dylib
  /usr/lib/swift/libswiftAVFoundation.dylib
  /usr/lib/swift/libswiftCoreML.dylib
  /usr/lib/swift/libswiftFileProvider.dylib
  /usr/lib/swift/libswiftIntents.dylib
  /usr/lib/swift/libswiftAccelerate.dylib
  /usr/lib/swift/libswiftGLKit.dylib
  /usr/lib/swift/libswiftGameplayKit.dylib
  /usr/lib/swift/libswiftMetalKit.dylib
  /usr/lib/swift/libswiftModelIO.dylib
  /usr/lib/swift/libswiftSceneKit.dylib
  /usr/lib/swift/libswiftSpriteKit.dylib
  /usr/lib/swift/libswiftVision.dylib
  /usr/lib/swift/libswiftRegexBuilder.dylib
  /usr/lib/swift/libswiftDemangle.dylib
  /usr/lib/swift/libswiftShazamKit.dylib
  /usr/lib/swift/libswiftObservation.dylib
  /usr/lib/swift/libswiftVideoToolbox.dylib
  /usr/lib/swift/libswiftWebKit.dylib
  /usr/lib/swift/libswiftNaturalLanguage.dylib
  /usr/lib/swift/libswiftSystem.dylib
  /usr/lib/swift/libswiftMapKit.dylib
  /usr/lib/swift/libswiftFoundation.dylib
  /usr/lib/log/liblog_network.dylib


Rhino plugins that do not ship with Rhino

Rhino plugins that ship with Rhino
  /Applications/Rhino 8.app/Contents/Frameworks/RhMaterialEditor.framework	"Renderer Development Kit"	8.20.25133.1002
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/Commands.rhp	"Commands"	8.20.25133.14002
  /Applications/Rhino 8.app/Contents/PlugIns/NamedSnapshots.rhp	"Snapshots"	8.20.25133.1002
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RDK_EtoUI.rhp	"RDK_EtoUI"	8.20.25133.14002
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/MeshCommands.rhp	"MeshCommands"	8.20.25133.14002
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoRenderCycles.rhp	"Rhino Render"	8.20.25133.14002
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoCycles.rhp	"RhinoCycles"	8.20.25133.14002
  /Applications/Rhino 8.app/Contents/PlugIns/SectionTools.rhp	"SectionTools"	8.20.25133.1002
  /Applications/Rhino 8.app/Contents/PlugIns/Displacement.rhp	"Displacement"	8.20.25133.1002
  /Applications/Rhino 8.app/Contents/PlugIns/PanelingTools.rhp	"PanelingTools"	8.20.25133.1002
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoDLR_Python.rhp	"IronPython"	8.20.25133.14002
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/GrasshopperPlugin.rhp	"Grasshopper"	8.20.25133.14002
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoCodePlugin.rhp	"RhinoCodePlugin"	8.20.25133.14002

Here’s a video of it:

As soon as I hit D right after making “Default” the active layer, the dialogue pops up.

Sounds super annoying.

I tried reproducing this on macOS Sonoma (14.5) and macOS Sequoia (15.4.1) without any luck.

Is it only the D that triggers the dialog? (I presume the answer is “yes.”)

What happens if, in macOS > Settings > Keyboard > Dictation, you set the Shortcut to something obscure, like F12?

In Rhino, can you please run Reset, then click Save Settings for Support…, save them to your Desktop, then click Cancel (ie: don’t really reset your settings). Then please send along that .zip. Let’s see if this is a configuration issue.

Another thing to try is to create a new macOS test user, login as them and see if you can reproduce this issue. That might point to a macOS settings issue or potentially some conflict with another application.

So far yes, only D.

No, it’s still the default shortcut. I don’t really use the dictation feature. Please check my post above to see a screenshot. Currently, it’s set to “press control key twice”.

I’m going to send you a PM with the settings for support now.

Good new is that I was able to reproduce this bug with your settings. A quick glance at the settings themselves doesn’t reveal what is going on, so I’ll have to check in the debugger. That said, you can likely workaround this bug by actually running Reset (not sure if that is feasible in your case).

Logged here:

RH-87488 Specific settings can cause macOS Dictation dialog to appear

Thank you, Dan!

The funny thing is, I haven’t really customised that much at all. I’ve rearranged a couple of UI elements, mainly the layers palette to be always visible in the bottom right, and that’s it really.

I was turned off customising Rhino by another “paper-cut” on macOS, where the entire Rhino settings are reset by simply opening a Grasshopper file by double-clicking it in Finder.

That’s interesting. That made me test something. I ran a diff of your settings vs the defaults and I noticed the vast majority of differences related to Grasshopper 2. So I ran Reset to get back to defaults and installed Grasshopper 2. That alone was enough to reproduce this bug. So I’ll point the finger hesitantly at Grasshopper 2 (for now) but I need to do more digging.

Do you recall which bug/topic this was? Or is it just that easy to reproduce?

Ok, I’m back to having no idea what is causing this. I’ve actually gotten my Mac into a state where I can’t get this bug to go away :grimacing: …I guess that will force me to debug this rather than trying to narrow it down to some subsystem or setting.

This one I believe:

It’s been plaguing me for a while now. I often measure stuff to verify dimensions.

Looks like this issue is a duplicate of:

RH-81975 Some keys open System functions after activating a layer as current

Yes, I’ve tested F and E and can replicate the described behaviour. F entering full screen only happens when Grasshopper is open, as is noted.

Thanks for investigating this.

Hi,

I’m also experiencing this problem. I created a macro D1. Once a while the dictation dialogue pops up.

SystemInfo.txt (12.5 KB)

I experience the same annoying macOs Dictation message. I have not been able to determine what causes it but it seems to be associated with letter D keystroke, but it’s not consistent. I have D set as shortcut for distance command.

The issue can be reproduced by:

  1. Clicking on the Layers panel
  2. Press keyboard D/E/F—these keys will bring up Dictation, Emoji & Symbols, and Full Screen respectively.

It seems that somehow, when the focus is on the Layers panel, all modifier keys are considered pressed so when the D/E/F are pressed, corresponding menu items are triggered. You can see the menu bar flashes as the bug is triggered.

My workaround is override the keyboard shortcuts for the following menu items for Rhino 8.app in the System Settings.

Start Dictation...
Emoji & Symbols
Enter Full Screen

There might be some other menu items related to this bug, but I guess they could also be worked around by this method above.

This has been bugging me for months now and this seems to have solved it!