An overview of features, instructions, and screen shots are available at common-lisp.net/project/beirc. [2021-03-21: Some links on that page need fixing.]
Beirc requires the newest CVS version of cl-irc and McCLIM, as well as Max-Gerd Retzlaff's tab-layout-pane. Note also that beirc currently requires a lisp that supports multiple processes. The developers are using multithreaded SBCL on x86/linux and OpenMCL on ppc/darwin. CMUCL on x86 could work, as well. (More details are available in the table below. If you get beirc running on a system not noted there, please add it.)
These can be set in the
.beirc.lisp file in your home directory (although this too can be changed in
- Set to url (as a string) of your local copy of the Hyperspec and specbot's clhs query answers will be rewritten appropriately.
- The maximum width in characters of the message column (as distinct from the name column and the timestamp column). Defaults to 80.
- The position of the timestamp column on the screen. Either :right (the default) or :left.
- Your nick, as a string.
- The command (as a string) to run your web browser. Should work out-of-the-box.
- An alist mapping an irc server name (as a string) to a list of channels (each a string) to automatically join on connecting.
- An alist mapping an irc server name (as a string) to the password (as a string) to send to the NickServ authentication bot.
- A string naming a program (or a program and command-line arguments) that will read sound files from standard input and play them. Used for rudimentary sound support.
- A filename (string) that specifies a file to be played (by *default-sound-player*), when your nick is mentioned. Could be NIL instead.
- /Connect server nick
- Identify yourself to the NickServ service.
- /Join channel
- /Focus nick
- Display messages from nick in bold.
- /Unfocus nick
- Stop displaying messages from nick in bold.
- /Ignore nick
- Don't display any messages from nick, past or future.
- /Unignore nick
- Display messages from nick again.
- /Nick string
- Change nick to string.
- /Me stuff
- Do stuff.
- /Msg nick message
- Send message to nick.
- Reload the user init file.
- /Part message
- Leave the channel with message.
- /Close window[,window2...]
- Close the list of windows. If any of these windows refers to a channel, leave each channel.
- /Whois nick
- Perform a WHOIS query on nick.
- /Topic [:Topic new topic]
- If executed without keyword arguments, shows the current channel topic. If passed the :Topic keyword argument, sets the current channel topic to new topic.
- /Op nick
- Give channel operator status to nick.
- /Deop nick
- Remove channel operator status from nick..
- /Ban Nick nick
- Set channel mode +b (ban) to nick!*@*.
- /Ban Hostmask hostmask
- Set channel mode +b (ban) to hostmask.
- /Kick nick
- Kick nick from the current channel.
- Display the list of users on the current channel.
- /Away message
- Set away status to message.
- /Quit message
- Disconnect from the server with message and terminate beirc.
- /Disconnect message
- Disconnect from the server with message.
- /Switch Timestamp Orientation
- Sets orientation of timestamps to the left column if they are in the right column and vice versa.
There's an awful lot of it. Many items are displayed as clickable CLIM presentations, including nicks, URLs, tabs for servers and channels, etc., allowing easy access to basic commands. Documentation for whatever you're about to do by clicking is provided, as in other CLIM apps, in the lowest, black pane; this gives you an idea of what, if anything, will happen when your Left, Middle or Right click occurs.
The following Hardware/OS/Lisp Implementation combinations are known to run beirc (somewhere, at least):
|Hardware Platform||OS||OS Version||Lisp Implementation|
|Intel x86||Debian GNU/Linux||3.1, kernel 2.6.13||Multithread SBCL 0.9.5|
|Intel x86||Mandriva GNU/Linux||3.1, kernel 2.6.12||Allegro CL 8.0|
|PowerPC G4||OS X||10.4.2||OpenMCL 0.14.4-pre-050807a|
- /list command, or users pane a la XChat.
- Working help.
- Some hints about keystrokes (this is really at least partly a McCLIM issue).
- A pony.
- The moon. On a stick.
- "IRC clients should show a diff on topic change."
Things that should probably be fixed, once we know what causes them.
- URL handling for URLs that appear in the chat as (<url>) does not work. AFAICT, the url is forwarded to the browser together with the opening paren, causing failure.
- Would be nice to have auto-identify, the same way we have auto-join.
- Use of help command causes error. Error: attempt to call `#:STREAM44679' which is an undefined function.
- List of commands that you get on right click should be listed alphabetically (or possibly even in nested menus, since the list is so long).
- There are many ways to cause the system to fail with completion errors. These should be trapped. Some of this is more McCLIM problems than BEIRC proper, I figure.
- The nick completion seems limited. E.g., if you do whois, and you give some prefix for a number of different nicks, and then press , you get a tab character (yuck) in the input buffer, you don't get a list of candidates that match the prefix. E.g., if you type "foo," I would expect to see some indication that "foo_work" "foo_home" and "foo_" would all be legitimate completions (I'm not sure how to deal with this case if "foo" is there, too.
- The box-adjuster-gadget does not work for me (rpg). It comes active, but is unable to adjust the size of the windows. Seems not to happen for others (antifuchs) with different setups (possibly more up-to-date CLX than the version included with ACL?). This seems to be a problem with the setting of min-height in the space-requirement for the tab-layout-pane. I have not yet been able to track down where this is set. fixed: There were exact pixel sizes coded in as :height and :width. By default, any window settings are copied into :min-height and :min-width. Being a little more careful about the difference between :height (resp. width) and :min-height, seems to have fixed things up.