0.052.100
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.zipcontains the Python code for MERK; unzip the source to any folder, navigate to that folder with your favorite console application, and typepython merk.pyto 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.zipcan be unzipped to any folder, and contains an executable and a directory with support files; unzip to any folder, and double click onmerk.exeto run MERK.merk-windows-setup-0.052-100.zipcontains an installer for MERK; unzip and double clicksetup.exe.
- Linux PyInstaller distribution
merk-linux-0.052-100.zipcan be unzipped to any folder, and contains an executable and a directory with support files; unzip to any folder, and double click onmerkto run MERK.merk-linux-0.052-100.flatpakcan be installed withflatpack install --user merk-linux-0.052-100.flatpak.
- Other files
MERK_User_Guide.pdfcontains a guide for using MERK, as well as writing scripts and plugins. It is available in the app, in the "help" menu.CHANGELOGcontains 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