Smuxi Changelog

What's new in Smuxi 1.0.7

Jun 20, 2017
  • The most notable bug fixes are that Smux 1.0.7 now builds and runs correctly on Mono 5.x instead of crashing directly at start-up and it also no longer crashes with a SEGV or NullReferenceException when re-joining channels when running on GTK# 2.12.40

New in Smuxi 1.0.5 (Jun 20, 2016)

  • The most notable bugfix is that Smuxi no longer incorrectly parses nicknames that start with a ~ character

New in Smuxi 1.0.3 (Feb 1, 2016)

  • git log 1.0...1.0.3 --oneline --no-merges
  • e3ffb69 Build: drop compiler override from dist-osx and dist-win32 make targets
  • 55f112b Build: bump version to 1.0.3
  • f9fd02c Build: remove distdir hack from lib/Makefile.am
  • f5ce4fb (refs/heads/stable) Build: fix make distcheck

New in Smuxi 1.0.2 (Feb 1, 2016)

  • 97207ed Build: bump version to 1.0.2
  • eb2cacb lib/Twitterizer: switch to smuxi-master branch
  • 5b8c65c configure.ac: use 4.5 by default and downgrade to 4.0 or 3.5 if necessary
  • da3f97a Travis-CI: support Mono 4.5-only runtime
  • b380895 configure.ac, *.m4: support Mono >= 4.0
  • f52b627 *.csproj, lib/*/*.csproj: build for .NET 4.5
  • 7536131 Engine-IRC: fix build
  • d7c7508 Engine-IRC: link Smuxi FAQ for SSL/TLS certificate error messages
  • 1cf0c61 Debian: bumped version to 1.0+stable-1

New in Smuxi 1.0.1 (Feb 1, 2016)

  • af71ce4 (tag: refs/tags/1.0.1) Build: bumped version to 1.0.1
  • 410eb05 lib/StarkSoftProxy: fix SOCKS5 / Tor support
  • 0baf630 Engine: guard MessageBuilder.NormalizeNewlines()
  • 283c30f configure.ac: disable release build profile
  • e094b14 configure.ac: check if shell supports +=
  • f21cc42 Engine: do not expose the user's realname automatically (refs: #541)
  • 3babdd0 Engine-Campfire: split messages on CR instead of trying to parse

New in Smuxi 1.0 (Jul 20, 2015)

  • MESSAGE PERSISTENCE:
  • One if the biggest drawbacks of the IRC protocol ever was that messages can't be retrieved from the IRC server because the IRC server is simply relaying messages to the connected clients. So, if an IRC client is freshly started and connects it starts to receive new messages, but all message you had received before are no longer available. This always made IRC in a way "volatile" unlike other communication systems like email where messages are relayed and stored on the client side. One common approach for IRC clients is to store log files in a text file. This is a simple feature and gives the user the possibility to read older conversations. Smuxi also supports text file logging like other IRC clients but it has a big user experience drawback as you need to open the file from the disk outside of the IRC client.
  • In Smuxi 1.0 messages sent and received are now stored on the disk in a way they can automatically be retrieved/loaded when you restart Smuxi. It is like you have never closed Smuxi! This feature was already available in Smuxi for some time as a technical preview and it used the Db4o object database, but we were never happy about the performance neither with the stability so it always stayed an optional feature you need to enable. This year we tried a new message buffer backend using the famous SQLite database and it works much faster and stable as a rock. So finally we can enable this feature by default because it just works and enhanced your experience. We hope you enjoy it.
  • USER INTERFACE ENHANCEMENTS:
  • Synced message markers
  • position of the message marker is now remembered across restarts and frontend reconnects
  • Message counter
  • Single application instance support
  • SCRIPTING ENHANCEMENTS:
  • New Hook Points:
  • Smuxi 1.0 supports with the following new hook points:
  • engine/protocol-manager/on-presence-status-changed/ This hook point is raised when the presence status of a protocol manager changes. This happens for example when an IRC connection toggles the away state.
  • engine/session/on-event-message/ This hook point raises event messages that usually begin with "-!-". This can be useful to track state changes that are shown as a message without having a dedicated hook point for it.
  • engine/session/command-$cmd/ This hook point is raised on the engine side for commands, e.g. /some_command that isn't handled by the frontend or engine built-in commands. This is useful for commands that should be available for all frontends and isn't specific to the frontend environment.
  • NEW PLUGINS:
  • The following new plugins are supported by Smuxi 1.0:
  • topic-diff: Shows the word differences of the topic after topic changes.
  • away-nick: Automatically appends and removes $AWAY_SUFFIX to/from the nick name when you go away using the /away command or by disconnecting all frontends from the smuxi-server.
  • system-info: Shows system info. Includes system kernel version, distro name, and CPU vendor information.
  • now-playing: This plugin is not new but was rewritten in Python to get rid of the spaghetti code monster which was written in Bash.
  • UPDATED TRANSLATIONS:
  • Smuxi should now be in your language, including:
  • French
  • Czech
  • Chinese Simp
  • Swedish
  • Danish
  • German

New in Smuxi 1.0 RC 4 (May 22, 2015)

  • NickServ auth, SQLite by default, no ChanServ spam, remembers all messages

New in Smuxi 1.0 RC 3 (May 4, 2015)

  • new tool: smuxi-message-buffer with new .mo file and manage:
  • This tool should be part of the smuxi-engine package. It is used to import/export chat history of Smuxi
  • usr/lib/smuxi/smuxi-message-buffer.exe
  • usr/share/locale/*/LC_MESSAGES/smuxi-message-buffer.mo
  • usr/bin/smuxi-message-buffer
  • usr/share/man/man1/smuxi-message-buffer.1
  • new library: Twitterizer2.Streaming
  • This library it used for Twitter's Streaming API which Smuxi is now using for live Tweet searches (/search #hashtag)
  • This library shuld be added to where the other Twitterizer2.dll is, which should be the smuxi-engine package
  • usr/lib/smuxi/Twitterizer2.Streaming.dll
  • Changes/commits since the 0.11.1 release:
  • Engine: use correct version value in Engine.VersionString
  • Merge pull request #223 from knocte/sln
  • (refs/remotes/github/knocte/sln) sln: group projects in solution folders
  • Merge pull request #200 from
  • knocte/timeline_bug_with_sqlite_and_more_than_one_username (refs/remotes/github/knocte/timeline_bug_with_sqlite_and_more_than_one_username)
  • Engine-Twitter: prevent racy NRE when using OnConnectCommands
  • SqliteMessageBuffer: wrap dbpath in double-quotes to escape it
  • Merge pull request #222 from knocte/fix_engine_session_typo (refs/remotes/github/knocte/fix_engine_session_typo) Engine: fix typo in catch block
  • (tag: refs/tags/1.0-rc2, refs/remotes/qnetp/master, refs/remotes/local-release/master, refs/remotes/gitorious/master)
  • Updated website links from http://www.smuxi.org/ to https://smuxi.im/
  • Frontend-GNOME: fixed regression for local engines
  • (refs/remotes/github/master)
  • Frontend-GNOME: fixed null check to really prevent ArgumentNullException
  • Frontend-GNOME: fixed ArgumentNullException on .NET
  • Frontend-GNOME: fixed swapped assembly/protocol version values
  • (tag: refs/tags/1.0-rc1) Build: bumped version to 1.0
  • Engine, Frontend*: introduced engine protocol version
  • Engine: mark message buffers as serializable else they can't be used by remote frontends
  • Merge pull request #221 from linuxmaniac/vseva/fix_man
  • fix manpage format. Thanks lintian for noticing
  • Frontend-GNOME: added Main.cs to POTFILES.in as it contains translatable strings now
  • Frontend-GNOME: install signal handlers for SIGINT/TERM
  • Frontend-GNOME: single application instance support
  • Common: made thread of SingleApplicationInstance a background thread
  • Common: probe and report remoting connection errors in SingleApplicationInstance
  • Merge branch 'stable'
  • (refs/heads/stable) Frontend-GNOME: guard DBus code with null checks in NetworkManager.Init()
  • Frontend-GNOME: officially deprecate Db4o disk persistence (closes: #981)
  • Merge branch 'stable'
  • Frontend: support smuxi-servers that run on localhost even with SSH enabled
  • Merge branch 'stable'
  • Frontend-GNOME: updated copyright year in about dialog
  • Merge pull request #219 from carlosmn/darwin-run
  • build: set libray path for 'run' target on OS X.
  • (tag: refs/tags/0.11.1, refs/remotes/origin/release/0.11,
  • refs/remotes/local-release/release/0.11) Build: bumped version to 0.11.1
  • Merge pull request #217 from RavuAlHemio/bug/#1035_stfl_imagemessageparts
  • Frontend-STFL: Handle image message parts (closes #1035).
  • Merge pull request #215 from RavuAlHemio/feature/#1033_stfl_text_contrast
  • Merge pull request #216 from RavuAlHemio/bug/#1034_stfl_disconnect
  • Frontend-STFL: Call EngineManager.Disconnect() on exit (closes #1034).
  • Frontend-STFL: Ensure text color contrast (closes #1033).
  • Merge pull request #208 from sebastianpoeplau/feature/syncedmarkerline
  • Merge pull request #211 from eukreign/moved_input_box
  • Merge branch 'stable'
  • Frontend-GNOME: Fix coding style.
  • Frontend-GNOME: fixed potential null dereference
  • Frontend-GNOME: Sync the marker line's position with the remote engine.
  • repacked input box so that it is directly below the Notebook
  • Common: fixed build on .NET 3.5
  • Merge pull request #209 from knocte/nit_twitter
  • (refs/remotes/github/knocte/nit_twitter) Engine-Twitter: rename "Replies" chat to "Replies & Mentions"
  • Merge branch 'stable'
  • Merge pull request #206 from carlosmn/show-image
  • (refs/remotes/github/carlosmn/show-image) [Frontend-GNOME] Drop the emoji to the bottom of the line
  • [Frontend-GNOME] Apply text size changes to emoji
  • [Frontend-GNOME] Set the emoji size to the line height
  • [Common] Prefix 'Begin' to IconCache's async functions
  • [Frontend-GNOME] Load emoji from the cache, or download from emojione
  • [Common] IconCache: add method to download a particular image
  • [Common] Add an onError callback to IconCache
  • lib/emoji.json: add the emoji defintions
  • [Engine] Match emoji and and replace them with an image part
  • [Frontend-GNOME] Check for the existence of the emoji file
  • [Common] Move IconCache here
  • Merge pull request #207 from knocte/bump_mm_sharp_for_fixed_configure
  • (refs/remotes/github/knocte/bump_mm_sharp_for_fixed_configure)
  • lib/messagingmenu-sharp: updated for fixed configure (closes: #1020)
  • (refs/remotes/github/knocte/master) Merge branch 'stable'
  • [Frontend-GNOME] Extract the icon download and caching logic
  • [Frontend-GNOME] Show an image message part
  • Merge pull request #205 from knocte/bump
  • (refs/remotes/github/knocte/bump) lib/messagingmenu-sharp:
  • updated for clean `git status`
  • Engine(-Tests): fixed parsing IRC URIs like irc://freenode/smuxi
  • Common: use MIT/X11 license by default for new source files in Common
  • TODO: remove multi identity item as that was implemented in 0.11
  • Merge pull request #203 from knocte/CreateMessageBuilder
  • (refs/remotes/github/knocte/CreateMessageBuilder)
  • Engine,Frontend: use CreateMessageBuilder() method when possible
  • 2fa4eed Merge pull request #201 from knocte/bring_command_errors_to_ui
  • aba9e8f (refs/remotes/github/knocte/bring_command_errors_to_ui)
  • Engine: bring errors from server.OnConnectCommands to the UI
  • Frontend-GNOME: ship and install AppData file
  • Common: fixed build on .NET 3.5 profile
  • configure.ac, lib/Twitterizer: updated to fix .NET 3.5 compatibility
  • Common(-Tests): implemented SingleApplicationInstance
  • Updated old website references
  • Merge branch 'stable'
  • Engine: support value types for MessageBuilder.AppendFormat() params
  • Debian: refreshed build_Twitterizer2_with_default_compiler patch to fix FTBFS
  • Debian: refreshed build_Newtonsoft.Json_with_default_compiler patch to fix FTBFS
  • Engine-Twitte: implemented /favorite and /unfavorite commands
  • lib/Twitterizer: updated for fixed favorite and unfavorite methods
  • Engine-Twitter: implemented /delete command to delete tweets
  • Debian: added missing Twitterizer2.Streaming to smuxi-engine package
  • Engine-Twitter: fixed sent text of /say command
  • Engine-Twitter: filter retweets in search stream
  • lib/Twitterizer: updated for .NET 4.0 compat build fix (refs/remotes/github/experiments/twitter_streaming)
  • Engine-Twitter: implemented search streams
  • Merge branch 'stable'
  • Merge branch 'stable'
  • lib/SignalR (smuxi-master): updated for referencing source projects
  • lib/ServiceStack (smuxi-master): updated for referencing source projects
  • Common: re-licensed common code from GPLv2+ to MIT/X11
  • Engine(-Tests): implemented IPv4 and IPv6 link detection support
  • Engine-Tests: fixed ServiceStackJsonSerialize test-case
  • Merge branch 'stable'
  • Merge branch 'stable'
  • Build: Debian moved bin/libtoolize from libtool to libtool-bin
  • Merge branch 'stable'
  • Frontend-GNOME: implemented message counter
  • Travis-CI: don't sign changes file neither the source package
  • Engine-IRC: show channel mode changes (again)
  • Merge branch 'stable'
  • (refs/remotes/gnome/master) Merge remote-tracking branch 'gnome/master'
  • AppArmor: added AppArmor profile template for smuxi-frontend-gnome
  • AppArmor: added AppArmor profile template for smuxi-frontend-gnome
  • Docker: quote parameters correctly
  • Docker: fixed user detection
  • Docker: build docker images for the release and daily APT repository
  • lib/ServiceStack.Text: fixed deserialization of " being null
  • (refs/remotes/origin/experiments/revert_new_sync_manager, refs/heads/experiments/revert_new_sync_manager) Frontend(-GNOME): revert ChatViewSyncManager's state machine
  • Engine-MessageBuffer: ignore auto-generated file
  • Engine: aid diagnostics when a message buffer throws an exception
  • Engine: fall back to volatile message buffer in case of errors with SQLite
  • Merge branch 'stable'
  • Frontend: fixed Trace.Call() calls in ChatViewSyncManager
  • Frontend: enhanced exception messages of state machine
  • Frontend: removed unreachable code from State.ctor()
  • Frontend: fixed SyncInfo.SyncRoot being never initialized
  • Frontend: fixed logger calls
  • Frontend: updated copyright info
  • Frontend: coding standards fixes
  • Frontend: stop using Activator.CreateInstance()
  • Frontend: make ChatViewSyncManager.SetState() internal
  • Frontend: avoid logic in State ctors
  • Frontend: catch all exceptions in thread pool workers to prevent AppDomain shutdowns
  • Frontend: fixed leaking ChatViewSyncManager.Chats
  • Frontend: moved private methods into worker dispatch context as they won't be reused
  • Frontend: /rejoin didn't work with ChatViewSyncManager due calling Sync while already synced
  • Frontend(-GNOME): ChatViewSyncManager's internals refactored into a state-machine
  • Merge branch 'stable'
  • lib/SmartIrc4net: updated for restored .NET 3.5 compatibility
  • Merge pull request #195 from johansson/minor-nits
  • Engine: Fix CLS compliance with TextColor
  • Merge branch 'master' of github.com:meebey/smuxi
  • Engine: fixed leaking SQLite file descriptors
  • Merge pull request #194 from johansson/thumbs-db
  • Add Thumbs.db to gitignore
  • Merge branch 'stable'
  • Debian: bumped version to 0.12
  • Engine: implemented new engine/session/on-event-message hook
  • lib/SmartIrc4net: updated for fixing duplicate key exception with RPL_ISUPPORT's CHANMODES
  • Merge branch 'stable'
  • Engine(-Tests): fixed NRE thrown in MessageDtoModelV1.ToMessage()
  • Engine-IRC: rejoin channels with keys on reconnect correctly
  • Engine: re-apply MessageBuilderSettings on config changes
  • Frontend-GNOME: any server support
  • Merge pull request #185 from knocte/gitignore
  • (refs/remotes/github/knocte/gitignore) .gitignore: add autotools' `compile`
  • Frontned-GNOME: use 1/7 as chat and user list width and 5/7 for messages
  • Engine(-IRC|-XMPP): implemented
  • engine/protocol-manager/on-presence-status-changed hook point
  • Merge pull request #124 from NattyNarwhal/swf-fixing
  • Frontend-SWF: Stubby but functional topic support
  • Frontend-SWF: Use system colours
  • Merge pull request #181 from knocte/master
  • Merge branch 'stable'
  • README: add both autogen.sh and configure to compiling instructions
  • Engine: implemented engine command hooks (closes: #453)
  • Frontend-GNOME: use 1/6 width as default size for user list and adapt with window resize (closes: #917)
  • Frontend-GNOME: moved user count from user list to window title
  • Frontend-GNOME: pixel perfect topic and user list alignment
  • Engine-Tests: added test-case for "-only JSON de-serialization bug
  • Win32-Installer: ship sqlite3 library 3.8.4.3 from www.sqlite.org
  • Win32-Installer: ship Mono.Data.Sqlite from Mono 3.2.8
  • Build: fixed mkbundle order
  • Build: add all needed assemblies to static Linux build
  • Build: fixed vendor-package-version of dist-linux-static
  • Build: use included db4o for static Linux build
  • Build: dist-linux-static make target
  • Engine: added mkbundle support (closes: #963)
  • Merge branch 'stable'
  • Merge pull request #172 from oli-obk/feature/ui_contact_remove
  • Merge pull request #160 from oli-obk/fix/remove_unsynced_groupchat
  • Build: install assembly config of smuxi-message-buffer
  • Build: don't generate .mdb files as compile output
  • Build: enable STFL frontend build by default
  • Merge branch 'stable'
  • Transifex: added smuxi-message-buffer resource
  • Engine-MessageBuffer, Debian: install smuxi-message-buffer script wrapper
  • Build: fixed Engine-MessageBuffer
  • Merge pull request #179 from NattyNarwhal/msg-buffer-tool-man
  • Engine-MessageBuffer: add manual (refs/remotes/github/experiments/msg_buffer_tool)
  • Engine-MessageBuffer: new tool to dump and convert message buffers
  • Engine(-Tests): fixed (de)serializing URLs with text in MessageDtoModelV1 correctly
  • Merge remote-tracking branch 'github/master'
  • configure.ac: bumped version to 0.12
  • Engine, Frontend-GNOME: integrated SqliteMessageBuffer into preferences
  • Engine: implemented truncation of SqliteMessageBuffer
  • Engine-Tests: removed useless SqliteMessageBufferTests.ImplicitFlush() test-case
  • Engine-Tests: fixed
  • Db4o/SqliteMessageBufferTests.ImplicitRemoveAt() test-case
  • Engine: provide enumerator based MessageBufferBase.CopyTo() as default implementation
  • Engine: implemented SqliteMessageBuffer.GetEnumerator()
  • Engine: implemented SqliteMessageBuffer.Dispose()
  • Engine: implemented SqliteMessageBuffer.RemoveAt()
  • Engine: no need to select the ID column in
  • SqliteMessageBuffer.GetRange()
  • Engine: dispose all Command instances in SqliteMessageBuffer
  • Engine: enabled WAL in SqliteMessageBuffer to fix awful performance
  • Engine-Tests: offset is less confusing than index
  • Engine-Tests: fixed SqliteMessageBufferTests.Reopen() test-case
  • Engine-Tests: fixed Db4oMessageBufferTests.Reopen() test-case
  • (refs/remotes/github/jamesaxml/experiments/sqlite)
  • Engine(-Tests): initial SqliteMessageBuffer implementation (closes:
  • #908)
  • Engine-Tests: don't run benchmark test-cases on Travis-CI
  • Engine: explicitly flush message buffers in Session.Shutdown()
  • smuxi.sln: removed unused build configurations
  • Made libgit2sharp an optional build requirement
  • Engine-Tests: track API changes of MessageMode/Builder
  • Engine: MessageModel no longer contains a Protocol property
  • [Engine/Engine-Tests] Added new source files to Visual Studio project
  • [Engine-Test] Added more test messages to MessageBufferTestsBase
  • [Engine-Tests] Enhanced message buffer test-cases
  • [Engine] Fixed JSON corruption of the latest chunk in JsonMessageBuffer
  • [Engine] Guard log calls with LOG4NET define checks
  • [Engine-Tests] Fixed cold MessageBuffer.GetRange() benchmark
  • [Engine-Tests] Added test-cases for JsonMessageBuffer.GetChunkFileName()
  • [Engine-Tests] Enhanced message buffer test-cases
  • [Engine] Implemented JsonMessageBuffer.GetRange() and get indexer
  • [Engine] Initial JsonMessageBuffer implementation
  • [Engine] Correctly lock CommitMessage before use
  • [Engine] Guard log calls with MSGBUF_DEBUG define checks
  • [Engine] Implemented GitMessageBuffer.GetEnumerator()
  • [Engine] Implemented GitMessageBuffer get indexer
  • [Engine] Fixed GitMessageBuffer.Count
  • [Engine] Added GetRange() implementation to MessageBufferBase
  • based on class indexer
  • [Engine] Added Flush() to IMessageBuffer
  • [Engine] Use milli-second precision in MessageModel.Equals()
  • [Engine-Tests] Added Newtonsoft.Json benchmark
  • [Engine] Implemented MessageDtoModelV1
  • [lib/libgit2sharp] Updated for public Index.AddToIndex() and UpdatePhysicalIndex()
  • [Engine] New partial message buffer implementation based on JSON and Git
  • (refs/remotes/github/oli-obk/feature/ui_contact_remove)
  • Frontend-GNOME-XMPP: there was no context menu entry to remove contacts from the roster
  • (refs/remotes/github/oli-obk/fix/remove_unsynced_groupchat)
  • Engine-XMPP: a serverclient race condition could cause a closed chat to be joined
  • Engine-XMPP: wasn't able to close unsynced (not fully joined) mucs

New in Smuxi 0.11.1 (Apr 29, 2015)

  • User Interface Enhancements:
  • The chat list can be shrunken. This is especially handy with XMPP/Jabber and long group chat identifiers.
  • The highlight counter is now a separate column. This enhances the vertical alignment with other highlights and guarantees to be visible even if the chat name was truncated.
  • Multi Identity Support:
  • Smuxi cares for user feedback. Multi identity support was the most voted feature and thus it has been implemented! Now you can please your schizo^Wdesire to use different nicks, users and real names depending on the server. Simply edit the server in preferences and change the details.
  • Message Patterns:
  • Everybody knows text can be boring because it is all just text. Nothing can sidetrack you except reading that bare text. Text often has recurring patterns from which something useful and interactive can be created.
  • RFCs are a recurring pattern with a distinct number behind it and are real references to something in the internet (collection of protocol specifications).
  • So I would usually fire up a browser tab, copy/paste or type RFC2812 into my favorite search engine and click the first hit. Then I'd reply to the question afterwards. But with Smuxi's message patters, it turns RFC2812 into a link on which you can simply click to launch the relevant document.
  • Wow this is very cool, but isn't this already happening with http URLs and email addresses? Exactly! Why shouldn't more information be used to create useful things from it? Smuxi message patterns allow you to define text patterns that are transformed into clickable links. This can be used for RFCs, CVEs, bug report numbers (#XXX), git commit hashes and much more. Make good use of your creativity!
  • By default Smuxi comes with built-in message patterns for:
  • URLs
  • heuristic URLs (not starting with http:// etc)
  • email addresses
  • RFCs
  • CVEs
  • Debian Security Advisories (DSA)
  • Many popular bug trackers (GNU, GCC, kernel, Launchpad, freedesktop, GNOME, KDE, Xfce, Debian, Redhat, Novell, Xamarin, openSUSE, Mozilla, Samba, SourceForge, CPAN, boost, Claws and Smuxi)
  • Hooks Enhancements:
  • A bug was fixed that prevented hooks from issuing more than one command
  • New hook points:
  • engine/session/on-group-chat-person-added
  • engine/session/on-group-chat-person-removed
  • engine/session/on-group-chat-person-updated
  • New hook variables:
  • CMD
  • CMD_PARAMETER
  • CMD_CHARACTER
  • PROTOCOL_MANAGER_PRESENCE_STATUS: Unknown, Offline, Online, Away
  • Twitter Enhancements:
  • As of 14 Jan 2014, Twitter disallows unencrypted HTTP requests which broke Smuxi's Twitter support. Smuxi is now making exclusively encrypted requests (HTTPS) and thus works with Twitter again.
  • JabbR (Beta) Enhancements:
  • Messages now raise Smuxi hooks
  • The Validate certificate setting is now correctly honored.
  • Updated Translations:
  • Smuxi should now be in your language, including initial complete Dutch
  • Behind the Scenes:
  • New Smuxi git repository @ GNOME
  • Cleaner XMPP code
  • Smuxi's STFL text frontend is doing a graceful shutdown on quit

New in Smuxi 0.10 (Apr 4, 2014)

  • 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.
  • Screenshot of Smuxi 0.10 on GNOME3 Screenshot of Smuxi 0.10 on Ubuntu Unity
  • Screenshot of Smuxi 0.10 on Windows 7 Screenshot of Smuxi 0.10 on Mac OS X
  • Screenshot of Smuxi 0.9's text frontend
  • 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:
  • mIRC color reset control codes no longer eat characters
  • Codepage WINDOWS 1251 is now available as encoding needed for Cyrillic support. (GH-81, #474)
  • XMPP (Beta) Enhancements:
  • Pretty chat states: you can now see if your chat peer is composing a message with a pretty design
  • Find Group Chats support for chat rooms on own server
  • 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
  • follow and /unfollow command
  • On Connect Commands are now executed
  • Twitter context menu
  • 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.
  • Server Enhancements:
  • The server will now cleanly shutdown on SIGINT and SIGTERM signals.
  • Man pages included for smuxi-server
  • Updated Translations:
  • Smuxi should now be in your language, including:
  • Initial partial Persian
  • Initial partial Telugu
  • French
  • Czech
  • Chinese Simp
  • Swedish
  • Danish
  • German
  • Spanish
  • Partial Turkish
  • Partial Finnish
  • Partial Portuguese (Brazil)