Skip to content

0.052.100

Choose a tag to compare

@danhetrick danhetrick released this 26 Jul 17:18
· 24 commits to main since this release

Summary

MERK is a free, open source, multiple-document interface Internet relay chat for Windows, Linux, and macOS. It can be run with Python 3.9+ if PyQt5 and Twisted are installed; to connect to TLS/SSL enabled servers, install pyOpenSSL and service_identity. If you encounter problems running MERK with Python 3.9+ on Windows, you may need to install pywin32. All PyInstaller versions of MERK are built for 64-bit operating systems.

What's New

  • The log manager loads faster. The log manager no longer offers a full file preview of data to export. This speeds up the log manager a lot.
  • New Window class method: input(). This allows plugins to send a string to a subwindow, and treat it exactly as if that string was typed into the subwindow's text input widget and the return key was pressed. Optionally, this method can be used to set the value in the text input widget without "executing" it.
  • MERK automatically offers to backup large log files. Since very large log files can cause MERK to run slowly and consume an excessive amount of resources, large log files are now searched for on startup, and if any are found, an option to backup the large log files is offered. Complete logs will be exported to a human readable format; the in-application log will be trimmed.
  • The full text of the GPL 3 license is now included in the User Guide.
  • Many, many, many bugfixes. There are bugfixes for the application, plugin API, and the core IRC client networking code.

Files

  • Python distribution
    • merk-0.052-100.zip contains the Python code for MERK; unzip the source to any folder, navigate to that folder with your favorite console application, and type python merk.py to run MERK. Instructions for running the source on Windows, Linux, and macOS can be found in the repository.
  • Windows PyInstaller distributions
    • merk-windows-0.052-100.zip can be unzipped to any folder, and contains an executable and a directory with support files; unzip to any folder, and double click on merk.exe to run MERK.
    • merk-windows-setup-0.052-100.zip contains an installer for MERK; unzip and double click setup.exe.
  • Linux PyInstaller distribution
    • merk-linux-0.052-100.zip can be unzipped to any folder, and contains an executable and a directory with support files; unzip to any folder, and double click on merk to run MERK.
    • merk-linux-0.052-100.flatpak can be installed with flatpack install --user merk-linux-0.052-100.flatpak.
  • Other files
    • MERK_User_Guide.pdf contains a guide for using MERK, as well as writing scripts and plugins. It is available in the app, in the "help" menu.
    • CHANGELOG contains a list of changes in new release.

All downloads contain README.html, which contains usage information about the application and a list of all commands supported by MERK. Further information can be found on the MERK source code repository.

MERK has a plugin framework. For more information about how to write plugins, please see MERK_User_Guide.pdf. The official repository contains some example plugins right here.

Configuration files and logs are stored in a directory named .merk in the user's home directory.

CHANGELOG for 0.052.100

