Pick of the Week - Nov 10 [Show all picks]
Path Finder 5 - A feature-laden Finder replacement
Submit Hint Search The Forums LinksStatsPollsFAQHeadlinesRSS
12,000 hints and counting!

10.5: Sync Sunbird calendars using iSync Apps
Tiger only hintThis hint is for Tiger only -- you'll have to modify it on Leopard or Snow Leopard, because of changes to iCal's folder structure.

I've recently switched to Mozilla Sunbird because it looks a lot nicer and runs faster than iCal, although it can't directly use iSync, so I can't synchronize the calendars on my laptop with my phone. By looking around in iCal's folder, I found out that you can copy a calendar file (.ics) from Sunbird into iCal and use that to synchronize with iSync. You can then load that synchronized calendar back into Sunbird.

There's a lot of mucking about, but it's well worth it :).
read more (322 words)   Post a comment  •  Comments (4)  
  • Currently 0.00 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (0 votes cast)
 
[837 views] Email Article To a Friend View Printable Version
10.6: Work around an iWeb and Pages crash issue in 10.6.2 Apps
Snow Leopard only hintRecently, I was asked to set up a web site for a church; since I didn't want to spend days doing it, I decided to try iWeb.

Things worked well until I updated to 10.6.2. Suddenly, iWeb was crashing on startup, without fail. Fortunately, someone on the Apple forums figured out a work-around.

If you've been getting crashes with iWeb or Pages that blame the SFWordProcessing Plug In, try using Font Book to disable the font named Hoefler. Even though Font Book insists the font is valid, it appears to be triggering the crash.

Once the font is disabled, you will be able to launch iWeb (and Pages) again without crashing -- although all occurrences of the Hoefler font will be rendered incorrectly.

See this discussion (and many others) for more details.
  Post a comment  •  Comments (6)  
  • Currently 2.75 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (4 votes cast)
 
[895 views] Email Article To a Friend View Printable Version
Move BBedit 9's Documents drawer to the left side Apps
I've been trying to move over from Smultron to BBEdit for most of my text editing needs, as Smultron isn't officially supported any longer. One thing that I found very annoying in BBEdit 9 is that the Documents drawer appears on the right, with no apparent way to move it to the right (in older versions, I believe there was a preference to change the side).

In the "read more" portion of this hint, you can read my original solution to this problem, left in place for posterity's sake. However, commenter bhas points out a much simpler solution in the comments to this hint: just Command-click on the Drawer icon, and the drawer will flip from one side of the window to the other, and stay on that side for subsequent launches.

This also works in TextWrangler.
read more (148 words)   Post a comment  •  Comments (9)  
  • Currently 4.00 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (1 vote cast)
 
[803 views] Email Article To a Friend View Printable Version
Open Bento's database backup without using Bento Apps
Do you want to open a Bento database backup when you're at a friend's house, and he doesn't have Bento? It's actually really simple:
  1. Control-click on your Bento database backup file (.bentodb) and select Show Package Contents from the pop-up menu.
  2. Navigate to the Contents » Resources folder.
  3. Copy the file named Database to another location.
  4. Launch a SQLite application, such as SQLite Database Browser.
  5. Open the copy of the Database file you just created.
Enjoy your database!
  Post a comment  •  Comments (3)  
  • Currently 2.33 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (3 votes cast)
 
[1,039 views] Email Article To a Friend View Printable Version
10.6: Navigate Snow Leopard Stacks with gestures Apps
Navigable stacks in Snow Leopard are a very nice feature, but the lack of gesture recognition is frustrating. Using the free BetterTouchTool, though, navigable stacks are a reality. BetterTouchTool is forked from the ">MultiClutch source. BetterTouchTool is essentially the same as MultiClutch, but it runs without a reliance on InputManagers. As a result, it works great in Snow Leopard, on 64- and 32-bit apps, and on Carbon apps (read: iTunes).

For Global Gestures, I have set the bindings:
  • Command-Up = Swipe Left
  • Command-Down = Swipe Right
In Finder, these navigate folder hierarchies more naturally. They allow me to move up and down folder hierarchies without relying on a history. This breaks the native behavior of forward-back navigation history, but for me, this method makes more sense.

Old Behavior: Back and Forward in History
New Behavior: Parent and Child Directory

The fringe benefit is that this also works in Snow Leopard's navigable stacks, as I feel it should have from the beginning. Click into a folder, a new stack window appears, and swipe left takes you to the parent folder.
  Post a comment  •  Comments (1)  
  • Currently 4.33 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (12 votes cast)
 
[1,676 views] Email Article To a Friend View Printable Version
Adjust browser width on a per-Spaces basis Apps
Do you need to change the width of your Safari or Firefox window, but only on the desktop of the currently active Space? Try using this AppleScript. Placed in the excellent program Butler, you can even use a key combination to toggle the width.

