“Havn" theme pair for TaskPaper

I’ve been using TaskPaper in conjuction with NotePlan lately - and I really like it! I’m a big fan of Bike, and TaskPaper has some of the same great feel. However, as someone not used to it, the way it looked was a bit hard for me…

So now I’ve made a (pretty opinionated) theme pairing, that perhaps someone else might like. I edited another theme, but now I can’t remember which - so sorry for not attributing! (It could’ve been the default theme.)

Here’s a link to the theme files on GitHub. (With my amateur code!)


  • Larger contrast between Projects, Tasks and Notes.
    • Projects are thin and large,
    • Task are smaller and bold,
    • and Notes are in a serif font.
  • Three different level of Projects, in addition to a muted colour for empty projects.
  • The same muted colour is used for finished tasks,
  • and that also mutes the colours on tags and links (which are never bold).
  • Notes with stuff in them become pseudo-headers.
  • Only dots when needed, and a clear visual difference for when things are collapsed.
  • A colour change when you focus in on something.



BTW., @jessegrosjean : If you check it out, do you have a theory as to why the dots sit way up high on some of the larger font sizes? :thinking:

CleanShot 2024-03-30 at 13.05.45@2x

I think paragraph-spacing-before is the problem, or at least an important part. It seems the drawing code doesn’t account for that style correctly.

Hmm, I see. I assume a fix for that isn’t high on the priority list… :wink:

BTW., I’m struggling to find something I assumed would be obvious (so would be in the documentation or possible to find by searching on the forum): How do I select a stylesheet with a script? :thinking:

I want to set up something in Keyboard Maestro do change automatically when I go into dark mode. I can probably figure out a way as long as I know how to tell TaskPaper to change to a stylehseet.

You can script menu events, or, more easily, in Keyboard Maestro, this kind of thing:

StyleSheet toggle.kmmacros.zip (1.6 KB)

1 Like

But, I couldn’t get it to work, even though it looks like I’ve written it correctly… (I tried it with the variables first, but then changed to make it easier to debug.)

Also, this has to be toggled manually, right? I have an AppleScript for Bike, which does it in the background when the OS toggle happens. Can Keyboard Maestro activate window items in the background, or do I need a different approach for that?

( Hard to comment without seeing your modified macro )

(If you want to post it here you will need to zip it)

You may need to reselect the “Select menu in TaskPaper” drop down in each of the two menu actions, to refresh the identification of the app.

From osascript (AppleScript|JavaScript) you can evaluate/trigger a Keyboard Maestro macro.

see the Application("Keyboard Maestro Engine").doScript() method:

manual:Scripting [Keyboard Maestro Wiki]

I found the issue!
I use TaskPaper through Setapp, so it’s a “different app” than what you had in your macro. So it tried to go through the menu of “TaskPaper not from Setapp”.

To solve the issue with it happen automatically, I added “Activate TaskPaper” in the beginning, and “Hide TaskPaper” at the end. :+1:t2:

Thanks again!


It was a good excuse for me to remember how to make a new TaskPaper release. I’ve posted a preview that I think fixes the issue here:

Please try it out and let me know.

That worked like a charm! :ok_hand:t2:

Another thing I thought of:
To view my TaskPaper documents on mobile as well, I have them be .md files and open them in NotePlan. That works pretty well!
However, to make things render better in NotePlan, I start my projects with hashtags (so they become headings) - and then I wished I (at least) could style the tags in the beginning, and give them another colour.

But I guess that means being able to style something like .item[data-type="project”].item[string=“##”] .

However, I’m just happy you managed to fix the other bug, and quickly! :raised_hands:t2:

It’s pretty neat, because you can set NotePlan to recognise list items that begin with dashes as tasks. And you can also (natively) set it so that it ads @done tags with date!

(The only thing missing, which I’m going to see if I can fix with some scripting, is that it would be nice to have TaskPaper both add @done on the right side of the task, and [x] on the right side. :sunglasses: Because then things would get checked both ways.

But again: This isn’t demands, as I know you have plenty to do on Bike! Just ideas. And maybe it would be good for TaskPaper usage and sales if you could advertise great interoperability with NotePlan? That app has great apps for iPhone and iPad, and is also on Setapp. :slightly_smiling_face: )

Yeah, I’m unlikely to add anything new at the moment. The other thing was a bug, but I don’t think I want to add features. I will remind everyone TaskPaper source code is here if you want to try your hand hacking at it:


Is this update making its way to Setapp…? :slight_smile: