IM tips

From awesome

Jump to: navigation, search

This page shows some examples on how to configure awesome for use with certain IM clients.

Contents

[edit] Gajim

Recent versions of Gajim have a very useful feature for use with tiling window managers; it can keep the roster and chats in a single window (much like Tkabber does). To enable this feature go to: Preferences -> General -> Window behaviour and select: Single window for everything.

If for some reason you want to separate the roster from your chat windows here are some tips to get you started. First one being to dedicate a whole tag to Gajim - even though it supports tabbed windows when you open service discovery, have some file transfers, check user info etc. it can clutter your screen fast.

[edit] Tag settings

Once you dedicate a tag to Gajim you can setup a custom mwfact (master width factor) for it in the tag creation loop, to reserve a narrow space for your roster. I (User:anrxc) have a resolution of 1280x800 and find 0.13 to be a good value for the tile layout (where 'N' is the tag number):

 awful.tag.setproperty(tags[s][N], "mwfact", 0.13)

[edit] Rules

The above tag property works best if you use setslave, so that the chat and other windows don't hijack this narrow space you reserved for your roster. If you decided to dedicate a tag to Gajim you also need a rule that will automatically move all your Gajim windows to that tag. We can solve both of these usability problems in the awful.rules.rules table (where 'S' is the screen number and 'N' the tag number):

 { rule       = { class = "Gajim.py" },
   properties = { tag   = tags[S][N] },
   callback   = awful.client.setslave },


[edit] Psi and qutIM

[edit] Tag settings

I (User:DsTr) use these tag settings (where 'N' is the tag number):

 awful.tag.setncol(2, tags[s][N])
 awful.tag.setnmaster (1, tags[s][N])
 awful.tag.setmwfact (0.2, tags[s][N])

Rules:

 { rule = { class = "psi" },
     properties = { tag = tags[s][N] } },
 { rule = { class = "Qutim" },
     properties = { tag = tags[s][N] } },

[edit] Manage signal/hook

 if c.class == "psi" and not c.name:find("Psi") then
   awful.client.setslave(c)
 end
 
 if c.class == "Qutim" and not c.role:find("contactlist") then
   awful.client.setslave(c)
 end
Personal tools