I don't know much about the IM software named Adium except that it resides under Mac.
It therefore, as I guess, has inherited the tradition of Mac of having charming GUI.
Apart from its beautiful software interface, it also has variety of distinguishing 'Message Style'
If you don't understand what I am talking about, you may check this out.
As to these adorable message styles, they are based on the web render engine named 'Webkit', which is actually the reason why they are so attractive.
'Guys who are using Adium would be lucky!' if you love these styles you may think.

But you can be one of them even though you don't use Adium.
There is a geek who just has written a plugin for Pidgin to use these affluent Adium message style!
But don't tell me that you have no chance to use pidgin since it's open source.

In the following, I will guide you how to make it rock on your computer:

1. Where to find the necessary stuffs

Since Pidgin-Webkit is still on its beta stage, you may have to download the source code on its developer's page:

But before you can compile it into a usable pidgin plugin, you also have to install the Webkit on your system:
  • you can refer to the official site of Webkit to compile and install it
  • and if you are lucky enough using the ubuntu as I am, there is an existing webkit package in the repository, about which I will walk you through below.
Another thing you don't want to forget is the message style resources, you can find them easily at
2. How to use these stuffs

First of all, you must make the Webkit available in your system. As I mentioned, you can compile it yourself from the source code, which I am not going to talk about here.

Then another way is that you can install it from the repository:
  • add 'deb http://ppa.launchpad.net/stemp/ubuntu hardy main' into your software source, if you are using ubuntu Gutsy, you may change the 'hardy' part to 'gutsy';
  • then update your package information: sudo apt-get update
  • install the webkit package for development: sudo apt-get install libwebkit-dev
By now, you have the webkit tool installed.

Second, it is time for you to compile the long-waited pidgin-webkit plugin:
  • unpack the source code package you downloaded and get into the folder
  • simply type 'make' to compile it
  • then 'sudo make install' to install it to the pidgin plugin folder
  • if you encounter problems in this part, you may refer to the 'Trouble Shooting' part below to find if you have the same problem as I did.
Don't rush to open pidgin to show the beautiful effect now, or you may meet a application crashing. You have to go a little further to there. Right, it is that you configure the style you chose with the plugin.
  • unpack the style package
  • copy the folders within it to this folder: ~/.purple/message_styles/ : sudo cp -r style_folders ~/.purple/message_styles/
Now, it is the time to open Pidgin. Go through Tools->Plugins, and check the plugin named 'Webkit message styles xx', where the 'xx' stands for the version.

Then open a message session, chat with your best friends facing the wonderful interface.

3. Trouble Shooting

Surely, you cannot go through the steps above without any problems. At least, I confronted so many problems while I am undergoing these stages. I would paste them here and also my solutions to them, wish it helpful.
  1. the version problem for package libgtk2.0
    • When I tried to install the libwebkit-dev package, I encountered the error which told me
    • The following packages have broken dependencies:
      libgtk2.0-dev: Depends: libgtk2.0-0 (= 2.12.9-3ubuntu4) but 2.12.9-4ubuntu3 will be installed
      E: Broken Packages
    • it is because I had gnome2-global-menu installed before that.
    • to get rid of it, you have to install the right package back:
      • first install the right version of libgtk2.0-0: sudo apt-get install libgtk2.0-0=2.12.9-3ubuntu4
      • this will uninstall some packages such as gnome-themes gtk2-engines-pixbuf gtk2.0-examples gucharmap libgtk2.0-bin
      • now install libgtk2.0-dev: sudo apt-get install libgtk2.0-dev
      • reinstall the uninstalled packages: sudo apt-get install gnome-themes gtk2-engines-pixbuf gtk2.0-examples gucharmap libgtk2.0-bin
    • then this problem was solved
    • refer to: http://ubuntuforums.org/showthread.php?t=871606&page=2
  2. the "No package 'pidgin' found" problem
    • when I typed 'make' to compile pidgin-webkit, this problem occured.
    • this is all about the package 'pidgin-dev', install it in your favorite way.
    • here you go.
  3. when using the plugin, the pidgin suffers from crashing
    • when I use the plugin the first time, the pidgin gave me a crashing as an answer.
    • through searching, I figured out that it is likely to be the problem of wrong file ownership.
    • check the Adium message style folder you copied to .purple/message_styles/ for the file owner.
    • If they don't belong to you, you have to change them to this way:
      • sudo chown -hR yourusername thestylefolders
    • then relaunch pidgin
4. Improvement

Until now, you can open pidgin to enjoy the different kinds beautiful message styles, can't you?
But for me, I was not satisfied with the Chinese characters it displays.
Because most of the existing Adium message styles are designed by English speakers and they cannot be aware of other characters they don't use, other poor language characters don't shows great enough.

If you have this problem as I do, you can follow me. I will lead you to configure the fonts for your language other than English.

