<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>nanoANT &#187; terminal</title>
	<atom:link href="http://www.nanoant.com/tag/terminal/feed" rel="self" type="application/rss+xml" />
	<link>http://www.nanoant.com</link>
	<description>Yet another self-employee site &#38; blog</description>
	<lastBuildDate>Fri, 03 Sep 2010 17:06:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Opening specified path in Terminal&#8217;s new tab</title>
		<link>http://www.nanoant.com/programming/opening-specified-path-in-terminals-new-tab</link>
		<comments>http://www.nanoant.com/programming/opening-specified-path-in-terminals-new-tab#comments</comments>
		<pubDate>Tue, 24 Mar 2009 11:13:36 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://www.nanoant.com/?p=284</guid>
		<description><![CDATA[Updates It uses now click menu instead of keystroke &#8220;System Events&#8221; command, because in some cases when you had this script assigned to shortcut that used Ctrl or Shift modifiers, those modifiers were sent together with Cmd to &#8220;Terminal&#8221; producing invalid behavior. It waits 0.5 second when window is busy just in case Terminal.app was not running and it [...]]]></description>
			<content:encoded><![CDATA[<h2>Updates</h2>
<ol>
<li>It uses now <tt>click menu</tt> instead of <tt>keystroke</tt> <em>&#8220;System Events&#8221;</em> command, because in some cases when you had this script assigned to shortcut that used <em>Ctrl</em> or <em>Shift</em> modifiers, those modifiers were sent together with <em>Cmd</em> to <em>&#8220;Terminal&#8221;</em> producing invalid behavior.</li>
<li>It waits 0.5 second when window is busy just in case <em>Terminal.app</em> was not running and it is just loading the shell which makes it <tt>busy</tt> for short while too. Fixes incorrect behavior of opening extra tab when <em>Terminal.app</em> was not running.</li>
</ol>
<p>If you ever wondered how to open specified path in new tab of <em>Terminal.app</em> or reuse current one if it is not busy (running a command), here&#8217;s a script you may use:</p>
<pre class="textmate-source"><span class="source source_applescript"><span class="meta meta_tell-block meta_tell-block_application meta_tell-block_application_generic meta_tell-block_application_generic_applescript"><span class="keyword keyword_control keyword_control_applescript">tell</span> <span class="support support_class support_class_built-in support_class_built-in_applescript">application</span> <span class="string string_quoted string_quoted_double string_quoted_double_application-name string_quoted_double_application-name_applescript"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_applescript">"</span>Terminal<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_applescript">"</span></span>

    <span class="support support_function support_function_standard-suite support_function_standard-suite_applescript">activate</span>

    <span class="keyword keyword_control keyword_control_applescript">set</span> <span class="variable variable_other variable_other_applescript">windowCount</span> <span class="keyword keyword_control keyword_control_applescript">to</span> <span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_applescript">(</span><span class="support support_function support_function_standard-suite support_function_standard-suite_applescript">count</span> <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">of</span> the <span class="support support_class support_class_standard-suite support_class_standard-suite_applescript">windows</span><span class="punctuation punctuation_section punctuation_section_group punctuation_section_group_applescript">)</span>

    <span class="comment comment_line comment_line_double-dash comment_line_double-dash_applescript"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_applescript">--</span> Terminal may be just launched loading the shell, wait a bit
</span>    <span class="keyword keyword_control keyword_control_applescript">if</span> windowCount <span class="keyword keyword_operator keyword_operator_applescript">is greater than</span> <span class="constant constant_numeric constant_numeric_applescript">0</span> <span class="keyword keyword_operator keyword_operator_applescript">and</span> <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">first</span> <span class="support support_class support_class_standard-suite support_class_standard-suite_applescript">window</span> <span class="keyword keyword_operator keyword_operator_applescript">is</span> busy <span class="keyword keyword_control keyword_control_applescript">then</span>
        <span class="support support_function support_function_standardadditions support_function_standardadditions_user-interaction support_function_standardadditions_user-interaction_applescript">delay</span> <span class="constant constant_numeric constant_numeric_applescript">0.5</span>
    <span class="keyword keyword_control keyword_control_applescript">end</span>

    <span class="comment comment_line comment_line_double-dash comment_line_double-dash_applescript"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_applescript">--</span> Still busy / no windows? open new tab
</span>    <span class="keyword keyword_control keyword_control_applescript">if</span> windowCount <span class="keyword keyword_operator keyword_operator_applescript">is greater than</span> <span class="constant constant_numeric constant_numeric_applescript">0</span> <span class="keyword keyword_operator keyword_operator_applescript">and</span> <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">first</span> <span class="support support_class support_class_standard-suite support_class_standard-suite_applescript">window</span> <span class="keyword keyword_operator keyword_operator_applescript">is</span> busy <span class="keyword keyword_operator keyword_operator_applescript">or</span> windowCount <span class="keyword keyword_operator keyword_operator_applescript">is</span> <span class="constant constant_numeric constant_numeric_applescript">0</span> <span class="keyword keyword_control keyword_control_applescript">then</span>
<span class="meta meta_tell-block meta_tell-block_application meta_tell-block_application_generic meta_tell-block_application_generic_applescript">        <span class="keyword keyword_control keyword_control_applescript">tell</span> <span class="support support_class support_class_built-in support_class_built-in_applescript">application</span> <span class="string string_quoted string_quoted_double string_quoted_double_application-name string_quoted_double_application-name_applescript"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_applescript">"</span>System Events<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_applescript">"</span></span> <span class="keyword keyword_control keyword_control_applescript">to</span> <span class="keyword keyword_control keyword_control_applescript">tell</span> process <span class="string string_quoted string_quoted_double string_quoted_double_applescript"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_applescript">"</span>Terminal<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_applescript">"</span></span>
            click <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">first</span> menu <span class="support support_class support_class_standard-suite support_class_standard-suite_applescript">item</span> <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">of</span> <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">first</span> menu <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">of</span> <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">second</span> menu <span class="support support_class support_class_standard-suite support_class_standard-suite_applescript">item</span> <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">of</span> <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">first</span> menu <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">of</span> <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">third</span> menu bar <span class="support support_class support_class_standard-suite support_class_standard-suite_applescript">item</span> <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">of</span> <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">first</span> menu bar
        <span class="keyword keyword_control keyword_control_applescript">end tell</span></span>
    <span class="keyword keyword_control keyword_control_applescript">end if</span>

    do <span class="support support_class support_class_built-in support_class_built-in_applescript">script</span> <span class="string string_quoted string_quoted_double string_quoted_double_applescript"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_applescript">"</span>cd #{e_as(e_sh(dir))}<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_applescript">"</span></span> <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">in</span> <span class="keyword keyword_control keyword_control_reference keyword_control_reference_applescript">first</span> <span class="support support_class support_class_standard-suite support_class_standard-suite_applescript">window</span>

<span class="keyword keyword_control keyword_control_applescript">end tell</span></span></span></pre>
<p>Where <tt>#{e_as(e_sh(dir))}</tt> is your desired folder. This is modified chunk of <em>TextMate</em>&#8216;s command script found at <a href="http://markelikalderon.com/blog/2008/05/18/open-terminal-in-new-tab/">Mark Eli Kalderon&#8217;s Blog</a>. Thanks Mark!</p>
<p><em>Note:</em> Mark&#8217;s <em>TextMate</em> command script does not open anything when <em>Terminal.app</em> has no windows or it is not running.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nanoant.com/programming/opening-specified-path-in-terminals-new-tab/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
