How to compile Textual (open source IRC client) on Mac OS X

Textual is a heavily modified fork of LimeChat and looks and feels more native and light-weight than most other IRC clients for Mac OS X. Further, it doesn’t seem to have problems with window refreshing as observed with XChat Aqua/Azure (App Store link) and XChat for X11 (installed/compiled using ‘brew install xchat’).

Though Textual is also available in the App Store for 4.99 USD, I wanted to compile it from sources myself.

Here’s how to build Textual from sources (tested on Mac OS X Mountain Lion):

  1. Download and install Xcode 4 from the App Store.
  2. Download/checkout the latest Textual sources from https://github.com/Codeux/Textual
  3. Open the file Main Project (Textual).xcodeproj in Xcode.
  4. In Xcode’s Preferences -> Downloads -> Components, install the Command Line Tools.
  5. In the opened project in Xcode, disable code signing:
    For the target Textual, navigate to the tab Build Settings. In the “Code Signing” section, set “Don’t Code Sign” for “Debug” and “Release”.
  6. On the top left of the Xcode IDE window, select the scheme Textual (Standard Release) -> My Mac 64-bit
  7. Click on the “Run” button to start building the project
  8. The “Textual” app will be built in the subfolder “./Build Results/Release/” of your Textual source directory

Reclaiming a zombie nick/session in IRC

Sometimes, it happens that one’s IRC session isn’t terminated properly (i.e. when the IRC client crashes). When logging in again, you may not be able to login with your real nickname (‘mynick’) and have to temporarily use another nickname (let’s say ‘fallbacknick’). The easiest solution to this problem is declaring the zombie session as a ghost with the help of nickserv. You can do this with an IRC nickserv command similar to this one:

/msg NickServ GHOST mynick mypassword

Afterwards, you can reclaim your original nickname again:

/nick mynick

The complete help page about this nickserv command:

***** NickServ Help *****
Help for GHOST:

GHOST disconnects an old user session, or somebody
attempting to use your nickname without authorization.

If you are logged in to the nick’s account, you need
not specify a password, otherwise you have to.

Syntax: GHOST <nick> [password]

Example:
/msg NickServ GHOST foo bar
***** End of Help *****