Closed nteodosio closed 1 year ago
Thanks for this suggestion!
I thought about taking this approach when I first implemented the message rendering logic. This approach can work really well as long as the user names are relatively short. However, it results in a lot of wasted space when user names get long, and Mattermost and Matterhorn support displaying users by their full names and nicknames as well. That means that taking this approach will lead to the "column" of user names being potentially 30 terminal cells wide or more, and all it takes is one user in the conversation to result in a layout where the message text has very little room to get wrapped in. That, combined with the fact that many users want to run Matterhorn in a relatively narrow terminal window, means that I am not confident that this would be an overall usability improvement. I'm sorry to say that, and I know that doesn't help much with the indentation, but I wanted to give that context.
Thanks for sharing your thoughts.
I believe the issue you describe is similar to long channel names. Would it be viable to solve it likewise, namely with a userNameWidth
variable?
I sometimes get lost when reading Matterhorn because of the multiple levels of indentations and the mix of reactions/attachments with text.
To address the former, I propose to left align messages and right align user names to a ruler column, similar to how the majority of IRC clients do (examples: 1, 2).
I know that this is more of a challenge in a protocol that has threading, reactions etc., but the following example could be doable.
Before:
After:
This example is just an idea.
I'd like to point out that I also squashed the code block in lines 3-4, but one can still identify them with colors, attributes etc.
Thank you for Matterhorn. It's a breeze of fresh air compared to the GUI desktop one.