Are the columns sizes consistant in their different sizes? You may be able to write an applescript to do this.
This isn't a solution for columns, but this apple scripts demonstrates how to work with the finder. I invoke it from a keyboard remaping utility
tell application "Finder"
open folder "Applications" of startup disk
select Finder window 1
set bounds of Finder window 1 to {-3, 44, 691, 545}
--set position of Finder window 1 to {33, 44}
set position of Finder window 1 to {60, 45}
activate
end tell
Here is an applescript that adjusts the open dialog box in MS Word. It will not work on lion. Needs a different drag mouse utility.
I could piddle with this if interested. It would be a winter project. It wouldn't work in lion though. It would need a different drage utility.
(*
posted to:
http://discussions.apple.com/thread.jspa?messageID=11060273�
Required:
xcode
http://discussions.apple.com/message.jspa?messageID=10613253#10613253
Macintosh-HD -> Applications -> Utilities -> Terminal
Click
http://www.macosxhints.com/article.php?story=2008051406323031
clickdrag
http://www.macosxhints.com/article.php?story=2008051406323031
Microsoft Word
2004 for mac
version 11.6.1
Play Sound
http://microcosmsoftware.com/playsound
Turn on accessability GUI in system preferences.
Optional:
--------
Full Key Codes
http://www.versiontracker.com/dyn/moreinfo/macosx/21215
findCursorLoc
findCursorLoc, applescript code, is listed below. Assign this code to a function key.
move cursor to desired location, press function key:
requires:
XTools scripting addition gives AppleScript the ability to move the mouse.
http://www.lestang.org/osax/XTool/
XTool-2.0.dmg.tgz
-- begin findCursorLoc --
do shell script "/usr/sbin/system_profiler SPDisplaysDataType | grep 'Resolution'" -- get info
tell the result to set {DisplayWidth, DisplayHeight} to {word 2, word 4} -- get resolution
set {xWidth, yHeight} to position of the mouse
display dialog "DisplayWidth= " & DisplayWidth & " DisplayHeight=" & DisplayHeight & return & " xWidth=" & xWidth & " yHeight=" & yHeight
-- end findCursorLoc --
youpi or iKey
youpi and iKey are keystroke remapping programs.
youpi, the free version, works fairly well for me in Mac OS 10.4 although not officially supported.
http://www.versiontracker.com/dyn/moreinfo/macosx/11485&vid=75326
iKey is the paid version
http://www.scriptsoftware.com/ikey/
*)
-- Script results from blizzard of '10 & no DSL connection. Hence, I've time to program.
on run
-- Write a message into the event log.
-- To see, run this applescript in Sript Editor. Click on Event Log tab at bottom of screen.
-- Click run.
log " --- Starting on " & ((current date) as string) & " --- "
set theApp to "Microsoft Word"
-- the folder containing click & clickdrag binary
set theClickLoc to "/Users/mac/clickcode/"
-- Should not need to be changed.
set theSoundLoc to ((path to system folder) as string) & "Library:Sounds:"
--- We have arrived.
(*
Play Sound
http://microcosmsoftware.com/playsound/
*)
tell application "Play Sound"
play theSoundLoc & "Funk.aiff" repeat 4
end tell
-- Get the size of the screen
do shell script "/usr/sbin/system_profiler SPDisplaysDataType | grep 'Resolution'" -- get info
tell the result to set {DisplayWidth, DisplayHeight} to {word 2, word 4} -- get resolution
log "DisplayWidth= " & DisplayWidth & " DisplayHeight=" & DisplayHeight
-- For debugging,make sure your application is closed.
-- Start your application
tell application theApp
activate
end tell
delay 10
tell application "System Events"
tell process theApp
tell application "Play Sound"
play theSoundLoc & "Funk.aiff" repeat 2
end tell
-- get rid of initial idiot panel
key code 53 -- escape key
delay 2
end tell
end tell
-- end For debugging
-- normal start point.
tell application "System Events"
tell process theApp
tell application "Play Sound"
play theSoundLoc & "Hero.aiff" repeat 3
end tell
-- open file menu
keystroke "o" using command down
end tell
end tell
say "Display open file panel, soon. if not already."
-- debug stuff
try
tell application "System Events"
set processList to get every UI element of process theApp
log "processList=..."
log processList
set processList to get name of every UI element of process theApp
log "processList=..."
log processList
set processList to get position of every UI element of process theApp
log "processList=..."
log processList
end tell
on error
log "no " & theApp & " today"
end try
-- end debug stuff
-- loop error escape value
set opsCount to 0
-- Wait until the file open window appears
set processList to {} -- repeat until requires processList to be defined.
(* repeat until may need adjustment *)
repeat until (processList contains {"Open: " & theApp})
-- prevent an endless loop
set opsCount to opsCount + 1
if opsCount > 120 then
display dialog "Logic error " & theApp & " never opened a open file window." giving up after 120
return
end if
delay 0.2
try
tell application "System Events"
set processList to get name of every UI element of process theApp
log "processList=..."
log processList
end tell
on error
log "no " & theApp & " today"
end try
end repeat
say "We are about to start dragging."
-- Allow for moving open file panel
-- Start by getting current position
try
tell application "System Events"
-- alternative, should only be one position:
-- set prositionList to get position of every UI element of process theApp whose name starts with "Open:"
set prositionList to get position of front window of process theApp
log "prositionList=..."
log prositionList
end tell
on error
log "no " & theApp & " today, point 3"
display dialog "Logic error " & theApp & " no position for open file window." giving up after 120
return
end try
-- Make adjustment for moving open file panel
set prositionX to item 1 of prositionList
set prositionY to item 2 of prositionList
log "prositionX= " & prositionX & " prositionY = " & prositionY
set actualX to prositionX + 154
set actualY to prositionY + 233
-- Widen folder & disk list in open panel.
-- move to start of drag.
try
-- for debug drag point is currently -x 198 -y 288
set see to theClickLoc & "click -x " & actualX & " -y " & actualY
log "see= " & see
set results to do shell script see
on error theError
display dialog "click error found. results for " & theError
end try
-- Drag
try
-- -x 266 -y 288
-- drag is 68 pixels to the right
set see to theClickLoc & "clickdrag -x " & actualX + 68 & " -y " & actualY
log "see= " & see
set results to do shell script see
on error theError
display dialog "clickdrag error results for " & theError
end try
say "good news, Drag complete."
end run
Robert