An AppleScript (app) to duplicate any file you’ve added to its list to the folder of the frontmost Finder window.
After giving it a home, the way to use this app is to drag it into the Finder’s toolbar. Then you can simply click its icon to activate it whenever and where ever you are in the Finder.
You can save any document of any type and select it using the “–Add new file…” option when prompted for a document to place. For example, you can set-up and save an Illustrator, Photoshop, HTML, plain text, etc. document to use as a template with this script. Add it to the list (which is really just adding a duplicate of the template to a folder named “NewHere” in your Application Support folder), enter a name for the duplicate that will be placed in the folder of the Finder’s frontmost window. Then, it will open. You can now choose that file whenever you run this script by selecting it from the list.
Also includes the ability to clone the frontmost Finder window.
This has not been tested extensively, so there may be some unexpected behavior if your list gets very big. Or there may not, I really don’t know. There are however issues of “Replacing”. This will not replace a file if you pick the same name as a file already in the folder you use it on without prompting! So please be aware of what you are doing because the older file will be opened as if it were new. I do plan to change this behavior, however. Someday…
Download – 20kB zip file
Source of “main.scpt”:
property first_run_dialog : "This is the first time you've run NewHere.
Files added to the list are located in:
~/Library/Application Support/NewHere/
Removing a file from this folder removes it from the list."
property choose_prompt : "Choose a document to place here"
property start_doc_list : {"--Open templates folder", "--Add new file...", "--Clone Finder window"} -- Do NOT alter the order of or remove these three items!
property save_prompt : "Enter a name for the new file."
tell application "Finder"
set app_sup to folder (path to application support from user domain)
if not (exists folder "NewHere" of app_sup) then
display dialog first_run_dialog
make new folder at app_sup with properties {name:"NewHere"}
else
try
set doc_list to start_doc_list & (name of every file of folder "NewHere" of app_sup as list)
end try
end if
set my_file to choose from list doc_list with prompt choose_prompt
if result is not false then
set my_dest to (folder of the front window) as alias
set my_file to item 1 of my_file as string
if my_file is item 1 of doc_list then
tell application "Finder" to open folder "NewHere" of app_sup
else if my_file is item 2 of doc_list then
set new_file to choose file without invisibles
duplicate file new_file to folder "NewHere" of app_sup with replacing
set my_name to text returned of (display dialog save_prompt default answer (name of my_dest & " " & name of new_file as text))
my do_it((name of new_file as text), my_name, my_dest)
else if my_file is item 3 of doc_list then
tell application "Finder"
try
set this_folder to folder of window 1
make new Finder window to this_folder
end try
end tell
else
set my_name to text returned of (display dialog save_prompt default answer (name of my_dest & " " & my_file))
my do_it(my_file, my_name, my_dest)
end if
else
set doc_list to start_doc_list
end if
end tell
on do_it(my_file, my_name, my_dest)
set my_dest to my_dest & my_name as text
set my_origin to (path to application support from user domain) & "NewHere:" & my_file as text
do shell script "cp " & quoted form of (POSIX path of my_origin) & " " & quoted form of (POSIX path of my_dest)
tell application "Finder" to open my_dest as alias
end do_it
Pingback: Clone Finder window | strawhousepig.net