<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Vacuous Virtuoso &#187; smoke</title>
	<link>http://lipidity.com</link>
	<description>Despotic Development</description>
	<pubDate>Tue, 23 Dec 2008 06:24:04 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Quicksilver Smoke</title>
		<link>http://lipidity.com/apple/quicksilver-smoke/</link>
		<comments>http://lipidity.com/apple/quicksilver-smoke/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 03:53:18 +0000</pubDate>
		<dc:creator>Ankur</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Quicksilver]]></category>

		<category><![CDATA[Animation]]></category>

		<category><![CDATA[Download]]></category>

		<category><![CDATA[GUI]]></category>

		<category><![CDATA[Mac]]></category>

		<category><![CDATA[plugin]]></category>

		<category><![CDATA[smoke]]></category>

		<guid isPermaLink="false">http://lipidity.com/apple/quicksilver-smoke/</guid>
		<description><![CDATA[I wrote this a while back as part of the Quicksilver Internal Commands tutorial. The plugin hooks onto the current Quicksilver interface so you can watch it go up in flames.





If you&#8217;re interested in this sort of thing, you can download the Quicksilver Smoke Actions plugin here.
]]></description>
			<content:encoded><![CDATA[<p>I wrote this a while back as part of the <a href="http://lipidity.com/apple/quicksilver-internal-commands/">Quicksilver Internal Commands</a> tutorial. The plugin hooks onto the current Quicksilver interface so you can watch it go up in flames.</p>

<!--more-->

<p class='centre'><a rel="lightbox" href="http://dev.lipidity.com/wp-content/uploads/2007/06/primer-smoking.jpg" title="Quicksilver Primer interface smoking"><img src="http://dev.lipidity.com/wp-content/uploads/2007/06/primer-smoking-thumb.jpg" alt="[Primer interface smoking]" title="Quicksilver Primer interface smoking" width="426" height="343" class='feature' /></a></p>

<p>If you&#8217;re interested in this sort of thing, you can download the Quicksilver Smoke Actions plugin <a href="http://lipidity.com/plugins/quicksilver/smoke">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://lipidity.com/apple/quicksilver-smoke/feed/</wfw:commentRss>
		</item>
		<item>
		<title>3 + 1 Fumo tips and tricks</title>
		<link>http://lipidity.com/apple/3-1-fumo-tips-and-tricks/</link>
		<comments>http://lipidity.com/apple/3-1-fumo-tips-and-tricks/#comments</comments>
		<pubDate>Tue, 29 May 2007 02:00:20 +0000</pubDate>
		<dc:creator>Ankur</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Quicksilver]]></category>

		<category><![CDATA[fumo]]></category>

		<category><![CDATA[Mac]]></category>

		<category><![CDATA[plugin]]></category>

		<category><![CDATA[smoke]]></category>

		<guid isPermaLink="false">http://dev.lipidity.com/feature/tutorial/3-1-fumo-tips-and-tricks</guid>
		<description><![CDATA[Fumo is a revolutionary new Quicksilver interface that boasts a clean look with fancy effects. The tricks mentioned in this article assume you have a Mac with <a href="http://quicksilver.blacktree.com">Quicksilver installed</a> and the latest version of the <a href="http://dev.lipidity.com/downloads/fumo" title="Fumo Quicksilver Interface">Fumo interface</a>.]]></description>
			<content:encoded><![CDATA[<h3>1. Change the opacity</h3>

<p><ins class='block'>Note: As of 04 June 07, Fumo includes preferences to change the colors of the interface. Opacity can be set with the color, so this trick is now obsolete.</ins></p>

<p><a rel='lightbox' href='http://dev.lipidity.com/wp-content/uploads/2007/05/fumo.png' title='Quicksilver Fumo Interface'><img class='feature fright' longdesc='Quicksilver Fumo interface screenshot, on Mac OS X' src='http://dev.lipidity.com/wp-content/uploads/2007/05/fumo.thumbnail.png' alt='QS Fumo Interface' /></a>
By default, Fumo has an alpha value (transparency) of 90%. If you&#8217;d like to see through the interface, or want it to be even darker, you can change the alpha value. This is done by running the following command in Terminal.app (or using <a href="http://dev.lipidity.com/feature/tutorial/quicksilver-replaces-terminal" title="Run shell commands in Quicksilver">Quicksilver + shell</a>):</p>

<pre><code>defaults write com.blacktree.quicksilver fumo.alpha <span class='color:black'>0.9</span></code></pre>

<p>Replace the 0.9 with a value between 0.5 and 1, then relaunch QS to see the effect. An alpha value of 1 is completely opaque.</p>

<hr />

<h3>2. The cube effect</h3>

<p>Set a trigger for <q>Command Window in Text Mode</q> in the &#8220;Quicksilver&#8221; section of the Triggers preference pane. Then run it to see the brilliant cube. And there&#8217;s not need to worry about wasting time with the animation (if 0.2 seconds are that important to you) as any keystrokes you press will be immediately evaluated when the transition is complete. In simple terms, you can start typing straight away and the text will appear in Fumo once the effect is finished.</p>

<hr />

<h3>3. Flippin&#8217; Fumo</h3>

<p>Fumo is able to &#8216;flip&#8217;&#8230; This phenomenon may be observed by enabling &#8220;modifier-only activation&#8221; and ticking &#8220;Hide if pressed when already visible&#8221; in the &#8220;Command&#8221; section of the Preferences. Then, as you may expect, activate Quicksilver using the modifier key you have just set and press the key again once it is active to witness firsthand the flipping of Fumo.</p>

<p>(Note: This effect may also be achieved by merely setting a trigger that sends an object to the command window, and running it when the interface is active.)</p>

<hr />

<h3>+ 1 for the smokers</h3>

<p><a rel='lightbox' href='http://dev.lipidity.com/wp-content/uploads/2007/05/qs-fumo-smoking.png' title='Quicksilver Fumo Interface Smoking'><img class='feature fright' src='http://dev.lipidity.com/wp-content/uploads/2007/05/qs-fumo-smoking.thumbnail.png' alt='Quicksilver Fumo Interface Smoking' /></a>
Having received a request to allow the smoking version of Fumo to smoke perpetually (a word which here means continually from when it is launched), this feature is present in the latest versions of the smoking interface, albeit slightly &#8220;hidden&#8221;. If you don&#8217;t care about CPU usage, and want the smoke to run constantly, run the following in the Terminal or shell:</p>

<pre><code>defaults write com.blacktree.quicksilver fumo.alwaysSmoke -boolean yes</code></pre>

<p>Note that <kbd>Cmd-S</kbd> will still work to turn the smoke on or off, but it will turn on by itself when Quicksilver first launches.</p>

<p>Note also that the smoke may initially appear to be coming out from nowhere. This is fixed by simply activating Quicksilver once.</p>

<p>Once you decide to quit, and want to stop Fumo smoking every time you launch Quicksilver, just run the following:</p>

<pre><code>defaults write com.blacktree.quicksilver fumo.alwaysSmoke -boolean no</code></pre>

<hr />

<p>As well as these nifty tricks, the latest version of Fumo also has features such as the ability to center the interface on screen, improved selector sizes and massive speed boosts. Get your copy from the official <a href="http://qs.lipidity.com/fumo/">Fumo download page</a>.</p>

<p>If you have any more requests or ideas for Fumo, please <a href="http://dev.lipidity.com/contact-me">tell me</a> about it. The more interest in this project, the more time that is devoted to it.</p>
]]></content:encoded>
			<wfw:commentRss>http://lipidity.com/apple/3-1-fumo-tips-and-tricks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Now this is hot Cocoa</title>
		<link>http://lipidity.com/apple/now-this-is-hot-cocoa/</link>
		<comments>http://lipidity.com/apple/now-this-is-hot-cocoa/#comments</comments>
		<pubDate>Sun, 15 Apr 2007 12:43:08 +0000</pubDate>
		<dc:creator>Ankur</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Cocoa]]></category>

		<category><![CDATA[Download]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[Mac]]></category>

		<category><![CDATA[smoke]]></category>

		<category><![CDATA[Source Code]]></category>

		<category><![CDATA[Tutorial]]></category>

		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://dev.lipidity.com/feature/tutorial/now-this-is-hot-cocoa</guid>
		<description><![CDATA[It's finished. The real craze and controversy over <a href="http://discoapp.com" title="Disco App">Disco</a>'s smoke is over. <a href="http://toxicsoftware.com/blog/second-hand-smoke/" title="Disco smoke">Jonathan Wight</a> was the first to write up an article on integrating the smoke effects into a third party Cocoa application. Times have changed, and the smoke framework bundled with the more recent versions of the application no longer produce the desired results by using the same code.

So how do you get any Cocoa application to start smoking? <a href="http://www.austinsarner.com/" title="Austin Sarner">Austin Sarner</a> was kind enough to reveal the usage and implementation of the changes to the Disco framework which allow a wider variety of Macs to experience the entertaining effect.]]></description>
			<content:encoded><![CDATA[<h2>The Framework</h2>

<p>The framework (in more ways than one) for our smoking window is the Smoke framework embedded inside the Disco app. In your Xcode project, you can reference the framework straight from within the application. You&#8217;ll have to press Cmd-Shift-G and type in the path as you can&#8217;t navigate into bundles using the standard open file dialog. Normally the location is &#8220;/Applications/Disco.app/Frameworks/&#8221; inside which is the Smoke.framework bundle which we&#8217;re interested in.</p>

<p>Alternatively, you can copy the framework to /Library/Frameworks/ and reference it from there. If you need to modify the framework (more on that later) it&#8217;s best to choose this option so you leave the contents of the Disco application alone.</p>

<h2>Head to the headers</h2>

<p><a href='http://dev.lipidity.com/wp-content/uploads/2007/04/smoke.h' title='Download Smoke.h'><img src='http://dev.lipidity.com/wp-content/uploads/2007/04/obj-c-header.png' alt='Header icon' class='fright' /></a>Before we can use the framework, we need to have a valid header or header files for the framework, which tell Xcode (and us) mainly about the classes and methods in Smoke.framework. The headers aren&#8217;t included in the framework anymore, but to <a href="http://dev.lipidity.com/apple/exposing-those-private-frameworks" title="Generate header for framework">generate a header</a> file is a simple matter of using a utility like class-dump on the framework.</p>

<p><a class='callout' href='http://dev.lipidity.com/wp-content/uploads/2007/04/smoke.h' title='Download Smoke.h'>
Download Smoke.h:</a></p>

<p>You can take a look inside the header and see a bit of what&#8217;s possible with the framework. When you&#8217;re ready, we&#8217;ll move onto the&#8230;</p>

<h2>Setup</h2>

<p>Now we&#8217;ve got the framework and header in place, we need to code to actually get a window to smoke. On the surface, this is astonishingly simple.</p>

<p>In your Xcode project, make sure you&#8217;ve added Smoke.framework and Smoke.h as well as Quartz.framework as the smoke needs to use this. Now create a new Objective-C subclass. In this example we&#8217;ve used an NSWindow subclass, but you could just as easily subclass NSObject and only apply smoke on selected outlets. If you really wanted to start a bonfire, you could add a category to NSWindow just for smoking!</p>

<p>Firstly, we define everything in our header file. Our class is called SmokingWindow (SmokeWindow is taken by Smoke.framework) and we have four methods.</p>

<p>The header file will look something like this:</p>

<pre><code>//
//  SmokingWindow.h
//  Smoke
//
//  Created by Ankur Kothari on 13/04/07.
//  Copyright 2007 Vacuous Virtuoso. All rights reserved.
//

#import &lt;Cocoa/Cocoa.h&gt;
#import &lt;Quartz/Quartz.h&gt;
#import "Smoke.h"

@interface SmokingWindow : NSWindow {
    SmokeController *theSmokeController;
    int smoking;
}
-(int)smoking;
-(IBAction)startSmoking:(id)sender;
-(IBAction)stopSmoking:(id)sender;
-(IBAction)toggleSmoke:(id)sender;
@end
</code></pre>

<ul>
<li><code>-smoking</code> returns whether (1) or not (0) the window is currently smoking. It&#8217;s not needed to smoke, but it&#8217;s good practice.</li>
<li><code>-startSmoking</code> obviously starts the window smoking, and</li>
<li><code>-stopSmoking</code> stop the window smoking</li>
<li><code>-toggleSmoke</code> will stop the window smoking if it is, or start it smoking if it isn&#8217;t.</li>
</ul>

<p>We&#8217;re storing the current state of the window for use by the <code>-smoking</code> method in the int smoking, and <code>theSmokeController</code> is a pointer to a <code>SmokeController</code> which will be doing most of the work.</p>

<hr />

<p>Ok, now to the implementation.</p>

<pre><code>//
//  SmokingWindow.m
//  Smoke
//
//  Created by Ankur Kothari on 13/04/07.
//  Copyright 2007 Vacuous Virtuoso. All rights reserved.
//

#import "SmokingWindow.h"


@implementation SmokingWindow

-(void)awakeFromNib
{
    SmokeCapabilities *smokeCapabilities = [SmokeCapabilities sharedCapabilities];
    theSmokeController = [[SmokeController alloc] init];
    [theSmokeController doExpensiveThreadedInitializations];
    [theSmokeController setSmokeAlgorithm:[smokeCapabilities smokeAlgorithm]];
    [theSmokeController attachToWindow:self];
    smoking = 0;
    [theSmokeController showWindow:self];
}

-(IBAction)toggleSmoke:(id)sender{
    if(smoking){
        [self stopSmoking:sender];
    } else {
        [self startSmoking:sender];
    }
}

-(IBAction)startSmoking:(id)sender
{
    if(!smoking){
        [theSmokeController startSmoking:self];
        smoking = 1;
    }
}

-(IBAction)stopSmoking:(id)sender
{
    if(smoking){
        [theSmokeController stopSmoking:self];
        smoking = 0;
    }
}

-(int)smoking{
    return smoking;
}
@end
</code></pre>

<hr />

<p>The first few lines in <code>-awakeFormNib</code> get the SmokeController do some initialization.</p>

<pre><code>SmokeCapabilities *smokeCapabilities = [SmokeCapabilities sharedCapabilities];
theSmokeController = [[SmokeController alloc] init];
[theSmokeController doExpensiveThreadedInitializations];
[theSmokeController setSmokeAlgorithm:[smokeCapabilities smokeAlgorithm]];
</code></pre>

<p><br />
To tell the SmokeController which window to &#8216;burn&#8217;, the <code>-attachToWindow:</code> method is used. Since we&#8217;re using an NSWindow subclass in this example, we can just set it to <code>self</code>, otherwise you&#8217;ll need a pointer or outlet to an instance of NSWindow.</p>

<pre><code>[theSmokeController attachToWindow:self];
</code></pre>

<p><br />
To just make extra sure that the position of the smoke wont be offset if the window is dragged around during initialization, we call the <code>-showWindow</code> method. This isn&#8217;t completely necessary.</p>

<pre><code>[theSmokeController showWindow:self];
</code></pre>

<p><br />
To heat or cool the window, theSmokeController responds to <code>-startSmoking</code> and <code>-stopSmoking</code>. Easy enough!</p>

<h2>More fun!</h2>

<p>For extra smoking fun, you can add bindings to your application to control many aspects of the smoke. You can adjust the initial temperature, the amount of pressure exerted by the mouse, the <abbr title="Frames per second">FPS</abbr>, and many more. Just check the UserDefaults.plist file located in the Resources folder in Smoke.framework.<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup></p>

<h2>Hacking the smoke framework</h2>

<p>To get even more out of the smoke framework, you can edit various files within the framework itself. Most of the files are in the &#8220;Resources&#8221; folder. One of the most useful ones to edit is called boundary.cikernal. In the first two lines you can specify the height and width of the OpenGL view that the smoke appears in.</p>

<h3>Enjoy the smoke!</h3>

<h2>Sample project</h2>

<p><a href='http://pub.lipidity.com/Smoke.tar.bz2' title='Smoke project'><img src='http://dev.lipidity.com/wp-content/uploads/2007/04/xcode-project.png' alt='Xcode icon' /></a></p>

<hr />

<p><ins><strong>Developments</strong></ins></p>

<p>Austin has also graciously agreed to let me develop <a href="http://dev.lipidity.com/fumo" title="Fumo Quicksilver interface">Fumo</a>, the smoking Quicksilver interface.</p>

<p>Although there is still some talk about the <abbr title="Human Interface Guidelines">HIG</abbr>, usability, eye candy and so on, the controversy phase is mostly over. Speaking of which, you can call me what you like, but I  think the <abbr title="Human Interface Guidelines">HIG</abbr> is definitely <em>not</em> dead. Outdated perhaps, but there needs to be a standard. There are many aspects to the existing <abbr title="Human Interface Guidelines">HIG</abbr> that developers need to follow in order to make the Mac experience enjoyable. I&#8217;ll talk about this in detail later. <a href="http://dev.lipidity.com/apple/apple-hig-still-relevant">My rant about the <abbr title="Human Interface Guidelines">HIG</abbr></a>.</p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:1">
<p>One of the really good ones is MouseSmokeRadius, which makes smoke comes out of your mouse. I like to call them &#8220;fireballs&#8221;.&#160;<a href="#fnref:1" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://lipidity.com/apple/now-this-is-hot-cocoa/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fumo&#8217;s been taking steroids (aka. major update)</title>
		<link>http://lipidity.com/apple/quicksilver-interface-fumo-updated/</link>
		<comments>http://lipidity.com/apple/quicksilver-interface-fumo-updated/#comments</comments>
		<pubDate>Tue, 10 Apr 2007 08:54:11 +0000</pubDate>
		<dc:creator>Ankur</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Quicksilver]]></category>

		<category><![CDATA[fumo]]></category>

		<category><![CDATA[GUI]]></category>

		<category><![CDATA[Mac]]></category>

		<category><![CDATA[plugin]]></category>

		<category><![CDATA[smoke]]></category>

		<guid isPermaLink="false">http://dev.lipidity.com/apple/fumos-been-taking-steroids-aka-major-update</guid>
		<description><![CDATA[<ul>
    <li>Firstly, <strong>thank you</strong> for your feedback. Without all your encouraging comments, constructive criticism and reports, none of this would be possible.</li>
    <li>Secondly, <strong>I'm listening</strong> to what you're asking for. Feel free to speak up and <a href="http://dev.lipidity.com/contact-me/">drop me a note</a>.</li>
    <li>Thirdly, this site has had a <strong>dramatic increase</strong> in traffic lately. Thank you to everyone who spread the link love or <a href="http://digg.com/apple/Smoking_Quicksilver_interface_now_has_an_evil_twin">Dugg Fumo</a>.</li>
</ul>

<h2>Your requests</h2>

Here's what you requested for Fumo. All of it is available and working as of today.]]></description>
			<content:encoded><![CDATA[<h3>Comma trick</h3>

<p>The number one request was for the comma trick. Well, as of today, this feature is built right into Fumo using Quicksilver&#8217;s own ingenious system. Select an item, press comma, and select another one (or ten).</p>

<p style='text-align:center'><img src="http://dev.lipidity.com/wp-content/uploads/2007/04/comma-trick.png" alt="The comma trick" /></p>

<p><span class="pic star">Tip:</span> Use the comma trick in conjunction with <a href="http://dev.lipidity.com/feature/tutorial/quicksilver-the-power-of-compound-commands">compound commands</a> for maximum efficiency and usefulness.</p>

<h3>It smokes correctly</h3>

<p>Previously, the smoke would pour out unnaturally from the side of Fumo, or in rare occasions, from different areas of the screen. That&#8217;s all been fixed. The only precaution needed is to make sure you don&#8217;t drag Fumo around in the first few seconds that it&#8217;s loading so the smoke doesn&#8217;t get confused about the position, but feel free to do pretty much anything and enjoy!</p>

<h3>Choose your own smoke</h3>

<p>Tired of that same old gray smoke every time? You can choose the color of the smoke in Disco - why not in Fumo? The new easy-to-use preference pane makes smoke customization easy so you can show off your own colors. And it&#8217;s not just the colors you can control. You can change the frame rate, blur amount, the initial temperature of the smoke and lots more in the preference pane. Start or stop the smoke anytime by simply hitting Cmd-S while Fumo is active.</p>

<p style="text-align: center"><a href="http://dev.lipidity.com/wp-content/uploads/2007/04/fumo-prefs.png" title="Fumo Preference Pane" rel="lightbox[smokestyles]"><img src="http://dev.lipidity.com/wp-content/uploads/2007/04/fumo-prefs.thumbnail.png" alt="QS Fumo Preference Pane" /></a> <a href="http://dev.lipidity.com/wp-content/uploads/2007/04/disco-smoke.png" rel="lightbox[smokestyles]" title="Normal Disco smoke"><img src="http://dev.lipidity.com/wp-content/uploads/2007/04/disco-smoke.thumbnail.png" alt="Normal Disco smoke" /></a>  <a href="http://dev.lipidity.com/wp-content/uploads/2007/04/picture-1.png" rel="lightbox[smokestyles]" title="Toxic smoke"><img src="http://dev.lipidity.com/wp-content/uploads/2007/04/picture-1.thumbnail.png" alt="QS Fumo toxic color" /></a> <a href="http://dev.lipidity.com/wp-content/uploads/2007/04/picture-4.png" rel="lightbox[smokestyles]" title="Bright blue smoke"><img src="http://dev.lipidity.com/wp-content/uploads/2007/04/picture-4.thumbnail.png" alt="Bright blue smoke" /></a></p>

<h3>Easy access to the menu</h3>

<p>Cmd-comma isn&#8217;t for everyone, and there are instances where you need to access the Quicksilver menu. The handy little triangle lets you get into the nooks and crannies of the application.</p>

<p style='text-align:center'><img src="http://dev.lipidity.com/wp-content/uploads/2007/04/qs-menu.png" alt="QS Fumo Menu" /></p>

<h3>It&#8217;s bigger</h3>

<p>Did you know can drag and drop items straight into or out of Fumo? And now, a bigger interface means a bigger drop target giving you the ultimate flexibility and power to get things done more efficiently.</p>

<p style='text-align:center'><img src="http://dev.lipidity.com/wp-content/uploads/2007/04/drop-target.png" alt="QS Fumo Drop Target" /></p>

<h3>It&#8217;s available now</h3>

<p>That&#8217;s right. Get your hands on it right this instant.</p>

<p class="callout"><a href="http://dev.lipidity.com/fumo" title="Download Fumo">Get Fumo</a></p>

<p><span class="pic star">Tip:</span> Be sure to read the included readme file. It contains all the information you need to easily and successfully install and use Fumo.</p>

<p><del>Initial reports suggest that the smoke effect does not work on Mac Pros. Some people have also had trouble with dual monitors. The rule of thumb is that if Disco smokes for you and Fumo doesn&#8217;t, tell me about it; I need to fix something up. Don&#8217;t worry too much though; Fumo is still a sweet-looking interface even without the smoke.</del>
<ins>The new smoke framework means that the smoke will work on a much wider range of computers.</ins></p>

<p class="note">For the health-conscious, there is a <a href="http://dev.lipidity.com/fumo">non-smoking version</a> also.</p>

<p><span class="pic user_comment">Feel free to leave a comment below if you have any problems or if there&#8217;s anything I can do for you.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://lipidity.com/apple/quicksilver-interface-fumo-updated/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fumo still smokes - has non-smoking evil twin</title>
		<link>http://lipidity.com/apple/fumo-still-smokes-has-non-smoking-evil-twin/</link>
		<comments>http://lipidity.com/apple/fumo-still-smokes-has-non-smoking-evil-twin/#comments</comments>
		<pubDate>Thu, 05 Apr 2007 10:17:05 +0000</pubDate>
		<dc:creator>Ankur</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Quicksilver]]></category>

		<category><![CDATA[fumo]]></category>

		<category><![CDATA[GUI]]></category>

		<category><![CDATA[Mac]]></category>

		<category><![CDATA[plugin]]></category>

		<category><![CDATA[smoke]]></category>

		<guid isPermaLink="false">http://dev.lipidity.com/apple/fumo-still-smokes-has-non-smoking-evil-twin</guid>
		<description><![CDATA[Fumo has since been updated.

With so many people asking, I just can&#8217;t procrastinate any longer. You win.  Here it is.

It&#8217;s most definitely not the finished thing yet. Yes, I have been taking a while. No, there is nothing you can do about it (short of asking for the source and developing it, which you [...]]]></description>
			<content:encoded><![CDATA[<p class='note'><a href="http://dev.lipidity.com/apple/quicksilver-interface-fumo-updated" title="Fumo Quicksilver interface">Fumo has since been updated.</a></p>

<p>With so many people asking, I just can&#8217;t procrastinate any longer. You win.  Here it is.</p>

<p>It&#8217;s most definitely not the finished thing yet. Yes, I have been taking a while. No, there is nothing you can do about it (short of asking for the source and developing it, which you may do by sending me a polite <a href="http://dev.lipidity.com/contact-me/">email</a>).<!--more--></p>

<p style="text-align: center"><a href="http://dev.lipidity.com/wp-content/uploads/2007/03/fumo_smoke.png" title="Fumo Smoking" rel="lightbox"><img src="http://dev.lipidity.com/wp-content/uploads/2007/03/fumo_smoke.png" alt="Fumo Smoking" /></a></p>

<h3>The Fumo Quicksilver Interface</h3>

<p>Firstly, there&#8217;s the <strong>smoking version</strong>. In other words, smoke pores out of it when it&#8217;s active. It does take a few seconds for the smoke to start and is only supported by more recent Macs. This is obviously courtesy of Disco. Instructions are in the package, but essentially you need to copy the Smoke.framework (included in the .zip file) to /Library/Frameworks/ for the interface to work. <del>Download the entire thing from this wonderful <a href="http://dev.lipidity.com/fumo">hyperlink</a>. And if you&#8217;re worried about performance and what-not, the smoke gets deactivated or &#8216;cooled&#8217; when the interface is hidden. See? Of course you don&#8217;t, you haven&#8217;t <a href="http://dev.lipidity.com/Fumo_w_smoke.zip">downloaded it</a> yet.</del></p>

<p><del>For those who&#8217;d prefer to leave out the smoke, there&#8217;s also a <strong>non-smoking version</strong>, again with another grand <a href="http://dev.lipidity.com/Fumo.zip">hyperlink</a>. There are no installation instructions.</del> Just double-click the .qsplugin bundle (because technically it&#8217;s more of a folder than a file) and choose Fumo under the &#8220;appearance&#8221; section of the Quicksilver preferences. Easy!</p>

<p><ins class='callout'>Fumo&#8217;s undergone major updates recently. You can always find the latest version <a href="http://dev.lipidity.com/fumo">here</a>.</ins></p>

<h3>Still in the works</h3>

<p>I think I should just reiterate that this is still <em>not finished</em>. There&#8217;s a lot of work to be done (still). To see where development is heading, see Pavel&#8217;s <a href="http://dev.lipidity.com/apple/creating-fumo-a-new-quicksilver-interface">original mock-ups</a>.</p>

<p>Now, here&#8217;s the part of the post where I kindly ask for feedback. Feedback anyone?</p>

<p class='note'><a href="http://dev.lipidity.com/apple/quicksilver-interface-fumo-updated" title="Fumo Quicksilver interface">Major update to Fumo: comma trick, fixed up smoke, preference pane, and more</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lipidity.com/apple/fumo-still-smokes-has-non-smoking-evil-twin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fumo&#8217;s Fumin&#8217;</title>
		<link>http://lipidity.com/apple/fumos-fumin/</link>
		<comments>http://lipidity.com/apple/fumos-fumin/#comments</comments>
		<pubDate>Sat, 17 Mar 2007 02:57:20 +0000</pubDate>
		<dc:creator>Ankur</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Quicksilver]]></category>

		<category><![CDATA[fumo]]></category>

		<category><![CDATA[GUI]]></category>

		<category><![CDATA[Mac]]></category>

		<category><![CDATA[plugin]]></category>

		<category><![CDATA[smoke]]></category>

		<guid isPermaLink="false">http://dev.lipidity.com/apple/fumos-fumin</guid>
		<description><![CDATA[

This version&#8217;s not publicly available yet. Austin &#38; Co. (developers of the application that uses this effect) need to be contacted, and I need to have an option to turn the smoke on / off. It cools down automatically when the interface is hidden, but I&#8217;m sure not everyone likes passive smoking.

Doesn&#8217;t it look fantastic?



Another [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><a href="http://dev.lipidity.com/wp-content/uploads/2007/03/fumo_smoke.png" title="Fumo Smoking" rel="lightbox"><img src="http://dev.lipidity.com/wp-content/uploads/2007/03/fumo_smoke.png" alt="Fumo Smoking" /></a></p>

<p>This version&#8217;s not publicly available yet. Austin &amp; Co. (developers of the application that uses this effect) need to be contacted, and I need to have an option to turn the smoke on / off. It cools down automatically when the interface is hidden, but I&#8217;m sure not everyone likes passive smoking.</p>

<p>Doesn&#8217;t it look fantastic?</p>

<!--more-->

<p>Another update I&#8217;ve made is using bezier paths and curves to draw the interface, rather than letting Quicksilver render it. It had to be done eventually, so I might as well do it sooner rather than later. The fill and the white border were rendered using paths, but obviously they&#8217;ll be cleaned up to look good as development progresses.</p>

<p>A preference pane will be among us soon, and possibly a hint of customization in the results pane / drawer. The interface will also be getting a stretch and redesign to make it appear more like the actual <a href="http://dev.lipidity.com/apple/creating-fumo-a-new-quicksilver-interface">concept</a> by Pavel.</p>

<p>Now, can we get some feedback please?</p>

<p><strong>Update:</strong> Major updates to all aspects of the interface. See <a href="http://dev.lipidity.com/fumo">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://lipidity.com/apple/fumos-fumin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Passive smokin&#8217;</title>
		<link>http://lipidity.com/apple/passive-smokin/</link>
		<comments>http://lipidity.com/apple/passive-smokin/#comments</comments>
		<pubDate>Wed, 01 Nov 2006 06:09:34 +0000</pubDate>
		<dc:creator>Ankur</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Cocoa]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Download]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[Mac]]></category>

		<category><![CDATA[smoke]]></category>

		<category><![CDATA[Source Code]]></category>

		<guid isPermaLink="false">http://dev.lipidity.com/apple/passive-smokin</guid>
		<description><![CDATA[With all the fuss over Disco and it&#8217;s smoke effect, Jonathan Wight decided to take a deeper look. The result of his labor - anyone can integrate smoking windows into their apps. Stick around and let me show you how.



If you&#8217;re like me, one of the first things you do when you see a cool [...]]]></description>
			<content:encoded><![CDATA[<p>With all the fuss over <a href="http://discoapp.com" title="Disco is a CD burning shareware program for OS X created by the author of AppZapper and friends." rel="external">Disco</a> and it&#8217;s <a href="http://discoapp.com/blog/?p=23" title="The story behind the complex smoke effect as seen in Disco" rel="external">smoke effect</a>, Jonathan Wight decided to take a <a href="http://toxicsoftware.com/blog/second-hand-smoke/" rel="external" title="Using smoking windows in Xcode">deeper look</a>. The result of his labor - anyone can integrate smoking windows into their apps. Stick around and let me show you how.</p>

<p><a href="http://toxicsoftware.com/wordpress/uploads/SecondHandSmoke.png" title="Screenshot of a window smoking" class="imagelink" rel="lightbox"><img src="http://toxicsoftware.com/wordpress/uploads/SecondHandSmoke.png" alt="The smoke effect in action" /></a></p>

<p>If you&#8217;re like me, one of the first things you do when you see a cool app is dig straight into the resources folder. Well, right-clicking on Disco.app and hitting &#8220;Show package contents&#8221; is pretty revealing. Charge straight into the Contents folder, and you&#8217;ll see a nice little folder bearing the name &#8220;Frameworks&#8221;. Need I say any more? Just like all you need for Core Graphics is contained within my Core Graphics Framework, so the smoking windows code is contained in this little folder. It&#8217;s a simple matter of doing a class-dump to build some headers (or if you got in early, the headers are already there), and you have access to all the smoke you need. So, are you interested? Download the Disco beta and drag it to your applications folder. Then, you may proceed to grab a copy of my (modified) version of the smoking windows project and play around with it at your leisure! I quote from Toxic Software:</p>

<blockquote><p>If your hardware is capable enough you should be able to see the smoke effect rising from the top of the window. (It might take 10 to 20 seconds for the smoke to appear).

You can change the smoke parameters by using the smoke settings window (dialog? pane? view?) within Disco. Then just copy Disco’s prefs (com.discoapp.Disco.plist) to SecondHandSmoke’s prefs (com.example.SecondHandSmoke.plist).</p></blockquote>

<p>Obviously, this way of setting preferences isn&#8217;t very flash, so you can just set the specific preference keys from within your code, and it&#8217;ll still run fine. Don&#8217;t expect that done from me, though, I&#8217;ve got a lot of work to catch up on. Then again, if someone wants to make their window smoke and can&#8217;t get their head around the preferences, I can always take a little break and help you out.</p>

<p class="download"><a href="http://dev.lipidity.com/wp-content/uploads/2006/11/secondhandsmoke21.zip" title="Download the example project for smoking windows.">Second Hand Smoke</a></p>

<p>Have fun, and try not to get addicted to smoking.</p>

<p><ins class='block'><strong>Update:</strong> This smoke no longer works with the version 1.0 release of Disco. Updated smoking instructions <a href="http://dev.lipidity.com/feature/tutorial/now-this-is-hot-cocoa" title="Disco smoke with Cocoa and Xcode">here</a>.</ins></p>
]]></content:encoded>
			<wfw:commentRss>http://lipidity.com/apple/passive-smokin/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
