How to create an OS X 10.9 alias by script?
Paul Dupuis
paul at researchware.com
Mon Sep 22 11:01:33 EDT 2014
On 9/22/2014 9:28 AM, Tiemo Hollmann TB wrote:
> Hi,
>
> can somebody give me a hint on how to add an alias of a program by script
> (shell) to the dock?
>
>
The command below should do it for you. NOTE: The 2 filters are to
handle differences between versions of OSX - tested from Leopard to
Mavericks. It presents a dialog to alert if an identical alias is
already on the dock. Comment out the answer if you don't want that.
command CreateOSXDockAlias pDockItem -- pDockItem is the fill path and
name of the app
local tPreserveLockScreen
local tDockItem, tInstalledDockItems, tInstallDockItem
put the lockScreen into tPreserveLockScreen
if not tPreserveLockScreen then lock screen
put pDockItem into tDockItemFilter1
put pDockItem into tDockItemFilter2
replace space with "%20" in tDockItemFilter2 -- effectively Percent
Encode string
put shell("defaults read com.apple.dock persistent-apps") into
tInstalledDockItems
put tInstalledDockItems into tTestFormat1 -- to use without %20
replacement for space
put tInstalledDockItems into tTestFormat2 -- to use with %20
replacement for space
filter tTestFormat1 with ("*"&tDockItemFilter1&"*") -- filter to just
this version of the app
filter tTestFormat2 with ("*"&tDockItemFilter2&"*") -- filter to just
this version of the app
if (tTestFormat1 is empty) AND (tTestFormat2 is empty) then -- not
already in dock
put "defaults write com.apple.dock persistent-apps -array-add " into
tInstallDockItem
put "'<dict><key>tile-data</key><dict><key>file-data</key><dict>"
after tInstallDockItem
put "<key>_CFURLString</key><string>"&pDockItem&"</string>" after
tInstallDockItem
put
"<key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>'"
after tInstallDockItem
put shell(tInstallDockItem) into tResult -- install into the Dock
put shell("killall -HUP Dock") into tResult -- restart Dock to show
new item
else
answer information pDockItem && "is already installed on the Dock"
with "OK"
end if
if not tPreserveLockScreen then unlock screen
end CreateOSXDockAlias
More information about the use-livecode
mailing list