matterhorn-chat / matterhorn

A feature-rich Unix terminal client for the Mattermost chat system
BSD 3-Clause "New" or "Revised" License
1.05k stars 77 forks source link

auto hide no new message channel #830

Closed acelan closed 6 months ago

acelan commented 6 months ago

Is it possible to hide channels that there is no new message and the channel is not in favorite list? I have too many channels and there is no space on the left side bar for DM. Thanks.

jtdaugherty commented 6 months ago

HI @acelan, there is not a way to do that. There are keybindings to help navigate in those situations, in case you aren't aware: C-<arrow key> will scroll the channel list and M-a will switch to the next channel with unread messages, including DM channels. That can be useful to test whether there are off-screen unread channels. In addition, when mouse mode is enabled, the channel group headings can be clicked to collapse them (e.g. Public Channels) and the mouse can be used to interact with the channel list scroll bar.

setharnold commented 2 months ago

Hello Jonathan, any chance this feature request could be reconsidered?

I've got twenty channels that won't fit into my terminal and hiding the quiet ones would make it easier to spot if one of the twenty off-screen channels has activity. M-a is great once you know about an active channel, but if you never see it, you might neglect it for hours.

Thanks

jtdaugherty commented 2 months ago

Hi @setharnold.

any chance this feature request could be reconsidered?

In general, I'm a bit conflicted as to how to handle requests like this so I'll share my thoughts here.

The first reason is simply that I don't have a lot of time to work on Matterhorn these days, which means that I need to be judicious in how I spend time on it when I do have time. That usually goes toward fixing bugs and making releases to get those fixes out. That means that while I might want to satisfy requests that get made here, I often can't.

The second reason is that the terminal is inherently a tough place to show a UI because of limited space, and while I can definitely understand that features to deal with the problem described here would be helpful, I also need to think about a sane application design that strikes a balance between providing some of those features and also having them work together well. I've gotten a number of requests over time for dealing with the channel list specifically, and they aren't all compatible and sometimes only address specific person's situation and don't generalize. I want to do what I can to help, but to some extent, assuming no mouse interaction, this is going to be tough to manage.

As a general rule, I've tried to at least prioritize features that are also supported in the official web client. Sometimes those features don't make sense in a terminal environment or have to be implemented in unsatisfying ways, but sometimes they can work well. If I have time, I try to use the behavior of the official client as inspiration, partly because that's what users expect and also because the upstream developers and designers have already put a lot of energy into thinking about what will work well.

With that said, time truly is a limited resource for me on this project these days because the project has become feature complete enough that I've needed to move on to other priorities since this project was incubated in the context of the company where I work. I am still committed to maintaining it, but I can't maintain it at the level that I used to. That means that things will move more slowly, if at all, unless I get help from other contributors. I am happy to be available to help them understand the codebase and figure out how to tackle a feature, provided they already possess sufficient Haskell knowledge.

Now, with all that said, channel favorites are supported and show up in their own category. Other channel categories can be collapsed to free up space if mouse mode is enabled and the channel category is clicked. Wouldn't that help in these cases?

Perhaps I ought to think about how to support collapsing/expanding channel categories when mouse mode is disabled.

setharnold commented 2 months ago

@jtdaugherty thanks for an awesome reply. I can completely sympathize with the limited time. I don't ever wish to become a nuisance, please let me know if I'm approaching or crossing that line.

A few random points of reply:

Thanks

jtdaugherty commented 2 months ago

I don't ever wish to become a nuisance, please let me know if I'm approaching or crossing that line.

Nope, no worries at all - I wouldn't want people to hesitate to open issues or ask for things. I just can't promise that I will always be able to give the most satisfying response!

I only ever toggle on a mouse mode for a few seconds when I need it: it complicates copy-and-paste, which I use far more frequently than mouse features.

That's helpful to know; I definitely want Matterhorn to be as usable as possible without assuming mouse mode is enabled, too.

I'd be scared to hide some channels behind a collapsing function unless the section would automatically open when there is some traffic in one of the channels.

That makes sense to me, and I'd like to put some thought into how to deal with this. Making Matterhorn do this would raise some new questions that don't have obvious answers to me so it'll take some thinking.

we have thousands of channels, trying to re-find any specific one without a breadcrumb is pretty challenging; some are private channels that might be a challenge to rejoin

This sounds tough in general, and I guess I'm not sure we could ever get to the point where that situation was a total breeze with Matterhorn, but I understand the need to make it easier to deal with this somehow!