Controlling the volume of the startup chime is easy to set in the System Preferences Sound panel, but you need to make two different settings if you have external speakers connected to your Mac. There is no need to use scripts or any other coding to make this adjustment.
There are both internal and external speaker output settings in the sound preference pane. In order to adjust (or turn off) the volume of your Mac's internal speakers, nothing must be plugged into the headphone jack. Keep in mind that this setting completely controls the volume of your internal Mac speakers, so if you mute the sound, and have no external speakers, you will get no sound at all from your Mac.
To adjust the volume on your Mac's internal speakers:
Unplug speakers or headphones from the headphone jack.
Go to System Prefs > Sound, then click on the Output tab.
You will then see Internal Speakers (Type built-in) highlighted in the window.
Adjust the output volume (which also controls the chime volume) in the slider at the bottom of the window. Remember if you mute it there will be no internal speaker sound.
To set the volume for your external speakers:
Plug in speakers or headphones to the headphone jack.
Go to System Prefs > Sound >, then click on the Output tab.
You will then see Headphones (Type built-in) highlighted in the window.
Adjust the output volume (which controls the chime volume in the external speakers) with the slider at the bottom of the window. Remember if you mute it there will be no external speaker sound.
Since I have external speakers, I chose to mute the startup sound on my internal speakers and set the chime very low on my external speakers. If you have an external volume controller for your external speakers, it should still function normally following these changes, but adjusting it will again affect your startup chime volume for those speakers.
[kirkmc adds: Depending on your setup, this can be a bit more complicated. For example, my main Mac is a Mac mini connected to a DAC via a Toslink cable, which uses the headphone jack. When you use the digital output like this, you cannot control its volume. I also have a Cinema Display, connected via Thunderbolt, and it has internal speakers; so I can set the volume in those. This shows in the Sound preference pane as Display Audio.
If you have a Mac Pro, you have a tiny - and tinny - internal speaker. If you have an iMac, you have the same type of speakers as I have in my Cinema Display. And if you have a laptop, you have one or two small speakers.]
Note: An updated version of this script (in fact two new scripts) has been posted as a new hint. These new scripts take into account many of the comments posted below. Please see the new hint to find the improved version.
Here's an AppleScript that presents a dialog box listing mounted local volumes, one or more of which can be selected for unmounting. Some solutions for doing this either require the use of additional system resources or are offered commercially. This AppleScript is free, of course. I’ve only tested it in Lion so far. I recommend that you set up a keyboard shortcut that launches the AppleScript either as part of a Mac OS X Automator Service, or from the Script menu, which (in Lion) can be configured using the Keyboard preferences.
set alldisks to paragraphs of (do shell script "df -hlg | awk -F/ '/disk*/ {print $5}'")
try
set item 1 of alldisks to ((characters 1 thru -2 of (path to startup disk as string)) as text)
on error
set alldisks to {((characters 1 thru -2 of (path to startup disk as string)) as text)}
end try
set dur to {}
repeat with m in alldisks
considering case
if m is not in {"MobileBackups"} then
set dur to dur & m
end if
end considering
end repeat
set devnames to paragraphs of (do shell script "df -k | awk -F/ '/disk*/ {print $3}'")
set t to {}
repeat with s in devnames
set t to t & (word 1 of s)
end repeat
set the keylist to dur
set the foundDisks to t
set answer_list to {}
repeat with the_answer in keylist
set theIndex to my CollectUniqueItemIndex(keylist, (the_answer as string))
set theValue to item theIndex of foundDisks
activate
--set answer_list to answer_list & return & ((the_answer & ":" & space & theValue) as string)
--set answer_list to answer_list & ((the_answer & ":" & space & theValue) as string)
set answer_list to answer_list & (the_answer as string)
end repeat
set your_selected_device_id to choose from list answer_list with prompt "Please choose one or more volumes to be unmounted." with multiple selections allowed
repeat with b in your_selected_device_id
set theIndex to my CollectUniqueItemIndex(answer_list, (b as string))
set theValue to item theIndex of foundDisks
--display dialog "The device name of a volume you selected is:" & space & "\"" & theValue & "\"." & space & "Are you sure you want to unmount it?"
try
do shell script "diskutil unmount /dev/" & theValue
on error the error_message number the error_number
display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1
end try
end repeat
on CollectUniqueItemIndex(theList, theItem) -- the Item can be string, number, constant, app object or list
local aListMember
repeat with i from 1 to (count theList)
set aListMember to item i of theList
if aListMember = theItem then
set theIndex to i
exit repeat
end if
end repeat
return theIndex
end CollectUniqueItemIndex
[kirkmc adds: This is a very nice script, works as advertised.]
You know how when you want to change a file extension in the Finder, you get a warning asking if you're sure you want to change the extension? In most cases, if you are changing the extension, you are doing so because you want to, and you know the consequences.
You can disable this warning. Run the following command in Terminal:
If you have poor vision, and multiple accounts display in a Login window, you can turn on zoom, and zoom in and out as needed to see the different user names and icons. (This assumes that zoom is not already turned on.) This uses the standard keyboard shortcuts that display in the Universal Access preference pane.
To turn on zoom, press Command-Option-8.
To zoom in, press Command-Option- = (equals).
To zoom out, press Command-Option- - (minus).
You may need to move the window around to see the different login icons. You can do this by moving the cursor to the edge of the screen.
[kirkmc adds: there have been plenty of hint about using the zoom feature, but it's worth noting that it can be activated and used even when the Login window is visible.]
Sometimes, people contact me because software of mine, such as Find Any File, crashes mysteriously at launch. Often it turns out that this is caused by an incompatibility or bug in some other software that tries to enhance general Mac OS X functionality. The difficulty is to figure out which software is the culprit, in order to disable it and/or notify its maker and ask to get this resolved.
Sometimes, one can get a hint by looking at the detailed Crash Report one can find when opening the Console app. It will contain a long list of 'Binary Images,' listing which software components are loaded along with the app that crashes.
Many of those components are so-called Frameworks and 'libs' provided by Apple as part of OS X; but they're usually not the culprit. Then, there are other parts, installed by other apps or even installed explicitly by you for a particular purpose.
However, analysing these reports is difficult and may not lead to success, either. Instead, I'll try to give you some pointers that are often helping and do not require to understand the Crash Report contents.
In any case, the hard part is always that the crash happens only on someone else's computer and I can't reproduce it to find out what's going wrong. On Mac OS before X, there was the great Conflict Catcher software sorting such problems out, but there's no such thing for OS X.
Hence, I'm trying to give a little guidance to users who experience such crashes in the hopes it'll make their system more stable.
I've posted the article on my web site, where I might be improving it over time, based on feedback I hope to receive.
[crarko adds: The author suggested, and I considered, posting the text of the article here. But the page he's put up is heavily and well-illustrated, and is also evolving based on feedback. I don't think I can do any better than to refer you all to the original article.]
I noticed a few days ago that I was no longer able to resize my Finder's sidebar. When the mouse's cursor was over the border it didn't change to the resizing one and I couldn't modify the sidebar's width either.
I found the solution in a corrupt Finder preferences file. The 'ShowSidebar' option was turned off even when I was able to see the sidebar. Changing that value to 'YES' and killing the Finder solved my problem:
Anyway, some part of the problem is still present since the preferences file and Finder's behavior are not related yet; if I change the setting back to 'NO' the sidebar is still shown but becomes sticky again. It appeared once I was changing a lot the visibility of sidebar, path bar and status bar to see different configurations.
I'm running 10.7.3.
[crarko adds: I can't reproduce this. It sounds like the Finder prefs are just messed up, and perhaps deleting the prefs file and starting fresh may do the trick. Has anybody else observed this issue?]
Here's a way to use AppleScript and the 'say' command to have the computer sing happy birthday to you. Enjoy!
set currentUser to long user name of (get system info)
set firstName to first word of currentUser
set lastName to last word of currentUser
set noteValues to {56, 56, 58, 56, 61, 60, 50, 56, 56, 58, 56, 63, 61, 50, 56, 56, 68, 65, 61, 60, 58, 50, 66, 66, 65, 61, 63, 61} -- F
-- set noteValues to {65, 65, 67, 65, 70, 69, 60, 65, 65, 67, 65, 72, 70, 60, 65, 65, 77, 74, 70, 69, 67, 60, 75, 75, 74, 70, 72, 70} -- D
-- set noteValues to {55, 55, 57, 55, 60, 59, 50, 55, 55, 57, 55, 62, 60, 50, 55, 55, 67, 64, 60, 59, 57, 50, 65, 65, 64, 60, 62, 60} -- E
set syllables to {"hap", "p", "birth", "day", "to", "you", "[[slnc 500]]", "hap", "p", "birth", "day", "to", "you", "[[slnc 500]]", "hap", "p", "birth", "day", "dear", firstName, lastName, "[[slnc 500]]", "hap", "p", "birth", "day", "to", "you"}
repeat with i from 1 to the length of noteValues
set thisValue to item i of noteValues
set thisSyllable to item i of syllables
if length of thisSyllable is less than 3 then
set speakingRate to 220
else
set speakingRate to 100
end if
say thisSyllable pitch thisValue using "Cellos" speaking rate speakingRate modulation 0
end repeat
[crarko adds: Works as described. From the mind of Sal Soghoian. For extra credit tie it to an iCal reminder of a person's birthday, and see if you can put that person's name into the firstname and lastname variables and have it autoplay. A similar hint was also submitted by user 'Nyhthawk,' and I want to acknowledge that as well. Thanks!]
I have Mac OS X check for updates daily and automatically download any updates. However, only when I log in as an administrator do I get a dialog box informing of the existence of updates.
I wrote a short AppleScript to take care of the issue. Note that the script does not check for updates itself but relies on OS X's checking it in the background so it requires that the options to check for updates periodically and download updates automatically be checked in the Software Update preference pane.
Create the following script in the AppleScript Editor and save it as an application:
-- A script alerting non-administrator users about available downloaded
-- software updates
set updates_no to do shell script "defaults read /Library/Preferences/com.apple.SoftwareUpdate LastUpdatesAvailable"
if (updates_no > 0) then
try
set dialogResult to display dialog updates_no & " software update(s) are avalaible. Launch Software Update?"
if button returned of dialogResult = "OK" then
ignoring application responses
tell application "Software Update" to activate
end ignoring
end if
on error number -128
-- The user canceled so do nothing
end try
end if
Please, do not include any new line in the do shell command, otherwise, the script will fail. Add the script application to your standard account's Login Items.
From now on, whenever you login into that account *after* the automatic check downloaded new updates, a dialog bode informing you of the updates and suggesting to run Software Update for you is displayed. Of course, an administrator password is still required by Software Update.
This Script has been tested on Mac OS X 10.7.2 and detected the downloaded iTunes 10.5.3 update.
[crarko adds: I didn't have any updates available to try this with.]
Ever since I found that Snow Leopard switched its file size calculations reported in the Finder from Base 2 to Base 10, I've been eagerly searching the Internet, trying to find a way to keep (or switch) between Base 10 and Base 2.
It's a command line program that works on OS X 10.6 (Snow Leopard) and 10.7 (Lion). From various posts I've read about the software, you may need to periodically download a newer version that will work in the event a Software Update breaks the functionality. However, the author appears to actively support it. The software is free and open source, but the author also accepts donations.
After downloading and unzipping the file you'll have a folder with the executable, and the source code and license. To run the program in Terminal, cd to that folder and type:
sudo ./switchDiskSizeBase
Enter your administrator password. You'll need to reboot to see the change. To switch back, just run the program a second time.
Here's a link to the discussion forum I found this hint from. I add the hint here because I have literally searched two years for a solution like this, but was only able to find this solution today. I'm sure more people will find the hint here on Mac OS X Hints than haphazardly finding the solution in an obscure forum like I did.
[crarko adds: I tested this on 10.7.2, and it works as described. I've mirrored the software download here.]