There are two ways that Matterhorn indicates this visually. Messages that are part of ongoing threads will be rendered with a vertical bar before the post's author. In addition, if the messages in a thread follow the thread's first post directly, they'll be rendered underneath the original post as follows:
user1: hello!
│ user2: hello to you, too!
But if the message is part of a thread that is interspersed with other activity in the channel, those messages will display a portion of the thread's original post above them, grayed out:
user1: first line of user1's original message...
│ user2: new message in thread
To view all messages in a thread by themselves in a dedicated window,
see the default t key binding in message selection mode (C-s by
default).
Matterhorn supports GitLab authentication indirectly. In order to use Matterhorn with GitLab authentication, see the Authentication section on Matterhorn details for use of session tokens.
Yes. See the Authentication section above.
Your terminal's terminfo settings may not expose the right capabilities
to draw strikethrough text. The necessary capabilities are smxx (begin
strikethrough) and rmxx (end strikethrough) and can be found by
looking at the output of infocmp -a.
To ensure that Matterhorn knows how to render strikethrough text for your terminal, you may need to modify your terminfo settings to advertise the right capabilities. The steps to do this are:
- Make a new terminfo file based on your current value of
TERM. For example, ifTERMisscreen-256color, then a good name isscreen-256color-strike.terminfo. Then add the capabilities to the file and be sure to setuseto the current value ofTERM:screen-256color-strike|screen with 256 colors and strikethrough, smxx=\E[9m, rmxx=\E[29m, use=screen-256color, - Then install the new terminfo profile with
tic -x screen-256color-strike.terminfo - Finally, run
matterhornwithTERMset toscreen-256color-strike.
If your terminal does not support strikethrough, we recommend
customizing the markdownStrikethrough theme attribute so that it has a
different color to distinguish it from normal text, e.g.,
[other]
markdownStrikethrough.fg = red
In ~/.config/matterhorn/theme.ini,
[other]
markdownEmph.style = [italic]
and in ~/.config/matterhorn/config.ini,
themeCustomizationFile: theme.ini
This is known to work on gnome-terminal version 3.32.2, VTE version
0.56.3; it may work for you, too. Many terminal emulators do not
support italics at all or without various hacks. Let us know what works
for you!
Most terminfo files for typical terminal configurations do not provide support for italicized text. If your terminal emulator supports italics, you must enable it in your terminfo database in order to use it in Matterhorn. For more information, see these links:
- http://www.nerdyweekly.com/posts/enable-italic-text-vim-tmux-gnome-terminal/
- https://medium.com/@dubistkomisch/how-to-actually-get-italics-and-true-colour-to-work-in-iterm-tmux-vim-9ebe55ebc2be
- https://github.com/tmux/tmux/blob/2.1/FAQ#L355-L383
I am seeing malformed characters or display corruption when I run matterhorn in my terminal. What could be causing this?
Some terminal emulators cannot handle the extra escaping that occurs
when the URL hyperlinking mode is enabled. Try setting hyperlinkUrls = False in your config.ini file.
At present Matterhorn does not reliably support graphical emoji due to the lack of consistent support for wide Unicode characters in various terminal emulators. Results may vary, and use of emoji characters may cause terminal rendering issues depending on the terminal emulator in use. However, Matterhorn offers a configuration workaround for this for specific characters that cause problems. See the "Configuring Wide Unicode Characters" section of the README for details.
By default, tmux's paste-buffer binding, prefix-], pastes buffer
text by replaying it as terminal input. This will cause unwanted
behavior when Matterhorn receives that text and sends out each input
line as a separate message. But tmux supports bracketed paste mode
to make a tmux paste a block of text as one Matterhorn message.
It can be enabled by changing the behavior of prefix-] in the Tmux
configuration:
unbind-key -T prefix ]
bind-key -T prefix ] paste-buffer -p
You might need to adjust your Nginx proxy settings. For context, see this potentially related report.
In many terminal emulators, some key and modifier combinations do not work at all or do not behave as expected. In these cases it will be necessary to configure Matterhorn to intepret the appropriate escape sequences in order to translate them into the desired key and modifier combinations.
To configure Matterhorn to support a particular key combination, some
steps must be followed. Here are the steps, using Control-Backspace as
the example key combination (which is commonly not supported):
- Determine the escape sequence that your terminal sends for the
desired key combination. This can usually be done by consulting
the terminal settings or by running
cat >/dev/null, pressing the desired key combination, and observing the escape sequence that is printed. For example, forControl-Backspaceon my terminal I get:This indicates that the sequence is$ cat >/dev/null ^[[3;5~\ESC[3;5~. - Create a file
~/.vty/configand add to it the linemap _ "\ESC[3;5~" KBS [MCtrl]. This configuration file is loaded by thevtylibrary, the library that Matterhorn uses to translate terminal input into key events. This configuration line tellsvtyto translate the input sequence\ESC[3;5~to theKBS(backspace) key with the modifier list[MCtrl](control) regardless of the value ofTERM(underscore). The list of valid keys and modifiers usable inmaplines can be found in the vty Haskell documentation. - Set up the desired event in
~/.config/matterhorn/config's[keybindings]section to be triggered byC-Backspace.
Another way to get the input byte sequence associated with your
keybinding is to run matterhorn with Vty debug logging enabled:
VTY_DEBUG_LOG=/tmp/matterhorn-keys-debug matterhorn
While matterhorn is running, the Vty debug log will contain output
about each received key combination like:
input bytes: "\b"
that will indicate what should go into the map entries in
~/.vty/config.
Please open a ticket to discuss support for any editing features that
you would like to see added. But please bear in mind that while we do
want Matterhorn's built-in text editor to provide a reasonable feature
set for editing messages, we do not intend to support all features
supported by other applications, and Matterhorn's editor is not
intended to provide the full feature set provided by readline even
though some of its features and behaviors are informed by readline.
This is also why we provide the ability to invoke an application of your
choosing to edit messages with M-k (invoke-editor).
The default bindings for switching teams may collide with bindings in the Mac OS settings (typically for switching screens). To address this you have two options:
- Unbind or change the Mac OS bindings in the System Preferences, or
- Configure Matterhorn to use different bindings.
To configure Matterhorn to use different bindings, you can add something like the following to your Matterhorn configuration file:
[keybindings]
prev-team = S-Left
next-team = S-RightSee /help keybindings for more information on how to configure
customized keybindings.