Sunday, October 10, 2010

Notational Velocity forked: Fullscreen mode, menubar app, and more…

[Quick 10/22/10 update: there’s now user customizable themes, multiple note tagging, proper support for PPC machines, and more. Read about it here.

The correct version should be: Version 2.0 β3et (6.65)   <—I’ll keep this line up to date.]


Like everyone else, I love Notational Velocity*. As part of my effort to teach myself cocoa, I thought I’d dig into Notational Velocity’s code (its open source) and see what I could learn…

I ended up adding some features I’ve always wanted to be part of NV:

- fullscreen mode

- an optional horizontal layout

- a way to quickly hide the notes list

- a menubar only (no dock-icon) option

if you’re interested you can download my fork here (it’s universal and requires at least Leopard).  

The rest of this post goes a bit deeper into some of the UX decisions I made and how the features work. Read on at your own discretion.

You can switch between default vertical layout (with the notes list above the text of the note) to a (admittedly ipad app-like) horizontal layout, with the notes’ list to the left of the text. Outside of fullscreen mode, I definitely prefer the default orientation, but creating a way to get a horizontal layout was key to fullscreen mode (where having a really wide list of your notes isn’t all that useful). So I added a UI to let you switch layouts. just hit cmd-1 (or hit up the menu item under “View”).

Fullscreen mode is pretty self explainatory. You can cmd-shift-f (or hit up the menu item under “View”) and you’ll hit it. This will also automatically switch NV’s layout to horizontal layout so that the notes list is in a column on the left instead of above the text of the note. You’ll notice I limit the text of the note to 600pixels wide so that it doesn’t get unreadably stretched out across your mac’s widescreen.

You can quickly collapse the notes’ list so that it is hidden by hitting cmd-shift-c (or hit up the menu item under “View”). This is useful in fullscreen mode… yes, I’ll admit it, it does turn NV into YAWRC (Yet Another WriteRoom Clone), but it does make for focused writing right there in NV.

The fork also lets you add a menubar icon which has a drop down menu of most NV functions (I’m still working on getting the Bookmark’s menu into the menubar dropdown). Most of the code that enables the custom view of the menubar icon and drop-down menu is from one of Matt Gemmell’s excellent open source classes(it is easy to add a menubar icon, and easy to give it a dropdown menu, and easy to get a click on the icon to activate the application, but difficult to get it to do all of this, with right-clicks and left-clicks doing different things). If NV is in the background when you left-click the icon, it will pop NV into the foreground; if NV is already in the foreground you’ll get the dropdown menu. Right-click on the icon to get the menu when NV is in the background. 

The checkbox leaves the NV icon in your dock, but enables the menubar icon. You’ll need to manually restart NV to see the icon.

The button will add the menubar icon AND hide the NV dock icon (and cmd-tab task switcher icon). Clicking this will immediately restart NV as a menubar only app. 

I didn’t have to change too much code to make all this happen, so this fork should be as stable as the standard NV (and conveniently enough NV autosaves your work, so testing out a beta fork of a beta app isn’t too risky), but if you get any crashes when using any of the features discussed here, it’s probably my fault. Please post bugs in the comments below.

I’ll be posting the source code soon for my fork soon.

[Quick update: A quirk I just noticed, not a bug but a weirdness in Apple’s fullscreen API, is that if you have set NV to hide its dock icon and be menu bar only AND you go fullscreen, you won’t be able to show the OS X menu by mousing up to the top. Which might be fine, just know that once entering fullscreen mode like this the only way out is to exit fullscreen mode using the keyboard shortcut cmd-shift-f or to quit NV using cmd-Q ]

*Notational Velocity is an excellent open source app, created by scrod. Read about NV here.

Notes

  1. free-google-traffic reblogged this from elasticthreads
  2. bernie-brown reblogged this from christiantietze
  3. freesamplesuk reblogged this from elasticthreads
  4. seo-victoria reblogged this from elasticthreads
  5. carolina-dickinson reblogged this from christiantietze
  6. trampoline8w reblogged this from elasticthreads
  7. newcar2012model reblogged this from elasticthreads
  8. wickedfireisgreat reblogged this from christiantietze
  9. elasticthreads posted this