Change Log#

2024-02-11 Version 1.6.0#

  • Features:

    • Use new app indicator provided by libayatana-appindicator, which has better compatibility than GtkStatusIcon (#374, #401)


      User can still use GtkStatusIcon if they have trouble installing libayatana-appindicator, see Installation for more details.

    • Add conf item scroll-on-new-message to automatically scroll down the message list when a new message is incoming even if the application is inactive (#382)

  • Bug fixes:

    • Let conf item chat.log works as expected (#402)

2023-03-26 Version 1.5.1#

  • Bug fixes:

    • Fix the problem that the URL cannot be opened on MS Windows (#391)

2022-10-02 Version 1.5.0#

  • Features:

    • Able to identify Nordic GTK Theme as dark theme (#372)

    • Activate the corresponding buffer to a response user query (#381)

  • Changes:

    • No additional sphinx extensions are required to build documentation (#368)

    • Cleanup deprecated APIs (#369)

    • Suppress error message when connection keeps failing (#386)

    • Enable debian release build , thanks to @tomac4t (#387)

  • Bug fixes:

    • Fix SASL authentication error when connecting to Soju (#371)

2022-10-02 Version 1.4.2#

2022-10-02 Version 1.3.3#

2022-07-30 Version 1.4.1#

2022-05-07 Version 1.4.0#

  • Features:

    • Add support for IRCv3 standard-replies (#354), by @progval

    • Add support for SASL EXTERNAL (#352), by @progval

    • Add support for invite-notify (#359), by @progval

    • Add conf item server-visibility for setting default server visiblity (#361), by @SilverRainZ

    • Add support for server-time (#345), by @progval

    • Add /clear command for clearing messages of current buffer (#268), by @SilverRainZ

  • Bug fixes:

    • Fix workflow for building MS Windows release artifact (#360), by @lifeibiren

  • Changes:

    • Make the buffer menu apply to the right-clicked item instead of the active buffer (#353), by progval

    • Srain now accepting donations through OpenCollective (

    • Disable workflow for building debian release artifact since we have offical debian package (99d9d86)

2022-02-10 Version 1.3.2#

  • Features:

    • Add French translation (#351), by @progval

  • Bug fixes:

    • Silence assertion failure on /part command (#348), by @progval

    • Silence “Unknown capability” warning on trailing whitespace (#349), by @progval

  • Changes:

    • Add tooltips to buttons with no text(#350), by @progval

    • Srain is added to offical repository of Debian, see Debian for details

2021-12-18 Version 1.3.1#

  • Bug fixes:

    • Fix build of macOS (#339), by @SilverRainZ

    • Make channel messages with origin out of channels can be shown (#336), by @progval

    • Rejoin channels after NICKSERV authentication finishes (#274), by @SilverRainZ

2021-12-18 Version 1.2.5#

2021-09-23 Version 1.3.0#

  • Features:

    • Implement ISUPPORT parsing + the UTF8ONLY IRCv3 specification (#331), thanks to @progval

    • Add support for RPL_UMODEIS (#331), thanks to @progval

    • Make nick completion case-insensitive (#333), thanks to @progval

    • Add button for inserting emoji (#279)

  • Bug fixes:

    • Fix configuration syntax errors caused by trailing commas (#330), thanks to @progval

2021-07-18 Version 1.2.4#

  • Bug fixes:

    • Fix bug casued by #316 (#319)

    • Fix crach when URL preview async task failed (#322)

2021-06-26 Version 1.2.3#

  • Bug fixes:

    • Eliminate GDK warning (#316)

2021-05-30 Version 1.2.2#

  • Changed:

    • Add IRC network (#311)

    • Updated Dutch translation (b6830e9)

  • Bug fixes:

2021-04-02 Version 1.2.1#

  • Features:

  • Bug fixes:

    • Minor fixes (#290)

2021-02-28 Version 1.2.0#

  • Features:

    • Switch build system from Make to Meson (#266)

    • Add FreeBSD implementations for srn_get_executable_{path,dir}, thanks to @wahjava

    • Add /quote command for sending special IRC commands, thanks to @hno (#283)

    • Add support for hiding server buffer (#287)

  • Bug fixes:

    • Fix an use-after-free BUG (#267)

    • Fix implicit declaration error on some systems, thanks to @lgbaldoni (#270)

2020-10-01 Version 1.1.3#

  • Bug fixes:

    • Fix an use-after-free BUG (#267)

2020-08-10 Version 1.1.2#


This release contains only improvement for MS Windows, user of other platform can ignore it.

  • Features:

    • Binary for MS Windows now can automatically built via Github Actions, thanks to @lifeibiren (#259), please refer to Windows for more details

  • Changes:

    • For ease of running on windows, Srain’s executable path is added to the search paths of {configuration,data} file. Thanks to @lifeibiren (#259)

2020-06-27 Version 1.1.1#

  • Changes:

    • Improve auto-scroll policy of message list (#255)

  • Bug fixes:

    • Fix TLS certificate verification error on glib-networking 2.64.3 (#251)

    • Fix crash when connecting to an invalid host (#234)

2020-05-24 Version 1.1.0#

  • Features:

    • Support multiple selection of message (#138)

    • Support jump to mentioned message (#243)

    • Nickname will be highlighted when mentioned (#243)

    • Auto build deb package (#238)

  • Changes:

    • Improve fcous control of UI

    • Replace appdata with metainfo (#240)

    • Validate metainfo with appstream-util (#242)

  • Bug fixes:

    • Some implicit declarations fixes (#236)

    • Some typo fixes (#239)

2020-04-11 Version 1.0.2#

  • Features:

    • Add MAN documentation (deaf723)

    • Add more predefined IRC networks: DALnet, EFnet, IRCnet, Undernet and QuakeNet (#228)

  • Changes:

    • Build: Allow setting CC variable via environment (#224)

    • Add channel related messages to corresponding buffer as possible (#149)

    • Improve widget focus control (#229)

    • Drop unused icons (6239fe5)

    • Provide clearer error message when connecting (#233)

    • Update gentoo installation documentation Gentoo (ceb5ca3)

  • Bug fixes:

    • Truncate long message before sendisg (#227)

    • Deal with invalid UTF-8 string (50e7757)

    • Fix incorrect user number of channel user list (#230)

    • Fix incorrect icon install path (9f07380)

2020-03-14 Version 1.0.1#

  • Features:

    • Auto rename to original nick when ghost quit (#198)

    • Add hackint IRC network (#201), thanks to @kpcyrd

    • Add Dutch translation (#215), thanks to @Vistaus

    • Add two FAQs to documentation (#217)

    • Add debian pack script (contrib#1), thanks to @tomac4t. Please refer to Debian to build a deb package

  • Changes:

    • Move continuous integration from travis CI to github actions (#203, #204), thanks to @tomac4t

    • Make header bar buttons repect default belief (#205, #218)

  • Bug fixes:

    • Fix case sensitivity issue for IRC messages (#202), thanks to @hhirtz

    • Fix invalid changelog section of appdata file (#214)

    • Fix missing dependences in documentation (#216), thanks to @avoidr

2020-02-24 Version 1.0.0#

  • Changes:

  • Bug fixes:

    • Allow Srain runs without dbus secrets service (#195)

    • Fix nick generation logical (39ced08)


1.0.0 is the first stable release of Srain, enjoy!

2019-10-07 Version 1.0.0rc9999#

  • Features:

    • Activate corresponding buffer when channel URL is clicked (#190)

    • Command alias support (#188)

    • List predefined servers via command, see /server for details (656f3e5)

  • Changes:

    • Replace all icons with freedesktop standard icons (#120)

  • Bug fixes:

    • Fix wrong usage of GError (#179)

    • Fix image preview problem when image is hard to detect type (#163)

    • Fix memory leak of pattern filter (9464a9e)

    • Fix the breaking “abort sending” icon (#144)

    • Fix the invite menu of user (9f98cbb)

2019-06-14 Version 1.0.0rc5#

2019-05-13 Version 1.0.0rc4#

  • Added:

    • New dependency libsecret

    • Add password storage support

    • Add command line options --no-auto, used to require Srain not to automatically connect to servers

    • Add russian translation, thanks to @tim77

    • Allow user send slash(/) prefixed message

  • Removed:

    • Drop all password fields in configuration file

  • Changed:

    • Enable CSD(Client-Side Decoration) by default

    • Update chinese translation

2019-04-14 Version 1.0.0rc3#

2019-01-24 Version 1.0.0rc2#

2018-09-10 Version 1.0.0rc1#

2018-02-28 Version 0.06.4#

  • Changed:

    • Change default application ID to im.srain.Srain

  • Added:

    • CTCP support, including request & response CLIENTINFO, FINGER, PING, SOURCE, TIME, VERSION, USERINFO messages. DCC message is not yet supported. Use command /ctcp for sending a CTCP request

    • Login method support, you can specify it by configuration file option server.login_method:

      • sasl_plain: SASL PLAIN authentication support, will use server.user.username as identity, and use server.user.passwd as password

    • Added documentation Support Tables used to show Srain’s features, inspried by

    • Added a semantic version parser, not yet used

    • Added appdata file which requier by application store, thanks to @cpba

    • openSUSE package is available, please refer to openSUSE for details, thanks to @alois

    • Flatpak package is available, please refer to Fedora for details, thanks to @cpba

  • Improved:

    • Fixed a logical error in IRC message parser: all parameters are equal whether matched by <middle> or <trailing>, thanks to @DanielOaks

    • Improved connection state control, you can smoothly disconnect/quit from server even it is unresponsive

    • Fixed truncated message output by /server list subcommand

    • Fixed crash at g_type_check_instance() under GLib 2.54.3+

    • Fixed: Do not free a SrianServerBuffer which has non-empty buffer

    • Ensure the QUIT message can be sent before application shutdown

    • Removed entry from desktop file, thanks to @TingPing

    • Fixed grammer of join message, thanks to @raindev

    • Re-enable CI for Srain: ci-status

2017-12-22 Version 0.06.3#

  • Changed:

    • Configurable file option tls_not_verify in irc block in server block is renamed to tls_noverify, old option name is still supported

    • Command option tls-not-verify for /server and /connect is renamed to tls-noverify, old option name is still supported

  • Added:

    • Connect popover supports connect to predefined server

    • Join popover supports channel search

  • Improved:

    • Modified margin and padding of some widgets

    • Improved the style of unread message counter

    • Fixed markup parse error of decorator

    • Fixed crashing while connecting from connect popover

    • Fixed use after free while removing user

    • Improved the performance and extensibility of user list

    • Improved compatibility with older versions of GTK(> 3.16)

    • Refactor the code of chat panel, helpful for the next development

2017-09-12 Version 0.06.2#

  • Added:

    • mIRC color support, can be disabled via setting render_mirc_color option in chat block in server block to false

  • Improved:

    • Better error reporting while operating the UI

    • IRC URL can be opened directly within the application

    • Text in input entry, connection panel and join panel will not be cleared while operation is not successful

    • Fixed: in some cases, nickname registration will case infinity loop

    • Decorator and filter now can process xml message

    • Imporved the handling of channel topic

2017-08-18 Version 0.06.1#

  • Added:

    • Added GPL copyright statements

    • RPL_CHANNEL_URL (328) message support

    • Command line options support, type srain -h for help message

    • Support for Creating server and joining channel from IRC URL

    • New dependency libsoup

    • Add reconnect timer: if connection fails, Srain will wait for 5 seconds then try to connect again. If it still fails, waiting time will increase by 5 second

  • Improved:

    • Fixed the crash when QUIT

    • Fixed: avoid sending empty password

    • More empty parameters checks

    • Imporve server connection status control

2017-07-29 Version 0.06#

  • Changed:

    • The third time of refactor ;-)

    • New command parser, for the syntax, refer to Syntax.

    • Changed the format of Chat log

    • The /relay & /unrelay command doesn’t support custom delimiter, this function will be implemented as python plugin in the future

    • Use reStructuredText for document instead of Markdown

  • Added:

    • Message filter: mechanism for filtering message

    • Message Decorator: mechanism for changing message

    • Install script for Gentoo, thanks to @rtlanceroad !

    • New command /rignore & /unrignore for ignore message using regular expression, thanks to @zwindl !

    • Config file support

    • Configurable log module, more convenient for developing and reporting issue

    • New Return value type, for more friendly error reporting

    • New command /server for IRC servers management

    • Srain home page is available at: (expired, use

    • Srain help documentation is available at: (expired, use

  • Removed:

    • Remove libircclient dependence

  • Improved:

    • Improve reconnection stuff: auto reconnect when ping time out

    • More accurate message mention

    • Display preview image in correct size

    • Any number of image links in message can be previewed

    • HTTP(and some other protocols) link, domain name, email address and IRC channel name in topic and messages can be rendered as hyper link

    • The sent message can be merged to last sent message

    • Fixed some bugs

2016-09-19 Version 0.05.1#

  • Create missing directory: $XDG_CACHE_HOME/srain/avatars

2016-08-27 Version 0.05#

  • Changed:

    • Port to libircclient

      • SSL connection support

      • Server password support

      • Channel password support

  • Added:

    • Convenience GtkPopover for connecting and joining

    • Nick popmenu

    • Translations: zh_CN

    • Forward message

    • Chat log

    • Colorful user list icon

    • Mentioned highlight

    • Desktop notification

  • Improved:

    • More friendly User interface

    • Stronger {upload,avatar} plugin

    • Fixed a lot of bugs

2016-04-30 Version 0.03#

  • New interface between UI and IRC module

  • Multi-server support

  • Channel name is not case sensitive now

  • /quit command will close all SrainChan of a server

  • Fix GTK-Warning when close a SrainCHan


0.03 is a pre-release, some functions are no completed yet. it also has some undetected bugs.

2016-04-13 Version 0.02#

  • Bugs fixed

  • Port to GTK+-3.20


0.02 is a pre-release, some functions are no completed yet. it also has some undetected bugs.

2016-04-07 Version 0.01#

  • Implement basic functions of a IRC client

  • Themes: Silver Rain (light)

  • Simple python plugin support:

    • Auto upload image to pastebin (

    • Get github avatar according nickname

    • NB: plugin will separated from this repo in the future

  • Image preview from URL

  • Relay bot message transfrom

  • Nick auto completion

  • Combine message from same person


0.01 is a pre-release, some functions are no completed yet. it also has some undetected bugs.