<?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>uRaNGaTaNG &#187; applescript</title>
	<atom:link href="http://www.rngtng.com/tag/applescript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rngtng.com</link>
	<description>Featuring Ruby, Rails, Web development, Arduino, Processing, Nabaztag and more...</description>
	<lastBuildDate>Thu, 12 Jan 2012 10:08:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<atom:link rel='hub' href='http://www.rngtng.com/?pushpress=hub'/>
		<item>
		<title>AppleScript to create keyboard shortcuts</title>
		<link>http://www.rngtng.com/2010/10/29/applescript-to-create-keyboard-shortcuts/</link>
		<comments>http://www.rngtng.com/2010/10/29/applescript-to-create-keyboard-shortcuts/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 09:38:47 +0000</pubDate>
		<dc:creator>tobi</dc:creator>
				<category><![CDATA[Happy Hacking]]></category>
		<category><![CDATA[applescript]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[setup]]></category>
		<category><![CDATA[shortcut]]></category>
		<category><![CDATA[system]]></category>

		<guid isPermaLink="false">http://www.rngtng.com/?p=490</guid>
		<description><![CDATA[Last week my company laptop got stolen, so I had to setup my system again using this list. The positive part of each new system setup is you think more and more how to automate your setup..

This time I was really annoyed with setting up keyboard shortcuts, so I came up with this little ...]]></description>
			<content:encoded><![CDATA[<p>Last week my company laptop got stolen, so I had to setup my system again using this <a href="http://www.rngtng.com/2010/04/27/my-snow-leopard-development-system-ruby-rails-arduino-co/" class="broken_link">list</a>. The positive part of each new system setup is you think more and more how to automate your setup..</p>
<p>This time I was really annoyed with setting up keyboard shortcuts, so I came up with this little AppleScript which does the work:</p>
<div id="gist-652031" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="c">----------------------------------------------------------------------------------------------------</span></div><div class='line' id='LC2'><span class="c">-- </span></div><div class='line' id='LC3'><span class="c">--   Script to automate creation of Keyborad shortcuts</span></div><div class='line' id='LC4'><span class="c">-- </span></div><div class='line' id='LC5'><span class="c">----------------------------------------------------------------------------------------------------</span></div><div class='line' id='LC6'><span class="nv">GUIScripting_status</span><span class="p">()</span></div><div class='line' id='LC7'><br/></div><div class='line' id='LC8'><span class="k">tell</span> <span class="nb">application</span> <span class="s2">&quot;System Preferences&quot;</span></div><div class='line' id='LC9'>	<span class="nb">activate</span></div><div class='line' id='LC10'>	<span class="nv">reveal</span> <span class="nv">anchor</span> <span class="s2">&quot;shortcutsTab&quot;</span> <span class="k">of</span> <span class="nv">pane</span> <span class="na">id</span> <span class="s2">&quot;com.apple.preference.keyboard&quot;</span></div><div class='line' id='LC11'><span class="k">end</span> <span class="k">tell</span></div><div class='line' id='LC12'><br/></div><div class='line' id='LC13'><span class="k">set</span> <span class="p">{</span><span class="nv">leftArrow</span><span class="p">,</span> <span class="nv">rightArrow</span><span class="p">}</span> <span class="k">to</span> <span class="p">{</span><span class="nb">ASCII character</span> <span class="mi">28</span><span class="p">,</span> <span class="nb">ASCII character</span> <span class="mi">29</span><span class="p">}</span></div><div class='line' id='LC14'><span class="k">set</span> <span class="p">{</span><span class="nv">upArrow</span><span class="p">,</span> <span class="nv">downArrow</span><span class="p">}</span> <span class="k">to</span> <span class="p">{</span><span class="nb">ASCII character</span> <span class="mi">30</span><span class="p">,</span> <span class="nb">ASCII character</span> <span class="mi">31</span><span class="p">}</span></div><div class='line' id='LC15'><br/></div><div class='line' id='LC16'><span class="c">-------------------------------- DEFINE YOUR SHORTCUTS HERE --------------------------------</span></div><div class='line' id='LC17'><br/></div><div class='line' id='LC18'><span class="nv">createShortcut</span><span class="p">(</span><span class="s2">&quot;Safari&quot;</span><span class="p">,</span> <span class="s2">&quot;Select Next Tab&quot;</span><span class="p">,</span> <span class="p">{</span><span class="nb">control</span> <span class="nv">down</span><span class="p">,</span> <span class="nv">rightArrow</span><span class="p">})</span></div><div class='line' id='LC19'><span class="nv">createShortcut</span><span class="p">(</span><span class="s2">&quot;Safari&quot;</span><span class="p">,</span> <span class="s2">&quot;Select Previous Tab&quot;</span><span class="p">,</span> <span class="p">{</span><span class="nb">control</span> <span class="nv">down</span><span class="p">,</span> <span class="nv">leftArrow</span><span class="p">})</span></div><div class='line' id='LC20'><br/></div><div class='line' id='LC21'><span class="nv">createShortcut</span><span class="p">(</span><span class="s2">&quot;Utilities/Terminal&quot;</span><span class="p">,</span> <span class="s2">&quot;Select Next Tab&quot;</span><span class="p">,</span> <span class="p">{</span><span class="nb">control</span> <span class="nv">down</span><span class="p">,</span> <span class="nv">rightArrow</span><span class="p">})</span></div><div class='line' id='LC22'><span class="nv">createShortcut</span><span class="p">(</span><span class="s2">&quot;Utilities/Terminal&quot;</span><span class="p">,</span> <span class="s2">&quot;Select Previous Tab&quot;</span><span class="p">,</span> <span class="p">{</span><span class="nb">control</span> <span class="nv">down</span><span class="p">,</span> <span class="nv">leftArrow</span><span class="p">})</span></div><div class='line' id='LC23'><br/></div><div class='line' id='LC24'><span class="nv">createShortcut</span><span class="p">(</span><span class="s2">&quot;TextMate&quot;</span><span class="p">,</span> <span class="s2">&quot;Next File Tab&quot;</span><span class="p">,</span> <span class="p">{</span><span class="nb">control</span> <span class="nv">down</span><span class="p">,</span> <span class="nv">rightArrow</span><span class="p">})</span></div><div class='line' id='LC25'><span class="nv">createShortcut</span><span class="p">(</span><span class="s2">&quot;TextMate&quot;</span><span class="p">,</span> <span class="s2">&quot;Previous File Tab&quot;</span><span class="p">,</span> <span class="p">{</span><span class="nb">control</span> <span class="nv">down</span><span class="p">,</span> <span class="nv">leftArrow</span><span class="p">})</span></div><div class='line' id='LC26'><span class="nv">createShortcut</span><span class="p">(</span><span class="s2">&quot;TextMate&quot;</span><span class="p">,</span> <span class="s2">&quot;Search Project With AckMate...&quot;</span><span class="p">,</span> <span class="p">{</span><span class="nv">command</span> <span class="nv">down</span><span class="p">,</span> <span class="s2">&quot;F&quot;</span><span class="p">})</span></div><div class='line' id='LC27'><br/></div><div class='line' id='LC28'><span class="c">----------------------------------------------------------------------------------------------------</span></div><div class='line' id='LC29'><br/></div><div class='line' id='LC30'><span class="k">tell</span> <span class="nb">application</span> <span class="s2">&quot;System Preferences&quot;</span> <span class="k">to</span> <span class="nb">quit</span></div><div class='line' id='LC31'><br/></div><div class='line' id='LC32'><span class="c">----------------------------------------------------------------------------------------------------</span></div><div class='line' id='LC33'><span class="c">----------------------------------------------------------------------------------------------------</span></div><div class='line' id='LC34'><br/></div><div class='line' id='LC35'><span class="k">on</span> <span class="nv">createShortcut</span><span class="p">(</span><span class="nv">app_path</span><span class="p">,</span> <span class="nv">menu_text</span><span class="p">,</span> <span class="nv">keystokes</span><span class="p">)</span></div><div class='line' id='LC36'>	<span class="k">tell</span> <span class="nb">application</span> <span class="s2">&quot;System Events&quot;</span></div><div class='line' id='LC37'>		<span class="k">tell</span> <span class="nv">process</span> <span class="s2">&quot;System Preferences&quot;</span></div><div class='line' id='LC38'>			<span class="k">tell</span> <span class="na">window</span> <span class="s2">&quot;Keyboard&quot;</span></div><div class='line' id='LC39'>				<span class="nv">click</span> <span class="nb">button</span> <span class="mi">3</span> <span class="k">of</span> <span class="no">tab</span> <span class="nv">group</span> <span class="mi">1</span></div><div class='line' id='LC40'>				<span class="k">tell</span> <span class="na">sheet</span> <span class="mi">1</span></div><div class='line' id='LC41'>					<span class="nv">click</span> <span class="nv">pop</span> <span class="nv">up</span> <span class="nb">button</span> <span class="mi">1</span></div><div class='line' id='LC42'>					<span class="nv">click</span> <span class="nb">last</span> <span class="na">menu</span> <span class="nb">item</span> <span class="k">of</span> <span class="na">menu</span> <span class="mi">1</span> <span class="k">of</span> <span class="nv">pop</span> <span class="nv">up</span> <span class="nb">button</span> <span class="mi">1</span></div><div class='line' id='LC43'>					<span class="nv">keystroke</span> <span class="s2">&quot;/Applications/&quot;</span> <span class="o">&amp;</span> <span class="nv">app_path</span> <span class="o">&amp;</span> <span class="s2">&quot;.app&quot;</span></div><div class='line' id='LC44'>					<span class="nv">keystroke</span> <span class="no">return</span></div><div class='line' id='LC45'>					<span class="nv">keystroke</span> <span class="no">return</span></div><div class='line' id='LC46'>					<span class="nb">delay</span> <span class="mi">1</span></div><div class='line' id='LC47'><br/></div><div class='line' id='LC48'>					<span class="nv">keystroke</span> <span class="nv">menu_text</span></div><div class='line' id='LC49'>					<span class="nv">keystroke</span> <span class="no">tab</span></div><div class='line' id='LC50'><br/></div><div class='line' id='LC51'>					<span class="nv">keystroke</span> <span class="nb">last</span> <span class="nb">item</span> <span class="k">of</span> <span class="nv">keystokes</span> <span class="nv">using</span> <span class="nv">rest</span> <span class="k">of</span> <span class="nv">reverse</span> <span class="k">of</span> <span class="nv">keystokes</span></div><div class='line' id='LC52'>					<span class="nb">delay</span> <span class="mi">1</span></div><div class='line' id='LC53'><br/></div><div class='line' id='LC54'>					<span class="nv">click</span> <span class="nb">button</span> <span class="s2">&quot;Add&quot;</span></div><div class='line' id='LC55'>				<span class="k">end</span> <span class="k">tell</span></div><div class='line' id='LC56'>			<span class="k">end</span> <span class="k">tell</span></div><div class='line' id='LC57'>		<span class="k">end</span> <span class="k">tell</span></div><div class='line' id='LC58'>	<span class="k">end</span> <span class="k">tell</span></div><div class='line' id='LC59'><span class="k">end</span> <span class="nv">createShortcut</span></div><div class='line' id='LC60'><br/></div><div class='line' id='LC61'><span class="c">#source: <a href="http://www.macosxautomation.com/applescript/uiscripting/index.html" target="_blank">http://www.macosxautomation.com/applescript/uiscripting/index.html</a></span></div><div class='line' id='LC62'><span class="k">on</span> <span class="nv">GUIScripting_status</span><span class="p">()</span></div><div class='line' id='LC63'>	<span class="c">-- check to see if assistive devices is enabled</span></div><div class='line' id='LC64'>	<span class="k">tell</span> <span class="nb">application</span> <span class="s2">&quot;System Events&quot;</span></div><div class='line' id='LC65'>		<span class="k">set</span> <span class="nv">UI_enabled</span> <span class="k">to</span> <span class="nv">UI</span> <span class="nv">elements</span> <span class="na">enabled</span></div><div class='line' id='LC66'>	<span class="k">end</span> <span class="k">tell</span></div><div class='line' id='LC67'>	<span class="k">if</span> <span class="nv">UI_enabled</span> <span class="ow">is</span> <span class="no">false</span> <span class="k">then</span></div><div class='line' id='LC68'>		<span class="k">set</span> <span class="no">result</span> <span class="k">to</span> <span class="nb">display dialog</span> <span class="s2">&quot;This script utilizes the built-in Graphic User Interface Scripting architecture of Mac OS x which is currently disabled.&quot;</span> <span class="o">&amp;</span> <span class="no">return</span> <span class="o">&amp;</span> <span class="no">return</span> <span class="o">&amp;</span> <span class="s2">&quot;Please click &#39;OK&#39; to provide your password to activate GUI Scripting&quot;</span> <span class="nv">with</span> <span class="nv">icon</span> <span class="mi">1</span> <span class="nb">buttons</span> <span class="p">{</span><span class="s2">&quot;OK&quot;</span><span class="p">,</span> <span class="s2">&quot;Enable without password&quot;</span><span class="p">}</span> <span class="nv">default</span> <span class="nb">button</span> <span class="mi">1</span></div><div class='line' id='LC69'>		<span class="k">if</span> <span class="na">button returned</span> <span class="k">of</span> <span class="no">result</span> <span class="o">=</span> <span class="s2">&quot;Enable without password&quot;</span> <span class="k">then</span></div><div class='line' id='LC70'>			<span class="k">tell</span> <span class="nb">application</span> <span class="s2">&quot;System Preferences&quot;</span></div><div class='line' id='LC71'>				<span class="nb">activate</span></div><div class='line' id='LC72'>				<span class="k">set</span> <span class="nv">current</span> <span class="nv">pane</span> <span class="k">to</span> <span class="nv">pane</span> <span class="na">id</span> <span class="s2">&quot;com.apple.preference.universalaccess&quot;</span></div><div class='line' id='LC73'>				<span class="nb">display dialog</span> <span class="s2">&quot;Activate GUI Scripting by selecting the checkbox \&quot;Enable access for assistive devices\&quot; in the Universal Access preference pane.&quot;</span> <span class="nv">with</span> <span class="nv">icon</span> <span class="mi">1</span> <span class="nb">buttons</span> <span class="p">{</span><span class="s2">&quot;OK&quot;</span><span class="p">}</span> <span class="nv">default</span> <span class="nb">button</span> <span class="mi">1</span></div><div class='line' id='LC74'>				<span class="nb">delay</span> <span class="mi">3</span></div><div class='line' id='LC75'>			<span class="k">end</span> <span class="k">tell</span></div><div class='line' id='LC76'>		<span class="k">else</span></div><div class='line' id='LC77'>			<span class="nv">enabledGUIScripting</span><span class="p">(</span><span class="no">true</span><span class="p">)</span></div><div class='line' id='LC78'>		<span class="k">end</span> <span class="k">if</span></div><div class='line' id='LC79'>	<span class="k">end</span> <span class="k">if</span></div><div class='line' id='LC80'><span class="k">end</span> <span class="nv">GUIScripting_status</span></div><div class='line' id='LC81'><br/></div><div class='line' id='LC82'><span class="c">#source: <a href="http://www.peachpit.com/blogs/blog.aspx?uk=Using-AppleScript-to-enable-GUI-Scripting-Five-AppleScript-Tips-in-Five-Days" target="_blank">http://www.peachpit.com/blogs/blog.aspx?uk=Using-AppleScript-to-enable-GUI-Scripting-Five-AppleScript-Tips-in-Five-Days</a></span></div><div class='line' id='LC83'><span class="k">on</span> <span class="nv">enabledGUIScripting</span><span class="p">(</span><span class="nv">switch</span><span class="p">)</span></div><div class='line' id='LC84'>	<span class="k">tell</span> <span class="nb">application</span> <span class="s2">&quot;System Events&quot;</span></div><div class='line' id='LC85'>		<span class="nb">activate</span></div><div class='line' id='LC86'>		<span class="k">set</span> <span class="nv">UI</span> <span class="nv">elements</span> <span class="na">enabled</span> <span class="k">to</span> <span class="nv">switch</span></div><div class='line' id='LC87'>		<span class="no">return</span> <span class="nv">UI</span> <span class="nv">elements</span> <span class="na">enabled</span></div><div class='line' id='LC88'>	<span class="k">end</span> <span class="k">tell</span></div><div class='line' id='LC89'><span class="k">end</span> <span class="nv">enabledGUIScripting</span></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/652031/4c0d616dd3330e85f2ea9e153e40c152b55d1aa0/create_shortcuts.scpt" style="float:right;">view raw</a>
            <a href="https://gist.github.com/652031#file_create_shortcuts.scpt" style="float:right;margin-right:10px;color:#666">create_shortcuts.scpt</a>
            <a href="https://gist.github.com/652031">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>

<p>The key is &#8216;GUI scripting&#8217; &#8211; a specify way of AppleScript to simulate clicks, keystrokes etc. for *any* (native?) App. You only have to know the ids of the GUI elements which you can get with this very nice tool:<br />
  -&gt;  <a href="http://pfiddlesoft.com/uibrowser" target="_blank">http://pfiddlesoft.com/uibrowser</a></p>
<p>Good source to start your Mac Os X Automation is:<br />
  -&gt;  <a href="http://www.macosxautomation.com" target="_blank">http://www.macosxautomation.com</a></p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.rngtng.com/2010/10/29/applescript-to-create-keyboard-shortcuts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to sync my mp3 Songs rating in iTunes across multiple Libraries</title>
		<link>http://www.rngtng.com/2009/11/24/how-to-sync-my-mp3-songs-rating-in-itunes-across-multiple-libraries/</link>
		<comments>http://www.rngtng.com/2009/11/24/how-to-sync-my-mp3-songs-rating-in-itunes-across-multiple-libraries/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 16:21:26 +0000</pubDate>
		<dc:creator>tobi</dc:creator>
				<category><![CDATA[Happy Hacking]]></category>
		<category><![CDATA[applescript]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[sync]]></category>

		<guid isPermaLink="false">http://www.rngtng.com/?p=338</guid>
		<description><![CDATA[By now, I havn't find any good solution to share my mp3 across multiple systems and disks. I've some on my local machine, some at work and some on my external harddisk to archive. Luckily, when copying my tracks to another library duplicates are ignored. But what annoys me most is that my ratings ...]]></description>
			<content:encoded><![CDATA[<p>By now, I havn&#8217;t find any good solution to share my mp3 across multiple systems and disks. I&#8217;ve some on my local machine, some at work and some on my external harddisk to archive. Luckily, when copying my tracks to another library duplicates are ignored. But what annoys me most is that my ratings don&#8217;t get copied, as iTunes doesn&#8217;t store it within the file. Some while ago I found a solution by storing the number of stars into the &#8216;Grouping&#8217; Field, so I can recover the rating afterwards. Now, I came up with this little applescript do automate the write and recover process. Just run this script, copy you mp3 to the other library, run the script again, and voilá, you ratings are back &#8211; nice!</p>
<pre class="brush: bash; title: ; notranslate">
(*  small apple script to save rating into grouping field and
   vice versa. Perfect to persitent store your rating witin the file
*)

tell application &quot;iTunes&quot;
	repeat with stars from 1 to 5
		set rating_value to stars * 20
		set group_name to &quot;&quot; &amp; stars &amp; &quot; Stars&quot;

		set sel to (every track whose rating is rating_value and grouping is &quot;&quot;)
		repeat with aTrack in sel
			tell aTrack
				set grouping to group_name
			end tell
		end repeat

		set sel to (every track whose rating is 0 and grouping is group_name)
		repeat with aTrack in sel
			tell aTrack
				set rating to rating_value
			end tell
		end repeat
	end repeat
end tell
</pre>
<p>Btw. for each Star rating I do have a smart playlist which allows me to find those quickly.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.rngtng.com/2009/11/24/how-to-sync-my-mp3-songs-rating-in-itunes-across-multiple-libraries/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>My first AppleScript: Copy Address Book entries</title>
		<link>http://www.rngtng.com/2007/05/10/my-first-applescript-copy-address-book-entries/</link>
		<comments>http://www.rngtng.com/2007/05/10/my-first-applescript-copy-address-book-entries/#comments</comments>
		<pubDate>Thu, 10 May 2007 12:25:39 +0000</pubDate>
		<dc:creator>tobi</dc:creator>
				<category><![CDATA[Happy Hacking]]></category>
		<category><![CDATA[address]]></category>
		<category><![CDATA[applescript]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[ICQ]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://www.rngtng.com/?p=56</guid>
		<description><![CDATA[Tatataa! I just wrote my frist AppleScript. For displaying the buddypicture of my Address Book contacts in Adium, I had to copy the ICQ entry to a new Jabber enrty with appending "@jit.jabber.fsinf.de". The code follows:



It worked out fine. Now I see you all in my buddylist ;-)]]></description>
			<content:encoded><![CDATA[<p>Tatataa! I just wrote my frist AppleScript. For displaying the buddypicture of my Address Book contacts in <a href="http://www.adiumx.com/" target="_blank">Adium</a>, I had to copy the ICQ entry to a new Jabber enrty with appending &#8220;@jit.jabber.fsinf.de&#8221;. The code follows:</p>
<pre class="brush: bash; title: ; notranslate">
tell application &quot;Address Book&quot;
set thePeople to every person whose ICQ handles is not {} and Jabber handles is {}
repeat with eachPerson in thePeople
set icqnr to value of ICQ handles of eachPerson
set jabberid to (item 1 of icqnr) &amp;amp; &quot;@jit.jabber.fsinf.de&quot;
make new Jabber handle at end of Jabber handles of eachPerson with properties {label:&quot;Home&quot;, value:jabberid}
end repeat
save addressbook
end tell
</pre>
<p>It worked out fine. Now I see you all in my buddylist <img src='http://www.rngtng.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.rngtng.com/2007/05/10/my-first-applescript-copy-address-book-entries/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

