How to write a plugin?

110 views
Skip to first unread message

julian

unread,
Aug 26, 2010, 3:07:42 PM8/26/10
to Blacktree: Quicksilver
Hi,
I would like to write a plugin for Quicksilver but the tutorials which
I could find are rather old and mention a developer version of
Quicksilver which I have not fold yet. (e.g.
http://lipidity.com/apple/quicksilver-plugins-in-objective-c/) Has
anything changed since 2007 and where can I get this development
Version?

Thanks,
Julian

Rob McBroom

unread,
Aug 26, 2010, 3:38:07 PM8/26/10
to blacktree-...@googlegroups.com


That tutorial is a good place to start (it's where I started) but it leaves out a lot of implementation detail. I was frustrated by the process, so I created a [reference][1] to try and help others in the future.

It looks like the link to the dev version is dead. I'll keep [this copy][2] up for a couple of days so you can get it. (Note that this is ß54. I think the newer versions on GitHub like ß58 are built with the headers included and should work for building plug-ins. If not, and you want the newer version, you can build it from source. I don't think there are any compatibility differences for plug-ins between the two, but there are some problems with proxy objects in the new version which is why I don't use it.)

If you have any questions, e-mail me via the list or directly.

[1]: http://github.com/tiennou/blacktree-elements/blob/master/PluginDevelopmentReference/QuicksilverPlug-inReference.mdown
[2]: http://www.skurfer.com/files/Quicksilver.zip

--
Rob McBroom
<http://www.skurfer.com/>

Julian Dax

unread,
Aug 27, 2010, 8:16:08 AM8/27/10
to blacktree-...@googlegroups.com
Hi Rob,
I've got my XCode setup working now, building the .qsplugin-file works and I can install it into QS.
Thanks for your help.
Julian

Patrick Robertson

unread,
Jul 2, 2012, 3:24:55 AM7/2/12
to blacktree-...@googlegroups.com
Many of the older plugins have problems with their project settings, which haven't been updated in a long time. The OmniWeb plugin was one of them. Since it's a tricky thing to know exactly what to do, I've taken the liberty of cleaning the project up so it'll build straight off for you now (be sure to build Quicksilver first in release/debug depending on whether you want the plugin in release/debug)

It sounds interesting what you are doing, but it may be worth including it in the QS Core, depending on how useful the feature will appear. I'd suggest you create a thread in the dev groups outlining your ideas: http://groups.google.com/group/quicksilver---development

Just as an FYI:
We improved the Latest Download proxy in the latest developer release (3930) of Quicksilver. It now looks for your latest download in the folder that you set in Safari.app in the 'General' preferences.

On 2 July 2012 03:18, cwd <clar...@gmail.com> wrote:
Hi Rob,

I've wanted to build QS and write plugins for a while. I've finally got Lion installed and the latest XCode and I've been able to get QS built as well as the Flashlight Interface plugin, but when I try and build the OmniWeb module I get a lot of errors (screenshot attached). Do you have any suggestions on where I can find some notes about getting started with plugins?

What I'm actually trying to do is expand upon your QSDownloads / QSMostRecentDownloadProxy  (I believe that used to be part of the Proxy Objects plugin which has been pulled into the QS core) and set it up so I can use the a "most recent" proxy object for more than just the downloads folder. I think I can do that by modifying the core code, but of course it would be better if I can figure out how to do it a via a plugin.

ps: thanks for all the contributions you've been making to QS - I see you all over github fixing things left and right.
-- You received this message because you are subscribed to the Google Groups Quicksilver group. To post to this group, send email to blacktree-...@googlegroups.com. To unsubscribe from this group, send email to blacktree-quicks...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/blacktree-quicksilver?hl=en

Rob McBroom

unread,
Jul 2, 2012, 9:13:39 AM7/2/12
to blacktree-...@googlegroups.com
On Jul 1, 2012, at 10:18 PM, cwd wrote:

> I've wanted to build QS and write plugins for a while. I've finally got Lion installed and the latest XCode and I've been able to get QS built as well as the Flashlight Interface plugin, but when I try and build the OmniWeb module I get a lot of errors (screenshot attached). Do you have any suggestions on where I can find some notes about getting started with plugins?

I assume you know about the reference?

http://projects.skurfer.com/QuicksilverPlug-inReference.mdown

Looks like Patrick fixed that one, but “duplicate definition” errors can be cleared up by just cleaning (⇧⌘K) and building again. I think they result from #import statements for things that are already imported by the xcconfig settings. Most times, the plug-in doesn’t need to import anything from Quicksilver or OS X itself, but many do.

> What I'm actually trying to do is expand upon your QSDownloads / QSMostRecentDownloadProxy (I believe that used to be part of the Proxy Objects plugin which has been pulled into the QS core)

Proxy objects actually come from a variety of plug-ins and always have. It’s confusing and we’ve made a note of that. https://github.com/quicksilver/Quicksilver/issues/757

> and set it up so I can use the a "most recent" proxy object for more than just the downloads folder. I think I can do that by modifying the core code, but of course it would be better if I can figure out how to do it a via a plugin.

Yes, the Latest Download proxy is provided by the Core Support plug-in, which is bundled with the application. Whether or not your changes should go there depends on what they are.

It’s always nice to see more people taking an interest in making plug-ins. Let me know if you have any questions. (As Patrick said, probably best to do it on the dev list.)
Reply all
Reply to author
Forward
0 new messages