<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
    <title>GFX :: Monk</title>
    <id>http://gfxmonk.net/?action=feed</id>
    <updated>2009-10-31T07:55:41+10:00</updated>
    
    <link href="http://gfxmonk.net" />
    <generator uri="http://chyrp.net/" version="2.0 RC3">Chyrp</generator>
    <link rel="self" href="http://feeds.feedburner.com/gfxmonk" type="application/atom+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
        <title type="html">Lauren McCarthy's Happiness Hat</title>
        <id>tag:gfxmonk.net,2009-10-31:/?action=view&amp;id=364</id>
        <updated>2009-10-31T07:55:41+10:00</updated>
        <published>2009-10-31T07:55:41+10:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/gfxmonk/~3/uMKZNwgrytM/" />
        <author>
            <name>gfxmonk</name>
            <uri>http://localhost/~tim/gfxmonk-new</uri>
        </author>
        <content type="html">&lt;p&gt;It measures your smile and stabs you if you're not smiling sufficiently [via &lt;a href="http://waxy.org/links/"&gt;waxy.org&lt;/a&gt;]&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/gfxmonk/~4/uMKZNwgrytM" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://www.lauren-mccarthy.com/happinesshat/</feedburner:origLink></entry>
    <entry>
        <title type="html">Is there such thing as a Snapping Window Manager?</title>
        <id>tag:gfxmonk.net,2009-10-24:/?action=view&amp;id=363</id>
        <updated>2009-10-24T20:47:27+10:00</updated>
        <published>2009-10-24T14:24:50+10:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/gfxmonk/~3/hwR7jKskPE0/" />
        <author>
            <name>gfxmonk</name>
            <uri>http://localhost/~tim/gfxmonk-new</uri>
        </author>
        <content type="html">&lt;p&gt;..in which I propose a potentially-new window management feature, and hope that somebody has already done it so that I won't have to...&lt;/p&gt;

&lt;a class="read_more" href="http://gfxmonk.net/?action=view&amp;amp;url=is-there-such-thing-as-a-snapping-window-manager"&gt;&lt;/a&gt;

&lt;p&gt;I'm currently developing &lt;code&gt;file-finder&lt;/code&gt;, a simple tool to quickly find files by name (beneath a given directory). It's like the "jump to file" feature in most IDEs, but it's a simple, standalone tool that can be used with any editor (and it beats the pants off most of them in terms of speed). I chose to write it as a terminal app, because that way it can run as a companion to any editor - and it certainly doesn't need anything that curses doesn't offer. The trouble is, it needs to run in its own distinct window - ignoring any fancy terminal-embedding hacks (which aren't possible in vim, my editor of choice lately). I'd quite like to have it as sort of a sidebar for whatever editor I'm using, and I wonder if the window manager can help here.&lt;/p&gt;

&lt;p&gt;Many window managers have window snapping, whereby if you move a window close to the edge of another, it'll "snap" into position right next to it. I have never really seen this as useful, since it is a very one-off sort of operation. You move a window into place, and then you're on your own.&lt;/p&gt;

&lt;p&gt;What I'd love to see is a window manager that remembers what windows you have snapped together, and make use of this information to intelligently move or resize windows. To illustrate:&lt;/p&gt;

&lt;p&gt;&lt;img src="misc/snap_windows/normal.gif" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;fig. 1: Standard "floating" windows&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here we have 3 windows, arranged arbitrarily. This is the normal mode of operation - every window is independent.&lt;/p&gt;

&lt;p&gt;&lt;img src="misc/snap_windows/snapped.gif" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;fig. 2: Snapped windows&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here, the the green window has been moved next to the red. As a result it "snaps" onto the side of it. The green window's height is extended to the height of the red, and they form a single rectangular region for all future resize and move operations - that is, making the red window taller will also make the green window taller, and moving the red window will move the green window by the same amount.&lt;/p&gt;

&lt;p&gt;In addition, the border between them will now act as a slider - when the green window's right-hard border is expanded to the right, the red window's left border should move the same amount right to keep the edges together.&lt;/p&gt;

&lt;p&gt;In order to detatch windows, there are a few options:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Moving / resizing the biggest window in a region moves the whole region, while moving a smaller window detatches it from the others&lt;/li&gt;
&lt;li&gt;Moving / resizing any window acts on the entire region, except for when a keyboard shortcut (e.g. shift) is held down.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I would prefer option (2), because it's less to remember (and I think easier on my muscle memory). But it would be much less discoverable.&lt;/p&gt;

&lt;p&gt;So, dear readers: I ask you. Does such a thing exist, or will I have to roll my own? I currently use metacity, but I could be convinced to change. I could also be convinced to write a compiz plugin, if such things are possible to do in a plugin. Does anyone have any leads? Is it a good idea?&lt;/p&gt;

&lt;p&gt;&lt;sub&gt;&lt;strong&gt;&amp;#42;&lt;/strong&gt;: Of course, I wouldn't have this trouble if I used a tiling window manager. But for the most part I do prefer free-form windows, so that wouldn't suit me too well (I've tried). &lt;code&gt;screen&lt;/code&gt; is another convenient option for embedding tiled window sets within free-form windows, but it restricts me to a terminal-only editor (this is not ideal).&lt;/sub&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/gfxmonk/~4/hwR7jKskPE0" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://gfxmonk.net/?action=view&amp;url=is-there-such-thing-as-a-snapping-window-manager</feedburner:origLink></entry>
    <entry>
        <title type="html">Looking Forward to Being Attacked - Awful Library Books</title>
        <id>tag:gfxmonk.net,2009-10-12:/?action=view&amp;id=362</id>
        <updated>2009-10-12T19:47:14+10:00</updated>
        <published>2009-10-12T19:47:14+10:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/gfxmonk/~3/VQC9roLM3rg/" />
        <author>
            <name>gfxmonk</name>
            <uri>http://localhost/~tim/gfxmonk-new</uri>
        </author>
        <content type="html">&lt;p&gt;chapter 4: "Life affords few pleasures that can equal the striking of vulnerable areas!"
