In 10.6, the behaviour of input language switcher (Command-Space) has changed. Before, it would change the language immediately upon keypress. Now it waits until you release Space, and if you don't rekesae it for some time, the system will display a HUD with a list of input languages (see this hint about that behavior).
The problem is that not only this is absolutely useless, it's also irritating. First of all, sometimes the system switches to a language you didn't want to switch to (those who have encountered this problem will understand). Second, this behavior conflicts with Photoshop's Command-Space modifier, which is used to temporarily activate the Zoom tool: when you try to select the portion of image to zoom in on, the stupid HUD appears and obstructs the image. Third, it feels sluggish and unreliable.
The solution came to my mind when I found out that old input switcher behaviour was triggered by using the Shift-Command-Space keyboard shortcut.
To use the old-style contextual menus when you click-and-hold on an application's icon in the Dock (i.e. how it worked in 10.5 and earlier), type the following two commands in Terminal (don't type the $):
defaults write com.apple.dock show-expose-menus -bool no; killall Dock
All credit for this hint goes to Jeff Johnson of Lap Cat Software, who blogged about the solution. This hint is a significant update to this one, which pointed out you can use Control-click to get the old-style contextual menus.
[robg adds: To undo this behavior, you can either change no to yes in the above command, or delete the key entirely with defaults delete com.apple.dock show-expose-menus; killall Dock.]
As someone responsible for supporting Macs, I carry around an external drive (LaCie Rugged with USB2, FW400, and FW800 connectors) that holds all my tools, as well as different versions of OS X, reaching from 10.3 (PowerPC) to 10.5. Recently, I had the time to finally add a 10.6 partition to the drive, and noticed that Snow Leopard won't install on a non-GUID drive -- the Installer simply won't let you continue.
I can't afford to loose the ability to boot PowerPC systems like 10.3 or 10.4 or even the universal 10.5, so repartitioning as GUID was not an option here. Knowing that Intel versions of OS X will boot just fine (though officially unsupported) on APM-formatted drives, I solved this in a somewhat inelegant but effective way: I installed 10.6 on another drive with the GUID partition scheme, and simply cloned it back to an empty partition on my APM drive.
So for now, at least, I can still use one drive to boot all these systems: 10.3 PowerPC, 10.4 PowerPC, 10.4 Intel, 10.5 (Universal), 10.6 (Intel only, of course). Note that this might change in the future (10.7?), but for now, it works fine.
Within the Desktop & Screen Saver System Preferences pane, pressing Command-Option-D (Show/Hide Dock shortcut) will add two new buttons to the panel: TEST and DEBUG WINDOW. Press Command-Option-D again to remove the buttons.
TEST doesn't seem to do anything, but DEBUG WINDOW displays a window that gives you debug information about the current desktop picture.
[robg adds: I'm not sure why this info might be useful; it's very low-level stuff, such as the value for configManager.operationQueue.operations. I'd guess that a bit of development code got left in the final release, and I expect it will be disappearing in a future point update.]
When I'm working anywhere in 10.6 other than in the Finder, I might suddenly need to go to some path. It kind of bothers me that I have to Command-Tab to the Finder, and then do the Shift-Command-G keystroke. Also, I might want to open some Macintosh-style path (:) instead of POSIX-style (/) path.
Now, in 10.6, I can jump to a path using a Service. Here is a basic intro:
Open Automator and choose Service from the Templates chooser.
Make sure the Service receives "no input" in the pop-up menu at the top. Drag the Run AppleScript Action (in the Utilities Library), into the work area on the right, and enter this AppleScript in the Run AppleScript box:
--Go to POSIX
on run {input, parameters}
tell application "Finder"
set myName to (name of home) -- get your user name
end tell
set myPosix to (text returned of (display dialog "Enter a POSIX Path to jump to:" default answer "/Users/" & myName & "/Desktop/"))
set myCommand to "open '" & myPosix & "'"
do shell script myCommand
end run
If you prefer to user Macintosh-style paths, you can replace the set myCommand... and do shell script... lines above with just one line: set myCommand to (open alias myPosix)
Save your Service with a relevant name (Go to Path or whatever), and quit Automator.
You can then assign your new Service a keyboard shortcut on the Keyboard Shortcuts tab of the Keyboard System Preferences panel.
[robg adds: I tested the POSIX path version of the script, and it worked as described.]
Java on MacOS X 10.6 has some problems with certain timezones. This problem only affects Java programs, but will cause any Java programs to use incorrect dates. For example, any cities/towns/villages in southern Ontario (locations using "America/Toronto") will find their Java apps reporting an offset of five minutes behind GMT.
The solution is to explicitly specify an alternative location that doesn't have problems. For those in southern Ontario, Montreal works fine. To see if you have this problem, perform the following steps:
Copy the following text to a file called tz.java in your home directory:
class tz {
public static void main(String[] args) {
java.util.TimeZone tz = java.util.TimeZone.getDefault();
System.out.println("Timezone offset from UTC reported as " +
(tz.getRawOffset() / 1000 / 60) + " minutes");
if(tz.getRawOffset() % (15 * 60 * 1000) != 0) {
System.out.println("Warning: not a multiple of quarter-hours");
}
System.out.println(new java.util.Date());
System.out.println(tz);
}
}
If you have already installed Rosetta on your Intel Mac in Snow Leopard, you may want to disable it, so as to prevent the system from running PowerPC apps without informing you that they are non-native to your system's architecture. The reason for disabling Rosetta is not so much to save space (as it's only 2.1MB), but more about keeping your system running native apps for higher performance.
To disable Rosetta, simply run the following command in Terminal:
These commands set a system environment variable that tells the system which program to run when you try to launch a non-native app: to ask you to install Rosetta, or to run it using Rosetta.
[robg adds: I tested these commands, and they work as described.]
One very nice emacs feature is its text formatting functions. Combining the Snow Leopard Automator Services with emacs' scripting capabilities, one can easily, from any application, refill a paragraph to lines of 70 characters and indent list items:
Open Automator, create a new Service.
Set it up so the Service receives selected text from any application and replaces selected text.
In Snow Leopard, *.part files can be partially viewed by Quick Look while they are still downloading. For images, you'll see the image load line by line; for movies, you can see the opening frames, etc.