Here's the script:
(* Thanks to:
 JNSoftware LLC, founded by Jonathan Nathan. See http://macscripter.net/viewtopic.php?id=23453
and
 Tip  "10.5: Find current Space number via AppleScript " of macosxhints See: http://www.macosxhints.com/article.php?story=20080227075244778 *)

set safariNr to get_space_binding_for_application("com.apple.safari") -- on wich space is safari?
set firefoxNr to get_space_binding_for_application("org.mozilla.firefox") -- on wich space is firefox?
set currentSpaceNr to get_my_space_number() -- on wich space are we?

tell application "Finder"
  copy name of processes to MyProcesses -- wich browesr(s) is/are active?
end tell

-- change window-width of browser if active & on current space 

if (("firefox-bin" is in MyProcesses) is true) and ((firefoxNr = currentSpaceNr) is true or (firefoxNr = 65544) is true) then
  say "Firefox"
  --tell application "Firefox" to activate
  tell application "System Events" to tell process "firefox-bin"
    activate
    if size of window 1 = {596, 1111} then
      set size of window 1 to {796, 1111}
    else if size of window 1 = {796, 1111} then
      set size of window 1 to {996, 1111}
    else if size of window 1 = {996, 1111} then
      set size of window 1 to {1296, 1111}
    else if size of window 1 = {1296, 1111} then
      set size of window 1 to {1543, 1111}
    else if size of window 1 = {1543, 1111} then
      set size of window 1 to {596, 1111}
    else
      set size of window 1 to {996, 1111}
    end if
    set position of window 1 to {4, 27}
  end tell
end if

if (("safari" is in MyProcesses) is true) and ((safariNr = currentSpaceNr) is true or (safariNr = 65544) is true) then
  say "Safari"
  tell application "Safari"
    activate
    if bounds of window 1 = {4, 27, 600, 1138} then -- klein
      set bounds of window 1 to {4, 27, 800, 1138} -- middel
    else if bounds of window 1 = {4, 27, 800, 1138} then -- middel
      set bounds of window 1 to {4, 27, 1000, 1138} -- normaal
    else if bounds of window 1 = {4, 27, 1000, 1138} then --normaal
      set the bounds of window 1 to {4, 27, 1300, 1138} -- groot
    else if bounds of window 1 = {4, 27, 1300, 1138} then -- groot
      set the bounds of window 1 to {4, 27, 1547, 1138} -- max
    else if bounds of window 1 = {4, 27, 1547, 1138} then -- max
      set bounds of window 1 to {4, 27, 600, 1138} -- klein  
    else
      set bounds of window 1 to {4, 27, 1000, 1138} --normaal
    end if
  end tell
end if

tell application "Play Sound.app" to («event µSNDplay» alias "Hry HD:System:Library:Sounds:Sosumi.aiff") -- you need application "Play Sound"

-- handlers

on get_space_binding_for_application(application_bundle_id)
  set application_bundle_id to my make_lowercase(application_bundle_id)
  set app_bindings to my get_spaces_application_bindings()
  try
    get app_bindings as string
  on error error_string
    set app_bindings to my string_to_list(text 13 thru -20 of error_string, ", ")
  end try
  repeat with i from 1 to (count app_bindings)
    if item i of app_bindings starts with ("|" & application_bundle_id & "|:") then return (item 2 of (my string_to_list(item i of app_bindings, ":"))) as number
  end repeat
  return 0
end get_space_binding_for_application

on get_spaces_application_bindings()
  tell application "System Events" to tell spaces preferences of expose preferences to return (get application bindings)
end get_spaces_application_bindings

on get_my_space_number()
  set xxVar to 0
  tell application "System Events"
    tell process "SystemUIServer"
      set xVar to value of attribute "AXChildren" of menu bar 1
      set cVar to count of xVar
      repeat with iVar from 1 to cVar
        set zVar to value of attribute "AXDescription" of item iVar of xVar
        try
          if zVar = "spaces-menu-extra" then
            set xxVar to iVar
            exit repeat
          end if
        end try
      end repeat
    end tell
  end tell
  if xxVar = 0 then
    display dialog "Spaces Menu Extra not installed"
  else
    tell application "System Events"
      tell process "SystemUIServer"
        set theCurrentSpace to value of menu bar item xxVar of menu bar 1
      end tell
    end tell
    return theCurrentSpace as number
  end if
end get_my_space_number

on string_to_list(s, d)
  tell (a reference to my text item delimiters)
    set {o, contents} to {contents, d}
    set {s, contents} to {s's text items, o}
  end tell
  return s
end string_to_list

on make_lowercase(the_string)
  return do shell script "echo " & quoted form of the_string & " | /usr/bin/perl -pe 'use encoding utf8; s/(\\w)/\\L$1/gi'"
end make_lowercase

"SafariSpace " & safariNr & ", FirefoxSpace " & firefoxNr & ", currentSpace " & currentSpaceNr
[robg adds: This script includes a reference to the Play Sound app; you'll either need that, or you'll want to remove the line that references it. I haven't tested this one.]
  Post a comment  •  Comments (1)  
  • Currently 3.25 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (4 votes cast)
 
[1,014 views] Email Article To a Friend View Printable Version
Embed formatted, syntax-highlighted source code in Keynote Apps
If you have ever given a presentation on any aspect of programming (or webdesign), you may have felt the need to embed some source code (formatted and syntax highlighted to be easily readable) in Keynote. Your options have traditionally been limited:
  • You can take a screenshot of the code in a programmer's editor and embed this in Keynote, but you lose any ability to edit the code or change its appearance once inserted.
  • You can use a web-based syntax highlighter such as GeSHi, and embed the generated page in Keynote as a Web View, but this is similarly inflexible. Also, Web Views have been removed from Keynote '09.
A much better approach would be to have the source code text (suitably formatted and highlighted) inserted natively in your presentation. Since you can drag Rich Text Format (RTF) text to Keynote, all you need is a way to convert your code to RTF.

read more (354 words)   Post a comment  •  Comments (5)  
  • Currently 2.40 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (5 votes cast)
 
[2,298 views] Email Article To a Friend View Printable Version
Time Machine: Setup on and restore from a NAS device Apps
This hint explained how to set up a network attached storage (NAS) device as a Time Machine backup. To make this process easier, I've created an AppleScript that makes the creation and setup a one-step process -- just drag and drop your mounted NAS onto the following AppleScript to ready the drive for Time Machine use.
on open names
  set volumeName to names as text
  set macAddress to (do shell script "ifconfig en0 | grep ether | tr -d '\\011' | sed s/ether// | sed 's/ //g' | sed s/://g")
  set hostName to (do shell script "hostname -fs")
  tell application "Finder"
    set theSize to round (((capacity of startup disk) / 1024 / 1024) / 1024)
  end tell
  
  do shell script "defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1" with administrator privileges
  
  do shell script "sudo hdiutil create -size " & theSize & " -type SPARSEBUNDLE -nospotlight -volname \"Backup of " & hostName & "\" -fs \"Journaled HFS+\" ~/" & hostName & "_" & macAddress & ".sparsebundle" with administrator privileges
  do shell script "mv ~/" & hostName & "_" & macAddress & ".sparsebundle /Volumes/" & volumeName & "/" with administrator privileges
  
  tell application "Finder" to eject volumeName
  
  tell application "System Preferences"
    activate
  end tell
  
  tell application "System Events"
    tell application process "System Preferences"
      set frontmost to true
      click menu item "Time Machine" of menu "View" of menu bar 1
    end tell
  end tell
  
end open
(You can also download the script (and an application bundle version of it) from this entry on my site.)

After using the script on the drive, open the Time Machine System Preferences panel. Now you should be able to use your network volume as a target disk for Time Machine backups. Read on to find out how to then restore from this disk, assuming you've had a complete hard drive failure and you're starting from scratch with the OS X installation disc...

read more (308 words)   Post a comment  •  Comments (11)  
  • Currently 4.50 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (6 votes cast)
 
[3,327 views] Email Article To a Friend View Printable Version
Mark email message as replied-to in Mail Apps
Apple Mail doesn't provide a built-in mechanism for marking emails as replied (or clearing said mark). I solved this weakness with a simple AppleScript that operates on whatever messages are currently selected. Simply create the following script using the Script Editor, and save it to Library » Scripts » Applications » Mail in your home directory, or in /Library » Scripts » Mail Scripts for use by all users.

This script marks the selected messages as replied to:
using terms from application "Mail"
  tell application "Mail"
    set selectedMessages to selection

    repeat with eachMessage in selectedMessages
      -- set was replied to of eachMessage to false
      set was replied to of eachMessage to true
    end repeat

  end tell
end using terms from
For marking as unreplied, I used the brain-dead solution of simply creating a second script which is identical with the exception of substituting the value false into the set was replied to line, as demonstrated by the commented line which starts with --. Save the two versions of the script to one of the above folders.

Now you should see whatever name you chose for your scripts available from the AppleScript menu. (Assuming you have the AppleScript menu enabled.)

[robg adds: Mail should automatically track reply status for messages, and if you're using IMAP, that information should appear on all your Macs. However, I have seen Mail get confused in the past and lose the reply status on certain messages. The above script provides a simple fix for those times.]
  Post a comment  •  Comments (5)  
  • Currently 5.00 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (1 vote cast)
 
[1,697 views] Email Article To a Friend View Printable Version
Start a new Mail message from anywhere Apps
My workflow is very email-centric and I've often wished I could start a new email in Mail by pressing a keyboard combo in any program. I use QuickSilver, and the regular way of searching for a contact's email address and then creating a new mail that way seems awkward to me compared to the email address completion Mail.app offers.

After many tries, I finally found out how to get Mail.app to open a new message window using AppleScript:
tell application "Mail"
  set t to make new outgoing message
  set visible of t to true
  activate
end tell
Save this as an AppleScript using AppleScript Editor, and then tie a keyboard shortcut to that script using your favorite keyboard shortcut creation tool. Tested with 10.6.1.

[robg adds: This also works in 10.5, and probably many releases before that. Spark is one of many program you can use to create the keyboard shortcut. In 10.6, you could also create this as a Service using Automator, and assign a keyboard shortcut in the Keyboard Shortcut's System Preferences panel.]
  Post a comment  •  Comments (13)  
  • Currently 3.80 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (5 votes cast)
 
[2,518 views] Email Article To a Friend View Printable Version