Is there a way to do system breaks in write mode?

Is there a way to do system breaks in write mode?


No, though you could create a script to Go to Engrave mode, add a System Break; and then return to Write mode.

Usually, it’s best to do the writing, then do the layout when it’s all done.

One thing you can do is create a system or frame break in Engrave mode, then return to write mode. There you can select the break, copy and paste it to another spot, or ALT-click it to copy it to a new spot. I do that sometimes with condensing changes as well.


I’m not sure how many signposts can be copy-pasted but it’s a great feature indeed!

I am of the opinion that (and I’ve voiced this before) adding system breaks in write mode has it’s genuine uses. Sometimes you need to split long bars (cadenzas) or place breaks to even be able to properly enter music in in page view.

My own use of galley view is limited, because it doesn’t handle situations with multiple lines of lyrics well (even when you increase the default spacing values) so it is often of very limited use to me. Long phrases on reciting tones are not handled gracefully until the “lyric” is left aligned and measures are shifted around to permit proper spacing. In the absence of the ability to shift measures in write mode, you have to switch modes just to add the system breaks, because if you don’t, you literally cannot see what you are doing because of all the collisions.


I use Keyboard Maestro to do that and it works very well. It automatically switch to Engrave mode, inserts the system break and returns to write mode. I attach the macro I made in Keyboard Maestro if someone is interested. The shortcut to activate the macro is: control+option+command+S :slight_smile:
dorico system break in write (1.3 KB)


… yes it is possible to enter System Brakes in Write Mode: in Dorico SE! as there is no Engrave Mode in the SE version


I’m grateful to have your KM version; thank you for sharing it. I do something similar with my stream deck, but I don’t always have one handy, so this is great to have as a backup.

1 Like

I know this has been discussed before but - despite this going against Dorico‘s design philosophy - I STRONGLY still encourage them to add system and frame breaks in Write Mode for convenience.

My script has just one step and it still works:

local app=DoApp.DoApp()

I assigned it a keyboard shortcut in Mac System Prefs > Keyboard. So now with one keypress I can add a system break without apparently leaving write mode at all.


I’m just responding to this. I use Dorico as an educator and being able to force system breaks in write mode would be really helpful for class presentations.

How do you write scripts in Dorico? I thought that was not yet implemented? Do let me know, and perhaps the code as an example.

Mark showed a very effektive script:

to use it you can just start recording macro in the Script menu, click then end recording macro, then save it with a name, remember the position of the file and its folder, then go in the saving folder, and edit the script you recorded, in a text editor, and replace everything with the code form Mark, and save without changing the file type: the script will make an immediate System Break and you can assign in Macos a shortcut to it. :slight_smile:

There has been a “Scripts” menu in Dorico since version 1; and some improvements were added to the functionality in version 5.

You can record any sequence of actions as a script: and you can create or modify scripts to use Lua operations, like for loops.

What you can’t do, yet, is query the score for the status or property of a thing, e.g. “If note == G”.

Is there documentation for beginners at this?

I don’t think so. The right answer is probably, this is not for beginners :wink:
But it is safe to try the one example which is provided by Mark: Is there a way to do system breaks in write mode? - #10 by Mark_Johnson

And: one can probably learn the most by try and error…

But that example (which is very nice, just one command) is only for the Mac environment…
As far as I can see it is not for Windows-users, or am I wrong?
The example of @Christian_R works, ome can record a macro and replay it, also on windows.

The same Lua code works under Windows. It’s just a matter of having to assign it a keyboard shortcut by a different route. There are various suggestions on the forum …


That works, changed the recorded macro code for the code you provided, and it runs, much beter without the screen flicker of changing to engrave mode, and return to write mode. This opens a whole lot of new possibilities!

I see a few challenges here:

  • as you already said to assign a keyboard shortcut, in Dorico itself you can have “run script…” but not “run script systembreak.lua” or something like that. AutoHotkey might come to the rescue there I think, but have not checked that yet, it would be very nice if one can program the streamdeck for this (and I mean directly as NotationExpress has done, not via the hotkeys). I do not want to have too many shortcut sources. Dorico keys, Streamdeck, Windows (Mac) keys ànd AutoHotkey might get in the way of each other.
  • how to find out all the possible commands? I see in the recorded macro that all the commands are there (especially the CreateSystemBreak), but how to recognize which on is the essential one? CreateFrameBreak works also (not very surprising!)
  • how to tell Dorico where it can find the macros/scripts? It remembers the location within one program run, but after quitting it falls back to he standard Dorico location, and I could not find a setting for this.
  1. You can trigger your own scripts from the Jump bar, but I don’t know if you can assign shortcuts directly to them.

  2. There are thousands of commands - one for every Dorico action! You’ll just need to record scripts to discover the commands.

  3. Dorico expects the scripts to be in the ‘standard Dorico location’, to be in the menu.
    Dorico requires scripts to be in one particular folder to be in the menu, (the same location for all preferences, options, etc.), though I think you can load them from anywhere.