Advanced Stuff

International Support

IMCom now handles international characters from what I've been told. Simply open your ~/.imcom/imcomrc file and add encoding tags to your profile. Example: <encoding>iso-8859-1</encoding>. Set it to the appropriate encoding for your locale and it should, in theory, be all happy.

How to change you color settings

IMCom allows for customization of colors by editing your configuration file. There are two distinct places you can specify colors. If you place a <color> block outside of a <profile> block then the colors specified in that block are teh defaults for all profiles. A <color> block inside a profile will override the default colors.

The following are the list of available colors

  • black
  • white
  • darkgray
  • lightgray
  • red
  • brightred
  • green
  • brightgreen
  • blue
  • brightblue
  • purple
  • magenta
  • brown
  • yellow
  • cyan
  • brightcyan
  • clear (Can only be used as a background color)

The follow is a list of element types that can be colors

  • background Used as the background color. If you want to use a white background set your terminal's background color to white and use the "clear" color as your background.
  • default Used as the default color for all text.
  • user Used as the color for displaying nicknames and jids.
  • status Used as the color for displaying the status.
  • desc Used as the color for various descriptions such as status-message.
  • time Used as the color for all timestamps.
  • sep Used as the color for separators.
  • key Used as the color for dictionary keys and resources.
  • messagebody Used as the color for the text in messages received.
  • error Used as the color for all error message.

Here is an example color block, which may be placed either at the top level or inside a profile.

<color>
  <background>black</background>
  <default>white</default>
  <user>brightgreen</user>
  <status>yellow</status>
  <messagebody>yellow</messagebody>
  <time>brightcyan</time>
  <desc>purple</desc>
  <sep>brightblue</sep>
  <key>brightcyan</key>
  <error>brightred</error>
</color>
              

Here is another example color block that uses Black text on white background. It assumes you have your terminal configured for Black text on a White background.

<color>
  <background>clear</background>
  <default>black</default>
  <user>blue</user>
  <status>magenta</status>
  <messagebody>brown</messagebody>
  <time>blue</time>
  <desc>purple</desc>
  <sep>brightblue</sep>
  <key>cyan</key>
  <error>red</error>
</color>
              

What do you mean group support?

Each user can belong to zero or more groups. To show the groups a particular person belongs to use the membership command.
Example:

      IMCom> /membership airog

This would return the list of groups the user airog belongs to.

To see which users belong to a particular group use the show command.
Example:

       IMCom> /show lurker

This would return a list which looks very similar to the roster list except that it only shows users which are members of the group lurker.

To see a list of the groups that you have just use the show command with no arguments.
Example:

      IMCom> /show

This would return the list of groups currently in existance.

Note that you never actually have to create a group. Simply adding a user to a non-existing group will create that group.

There are currently two special groups: lurker and ignore.


The lurker group is used for people who you want to have Nick<->JID matching on, but don't want to see status updates for or even on your roster at all. For instance, I use the lurker group for people who I have on my list twice, once with their icq user and once with their jabber user. I add their icq user to my lurker group so I never see it unless I really want to. I also use it for people who I very rarely talk to. People who are a member of the lurker group will only ever show up if you use the show command to show the members of group lurker. If a user (bob) belongs to both lurker group and school group, and you use the show command to list the members of the school group bob will not appear in that list because he is a lurker. The only list a lurker will show up in is the lurker list.


The ignore group is used for people who you never want to see anything from.

Summary:


  • To add a user to a group use the addgroup command. It will create the group if necessary.
  • To remove a user from a group use the delgroup command. It will remove the group if no users exist in the group anymore.
  • To set a user belonging to just one group use the setgroup command. It will create the group if necessary.

$0 through $9

The person who most recently evented you is stored in $0 through $9. Events include messages, auth requests, file requests, basically everything EXCEPT status changes.


This is an advanced feature and not yet well tested at of version 0.62. It is useful when random3409783408@jabber.org messages you because you can then just

      IMCom> /info $0

To get info on random3409783408@jabber.org.

Aliases

This is another advanced feature that was requested. Basically aliases are textual-substitution commands. That is, you can shorten one command line to a single command. For instance, say you are running on a unix system and want to bind the command /cls to clear the screen. You could

      IMCom> /alias /clear ! clear

Which would create the alias /clear, which would literally run ! clear


Let say I message user bob often. I could

      IMCom> /alias /bob /msg bob

which would allow me to

      IMCom> /bob hi!

Sending the message "hi!" to bob.


Summary:


  • To get a list of aliases use just /alias
  • To remove an alias use /unalias [alias-name]
    eg: /unalias /bob
  • To save aliases to your preferences issue a saveprefs command, which defaults to /saveprefs

Modules

This is another advanced feature that was requested. Modules are a generic way of adding new user interface features to IMCom. A module can register for events and add commands to IMCom. In the modules directory there are a few example modules. If you are interested in extended the user interface of imcom to do new things, take a look at the examplemodule. I'm willing to help those who want to write modules figure it out, just IM me or email me.

There are currently two working modules that ship with IMCom: awaylogmodule and conferencecolorsmodule.

awaylogmodule

This module will record messages received while you are away and provide a command for you to play back the messages.

Load the module by typing /loadmod awaylogmodule. There is no configuration necessary. The command to display the queue of messages received is: /awaylog

If you want this module automatically loaded at IMCom startup /saveprefs after loading it during a session.

conferencecolorsmodule

This module changes the colors of conference messages so that it is easy to distinguish between conference messages and normal messages.

Load the module by typeing /loadmod conferencecolorsmodule. You can configure the colors it uses by typing /configmod conferencecolorsmodule. This will bring you through an interactive configuration of the module.

If you want this module automatically loaded at IMCom startup /saveprefs after loading it during a session.

Tips and Tricks

There are a few random little tricks in IMCom that don't seem to have a home in the documentation. This is the spot for them.