Drawing on desktop in Mac OS X
Question
I want to create analog of program conky. What is the best way to draw information on a OS X desktop?
Solution
NSWindow has a method, setLevel:
, that lets you control how the window is positioned compared to other windows. From my own experience, you might want to try feeding it kCGDesktopIconWindowLevel
, and calling setHasShadow:NO
to implement the look you want. To actually do the drawing you would put a custom NSView subclass in your window, and create the window without a frame (see NSBorderlessWindowMask
) and transparent ([window setBackgroundColor:[NSColor clearColor]], [self setOpaque:NO];
).
You might also want to take a look at this article to keep your window pinned to the desktop during an Expose event.
OTHER TIPS
Have you tried GeekTool? Maybe you don't even have to write the app. ☺
You need to take a look at using NSWindowLevel
with a transparent window.