Avoiding pathological dialog boxes

Aloha — Scrivener’s great (I’d absolutely murder for a devkit; I’d love to hack on it – but you don’t do that, do you?), glad to have bought it… and now to test the waters with my first small bugfix/feature request.

The scenario: I dictate voice memos and transcribe them in Scrivener. So, I start with a pile of .mp3s, drag them into the binder, and split the editor (player on top, text below). The first step is always to create a Scrivener link (to the original mp3) as the first thing entered in the transcription. CMD-L to create the link… and then comes the problem:

The resulting dialog box always defaults to Create New Linked Document. Well, in this workflow, I’m never doing that. So, I then have to mouse over** and click Link To Existing Document. No keyboard shortcut for that, no way to use just the keyboard to adjust the dialog.

The default behavior here creates a pathological access pattern – it’s always wrong, every time. The simplest fix would be to have that particular dialog box’s current setting (New vs. Existing) default to whatever was done the last time the dialog was used. That way, the only pathological pattern one could follow would be to alternate every time – but that’s still an efficiency “win”: at least the dialog box would be minimally adaptive.

Going further (creating a new keyboard shortcut just for Link To Existing Document) would, I think, be overkill; just give the dialog a teeny bit of state and all but one workflow stand to benefit.

I imagine there are other dialog box scenarios like this inside Scrivener, but this is one that I hit every single day, and it’s a drag because I know it’s such a trivial fix.



**: Sounds like a little thing, but I blew my wrists out working at Apple 10 years ago, and I still have a lot of physical therapy I have to do in order to type. Every keystroke, every gesture really really counts.


Thanks for the kind words. Cmd-L is generally for creating new links (it is the short cut for “New Link…”), which is why it always defaults to showing the new link panel; there are other ways of linking to existing documents, such as:

• Ctrl-click on the text you wish to link to and select Scrivener > Link, then choose the document to which you wish to link (if the text uses the title of the linked document, then the document you want to link to will be placed as a suggestion at the top of the list).

• Type the title of the document you wish to link to with two square brackets around it, e.g. [[My Linked Document]].

All the best,

P.S. No, no plans for a developer kit as yet, sorry - that would be a massive undertaking. One day, when I become a team of developers. :slight_smile:

Two thoughts for this. First, you can use the arrow keys to switch to the “Link to Existing Document” tab once you’ve opened the dialogue for creating a link with Cmd-L. (Tab and Shift-Tab will cycle through the open panel, as I’m sure you’ve discovered, so once the focus is on the tab for “Create New Linked Document” just hit the right arrow key.) Second, since you are always linking to an existing document and have the title available right in the top editor header, if I understand correctly, you might want to try the wiki-style link creation, using double square brackets around the document title to automatically create a link, e.g. typing [[Audio3]] would create a Scrivener link to the file named Audio3. To do this, make sure that “Automatically detect [[Scrivener links]]” is enabled in the Correction tab of Preferences, then when you start your transcription just begin with the double open brackets and start typing the name of your document to link to. You can use Ctrl-Esc once you start typing to bring up a list of all documents with that title to make this even simpler if you have lengthy titles; just select the appropriate suggestion from the list, type the close brackets and you’re done.

…Oh look, Keith already posted. :slight_smile:

I appreciate the reply, but it seems our systems function differently.

Yes, I would’ve expected tabbing and arrow keys to let me navigate through to the different control elements (have been around the block a few times and all that), but for me on OS X 10.5.8 the dialog box is inert to keyboard input – the focus is fixed on the text input field.

Yes, ostensibly the title is available – but they are all in the form “20110819 224257.m4a”, so they don’t type easily and highlighting, copying, and pasting is (let’s face it) an extremely arduous workaround (let’s count the keystrokes and gestures, shall we?) for something that could be made to happen “for free”. There’s no demonstrable benefit to having the dialog box always default to New Link while not being amenable to keyboard-only adjustment (on my system, anyway – if Tab/arrows worked, I would’ve figured it out.)

