And here we go again! We're proud to announce the new version of Smuxi, release 0.10 "Unexpected". During the development, 12 bug reports and 8 feature requests in 259 commits were worked on. Notable highlights in this release are:

GNOME Frontend Enhancements

Tabs replaced with chat list. The list is grouped by server and sorted alphabetically. Private (person to person) chats are sorted after public (group) chats.

Man pages included for smuxi-frontend-gnome (Calvin Buckley)

/window command now cycles through tabs with same name (Oliver Schneider)

The Windows installer was switched to GTK# 2.12.22 which is more stable than the previous used 2.12.20 version.

Adding and editing remote engines works now correctly on Windows and OS X.

Text Frontend Enhancements

Messages no longer sometimes get sent multiple times

Rare crashes with scrolling were fixed

Man pages included for smuxi-frontend-stfl (Calvin Buckley)

Smuxi Hooks / Scripts / Plugins Support

After years of waiting we are more than happy to finally announce the added scripting support in Smuxi! You are probably thinking right now "so which scripting language is it?! C#? VB.NET? JavaScript? Perl? Python? Ruby? Maybe even PHP?" and here comes the best part: ALL OF THEM AND MORE! More? What else there would be... well, if you really want you can write Smuxi hooks in C, C++ or even assembler

"How is this possible?"

It's Magic! No, just kidding. This is pure Unix technology taken from the 70s ported to a powerful messaging client. If you know what Git hooks, Nagios checks/plugins or CGI scripts are, then you already know what Smuxi hooks are, if you don't then continue reading this paragraph. Any executable program in a special location (hook points) will be executed when a specific event happens, like receiving a message. This program gets all information passed as environment variables, like who send the message (SENDER), what was the message (MSG), when was it received (MSG_TIMESTAMP_UNIX) etc. This program is also able to execute Smuxi commands by writing hook commands to the standard output.

Currently there are 2 main types of Smuxi hooks:

protocol-manager hooks: these are mainly events like message-received/sent that the various protocol managers (IRC, Twitter, XMPP, etc) can raise

command hooks: these are added Smuxi commands running in the frontend, so you can add /some_cool_command to Smuxi

Smuxi hooks are maintained in the smuxi-hooks git repository. So if you want to share your written hook simply create a pull request against that repository on GitHub, other Smuxi users will be very thankful! Right now thre are only 2 proof-of-concept hooks available:

now-playing: adds a /np command to Smuxi which shows the currently playing song/video of Banshee using MPRIS2 on D-Bus or YouTube (Chrome only).

tinyurl-resolver: resolves all shortened URLs of t.co, bit.ly, etc to the full URL. This was originally an irssi plugin written in Perl.

Installing Hooks

"Wow, I am completely amazed, but how can I install hooks?" For now you will need to either download the files of the hook into the same location into $HOME/.local/share/smuxi/hooks or by cloning the git repository and symlinking the files. Here is an example for each method:

Download Method

mkdir -p $HOME/.local/share/smuxi/hooks/frontend/command-manager/command-np/ cd $HOME/.local/share/smuxi/hooks/frontend/command-manager/command-np/ wget https://raw.github.com/meebey/smuxi-hooks/master/now-playing/frontend/command-manager/command-np/now-playing.sh chmod +x now-playing.sh

Git Clone Method

cd $HOME git clone https://github.com/meebey/smuxi-hooks.git mkdir -p $HOME/.local/share/smuxi/hooks/frontend/command-manager/command-np/ cd $HOME/.local/share/smuxi/hooks/frontend/command-manager/command-np/ ln -s $HOME/smuxi-hooks/now-playing/frontend/command-manager/command-np/now-playing.sh

IRC Enhancements

XMPP (Beta) Enhancements

Pretty chat states: you can now see if your chat peer is composing a message with a pretty design (Oliver Schneider / George Karavasilev)

Find Group Chats support for chat rooms on own server (Oliver Schneider)

Resource collisions are no longer happening if resource was not overridden. (Oliver Schneider)

Multi user chats (MUC) are automatically rejoined after a reconnect.

When "Use Encryption" is enabled, Smuxi will now force SSL/TLS. If that fails it will no longer silently downgrade to unencrypted. If you can suddenly no longer connect, check if "Use Encryption" is correctly configured for that server (as not all XMPP servers support SSL/TLS).

Annoying FeatureNotImplemented messages are no longer visible.

Added translations.

Twitter Enhancements

/retweet command and /reply command. Both commands need a short id as parameter so Smuxi knows which tweet you want to retweet or reply to. The short ids are shown in brackets like [42] before each tweet. Example of how a reply to tweet with short id 42 could look like: /reply 42 thanks, Smuxi is awesome!

/search command

/timeline command (Andrés G. Aragoneses)

/follow and /unfollow command

On Connect Commands are now executed (Andrés G. Aragoneses)

Twitter context menu (Andrés G. Aragoneses)

JabbR (Beta) Enhancements

Message History: Opening chats will now load and show the previous messages from the JabbR server.

Added automatic and manual reconnect support.

Added translations.

Campfire (Beta) Enhancements

Fixed an issue that can lead to a DoS behavior when the session becomes invalid. (Carlos Martín Nieto)

Server Enhancements

The server will now cleanly shutdown on SIGINT and SIGTERM signals. (Christopher James Halse Rogers)

Man pages included for smuxi-server (Calvin Buckley)

Smuxi should now be in your language, including:

Initial partial Persian (Behrooz Amoozad)

Initial partial Telugu (Praveen Illa)

French (Clément Bourgeois)

Czech (Ondřej Hošek)

Chinese Simp (Dean Lee)

Swedish (Martin Bagge)

Danish (Joe Hansen)

German (Bianca Mix)

Spanish (Matías Bellone)

Partial Turkish (Umut Albayrak)

Partial Finnish (Kalle Kaitala)

Partial Portuguese (Brazil) (Leonardo Pires Felix)

Behind the Scenes

The #smuxi-devel IRC channel has moved from OFTC to freenode, everyone interested in Smuxi's development is invited to join.

The C# 4.0 compiler dmcs will now automatically be used and no longer needs an MCS=/usr/bin/dmcs override with the configure script.

Added dbus-sharp-2.0 support to build system.

This GitHub repo is now used as the primary repository including all submodules of Smuxi. This GNOME repo is now the official mirror. If you are using git.qnetp.net in your git remotes (git remote -v) then you should switch that to either https://github.com/meebey/smuxi.git or git://git.gnome.org/smuxi

The HACKING file contains now the used codying style of Smuxi.

Contributors

Contributors to this release are the following people:

Mirco Bauer (165 commits)

Oliver Schneider (48 commits)

Andrés G. Aragoneses (22 commits)

Calvin Buckley (6 commits)

Christopher James Halse Rogers (4 commits)

Carlos Martín Nieto (2 commits)

George Karavasilev (artwork)

Umut Albayrak (translations)

Praveen Illa (translations)

Ondřej Hošek (translations)

Matías Bellone (translations)

Martin Bagge (translations)

Leonardo Pires Felix (translations)

Kalle Kaitala (translations)

Joe Hansen (translations)

Dean Lee (translations)

Clément Bourgeois (translations)

Bianca Mix (translations)

Behrooz Amoozad (translations)

Thank you very much for your contributions to Smuxi!

Want this? Go right here, right now!