APPLICATION CHANGES

  • Bugfix: occasionally, "blank" chat messages would be displayed in chat
    displays.
  • Added an option to scroll the chat display to the top to chat display context
    menus.
  • Tweaked the "input options" menu. Removed the text banner at the top of the
    menu, and changed the spellcheck menu: now, spellchecking can be toggled
    globally in the menu.
  • Bugfix: "blank" messages are now removed from log displays and exports.
  • Bugfix: "blank" chat messages are now ignored.
  • Bugfix: text that uses IRC colors to color the text white was effectively
    invisible in the log viewer. The log viewer now changes white IRC colored
    text to black IRC colored text. As colors are stripped from the "human
    readable" export option, exports are unchanged, and nothing is stripped or
    changed in any other export option.
  • Bugfix: some dialogs did not have their focus set properly.
  • Tweaked the channel key display on channel windows.
  • The "key" icon was removed from resources, and the "secure" icon is used in
    its place.
  • Tweaked the status bar server displays.
  • Double-clicking on a channel's channel key now allows users to "edit" the
    channel key, if they have the permissions to. The dialog can also unlock the
    channel (that is, remove the channel's key).
  • The "server information" button on the server window toolbar can no longer
    have focus set on it.
  • Added an option to reset menu names to the default to the "set menu name"
    dialog called from the "Settings" dialog.
  • Bugfix: channel list time displays are now shown in UTC if that option is
    enabled.
  • Bugfix: "signed on" times in WHOIS responses are now shown in UTC if that
    option is enabled.
  • Bugfix: when a channel mode change is set, multiple "NAMES" requests could
    be sent at once.
  • The list of IRCv3 extensions that a server supports is no longer displayed
    during the connection process. The extension list is still available in the
    server information menu.
  • Bugfix: setting or changing a user's color now will trigger the chat
    re-renderer if that option is turned on, and there isn't any upcoming
    re-render. All chats that that user is in will be re-rendered.
  • Bugfix: setting or changing a word's highlighted color will trigger a chat
    re-render, just like with user colors.
  • The log manager no longer displays a "preview" of the exported data.
  • Tweaked the layout of the log manager's export tab.
  • The /ignore and /unignore commands, as well as the ignore manager, now
    refreshes chats and userlists only.
  • Tweaked the nickname display on chat windows. The channel status icon is now
    a little smaller, and the whole display is more compact.
  • Bugfix: "live" toggling of the "show nick display on server windows" option
    was broken.
  • Added a usermode display to the server window nickname display.
  • Bugfix: CTCP notifications would not work properly if the window did not have
    active focus.
  • Bugfix: private messages, if otherwise unseen, would not write to the active
    window if the application did not have focus. Now, they will be written to
    all chat windows associated with the client that received the private
    message.
  • Removed the option to open the ignore manager from the /window command.
  • Bugfix: an error message for the /macro command was worded poorly. It has
    been changed to match the wording of similar error messages.
  • Tweaked some of the "list" displays for various commands to be more
    consistant.
  • Changed "window" to "subwindow" in error messages and help text for all
    commands (at least, the ones dealing with subwindows).
  • Added a "spacer" in between the topic editor and the user count widget (on
    channel subwindows).
  • Removed the "users" text in the channel user count display; the display now
    only shows how many users there are in a channel.
  • Bugfix: server profiles could not be edited (in the connection dialog) once
    created.
  • The channel user count display is now hidden if there is only one person in
    the channel.
  • Bugfix: enabling topic display in subwindow title bars would crash the
    client.
  • Bugfix: toggling the "channel information display" wouldn't always completely
    hide the channel information display (the user count, if enabled, would still
    be visible).
  • The text input option menu's options have been re-written to make what each
    option does more clear.
  • Bugfix: toggling options in the text input menu would not update the settings
    menu, and vice-versa.
  • Added toggles for emoji and ASCIImoji shortcodes to the settings menu's
    input submenu.
  • Made some menu entries in the settings menu clearer.
  • Since large logs can cause MERK to run slowly and consume more resources,
    MERK now looks for large logs on startup and offers to back them up. By
    default, "large" is considered to be 30MB or larger, but this can be changed
    in the configuration file or with the /config command (by changing the
    "log_warning_size" setting).
  • Changed default button on the "back up large log" dialog to "do backup".
  • Tweaked the "human readable" log export. Logs now display complete nick plus
    hostmask for all "speakers" (except for messages by the client).
  • Added a setting ("scan_for_large_logs_on_startup") to toggle whether MERK
    scans for large logs to the configuration file.
  • Added the new "scan for large logs" setting to the "Advanced" section of the
    settings dialog.
  • Added the text of the GPL 3 to the User Guide.
  • The default directory for log exports in the Log Manager has been changed to
    the user's "home" directory.
  • Bugfix: using the log viewer in dark mode could make logs unreadable. Logs
    are now shown, by default, with black text and a white background, no matter
    what mode MERK is in.
  • Bugfix: private messages shown in channel logs now have the user name in
    italics, rather than appearing like normal channel chat.
  • Added an option to back up a log to the right click menu for the log list in
    the log manager.

PLUGIN API CHANGES

  • Added an optional argument to the Window class "style()" method, allowing
    users to save a loaded text style as the default text style for that
    subwindow. By default, the loaded text style is NOT saved.
  • If the Window class "style()" method is called without arguments, and a text
    style has been applied with a separate "style()" call, the applied style file
    will be returned as the current text style.
  • Added two built-in methods for the Plugin class: "styles()" (which returns a
    list of all the text style files in the "styles" directory) and "scripts()"
    (which returns a list of all the scripts in the "scripts" directory).
  • New Window class method: "input()", which sends a string to the window, and
    treats it EXACTLY as if it was entered into the window's text input widget
    and the return key was pressed. This will both send chat to the window (if it
    is a channel or private chat window) and execute commands. An optional
    boolean argument can be passed to the method that will only set the string in
    the text input widget and NOT execute it.
  • Bugfix: if a plugin set a subwindow title, the subwindow title could be
    "overwritten" by the application and changed back to the default. Subwindow
    titles set by plugins are now persistent, and can "reset" subwindow titles to
    being controlled by the application again.
  • Passing a blank string ('') to the Window class method "title()" will now
    reset the subwindow's title to application control.
  • Bugfix: one of the example plugins (mention.zip) would not work as described.
    This plugin has been fixed, and the documentation has been updated.
  • Bugfix: one of the example plugins (unread.zip) would not work as described.
    This plugin has been fixed, and the documentation has been updated.

WARNING! MERK may appear to be infected with something by your Windows antivirus. It is not infected with anything, it just seems to appear that way because some malware in the past was packed with PyInstaller (at least, this is my theory). I have uploaded all binaries to VirusTotal.

Released Sunday July 26, 2026