Sink the Smileys

If you use iChat at all, you’re probably quite aware of smilies. You know, those little graphical faces that indicate smiles, winks, frowns, kisses, laughs, gasps, and more. There are two ways to send a smiley in iChat; you can either click the small smiley face at the lower right of the message window, or you can use keyboard shortcuts, such as :-) for a smiley face. When iChat encounters a smiley shortcut combination, it converts the text into the matching graphic prior to sending the message.

While some people find smileys cute and useful, many :-) people ;-( overuse ;-) them :-P, past :-! the point of annoyance. There’s another more subtle problem with smileys as well—some of the keyboard combos that create them are hidden (you can see most of them by mousing over the faces in the smiley-face drop down menu). When you type one of these hidden shortcuts, your text is immediately mangled into a smiley, perhaps making it impossible to say what you were trying to say. If you’re helping a friend with Excel, for instance, and want to send them this simple formula:

=(A3+B3)

Well, thanks to iChat, they won’t see the above formula. Instead, they’ll get this:


That’s because =( is one of those hidden keyboard shortcuts—so instead of sending the formula, you send a frown and part of the formula. This hidden smily, in particular, makes it very difficult to send Excel formulas, code snippets, and other technical nuggets.

There are two ways to deal with the problem of smileys—you can disable all of them, or just eliminate those that most often interfere with your messaging.

Disabling smileys in general

Regardless of whether you’re on 10.3 or 10.4, you’ll follow the same process to disable smilies. What differs is the location of the file you need to find. Before you begin, make sure that iChat isn’t running. If you’re using 10.4, control-click on the iChat application and select Show Package Contents from the pop-up menu. Navigate to Contents: Resources: English.lproj. In 10.3, navigate to /System: Library: PrivateFrameworks: InstantMessage.framework: Versions: A: Resources. In both versions of OS X, you’ll find a file there called SmileyTable.plist. To disable all smilies, simply rename this file—use something like SmileyTable.plist_disabled to make it easy to find in the future.

Restart iChat, and you’ll find that all smileys have been banished—both those you might send, and those others would send to you. Instead, you’ll see the original keystrokes, which will still convey the emotion without the graphical representation—for the most part. You may find it hard to remember that >:-o stands for angry, for instance. If that ever happens, though, just click the smiley face pop-up menu, and move the mouse over each face until you see a match for the text in the lower-right corner of the menu.

If you ever want the smileys back, you just need to remove the _disabled bit you added to the SmileyTable.plist filename, then restart iChat.

Selectively disabling some smileys

To solve the problem of hidden keyboard shortcuts sending unintended smileys while keeping smileys in general, you’ll either need the Developer Tools installed, or a third-party prefs editing program like PlistEdit Pro ($24.95 shareware, 14 day free trial).

Quit iChat, and navigate to the above-referenced SmileyTable.plist file in the Finder and make a copy of it (just in case). Now, in either Property List Editor (part of the Developer Tools) or PlistEdit Pro, open SmileyTable.plist. You’ll see a Root entry with a triangle next to it; click the triangle, then continue clicking triangles to drill down into SmileyList: 2: ASCII, and then click on ‘2’ within that section, as seen below:

Once the entry is highlighted, click the Delete button; this removes the entry for the annoying shortcut while keeping the others intact. You can repeat this process, checking each of the SmileyList objects from 0 to 15 in a similar manner. You can even, if you wish, change the shortcuts by editing the Value column for a given entry.

When done, save the file and quit the editor. When you launch iChat again, you’ll find you can now send =(A3+B3) without any unwanted smiley intervention—your buddies will get the actual text, not the smiley. The same holds true for smilies they send to you. Even though they’ll see the graphic on their screen, you’ll get the original text. This is probably the better long-term solution to managing smileys; they do, after all, have their uses, and using text-only iChat could get a bit boring after a while.

One final note: If you edit the file extensively, you may wish to keep a copy of it in a separate folder, just in case a future software update undoes all your hard work.

Shop Tech Products at Amazon