Fixed:
- CPU spiking due to memory leak in upstream crate.
Added:
- Highlight buffer to view highlights across all servers. Can be opened via sidebar button or command bar.
- Logging buffer to view logs. Can be opened via sidebar button or command bar.
- New hotkeys
- Toggle channel topic (Ctrl + Alt + t (macOS: ⌘ + ⌥ + t))
- Toggle file_transfers buffer (Ctrl + j (macOS: ⌘ + j))
- Toggle logs buffer (Ctrl + l (macOS: ⌘ + l))
- Toggle theme editor window (Ctrl + t (macOS: ⌘ + t))
- New configuration options
- Dynamically select dark or light theme based on OS appearance. See configuartion.
- Ability to define a shell command for loading a NICKSERV password. See configuration
- Ability to define a shell command for loading a SASL password. See configuration
- Show/hide sidebar button to view logs. See configuration
- Ability to align nicknames above messages. See configuration.
Fixed:
- Inverted scrolling direction.
- Only highlight if user nick isn't part of another word.
- Errors from password commands are now caught and displayed to the user.
Removed:
- Configuration options:
[sidebar.buttons]
in favor for the new User Menu
Added:
- Multi-window support: Pop out panes into separate windows.
- In-app theme editor with ability to with share it via a halloy:// URL.
- Clickable users and channels in buffers.
- New configuration options
- Ability to include or exclude channels for server messages (join, part, etc.). See configuration.
- Ability to color nicknames within channel messages. See configuration
- Ability to define a shell command for loading a server password. See configuration
- Enable support for IRCv3
msgid
andread-marker
Fixed:
- Regression where messages sent to ZNC virtual users were routed to the wrong buffer (e.g.
*status
routed tostatus
). - Timeouts that could occur while Halloy was running in the background.
Changed:
- Default Ghost sequence changed to
REGAIN
.
Added:
- New configuration options
- Right aligning nicks in buffers. See configuration.
- Right aligning nicks in nicklist. See configuration.
- Hiding
chghost
messages. See configuration. - Overwrite nicklist
width
in channels. See configuration. - Show/hide user access levels in buffer and nicklist. See configuration
buffer_focused_action
added tosidebar
to enable actions a focused buffer. See configuration.- Notification for direct messages. See notification configuration.
- Enable support for IRCv3
Monitor
andextended-monitor
Fixed:
- Expanded recognized login notifications (used to join channels that report themselves as requiring registration after logging in)
- Messages with multiple targets are correctly recorded into multiple buffers (and/or multiple times into the same buffer) client-side.
- Messages sent with a STATUSMSG prefix are recorded and indicated in the corresponding channel.
- Ability to position the sidebar at the top, bottom, right, or left. See configuration.
/mode
requires too many parameters for certain commands.
Changed:
- Reworked themes to add better customization possibilities
- NOTE Old theme files are not compatibile with the new format. However all the themes in the theme community has been updated to the new format.
- Unread indicator has changed from a boolean value to a enum. See configuration.
- Renamed
sidebar.default_action
tosidebar.buffer_action
. - Auto-completing (with tab) a nickname at the beginning of the input line will append ': ' (colon space). Otherwise, a space is appended to the completion.
Removed:
- Removed
hex
configuration option for server messages and nicknames.hex
was previously used to overwrite a color value. This is now done through the new theme format.
Added:
- Small icon in sidemenu when a new release is available
- Enable support for IRCv3
chghost
,account-notify
, andextended-join
Removed:
- Persistent window position and size due to an upstream bug
Added:
- Rich formatted and clickable URLs
- Text formatting through
/format
command. For more details, see text formatting guide. - Support for CTCP queries CLIENTINFO, PING, SOURCE, and VERSION
- Custom notification sounds. Use your own sounds or select from a few new built-in options. For more details, see notification configuration.
- Support DCC Send requests with spaces in the filename
- Reload config button in Sidebar
Fixed:
- Text input missing key presses in certain instances
- Connection timeout when UI is suspended on an offscreen workspace due to channel backpressure
- Raw commands are passed through unmodified
- AWAY command cuts off the away message
Added:
- Ability to open
irc://
andircs://
URL schemes - Ability to overwrite nickname colors by providing a hex string (see buffer configuration).
- Ability to overwrite server & internal message colors by providing a hex string (see buffer configuration).
- Configurable shortcuts for "Leave Buffer" and "Toggle Sidebar" actions (see keyboard shortcuts configuration).
- Ability to remember window position and size when reopened.
- Ability to hide unread indicators in sidebar (see sidemenu configuration)
Fixed:
- UTF-8 channel name rendering in sidebar and in pane title bars.
Added:
- Reload configuration file from within the application (Ctrl + r (macOS: ⌘ + r))
- Allow configuration of internal messages in buffer (see buffer configuration)
- User information added to context menu
- Support for IRCv3
CAP NEW
andCAP DEL
subcommands - Enable support for IRCv3
multi-prefix
,message-tags
,WHOX
, andUTF8ONLY
- Dynamic commands and tooltips added to command auto-completion via
ISUPPORT
- Added support for
socks5
proxy configuration (see proxy configuration) - Added support for
http
proxy configuration (see proxy configuration)
Changed:
- Simplified onboarding experience for users without a
config.toml
file - MacOS will now also look in
$HOME/.config/halloy
forconfig.toml
. - Context menus can be dismissed by pressing Escape
- Join channels that report themselves as requiring registration after logging in
Fixed:
- No longer automatically reconnects to a server after using the
/QUIT
command.
Added:
- File transfer support (see file transfer configuration)
- Adjust WHO polling for servers without
away-notify
(see server configuration) - Tooltips on application buttons (see tooltips configuration).
- Sidebar menu buttons (see sidebar configuration).
- Display current version, and latest remote version in command bar
- Allow reading passwords from files in server configuration
- Allow configuration to specify a server's NickServ IDENTIFY command syntax
Fixed:
- Accept '@' in usernames to support bouncers that use the user@identifier/network convention
- Prevent rare scenario where broadcast messages' timestamp would not match time the messages are received
- Fix SASL on macos by using RUSTLS backend
Changed:
- MacOS icon to better follow Apple's Human Interface Guidelines
BREAKING Configuration file format has switched from YAML
to TOML
. Please vist the migration guide here: halloy.squidowl.org/guides/migrating-from-yaml.
Added:
- Added command bar entry to open wiki website.
Changed:
- Configuration file now uses TOML instead of YAML
- Renamed
[keys]
section to[keyboard]
- Renamed
[buffer.channel.users]
section to[buffer.channel.nicklist]
- Renamed
[buffer.input_visibility]
section to[buffer.text_input]
- Removed
[dashboard]
section- Renamed
[dashboard.sidebar]
section to[sidebar]
- Renamed
- Changed
exclude
from[buffer.server_messages]
to two seperate settingsenabled = bool
smart = number
- Renamed
- Use primary text color instead of accent color for
solid
nicknames - Op and Voice context menu items hidden in channels where the user is not an Op
Fixed:
WHOIS
is now correctly formatted when printed in buffers.
Added:
- Configuration option to enable a topic banner in channels. This can be enabled under
buffer.channel.topic
- Messages typed into the input will persist until sent. Typed messages are saved when switching a pane to another buffer, then are restored when that buffer is returned to.
- Added display of highest access level in front of nicks in chat, mirroring the format in the nick list
- Added ability to toggle Op and Voice from user context menu in channels
Fix:
- Context menus now shows buttons as expected
- Buttons on help screen is now correctly sized
- Text input is now disabled when not connected to a channel
- When someone is kicked, it is now correctly shown
- Query messages sent by another client will now correctly be displayed
- Prevent flooding server by grouping channels together in as few JOIN messages as possible
Changed:
- Various UI changes
- Ensured consistent padding in channel buffer
- Unified styling for dividers
Security:
chrono
RUSTSEC-2020-0071
Added:
- Option to colorize nicks in the nick list (and an option to control it separately from in the buffer)
- Option to control application scale factor
Fixed:
- Input not visible on Server and Query (DM) buffers
- Clipped buttons in context menu
Changed:
- Improved user experience in text input when auto-completing a nickname.
- Configuration option
server_messages
changedexclude
from a boolean value to [All
,None
or!Smart seconds
].All
excludes all messages for the specific server message.None
[default] excludes no messages for the specific server message.!Smart seconds
shows the server message if the user has sent a message in the given time interval (seconds) prior to the server message.
Added:
- Configuration option
servers.<name>.sasl.external.key
added to support loading a separate PEM PKCS #8 encoded key for SASL authentication.
Changed:
- Focus an available pane on launch, so that launch behavior follows typical use (e.g. if
dashboard.sidebar.default_action
is set toreplacePane
, then selecting a channel in the sidebar will replace the focused pane instead of opening a new pane) hidden_server_messages
has been changed toserver_messages
and additional customization has been added:- Exclude messages [join, part, quit].
- Adjust username format.
Fixed:
- Accept '*' as a legal special symbol for usernames
- Accept '/' in usernames, ensuring correct parsing for bouncers using the nick/server convention
- Create the configuration directory correctly, if it does not exist yet.
Added:
- IRCv3 capability
userhost-in-names
support added - IRCv3 capability
invite-notify
support added - Configuration option
dashboard.sidebar.width
to control sidebar width. - Configuration option
notification
to control and enable notifications
Changed:
- Limit messages to 512 bytes in length, including the trailing CR-LF characters.
- Configuration option
dashboard.sidebar_default_action
now moved todashboard.sidebar.default_action
Added:
- Command bar (opened by pressing (Ctrl + k (macOS: ⌘ + k)))
- Configurable keyboard shortcuts for common actions, such as changing buffer focus, maximize / restoring buffer size,
cycling channels in the buffer and more! A new
keys
section has been added to the config file, reference the wiki for more details. - Single clicking on a user will insert nickname to input
- Configuration option
on_connect
to execute commands once connected to a server, reference the wiki for more details.
Changed:
- Instead of using hostname as fallback, we now always derive the seed for unique user colors from their nickname
Fixed:
- Set the window application id on Linux to
org.squidowl.halloy
- Correctly display all arguments when receiving MODE command
Message history and dashboard state will be reset due to a breaking change. We've switched to a more flexible storage format to ensure future breakages won't occur.
Added:
- Away-notify extension added for supported servers
- SASL support for PLAIN & EXTERNAL. The following per-server config keys have been added:
- PLAIN -
sasl.plain.username
&sasl.plain.password
- EXTERNAL -
sasl.external.cert
is a path to the PEM encoded X509 cert
- PLAIN -
- Configuration option
buffer.hidden_server_messages
to hide server messages from the provided array of sources: ["join", "part", "quit"] - Configuration option
buffer.input_visibility
to control input field visibility: always shown or following the focused buffer. - Portable mode - if a config file exists in the same directory as the executable, all Halloy data will be saved to that directory
- Upon joining a channel, display the channel mode in the buffer
- When querying an away user, you will see an away message
- Autocomplete on joined channels
Changed:
- Away users will be appear slightly transparent in nicklist
- Configuration option
new_buffer
has been renamed tobuffer
.new_buffer
key will still work for backwards compatibility. - Migrated to our own internal IRC backend. This should allow for quicker development against extensions and bug fixes.
Fixed:
- Changes done in the config file are now properly applied to the old buffers
- Text and colors on light themes will no longer appear washed out
- All WHOIS responses are now properly routed to the buffer where the request was made (text input or via context menu)
- Accessing text input history will only populate the current buffer, not all of them
- Text from input box can be copied to clipboard
- Prevent text input cursor from blinking when window loses focus
Added:
- Nickname completions in text input with Tab
- Previously sent messages can be accessed per buffer in the text input with ↑ / ↓ arrows
- New configuration option
dashboard.sidebar_default_action
to control pane behaviour when selecting buffers - Messages from other users containing your nickname are now highlighted
- Themes directory where users can add their own theme files
- Broadcast nickname changes to relevant channels and queries.
- Broadcast quit messages to relevant channels and queries.
- Better error descriptions on connection failures
- Support RAW command
- Drag & drop buffers to the edges for better customization of the grid
- Whois messages are printed in the currently focused buffer
Changed:
- Default channel in
config.yaml
has been changed to#halloy
(from##rust
) palette
field has been deprecated and replaced bytheme
inconfig.yaml
- Sorting channel nicknames
- Title headers has been changed to also display user count for channels
- Copy change: "Leave" has been changed to "Close query" for queries
Fixed:
- The last word of a message sometimes dissapeared
- Persist partial text input content when switching away from buffer
- Correctly load image on welcome screen
Added:
- First release 🎉