Change Log

2021-09-23 Version 1.3.0

  • Features:
    • Implement ISUPPORT parsing + the UTF8ONLY IRCv3 specification (srain#331), thanks to @progval
    • Add support for RPL_UMODEIS (srain#331), thanks to @progval
    • Make nick completion case-insensitive (srain#333), thanks to @progval
    • Add button for inserting emoji (srain#279)
  • Bug fixes:
    • Fix configuration syntax errors caused by trailing commas (srain#330), thanks to @progval

2021-07-18 Version 1.2.4

2021-06-26 Version 1.2.3

  • Bug fixes:

2021-05-30 Version 1.2.2

2021-04-02 Version 1.2.1

2021-02-28 Version 1.2.0

  • Features:

    • Switch build system from Make to Meson (srain#266)
    • Add FreeBSD implementations for srn_get_executable_{path,dir}, thanks to @wahjava
    • Add /quote command for sending special IRC commands, thanks to @hno (srain#283)
    • Add support for hiding server buffer (srain#287)
  • Bug fixes:

2020-10-01 Version 1.1.3

  • Bug fixes:

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 (srain#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 (srain#259)

2020-06-27 Version 1.1.1

  • Changes:
    • Improve auto-scroll policy of message list (srain#255)
  • Bug fixes:
    • Fix TLS certificate verification error on glib-networking 2.64.3 (srain#251)
    • Fix crash when connecting to an invalid host (srain#234)

2020-05-24 Version 1.1.0

  • Features:
    • Support multiple selection of message (srain#138)
    • Support jump to mentioned message (srain#243)
    • Nickname will be highlighted when mentioned (srain#243)
    • Auto build deb package (srain#238)
  • Changes:
    • Improve fcous control of UI
    • Replace appdata with metainfo (srain#240)
    • Validate metainfo with appstream-util (srain#242)
  • Bug fixes:

2020-04-11 Version 1.0.2

  • Features:
    • Add MAN documentation (deaf723)
    • Add more predefined IRC networks: DALnet, EFnet, IRCnet, Undernet and QuakeNet (srain#228)
  • Changes:
    • Build: Allow setting CC variable via environment (srain#224)
    • Add channel related messages to corresponding buffer as possible (srain#149)
    • Improve widget focus control (srain#229)
    • Drop unused icons (6239fe5)
    • Provide clearer error message when connecting (srain#233)
    • Update gentoo installation documentation Gentoo (ceb5ca3)
  • Bug fixes:
    • Truncate long message before sendisg (srain#227)
    • Deal with invalid UTF-8 string (50e7757)
    • Fix incorrect user number of channel user list (srain#230)
    • Fix incorrect icon install path (9f07380)

2020-03-14 Version 1.0.1

2020-02-24 Version 1.0.0

  • Changes:
  • Bug fixes:
    • Allow Srain runs without dbus secrets service (srain#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 (srain#190)
    • Command alias support (srain#188)
    • List predefined servers via command, see /server for details (656f3e5)
  • Changes:
    • Replace all icons with freedesktop standard icons (srain#120)
  • Bug fixes:
    • Fix wrong usage of GError (srain#179)
    • Fix image preview problem when image is hard to detect type (srain#163)
    • Fix memory leak of pattern filter (9464a9e)
    • Fix the breaking “abort sending” icon (srain#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:
    • Srain help documentation is available at:
  • 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.