In this instance, the program is very very close to doing the right thing and saving real noticeable effort on my part with an often-repeated task, but it’s stuck. Yeah, I can work around it ten different ways, but that’s at physical cost to my hands … and that’d be silly if it didn’t hurt, when instead the dialog could behave like a zillion other dialog boxes on Macs do and retain a smidgen of state.

Allow me to look at Keith’s post. Thanks kindly for your reply – wish it helped.


Sorry, replying out of order – re: Keith’s post… well, thanks for replying right away.

But both of the options that you mention take far more in the way of unnecessary typing and mousing than either what I proposed or what I expected the Tab/arrow keys (re: MM’s post) to do.

It’s obviously not that I am unable to do it, it’s that this is a trivial inefficiency in an oft-repeated task that could be resolved by one of a couple of commonly-used dialog behaviors to be found throughout the OS X system.


Okay, last post on this: if you’re disinclined to add state to the dialog box and have it front-up the last-used pane, I’d instead request a bugfix for the focus being locked on the “Title” text input field in the Create New Linked Document dialog box – enable the behavior that MM (and I) thought would already be working, namely tabs/arrows.

That would allow me to use the keyboard to switch over to Link To Existing Document without requiring the use of a mouse.



Actually, I believe Jennifer has full keyboard access enabled. You can do this by opening the “Keyboard” pane of the System Preferences and choosing “All controls” under “Full Keyboard Access”. Once you do that, Jennifer’s suggestion will work, and you’ll generally have much more keyboard control of the whole system.

Hope that helps.

All the best,

Ha, so I do. Sorry about that confusion!

Well, well, well – thank you very kindly for your help. I guess that’s what I get for using a borrowed computer (my Mac’s out for repairs and I couldn’t wait to get on working with Scrivener).

Although I do still find it curious that the “New Link” command gives a priority to New-Link-to-New over New-Link-to-Existing (by virtue of defaulting to New-Link-to-New and requiring several extra keystrokes every time to go to New-Link-to-Existing) – are there really that many use cases to justify that inherently preferential behavior?

URLs, in general, are overwhelmingly more likely to point to existing things – it’s really only in things like wikis where a URL is leveraged to create a new resource, and even then that’s the minority case. The (current) behavior of the dialog still feels to me very much like an optimization occluding alternate (perhaps even common-case, but that’s pure speculation) workflows.

At least if New-Link-to-Existing had its own menu command I could make my own keyboard shortcut for it, instead of having to manually navigate to it every single time. I’ll hope that my argument quietly insinuates itself into your brain and yields some such usability improvement in the next revision (I’d still prefer the trivially-adaptive dialog over a new command, but la).



You would have loved Scrivener 1.x behaviour. Back then, you had no choice. If you selected some text and pressed Cmd-L, you would get a “Note (ORIGINATION), DATESTAMP” named file created in a top-level folder called “Notes”. Period. End of story. :slight_smile: It was mostly just there for folks that really absolutely couldn’t abide inline notation, if I remember right. An alternate way to quickly make linked notes. Might be why it is still biased that way. But just pointing out that this whole interface was a massive improvement.

In my own case, it depends on how mature the project is. New projects, New Link almost always makes a new outline node. Old projects that are settled down, nearly always used to link to stuff that exists.

Well, the feature is mainly there for creating new links - that is the only way to create new links (aside from using brackets while typing), while there are plenty of other ways of creating links to existing documents, so it makes sense to have this feature called New Link - and it would be confusing to hit New Link and find an interface asking you to link to an existing document.

(And Ioa, you helped come up with this system, so I’m not sure why you’re pondering on why it works as it does. :slight_smile: )

All the best,

On the other hand, I can’t really bring myself to care that much either way on this issue - it really isn’t a big deal to me. So, if only to save the time of further debate over a minor feature, I’ve deleted the line of code that switches it back to New Link every time for the next update. :slight_smile:

All the best,

I was only pondering the left-tab-always-bit, which I think, if I recall correctly, I did debate against! :wink:

Or at least I debated against it in my dream world.

There’s a whole alternative Scrivener in your dream world, and it’s not something I ever want to contemplate. :slight_smile:

Speaking of pathology.