Changelog History
Page 1
-
v50200.17.0 Changes
๐ This release is mostly focused on adding support for a "thread window" that allows you to carry on a conversation in a thread of your ๐ choosing while also seeing, visiting, and switching between channels simultaneously.
To use the thread window, select a message with
C-s
and then presst
. This binding can be customized by overriding the key binding for theopen-thread
key event.Once the thread window is open:
- It can be closed with
Esc
. - The editor focus can be swapped between the thread window and the
currently selected channel with
M-o
(the default binding for the key eventchange-message-editor-focus
). The currently focused editor's prompt is highlighted when a thread window is open to help you spot the focused editor. The theme attributefocusedEditorPrompt
can be customized to change the focused editor prompt style. - All of key bindings that work in a channel (such as
C-s
) work in a thread window, too. - As one would expect, in a thread window, all messages are implicitly
part of the thread; no explicit
C-r
orC-s
/r
steps are needed to reply. - The thread window is per-team; you can have a thread window open even while you switch between channels to view other channels in the same team while still participating in a thread. Each team can have an open thread window for some thread in that team's channels.
- The thread window's base attribute can be customized in your theme
configuration file by setting the value of
thread
. - The thread window's orientation relative to the currently selected
channel can be customized with either the
/thread-orientation
command or thethreadOrientation
configuration file setting. Both the command and config file setting can take one of the valuesabove
,below
,left
, orright
. - By default, the thread window will not be re-opened next time
Matterhorn is started. If you would like to make Matterhorn always
re-open the last thread you had open on a per-team basis, you can set
the new
showLastOpenThread
config file setting toTrue
.
Other enhancements:
- There is a new
/toggle-mouse-input
command to toggle whether mouse input is enabled at runtime. - Matterhorn now starts and uses only one instance of
aspell
. Prior to this release, Matterhorn started one instance ofaspell
per team. - The message text parser now properly recognizes usernames that are followed immediately by periods. Previously, something like "@user." at the end of a sentence would not cause "@user" to be highlighted as a user reference. With this fix, "@user" will be highlighted as long as it is not followed by more valid username text; if the period is followed by non-whitespace characters that are valid in usernames, the entire token will be treated as a username as expected, since usernames like "@user.blah" are valid Mattermost usernames.
- Added additional default key bindings for the following key events:
scroll-top
:Meta-<
scroll-bottom
:Meta->
filebrowser-list-top
:Meta-<
filebrowser-list-bottom
:Meta->
- The help screen's section on keybindings now displays the key event
names for all rebindable keys. The theme attribute used to render the
key event names is
helpKeyEvent
.
๐ Bug fixes:
- Fixed a bug where clickable links were not clickable outside of messages in some cases. This affected clickable links in channel topics.
- It can be closed with
-
v50200.16.0 Changes
๐ New features:
- Matterhorn now provides two configuration file settings to control
how typing notifications are used:
showTypingIndicator
, which now controls only whether an indicator is shown when other users are typing, andsendTypingNotifications
(default:False
), which controls whether Matterhorn sends typing notifications to the server.
- The channel list sorting mode can now be configured and changed at
runtime. The behavior can be configured by setting
channelListSorting
in the configuration file to one of the values below. In addition, a new key event and key binding can cycle through the available sorting modes:cycle-channel-list-sorting
(default:F4
). The sorting modes are:default
- sort alphabetically with muted channels at the bottom of each group, andunread-first
- same as default except that unread channels are displayed at the top of each group.
- The channel list now displays a scroll bar and can be scrolled
independently of the selected channel with these key events and
bindings:
C-Up
/channel-list-scroll-up
- Scroll up in the channel listC-Down
/channel-list-scroll-down
- Scroll down in the channel list
In addition, the appearance of the scroll bar itself can be customized in the them using the following attributes:
scrollbar
- the base scroll bar attributescrollbar.handle
- the attribute for the ends (handles) of the scroll barscrollbar.trough
- the attribute for the trough (unfilled portion) of the scroll bar- Channel list categories can now be collapsed to hide their entries from view. Matterhorn offers two options for doing this:
- Mouse mode, if enabled, makes the channel list group headings clickable to toggle their visibility.
- The new
/toggle-sidebar-group
command toggles the visibility of a specified channel list group.- The login interface got support for 2FA (second factor authentication). The UI automatically asks for a second factor if the server requires it. (Thanks [email protected]!)
Other enhancements:
- Post links in channel headers can now be clicked if mouse support is enabled.
- Matterhorn can now be built with GHC up to 9.2.
- The header at the top of the channel list now remains in place while the channel list is scrolled.
- Matterhorn now provides two configuration file settings to control
how typing notifications are used:
-
v50200.15.0 Changes
๐ New features:
- Matterhorn now supports getting post permalinks (#677). A new
l
binding in message selection mode was added to copy a post's link to the clipboard.
๐ Bug fixes and improvements:
- Matterhorn now properly displays the active configured keybinding, rather than the default, in more places where keybinding hints are shown in the UI.
- The URL list (
C-o
) now only shows URLs mentioned in messages that have not been deleted (#749). - Matterhorn no longer reports HTTP 503 and 504 errors as unhandled exceptions.
- The login UI now displays Mattermost server errors more cleanly (#741).
- Matterhorn now supports getting post permalinks (#677). A new
-
v50200.14.1 Changes
๐ Bug fixes:
- Fixed an issue where some builds would crash right after startup with a missing "mappend" exception.
-
v50200.14.0 Changes
๐ New features and improvements:
- The UI elements of the
/notify-prefs
window now support mouse interaction. - Message attachments can now be clicked with the mouse to open them with the configured URL/file opener command.
- Long verbatim and code blocks can now be truncated when they're too
large. By default, they are not truncated. (#725) This change adds:
- A new theme attribute,
verbatimTruncateMessage
, that affects the truncation message - A new configuration setting,
truncateVerbatimBlockHeight
(default0
) that governs how long code and verbatim blocks are truncated. A value of zero disables truncation, while values greater than zero cause truncation at the specified line limit. - A new command,
/toggle-truncate-verbatim-blocks
, that toggles the configuration setting at runtime
- A new theme attribute,
- The channel list now floats muted channels to the end of their respective channel groups to mirror the UI behavior of the official web client.
- Reactions posted to messages now visually indicate which reactions
are posted by the current user (#729). This change adds two new theme
attributes:
- "reaction" - used for emoji reactions posted by other users, and
- "reaction.mine" - used for emoji reactions posted by the current user
This change uses the new attributes for emoji reations rather than emojiAttr ("emoji"). We do this to visually indicate which reactions the current user has contributed to, so that they do not accidentally remove their own reactions due to trying to increment them and removing them by accident.
- The
/join
window lists channels with the display name of each channel before that entry's URL name and sorts the entries by display name. - Matterhorn now searches for XML syntax specifications and
emoji.json
using the Cabal package data-files path. This makes Matterhorn behave better when installed withcabal
, but Matterhorn's search behavior is otherwise unchanged for users who are not runningcabal
-installed builds of Matterhorn. Thanks to @sternenseemann for this work!
๐ Bug fixes:
- Hyperlinks and username references inside of Markdown tables are now supported (#739).
- Post listing windows now display messages chronologically (#731).
- Post listing windows now show the number of messages, not list entries, in the window title bar (#730).
- The
/join
window now uses the correct server API endpoint to fetch the initial dataset, causing more channels to be displayed (#727).
- The UI elements of the
-
v50200.13.0 Changes
๐ New features:
- Matterhorn now has optional mouse support! Thanks to Hari Menon
(@phsmenon) for this work. From the User Guide: Matterhorn supports
mouse interaction with some UI elements. To enable mouse support, set
enableMouseMode
toTrue
in your Matterhorn configuration. Mouse interaction is supported on the following user interface elements:- Channel list entries can be clicked to switch channels.
- Channel list entries in channel selection mode (
C-g
) can be clicked to switch to the selected channel match. - Team names in the team list can be clicked to switch teams.
- URLs and post links in the URL list (
C-o
) can be clicked to open them. - URLs in messages can be clicked to open them using the configured URL opener.
- Post links in messages can be clicked to switch to the channel containing the post.
- Usernames in messages can be clicked to switch to the direct message channel for the clicked user.
- Usernames in the "Reactions" tab of the message view window can be clicked to switch to the direct message channel for the clicked user.
- Reactions to messages can be toggled by clicking on them. Click-toggling also works in the "Search Emoji" window as well as the "Reactions" tab of the message view window.
- Notification scripts now have a richer versioned interface. Thanks to
Dave Lamkins (@TieDyedDevil) for this work. Details can be found in
docs/notification-scripts.md
. - Favorite channel support was added. Thanks to Ajay Eeralla
(@ajayeeralla) for this work.
- Matterhorn now honors the "favorite" status of channels, displaying favorite channels together in a new channel list category.
- Matterhorn got a new command,
/toggle-favorite
, to toggle the favorite status of the current channel.
- A new
/attach
command can be used to attach a file to the message being composed. - The URL list got a new keybinding to prompt for attachment save path
for the selected entry. This added a new key event,
save-attachment
(default binding:s
), for the URL list. When triggered, if the selected URL entry is for an attachment, a dialog box is shown prompting the user for a path to which to save the attachment. (If the entry is not an attachment, the event is ignored.) - The attachment file browser's key bindings can now be customized as Matterhorn key events. Thanks to Dave Lamkins (@TieDyedDevil) for this work. (#628)
- Matterhorn now supports pipe table syntax in Mattermost messages.
- The URL selection mode now displays available actions in its UI.
The URL list's bottom bar now indicates any actions that are
available for the selected link, similarly to how Matterhorn displays
such actions for messages in message selection mode. This change also
adds a new theme attribute,
urlSelectStatus
, that is used to render the keybindings shown in the options list.
๐ Bug fixes:
- Message reactions are now wrapped rather than being truncated by the window width (#715)
- When switching away from one team to another, the previous team now has its current channel marked as viewed to fix a bug where unread messages in that channel were still seen as unread.
Other improvements:
- Channel autocompletion alternatives are now trimmed to one row in height (thanks Karl Smeltzer (@karljs)).
- User metadata is now updated correctly in reponse to websocket events (#697; thanks Karl Smeltzer (@karljs)).
- "No route to host" exceptions no longer trigger "unexpected error" messages (#714)
- Matterhorn no longer exposes the server's
/msg
command (#657) - Matterhorn no longer exposes the server's
/search
command since Matterhorn provides its own UI for that command. - The
/group-msg
command was renamed to/group-create
to make it more distinct from the server command which has a different behavior (#657). - The
/remove-user
command was renamed to/remove
and the server's/remove
command is no longer exposed (#657). - Matterhorn now shows the team position and count in team list (#692).
- Matterhorn now falls back to UTC when it is unable to load local time zone data (#695).
- Matterhorn now has optional mouse support! Thanks to Hari Menon
(@phsmenon) for this work. From the User Guide: Matterhorn supports
mouse interaction with some UI elements. To enable mouse support, set
-
v50200.12.0 Changes
๐ New features:
- Matterhorn now supports multiple teams! This includes a number of UI
changes:
- Matterhorn no longer prompts for a team on startup.
- If the configuration file sets
team
, Matterhorn will attempt to honor that by selecting that as the active team on startup. If the configuration does not specify theteam
setting, the initially-selected team is chosen as the first team after sorting the team list alphabetically. - The window title now reflects the sum of all unread channels in all teams, rather than the number of unread channels in the current team.
- If the user is a member of more than one team, the list of teams
will be displayed at the top of the window with the active team
highlighted. Each team with unread channels will display the count
of unread channels next to the team name and teams with unread
channels will be highlighted. This change comes with a new theme
attribute,
currentTeam
, to style the selected team in the list. - The current team selection can be changed with new keybindings:
next-team
(default binding:C-Right
)prev-team
(default binding:C-Left
)
- The team list can be reordered manually. In the official web
client, the team list can be reordered by dragging and dropping
the team icons; in Matterhorn, this can be done by using two new
commands,
/move-team-left
and/move-team-right
, respectively. New keybindings to do the same thing were also added:move-current-team-left
(unbound by default)move-current-team-right
(unbound by default)
- The new
/rename-channel-url
command renames the current channel's URL name. This differs from the server command/rename
, which renames the current channel's display name. Renaming the URL name with this command is equivalent to changing the value of the "URL" field in the "Rename Channel" dialog box in the official web client. (thanks to Ajay Eeralla for this work)
Other improvements:
- The channel list now takes up the full window height. Previously the message editor and input preview were displayed across the entire screen; now those areas stop at the channel list, so the channel list gets a few more rows of space to display channels.
- Matterhorn now parses all incoming Markdown text with the Haskell
commonmark
library. Migrating tocommonmark
improved our support for many Markdown extensions and improved how Matterhorn handles some Markdown syntax. - The syntax highlighting XML files in
syntax/
were updated from version 0.10.0.3 of theskylighting
package.
- Matterhorn now supports multiple teams! This includes a number of UI
changes:
-
v50200.11.0 Changes
October 15, 2020๐ New features:
- Matterhorn now opens post links itself rather than invoking the
configured URL open command. This means that if a user obtains a link
to a post in the web client and pastes it into a message, Matterhorn
will detect it, and if the user chooses to open that link, Matterhorn
will switch to the post's channel and show the post. This change
comes a new theme attribute,
permalink
, that is used to style post permalinks. Post links with no labels appear as<post link>
; post links with labels are rendered with their labels. Post links also appear in the URL list accessed withC-o
, and they are opened by the message selection modeo
binding. - Message timestamp visibility can now be controlled with the
configuration setting
showMessageTimestamps
(default:True
) and can be toggled at runtime with the new/toggle-message-timestamps
command. - The channel list can now be displayed on either the left side of
the screen or the right. This is controlled with a new configuration
setting,
channelListOrientation
, set to eitherleft
(the default and previous behavior) orright
. - Matterhorn now supports strikethrough syntax in messages. This change
adds a new theme attribute,
markdownStrikethrough
, that is used to style strikethrough text. This change also adds support forstrikethrough
as a valid style specifier in theme customization files. Bear in mind that your terminal might not support strikethrough; for details, see the FAQ entry on strikethrough support. - Matterhorn now has improved handling for channel topics (headers)
with multiple lines of text. Previously Matterhorn displayed all
lines in a multi-line channel topic but replaced newlines with
spaces. That resulted in broken layouts for multi-line topics where
layout was important. Now it renders the topics as originally
intended with user control over how multi-line topics are displayed
in order to let the user control how the topic affects screen real
estate use.
- Added a new key event,
toggle-expanded-channel-topics
, to toggle whether channel topics show only their first line or all lines. - Added a new configuration setting,
showExpandedChannelTopics
, to set this behavior on startup (default:True
). - Added a new command,
/toggle-expanded-topics
, and a new default keybinding,F3
, to control this behavior at runtime.
- Added a new key event,
- Added a
/topic
command that opens an interactive topic editor when run with no arguments. The editor provides a live Markdown preview of the channel topic. As part of the UI for this feature, new theme attributes were added:button
andbutton.focused
for rendering unfocused and focused buttons, respectively. - Command autocompletion now queries the server for available commands and includes those in the command list. Server commands are also indicated as being provided by the server to help distinguish them from Matterhorn-specific commands.
Other changes:
- Channel selection mode (
C-g
) now displays entries more consistently with the normal channel sidebar, including:- Channel mention counts and visual styles
- The previous channel sigil (
<
) and first-unread channel sigil (~
) - Channel mute status (
(m)
) - Unread status and visual style
- When composing replies, Mattehorn now displays the threat root message of the thread being replied to, rather than the message the user selected for reply (#670). This is intended to be less surprising than the old behavior since showing the root post in the preview is consistent with the display of the post in the message list once it is posted, where the root post is shown above the reply.
- Matterhorn no longer considers external program output to constitute an error, instead only reporting external program errors on non-zero exit status (#665).
- Matterhorn now decorates all hyperlinks with angle brackets. This
change is intended to get around issues caused when a hyperlink label
has a style or color that prevents the normal hyperlink color from
being used, thus concealing the fact that it is a link. This makes
all links visible regardless of link label content. In particular,
links labeled
foo
now get rendered as<foo>
. Links with no labels also get decorated this way. - The total unread channel count is now included in the window title bar updates.
- The total unread channel count is now included in the channel list header.
- Long lines in code blocks with no syntax highlighting are now wrapped to improve readability.
- Command autocompletion now sorts command completions to prefer prefix matches first.
- Command autocomplete now makes only one request for the server command list per completion attempt.
- There is now a new
/shortcuts
command to stand in for server-provided version which did nothing in Matterhorn. - Message selection mode now remains active when:
- Opening message URLs (
C-s
/o
), - Exiting the message view window (
C-s
/v
), and - Exiting the emoji reaction list window (
C-s
/a
).
- Opening message URLs (
- The channel list now includes an unread indicator in the DM channel section header when any DM channels are unread.
- The visual style for channel selection match text now includes the underline style.
- All unknown websocket events are now logged rather than triggering messages to ask the user to report issues.
๐ Bug fixes:
- The URL list (
C-o
) now has a fixed header when the channel in question is a DM channel. - The URL list no longer treats URLs with the same target but different labels as duplicates.
- The message editor's multi-line toggle UI hint now looks up the active keybinding rather than hard-coding it.
- The channel sidebar's unread logic was improved (#655).
- Matterhorn now opens post links itself rather than invoking the
configured URL open command. This means that if a user obtains a link
to a post in the web client and pastes it into a message, Matterhorn
will detect it, and if the user chooses to open that link, Matterhorn
will switch to the post's channel and show the post. This change
comes a new theme attribute,
-
v50200.10.3 Changes
October 13, 2020SHA-256 checksums for Matterhorn 50200.10.3 matterhorn-50200.10.3-Darwin-x86_64.tar.bz2 7118993b457f49722b7fee0cae3121391f0e1a1fef9285581c27fce3ef202336 matterhorn-50200.10.3-centos-7-x86_64.tar.bz2 e8c3e06255ddff5c740b8a4921d29379ac1bc1831472534c9c90a2062721a28c matterhorn-50200.10.3-fedora-29-x86_64.tar.bz2 f7c89a2c3b72cdafad4fff7ba653b02b2a6d60e5cbe5eeedf743af93182db7f4 matterhorn-50200.10.3-ubuntu-18.04-bionic-x86_64.tar.bz2 9e479e84d9a40ca8affcfcb78bb099377f6e85818511f35bfca7b1ef6867644e matterhorn-50200.10.3-ubuntu-20.04-focal-x86_64.tar.bz2 84b81c3a6a2a14bd07a1c12603ab03a898ef69a4957c846dcabab67650cc8d7e
-
v50200.10.2 Changes
October 01, 2020SHA-256 checksums for Matterhorn 50200.10.2 matterhorn-50200.10.2-Darwin-x86_64.tar.bz2 cd54f4758eafe8babf58534d3fb0bfde7e01c930cf1539bbe4500b783a73710c matterhorn-50200.10.2-centos-7-x86_64.tar.bz2 2c79c053b111520efeb8fd808fb3bd608ef4026ff3c218859e9a0416d7db6760 matterhorn-50200.10.2-fedora-29-x86_64.tar.bz2 a6257cc28457ba0917e486c5b991e67be258f6e0f11dedd749ffb2046a495eeb matterhorn-50200.10.2-ubuntu-18.04-bionic-x86_64.tar.bz2 28f4aa560117c95f39af83363e054c2ee4ba8e439c6f74502563acd06610884c matterhorn-50200.10.2-ubuntu-20.04-focal-x86_64.tar.bz2 a63f5a4ef2e5040660d658b09c25c8b2a56e740c4f2bc3406a067277eb6e6572