I love that almost every single chapter ends with an exclamation mark. via nys :)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/gfxmonk/~4/VQC9roLM3rg" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://awfullibrarybooks.wordpress.com/2009/09/30/fun-with-crime/</feedburner:origLink></entry>
    <entry>
        <title type="html">Arial versus Helvetica</title>
        <id>tag:gfxmonk.net,2009-09-23:/?action=view&amp;id=361</id>
        <updated>2009-09-23T20:25:28+10:00</updated>
        <published>2009-09-23T20:25:28+10:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/gfxmonk/~3/GcqpAgRKiFc/arial-versus-helvetica.html" />
        <author>
            <name>gfxmonk</name>
            <uri>http://localhost/~tim/gfxmonk-new</uri>
        </author>
        <content type="html">&lt;p&gt;Hey font nerds: if people need a detailed chart to tell the difference, maybe it doesn't actually matter that much...
Politics aside, of course.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/gfxmonk/~4/GcqpAgRKiFc" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://www.swiss-miss.com/2009/09/arial-versus-helvetica.html</feedburner:origLink></entry>
    <entry>
        <title type="html">Google camera adapter (MagicCam) - osascript errors</title>
        <id>tag:gfxmonk.net,2009-09-21:/?action=view&amp;id=360</id>
        <updated>2009-09-21T18:35:15+10:00</updated>
        <published>2009-09-21T18:35:15+10:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/gfxmonk/~3/itYkQ64-aDU/" />
        <author>
            <name>gfxmonk</name>
            <uri>http://localhost/~tim/gfxmonk-new</uri>
        </author>
        <content type="html">&lt;p&gt;Just thought I'd shed some light on the issue (because googling it myself turned up less than useful results). I just had an issue where the following messages were being spewed into the output of every &lt;code&gt;osascript&lt;/code&gt; (applescript) command:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ osascript -e 'tell application "finder" to activate'
[000:035] MagicCam 0: Current process: osascript, Flash is loaded: no
[000:035] Error(magiccammac.cc:276): MagicCam 0: MagicCamOpen: Not an allowed process!
[000:002] MagicCam 0: Current process: osascript, Flash is loaded: no
[000:002] Error(magiccammac.cc:276): MagicCam 0: MagicCamOpen: Not an allowed process!
[000:000] MagicCam 1: Current process: osascript, Flash is loaded: no
[000:000] Error(magiccammac.cc:276): MagicCam 1: MagicCamOpen: Not an allowed process!
[000:002] MagicCam 1: Current process: osascript, Flash is loaded: no
[000:002] Error(magiccammac.cc:276): MagicCam 1: MagicCamOpen: Not an allowed process!
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This has the potential to break a lot of scripts that use osascript to get information from (or about) running applications.&lt;/p&gt;

&lt;p&gt;It turns out this is due to a google quicktime component, which I believe is related to google gears and video chat. To get rid of the error, you
can delete "Google Camera Adapter 0.component" and "Google Camera Adapter 1.component" from &lt;code&gt;/Library/Quicktime/&lt;/code&gt;. I make no claims that google
video chat will work after you do this (it surely won't), but I never use it anyways, and I'd rather not have it break anything that relies on
osascript output.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/gfxmonk/~4/itYkQ64-aDU" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://gfxmonk.net/?action=view&amp;url=google-camera-adapter-magiccam---osascript-errors</feedburner:origLink></entry>
    <entry>
        <title type="html">So I've kept working on navim, my jQuery plugin for easily adding...</title>
        <id>tag:gfxmonk.net,2009-09-12:/?action=view&amp;id=359</id>
        <updated>2009-09-12T13:14:17+10:00</updated>
        <published>2009-09-12T13:14:17+10:00</published>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/gfxmonk/~3/3fzk4LjhiWQ/" />
        <author>
            <name>gfxmonk</name>
            <uri>http://localhost/~tim/gfxmonk-new</uri>
        </author>
        <content type="html">&lt;p&gt;So I've kept working on &lt;a href="http://github.com/gfxmonk/jquery-navim"&gt;navim&lt;/a&gt;, my jQuery plugin for easily adding vim-style keyboard navigation to web pages. New features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;shift+enter to open links in a new window (and the ability to tell if shift is pressed from a custom action callback)&lt;/li&gt;
&lt;li&gt;fixed a bug that interfered with pressing return to submit a form&lt;/li&gt;
&lt;li&gt;using focus(), blur() and tab-key navigation to better effect&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've also now implemented navim in my "read later" webapp, &lt;a href="http://pagefeed.appspot.com/about/"&gt;pagefeed&lt;/a&gt;. It was trivial enough to add "d" as an additional keyboard shortcut to delete the currently active item, which serves as a good example for anyone wanting to add their own custom action keys. The code is simply:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$(window).keypress(function(e) {
    if(e.which == 100) { // 'd'
        $(".navim_active").children("form.del").eq(0).submit();
        return false;
    }
});
&lt;/code&gt;&lt;/pre&gt;
&lt;img src="http://feeds.feedburner.com/~r/gfxmonk/~4/3fzk4LjhiWQ" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://gfxmonk.net/?action=view&amp;url=navim-update</feedburner:origLink></entry>
</feed>
