Keyboard shortcut for “wait for next system break”?

Is it possibe to specify a keyboard shortcut for “wait for next system break”? I couldn’t find anything in the settings for the German language.

No, it’s not possible yet (afaik)

In theory, you could add an entry manually in your keycommands_en.json (or whatever language you’re using) file using the command string:

UI.InvokePropertyEnableSwitch?Type=kWaitForSystemBreak&Value=true

Thanks Daniel, that’s an interesting one!

Thanks, Daniel. And I suppose if that happens to be implemented by default at some point in future, it will just show up in the shortcut list like I’ve defined?

Edit: My keycommands JSON file (under ~/Library/Application Support/Steinberg/Dorico 2/) looks like this now (see further down at the bottom):

{
	"common" : {
		"contexts" : [
			
			{
				"context" : "kGlobal",
				"shortcuts" : [
					
					{
						"Edit.PropagateProperties" : [ "Ctrl+Alt+Ü" ]
					},
					
					{
						"Edit.SetFramesEditMode" : [ "D" ]
					},
					
					{
						"Edit.SetGraphicalEditMode" : [ "V" ]
					},
					
					{
						"Edit.SetNoteSpacingEditMode" : [ "A" ]
					},
					
					{
						"Edit.SetStaffSpacingEditMode" : [ "S" ]
					},
					
					{
						"Page.MakeIntoSystem" : [ "Shift+M" ]
					},
					
					{
						"View.ToggleSuppressSignposts" : [ "Ctrl+Shift+H" ]
					},
					{"UI.InvokePropertyEnableSwitch?Type=kWaitForSystemBreak&Value=true": ["Shift+W"]}
				]
			}
		]
	},
	"delta" : "true",
	"version" : "2.2.20"
}

But it doesn’t seem to work. Have I done anything wrong?

Throw it through a JSON linter to check that it’s still valid.

Linter says it’s valid but unfortunately it doesn’t seem to work. In Engrave mode I’m selecting a system break and pressing Shift-W and nothing is happening still. Might the context (in the JSON file) be the culprit?

I’ve tried it with system breaks and frame breaks and… nothing happens.

Tools like linter only check syntax (which is very useful in a language like json, which overdoses on brackets, braces, parentheses, quotes, etc!) but it can’t tell you if something like “UI.InvokePropertyEnableSwitch?Type=kWaitForSystemBreak&Value=true” is actually correct. (Not that Daniel often makes mistakes, but he did say “in theory…”)

You do have a system break already input and selected, right?

FWIW I couldn’t get it to work either. I tried both the Editable (sp?) and Global sections, having cross referenced Daniel’s suggestion against various other keyboard shortcuts that have been proffered over the years.

Yes, Daniel, I’ve tried it in Engrave mode, with the system break selected, and also with the frame break selected. Nothing happens. FWIW, I chose shift-alt-D to wait for next system break and shift-alt-f for wait for next frame break. It does nothing.
[Edit] I’ve changed the “context” from global to kEngraveMode and it does not change anything.

{
				"context" : "kEngraveMode",
				"shortcuts" : [

					{
						"UI.InvokePropertyEnableSwitch?Type=kWaitForSystemBreak&Value=true" : [ "Shift+Alt+D" ]
					},
					
					{
						"UI.InvokePropertyEnableSwitch?Type=kWaitForFrameBreak&Value=true" : [ "Shift+Alt+F" ]
					}
				]
			},

The new shortcuts appear in the Dorico Key Commands (help menu) but they don’t do anything.

That’s exactly my experience. But to be fair, Daniel said “in theory” it should work. :smiley:

Anyway, I’d be happy if that could be implemented in future. I find “make into system” or even opening the bottom panel, searching for the tiny toggle and clicking it more laborious than clicking a system break (or frame break, for that matter) and hitting a shortcut key combination.

Consider it noted.

1 Like

Thanks much!

For some weird reason, the Value for kWaitForSystemBreak needs to be set to “null” rather than “true”.
The important bit is thus “UI.InvokePropertyChangeValue?Type=kWaitForFrameBreak&Value=null”

Dear Leo,
I tried null insted of true. The consequence of this is now I have shortcuts to toggle this off. But not to turn it on !

Actually, Marc, I only seem to have told half the story last night!
These are what you need, and they definitely work:

					{
						"UI.InvokePropertyChangeValue?Type=kWaitForFrameBreak&Value=null" : [ "§" ]
					},

					{
						"UI.InvokePropertyEnableSwitch?Type=kWaitForFrameBreak&Value=false" : [ "Shift+§" ]
					},
					
					{
						"UI.InvokePropertyChangeValue?Type=kWaitForSystemBreak&Value=null" : [ "§" ]
					},

					{
						"UI.InvokePropertyEnableSwitch?Type=kWaitForSystemBreak&Value=false" : [ "Shift+§" ]
					},

To be clear, the action for turning “Wait” on is UI.InvokePropertyChangeValue…=null
The action for turning “Wait” off is UI.InvokePropertyEnableSwitch…=false

Ah, I was already going to say that something else was different. But it doesn’t seem to matter whether the value for UI.InvokePropertyChangeValue is true, false, or null; it will switch on the toggle regardless.

Lucky guys. Here, the only thing that works in turning the wait for next Frame break off. All other three combination do not work. I might have to try other shortcuts to make sure that it is not a conflict between those and others.