We have just released Ulysses 19¹ to both the Mac App Store and the App Store. It’s a fine little release during very strange times, I reckon.

The state has issued limits on who we can see, where we can go and what we’re allowed to do. We’re asked to wear masks in public now, and we’re supposed to keep a certain distance from our fellow Coronians — both rules lead to wild OCD outbursts on the streets, as if high blood pressure wasn‘t deadly enough already.

Our office is deserted, the whole team is working remotely, and video calls have replaced eye contact. Half the team has kids, so half the team is homeschooling, which, let‘s be honest, is a real drag. I love my kids, but I have two jobs now, or rather three if you include sporting activities. I am soooo tired. 😂

Still, we are managing to keep it together. The team is working at a high level, and we’re even having fun together (mainly thanks to face swapping on these video calls, but hey...). So before I list what‘s new in ULYSSES-19², I want to give a big round of applause to the people who keep us running and who, during strange times, brought you this fine little release.

Here‘s to Alex and Andrea, to Antje and Chaofan! Here’s to Davron, Florian and Franz! Here’s to Friedrich, Götz and Kristin! Here’s to Lisa and Lucas, to Marcus, Max, to Philip, Raul and Rebekka! Here‘s to Jingya (all the best, good luck, stay healthy)!!! And here‘s to everyone outside these walls who‘s keeping calm and sensible, focused and supportive!

Ok, then, what did we come up with this time?

Material Sheets

Number one on my list is Material sheets. It’s a feature that’s been in our backlog for way too long, so we’re happy to finally ship it. It’s also a very simple idea: Mark sheets that you only use for research or brainstorming, for notes or descriptive texts, as “Material”, and thus exclude these sheets from counters, goals and export. ¯\_(ツ)_/¯

That’s more or less it. You can mark single sheets or multiple sheets, and you can create Material sheets from the get go. We have added rules to our filters, so you can only show Material sheets or only show non-Material sheets. But most importantly, of course, you can now keep your main text together with your secondary material, without that material messing up your goals or exported documents.

Material sheets all get an indicator in the sheet list and the editor, so they’re easy to spot. Apart from that (and the counter/export restrictions, of course) Material sheets can be used and behave just like normal sheets.

And here’s a life hack: Duplicate a text you’re working on, and mark it as Material. Now glue them together. Poor man’s versioning FTW. Now open the second editor. #mindblown

Mice and Trackpads on iPad

Speaking of blowing minds... a couple of weeks ago, Apple shipped iOS 13.4, and with it the ability to connect mice and trackpads to iPad. It’s the next big step towards a more desktop-like experience on what started 10 years ago as a mere promise. The new paradigm works, albeit only as good as adoption of it grows. So it’s only natural for us to bring pointer support to Ulysses.

There are a couple of rough edges in a lot of places, but they even show up in Apple‘s own apps and throughout the operating system. For example, some buttons have that cool snapping effect, while others don’t, and there’s a fair bit of guesswork involved for both users (can I click on that?) and developers (should I highlight this, too?) alike. However, we see this as the first iteration of this feature, so please send feedback and tell us what you like, what you don’t like, and what you‘d like to see improved here. This will only get better over time.

Keywords in Markdown Files

The final feature I‘d like to address today is keywords in Markdown files. For years now, we’ve had keywords attached to native sheets, and we have added organizational and publishing features built around that: colored keywords, keyword filters, keywords as categories, etc.

Standard text files do not have any concept of “keywords”, and standard Markdown does not offer keywords either; which makes sense, since keywords are meta data, i.e. not a part of the text itself. However, in an era of Twitter and Instagram, where #hashtags have left their mark (no pun), they have even crossed over into speech³, and where plain text writing has become the most dominant form of writing in the West, hashtags have slowly crept into text editors as well.

Credit where credit is due, I guess — IIRC, Bear started this “trend”, and other Writer apps quickly followed suit. These apps treat hashtags as keywords and use them as some sort of pseudo-folders within their navigational side bars. Of course, each of these apps treat hashtags differently, and each Markdown interpreter treats them differently too: Hashes at the beginning of a paragraph are usually reserved for headlines, see, and hashtags within text should just be text. #chaos

All of which left us in a rather uncomfortable position: Should we support this non-standard, error-prone, compatibility-crashing type of keywords in Ulysses? In other words: Should we introduce a non-standard, error-prone, compatibility-crashing feature into our system of External Sources and Plain Text/Markdown files? Or should we #justignore this #fad and send requests to #dev0?

Needless to say, we had some heated discussions on the matter, and it took a lot of #lobbying from Max to get the #greenlight on this. The result is a nice mix of Ulysses’ strengths, a common denominator, and #whocares: We now allow our keywords everywhere — from native sheets to plain text files, from iCloud to external sources, from Mac to iPad and iPhone. And as far as Ulysses is concerned, you just put keywords into the keywords field, and that’s it. We don’t highlight or otherwise dress up hashtags in the editor, we don’t even support you writing hashtags in the editor. Just put your keywords where they belong: into the keywords field.

Upon export, however, we add a paragraph at the very end of your text file, with all your keywords written out as hashtags. And upon import, we scan the last line of your document, and if it starts with a hash, all hashtags show up in our keywords field.

This is not perfect, we know, but the whole idea of hashtags as keywords isn’t. So... don’t hate the player, hate the game, I guess. Which kind of brings me back to the beginning of this post...

These are strange times we’re living in, and some folks are better at coping with the situation than others. It’s tough for all of us, but even more so for lonely people, for people with mental health issues, and for people who were already struggling before the outbreak. So if you encounter overly sensitive “distance watchers”, “mask generals” or otherwise angry folks who are getting on your nerves for not minding the rules 100%, please remember: It’s the game that sucks right now. Stay calm. Stay healthy. Support other players, if you have free capacity.

Most of all, try to have fun. And we hope you’ll have fun with Ulysses 19. Oh, here’s the full list of changes, by the way.

Now go and write. #doyouwrite

1 — I was tempted to title this release ULYSSES-19, but the numbering is just a coincidence, and it’s a really silly joke. Still… funny coincidence.
2 — Couldn‘t resist, sorry.
3 — Do not, I repeat: do NOT say “hashtag: whatever”, just… don’t. Don’t!
4 — Yay!!!!!! We win!!!!