Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

Put a digital clock in a corner of the screen with GeekTool Apps
Since Lion, I love using my always-open apps (Chrome and iTunes) in full-screen mode, but I want to know what time is it without using the mouse or keyboard. I figured out a way to do it using a widget with GeekTool.

Making the widget
Open the application and drag a new Shell element onto the desktop. Edit it in the Properties window in this way:
In the Command section, insert date + followed without spaces by one of these commands:
%R or %H:%M to have a 24h clock;
%l:%M to have a 12h clock (put " "%p after your text if you want to show am/pm).
After that, check Keep on Top and set 1 (or less frequent value) in the Refresh every X s text field.
Now you can customize all the other properties as you want, like font, color and background; I like to use it in Lucida Grande 14 pt (the same as the system digital clock in the menu bar).

Download the widget
If you want, you can download my Geeklet by right-clicking on this text and selecting "Save link as...". It has enabled a white shadow that makes it visible over dark pages without having to set a opaque light background.

[kirkmc adds: Back in the day, I used GeekTool a lot. I didn't know it was on the Mac App Store, so if only for that, it's worth looking at. It's come a long way since I last used it, with some really interesting possibilities and much easier configuration.]
  Post a comment  •  Comments (6)  
  • Currently 3.17 / 5
  You rated: 1 / 5 (6 votes cast)
[8,770 views]  View Printable Version
Color a message background in Mail Apps
Although it's handy to be able to flag an important e-mail message in Mail, there is a more eye-catching method. Click to select a message, then open the Colors window by pressing Command-Shift-C. Choose your preferred color, and it will be applied to the message's background in your inbox or in a folder.

[kirkmc adds: Interesting; I see this hasn't been hinted before. In Lion, you have to actually drag the color from the top section of the window - that shows the selected color in a rectangle - onto a message. In Mountain Lion, just click on a color.

This sets the color of the background of a message; if there were a way to set the color of the text of a message, that would be interesting. I use the latter in a number of Mail rules to make specific senders and accounts stand out, and you can set the background color of messages in rules as well.]
  Post a comment  •  Comments (8)  
  • Currently 3.67 / 5
  You rated: 4 / 5 (6 votes cast)
[9,033 views]  View Printable Version
Share iTunes library with remote iOS device via VPN Apps
In Mac OS X 10.7, installing the Server app, enabling the VPN service, and connecting remotely with an iOS device using VPN did not provide Bonjour discovery of any home shared iTunes libraries.

A number of Bonjour redirector apps were available but none of them worked for me. So, I could not watch the movies in my home iTunes library while away from home.

Now, in Mac OS X 10.8, everything "just works." I did a fresh install of Mac OS X 10.8, installed the Server app, setup the VPN service, added my movies (stored on a Time Capsule) to iTunes (without copying the movies to the server; no need to duplicate what's already in Time Capsule), and enabled home sharing. When I connect to the server from my iPad (using a VPN connection) the native iOS "Videos" app shows my home library and I can play my movies from anywhere. It's nice to be able to play any of my movies when I'm at school or work.

My ISP only gives me a 50 Kbps upload speed, so movies play for a while, then stop, hit play and they play for another bit, then stop again. I can see this working well with maybe as little as 100 Kbps.

[kirkmc adds: I haven't tested this. Though 100 kbps isn't enough for HD movies. It's hard to know exactly how much bandwidth is needed. When I stream to my my Apple TV, it uses over 3 MBps, but that's because it's getting as much data as it can to buffer a movie.]
  Post a comment  •  Comments (19)  
  • Currently 2.50 / 5
  You rated: 4 / 5 (6 votes cast)
[20,070 views]  View Printable Version
Force Word and other apps to use retina display for text Apps
I found this hint on Reddit. This might interest anyone using a Retina MacBook Pro.

What you need to do is add a key to Word's Info.plist file. After you've made a backup of Word, right-click on its icon and choose Show Package Contents. Open Info.plist with a text editor, and add the following to the end of the file, just before the ≪/dict> line:
Save the file. When you launch Word, OS X will attempt to run the app at Retina resolution, but since it won't find any Retina graphics only Retina fonts will be substituted.

Getting this to work is a bit tricky, and causes some glitches (at least in Word), but it's worth checking out. I think it's interesting that a plist entry in the Info.plist tells the OS whether an app supports Retina or not.

See the original post on Reddit: Force Word to use Retina Display for Text! This might also work on other programs. Click through from there to see a page with screen shots explaining the entire procedure.
  Post a comment  •  Comments (5)  
  • Currently 3.10 / 5
  You rated: 5 / 5 (20 votes cast)
[10,440 views]  View Printable Version
Use Sopcast with external video player Apps
Finally, popular P2P streaming player Sopcast is available for OS X. Some may prefer using an external video player like MplayerX or VLC instead of the embedded mplayer; here's how you can do that.

The Sopcast OS X application is basically a package of the streaming server (sp-sc-auth) and a video player (mplayer) together with a simple GUI. The mplayer part is a very basic instance without keyboard shortcuts, so some functions like setting aspect ratio are missing. One may prefer to use the full MPlayerX application or VLC as the video player. Using Terminal it's possible, the only drawback is the missing convenience of clicking on sopcast: links in browsers. The link should be copied into a terminal command:
$ /Applications/ sop:// 3908 8902 > /dev/null
sop:// is the sopcast: link from browsers, xxxxx will be a Sopcast channel number. When the stream is working (Mbits of upload and download traffic), start MPlayerX or VLC and open the URL:
Sometimes for some reason the video players can't pick up the video stream, they need to be restarted. To stop the streaming server, press Ctrl-C in Terminal.

[kirkmc adds: I didn't test this. I had never heard of Sopcast before either.]
  Post a comment  •  Comments (2)  
  • Currently 3.29 / 5
  You rated: 1 / 5 (14 votes cast)
[24,284 views]  View Printable Version
Listen to podcasts on Mac at faster or slower speed Apps
Following a discussion on Twitter a few weeks ago, Jeff Porten shared with me an AppleScript he uses to listen to podcasts on his Mac at faster or slower speed. The script lets you choose a playlist, then choose whether you want to listen at 75% or 150% of the normal speed. It then opens the podcasts in QuickTime Player and plays them.

It's a nifty script, and if you like to speed up podcasts on your Mac, as you may do on an iOS device, this makes it easier to do so. It's a bit more sophisticated than the script in this hint from 2006, as it can keep going through a playlist.
iTunes FastPodcast 1.2, by Jeff Porten

Attribution-NonCommercial 3.0 Unported (CC BY-NC 3.0)

tell application "iTunes"
	set setupNeeded to false
	--fetch prior selected playlist name and playback rate
		set targetPlaylistName to do shell script "defaults read com.jeffporten.fastpodcast SelectedPlaylist"
		set playbackRate to do shell script "defaults read com.jeffporten.fastpodcast PlaybackRate"
	on error -- probably first run of script
		set setupNeeded to true
	end try
	if setupNeeded is false then -- confirm using last settings
		set userReply to button returned of (display dialog "Play playlist \"" & targetPlaylistName & "\" at " & playbackRate & " speed?" buttons {"Cancel", "Change...", "OK"} default button "OK")
		if userReply is "Change..." then set setupNeeded to true
	end if
	if setupNeeded is true then -- set up new settings
		set listPlaylists to the name of every playlist
		set targetPlaylistName to (choose from list listPlaylists with prompt "Which playlist to play?" without multiple selections allowed and empty selection allowed) as text
		set selectedSpeed to button returned of (display dialog "Playback rate to use?" & return & return & "(½X and 2X correspond to iPod playback speeds, actually 75% and 150%)" buttons {"Custom", "½X", "2X"})
		if selectedSpeed is "2X" then
			set playbackRate to 1.5
		else if selectedSpeed is "½X" then
			set playbackRate to 0.75
			set playbackRate to text returned of (display dialog "Enter a playback speed. (1.0 is normal speed, 2.0 is true double-speed, 0.5 is true half-speed.)" default answer "1.0")
		end if
	end if
	--store settings in a non-AppleScripty way
	do shell script "defaults write com.jeffporten.fastpodcast SelectedPlaylist " & (quoted form of targetPlaylistName)
	do shell script "defaults write com.jeffporten.fastpodcast PlaybackRate " & (quoted form of (playbackRate as text))
	--actually do the playback in QuickTime Player
	set targetPlaylist to playlist targetPlaylistName
	set trackList to tracks of targetPlaylist
	repeat with i from 1 to count trackList
		set thisTrack to item i of trackList
		set podcastName to album of thisTrack
		set thisLoc to location of thisTrack
		set thisDuration to duration of thisTrack
		tell application "QuickTime Player"
			open thisLoc
			play document 1
			set rate of document 1 to playbackRate
			--if some podcasts should never be rate-altered, delete last line and use this instead
			--if (podcastName does not contain "Onion") then set rate of document 1 to 1.5
			--or for multiple podcasts, add as many of these as you like before "then set rate":
			--and (podcastName does not contain "someOtherPodcast") 
			set nextTrack to false
			set j to 0
			--if the QTP player is manually ended by dragging the slider to the end, automatically starts next podcast
			--if QTP player is closed, script errors out of existence
			--otherwise, when playback is finished, script will close the QuickTime Player document and open the next track in the playlist
			repeat until nextTrack is true
				delay 2
				if current time of document 1 ≥ duration of document 1 then set nextTrack to true
			end repeat
			close document 1
		end tell
		--mark the track as played
		set played count of thisTrack to (played count of thisTrack) + 1
		--I use this AppleScript line to set the rating of the podcast track to one star, which I delete later from a smart playlist
		--set rating of thisTrack to 20
	end repeat
end tell
  Post a comment  •  Comments (0)  
  • Currently 3.10 / 5
  You rated: 2 / 5 (21 votes cast)
[3,347 views]  View Printable Version
Hide apps on Purchases list in App Store app Apps
Up until Mountain Lion, you could hover over the Install or Download button in the App Store Purchases list and an x would appear. Clicking this x would hide the app, removing it from the purchases list.

Now, in Mountain Lion, you need to right-click or Control-click and choose Hide Purchase from the one-item contextual menu that displays.

To unhide an item, click on the Account link on the main page of the App Store, then go to iTunes in the Cloud > View Hidden Purchases.
  Post a comment  •  Comments (1)  
  • Currently 4.00 / 5
  You rated: 5 / 5 (4 votes cast)
[3,632 views]  View Printable Version
An alternative to the old Exposé "All Applications" hot corner Apps
I recently upgraded to Lion and miss Exposé's "All Windows" Hot Corner feature, which showed clearly all windows of the current Space. With Mission Control, you have to delicately hover over tiny slices of windows and keep hitting the space bar to switch between windows or, using a hot corner with "Application Windows," select among all windows of a single app from all desktops (plus windows that aren't even open)! I'm a power multi-tasker and I use desktops to differentiate between projects that all use the same apps, which means that Mission Control is virtually useless to me. Thus, I have put together an alternative that is far from Exposé's previous functionality, but a wee step closer, and for me, a huge boost in productivity.

This hint uses two third-party preference panes (Witch and Corner Click) and an AppleScript.

First, make sure that the hot corner you want to use for Witch is not set in System Preferences.

Install Witch and open it in System Preferences.
  • Enable using the checkbox at the top.
  • Under Triggers, make sure the shortcut for All applications non-minimized / Forward is set as option-tab.
  • Under Behavior, show list right away so the hot-corner response is immediate, and un-check Releasing all modifier keys activates the selected window.
  • (Optional) Under Appearance, I maximized the size sliders, selected Show mini window previews if possible", and selected Pop up a preview... after 0.1 second delay.
Install Corner Click and open it in System Preferences
  • Under Settings, check Corner Click is enabled.
  • Under Actions, select the corner you want to use. Click the + button, set the Trigger to Hover, and for the Action, select Run Applescript, and choose the following script. You'll have to paste this script into the Script Editor and save as a script file:
tell application "System Events"
	key down option
	keystroke tab
	--delay 2
		repeat while (value of seventh attribute of process "witchdaemon" is true)
			delay 0.1
		end repeat
		on error errStr number errorNumber
		key up option
		error errStr number errorNumber
		end try
	key up option
end tell
This script basically "holds down the Option key" (and taps the Tab key) and keeps the tab down until you've made your window selection.

I may be tweaking my settings as time goes by, but this to me is much better than Mission Control or the "pplication Windows hot corner simply because I can select among all windows on the current desktop quickly using a hot corner and a single click. No more delicate window slice navigation and space bar nonsense.
  Post a comment  •  Comments (10)  
  • Currently 3.20 / 5
  You rated: 1 / 5 (5 votes cast)
[8,389 views]  View Printable Version
Chronologically sort trimmed videos in iPhoto Apps
if you take movies with your iOS device (or other camera) that need to be trimmed, you may have encountered the following. If you do not trim the movie on the device, but do it later on your Mac using QuickTime, the file’s date will change to the date you trimmed it, resulting in an incorrect sort order in iPhoto.

Terminal and touch come to the rescue:

First check the original file’s date and time in the Finder by selecting it and pressing Command-I.

Then, in Terminal, use touch to change the date and time. Here’s an example:
 touch -t 201208191230 /Users/myname/Desktop/ 
This will change the file's modification date to August 19, 2012 at 12:30. Doing this before importing the trimmed video will keep an appropriate sort order in iPhoto.

Check man touch for more on using this command.

[kirkmc adds: The touch command is nothing new, and there's even a hint about using touch with iPhoto that's more than ten years old. I thought it was worth posting this, however, because of the issue with dates that are changed when editing files such as movies.

If you want a GUI alternative, you should look at A Better Finder Attributes, which I recently reviewed for Macworld.]
  Post a comment  •  Comments (3)  
  • Currently 3.20 / 5
  You rated: 3 / 5 (5 votes cast)
[2,921 views]  View Printable Version
Script to Pause and Resume Growl with a Hidden Menu Icon Apps
Growl includes a feature to pause and resume notifications, which is very useful when giving presentations or screen sharing. Unfortunately, the UI only exposes this feature via the menu icon. With this script you can hide the icon and control notifications via a launcher such as QuickSilver or Alfred.
 * Pause and resume Growl. Use in a launcher like Quicksilver or Alfred to
 * pause and resume Growl when the menu bar icon is disabled.
 * Author: Andrew Berry,
tell application "Growl"
	register as application "Growl pause/resume" all notifications {"Growl paused", "Growl resumed"} default notifications {"Growl paused", "Growl resumed"} icon of application "Growl"
	if is paused then
		notify with name "Growl resumed" title "Growl resumed" description "Growl notifications resumed" application name "Growl pause/resume"
		notify with name "Growl paused" title "Growl paused" description "Growl notifications paused" application name "Growl pause/resume"
	end if
end tell
If you wish to make any improvements to this, feel free to fork the code over at Gist.
  Post a comment  •  Comments (4)  
  • Currently 2.00 / 5
  You rated: 1 / 5 (5 votes cast)
[2,919 views]  View Printable Version