By the way, I choosed the style named 'renkoo', I will take it for examples.
  • go to the 'Contents/Resources/' folder under the style folder
  • open the file 'main.css' with your text editor
  • within the '#heading .conversationWith' block and 'font:' entry, add the font name of your language after 'Lucida Grande, '. As for me, I added 'STHeiti'. It finally looks like 'font: bold 16px Myriad Pro, Myriad, Lucida Grande, STHeiti, Trebuchet MS, Arial;'
  • and within the '#heading .conversationTime' and '.status_container' blocks, go in the similar way.
  • within the '.tableBubble' block, add the 'font:' entry. For instance, I added a new line 'font: 12px Myriad, Lucida Grande, STHeiti, Arial;'
  • and if you want to adjust the font size, you may go to the '.tableBubble .message' block to change the 'font-size' entry. I just changed it to '12px'
Then relaunch your pidgin, just enjoy the new face again!

5. Words from the author

Because my English is not so fluent, please forgive my problems in language.
I just take it as a note for myself, and I paste it here with the wish that it may be helpful.
Cheers!

[Update] the source code of pidgin-webkit can now be obtained through Bazzar at: https://code.launchpad.net/pidgin-webkit

13 comments:

  1. franck said...

    Hi,

    pidgin doesn't start for me.

    when i launch pidgin with -d option, i have a trace of a missing symbol in webkit purple_buddy_icons_node_find_custom_icon.

    I get the webkit in the repository  

  2. franck said...

    Hum,

    Bot a crash in fact but can't select the pidgin webkit plugin due to the error  

  3. Eugen said...

    Hi !!!!
    It Work !!! Very nice =)))))))))))))))  

  4. franck said...

    It's for pidgin 2.5.1.. inialially, i try with 2.4 (the one in ubunutu repo)...

    Looking for a Windows one....  

  5. Terry said...

    Yes, franck, I have also tried the early versions of Pidgin but all failed. It seems to work with 2.5.0 or higher version due to its using a new variable in 2.5.0. You can see that from the terminal.  

  6. Unknown said...

    Does Pidgin show you an "... is typing" info? I don't know whether it is only a case of proper theme, or all the webkit plugin? Is it any way to make Pidgin writing it?

    And is it a way to force it to show the last chat on a top of a new conversation?  

  7. Terry said...

    @ jasiekmarc, yes, there is no the '... is typing' information because of the Message Style. I haven't tried any other styles so I have no idea. If you really want it, you may try the pidgin-screenlets plugin.

    As for your second question, I think there is a plugin called 'History' in the plugin options. You may give it a try.  

  8. Unknown said...

    I've always used the History plugin. I think, they won't work together.

    On launchpad i found, that adium doesn't show a "...is typing" inside the conversation, so doesn.t the pidgin-webkit  

  9. Werou said...

    hi .. maybe this is an old post but i want to know where do you get the source code for the plugin i cant find it anywhere on that url thanks  

  10. Terry said...

    You may use the Bazaar branches:
    bzr branch lp:pidgin-webkit

    refer to: https://code.launchpad.net/pidgin-webkit

    Good luck!  

  11. Anonymous said...

    I don't know what the heck happened but the source code is screwed up.

    When I try to run "make" on the pidgin webkit, I get a bunch of errors:

    These are just a chunk of them, there are a ton more:
    --------------------
    webkit.c: In function ‘pidgin_webkit_prefs_style_cb’:
    webkit.c:520: warning: implicit declaration of function ‘purple_prefs_get_string’
    webkit.c:521: warning: initialization makes pointer from integer without a cast
    webkit.c:526: warning: passing argument 1 of ‘g_build_filename’ makes pointer from integer without a cast
    webkit.c:530: warning: implicit declaration of function ‘purple_debug_error’
    webkit.c:546: warning: implicit declaration of function ‘purple_get_conversations’
    webkit.c:546: warning: assignment makes pointer from integer without a cast
    webkit.c: At top level:
    webkit.c:561: error: expected declaration specifiers or ‘...’ before ‘PurplePrefType’
    webkit.c: In function ‘pidgin_webkit_prefs_variant_cb’:
    webkit.c:565: warning: initialization makes pointer from integer without a cast
    webkit.c:594: warning: assignment makes pointer from integer without a cast
    webkit.c: At top level:
    webkit.c:609: error: expected ‘)’ before ‘*’ token
    webkit.c:647: error: expected ‘)’ before ‘*’ token
    webkit.c:718: error: expected ‘)’ before ‘*’ token
    webkit.c:780: error: expected ‘)’ before ‘*’ token
    webkit.c: In function ‘escape_message’:
    webkit.c:829: warning: implicit declaration of function ‘gtk_imhtml_is_smiley’
    webkit.c:829: warning: implicit declaration of function ‘GTK_IMHTML’
    webkit.c:836: warning: implicit declaration of function ‘purple_unescape_html’
    webkit.c:836: warning: assignment makes pointer from integer without a cast
    webkit.c:839: error: ‘GtkIMHtmlSmiley’ undeclared (first use in this function)
    webkit.c:839: error: ‘imhtml_smiley’ undeclared (first use in this function)
    webkit.c:840: warning: implicit declaration of function ‘gtk_imhtml_smiley_get’
    webkit.c:842: error: invalid type argument of ‘->’ (have ‘int’)
    webkit.c: At top level:
    webkit.c:871: error: expected ‘)’ before ‘*’ token
    webkit.c:1024: error: expected ‘)’ before ‘*’ token
    webkit.c:1060: error: expected ‘)’ before ‘*’ token
    webkit.c:1103: error: expected ‘)’ before ‘*’ token
    webkit.c:1137: error: expected ‘)’ before ‘*’ token
    webkit.c:1147: error: expected ‘)’ before ‘*’ token
    webkit.c: In function ‘pidgin_webkit_load_message_style’:
    webkit.c:1167: warning: initialization makes pointer from integer without a cast
    webkit.c:1169: warning: initialization makes pointer from integer without a cast
    webkit.c:1172: warning: passing argument 1 of ‘g_build_filename’ makes pointer from integer without a cast
    webkit.c:1184: warning: passing argument 1 of ‘g_build_filename’ makes pointer from integer without a cast
    webkit.c: At top level:
    webkit.c:1311: error: expected ‘)’ before ‘*’ token
    webkit.c:1359: error: expected ‘)’ before ‘*’ token
    webkit.c:1380: error: expected ‘)’ before ‘*’ token
    webkit.c:1403: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ui_info’
    webkit.c:1408: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘info’
    webkit.c:1442: error: expected ‘)’ before ‘*’ token
    webkit.c:1451: warning: return type defaults to ‘int’
    webkit.c: In function ‘PURPLE_INIT_PLUGIN’:
    webkit.c:1451: error: expected ‘{’ at end of input
    make: *** [webkit.o] Error 1
    ------------------------------

    Any ideas anyone?

    Thanks!

    -Michael  

  12. Barx said...

    Hope someday the plugin would be aviliable por amd64  

  13. Unknown said...

    I did everything you mention, but whenever I click on a buddy of mine in the list of users, it opens Chrome with the custom Template.html of the theme.

    Any ideas???

    I have Kubuntu 14.04 and 64 Bits.

    Whenever I run pidgin with the -d command and activate the plugin, this is what I get:

    (11:05:08) WebKit: plugin_load
    (11:05:08) WebKit: Message style dir: /home/user/.purple/message_styles/renkoo.AdiumMessageStyle
    (11:05:08) WebKit: Using custom Template.html
    (11:05:08) WebKit: No Footer.html
    (11:05:08) WebKit: css_path: /home/user/.purple/message_styles/renkoo.AdiumMessageStyle/Contents/Resources/Variants/Green on Red.css
    (11:05:08) prefs: /pidgin/plugins/loaded changed, scheduling save.


    Logs from the make and make install:

    PC:~/$ make
    gcc -c webkit.c -o webkit.o -O2 -Wall -fpic -g -I/usr/local/include -I/usr/local/include/gtk-2.0 -I/usr/local/include/glib-2.0 -I/usr/local/include/pango-1.0 -I/usr/local/include/atk-1.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/lib/gtk-2.0/include -I/usr/include -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include `pkg-config --cflags gtk+-2.0 pidgin` `pkg-config --cflags webkit-1.0`
    webkit.c: In function ‘get_webkit’:
    webkit.c:658:14: warning: variable ‘imhtml’ set but not used [-Wunused-but-set-variable]
    GtkWidget *imhtml = NULL;
    ^
    gcc -c prefs.c -o prefs.o -O2 -Wall -fpic -g -I/usr/local/include -I/usr/local/include/gtk-2.0 -I/usr/local/include/glib-2.0 -I/usr/local/include/pango-1.0 -I/usr/local/include/atk-1.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/lib/gtk-2.0/include -I/usr/include -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include `pkg-config --cflags gtk+-2.0 pidgin` `pkg-config --cflags webkit-1.0`
    prefs.c: In function ‘plugin_config_frame’:
    prefs.c:185:16: warning: variable ‘model’ set but not used [-Wunused-but-set-variable]
    GtkTreeModel *model;
    ^
    gcc webkit.o prefs.o -shared `pkg-config --libs webkit-1.0` -o webkit.so
    PC:~/$ sudo make install
    mkdir -p ~/.purple/plugins
    cp webkit.so ~/.purple/plugins/
    mkdir -p ~/.purple/message_styles
    cp message_styles/* ~/.purple/message_styles/ -rf


    Thanks.  


 

Blogger Templates. Sponsored by Link Page Report Card