element-hq / element-web

A glossy Matrix collaboration client for the web.
https://element.io
GNU Affero General Public License v3.0
11.02k stars 1.96k forks source link

Option to disable Spaces bar #18898

Open BurnyBoi opened 3 years ago

BurnyBoi commented 3 years ago

Your use case

When using a vertical monitor or using Element in a vertical window, the Spaces bar on the left can take up a lot of unnecessary space. There is a way to disable the communities bar, but not this new Spaces one.

There should be a way to hide the bar. Once disabled, Spaces would either need to be accessed some other way or have the bar re-enabled when there is a need to access them.

Have you considered any alternatives?

Currently Spaces can be kept off and aren't used so for now I'm leaving it off but eventually this will be enabled for all.

Additional context

No response

aaronraimist commented 3 years ago

Related: https://github.com/vector-im/element-web/issues/8733

gdvine commented 2 years ago

Related: https://github.com/vector-im/element-web/issues/19191

cbs228 commented 2 years ago

What about optionally relocating the spaces bar next to the room directory button? Mockup:

mockup_move_spaces_button

Clicking the button would reveal available spaces.

If the option to "minimize spaces" is selected, it should probably imply that "Show all rooms in Home" is enabled.

odiferousmint commented 2 years ago

Currently Spaces can be kept off and aren't used so for now I'm leaving it off but eventually this will be enabled for all.

Yeah, I had a way to hide it (the fixed-width bar with 2 icons on the left) but this option is said to be deleted in the near future.

chris-aeviator commented 2 years ago

This would come in handy for everyone with tiling window managers. Another idea would be autohide (shown on hover, hier after x seconds )/disable/always show

BurnyBoi commented 2 years ago

Currently Spaces can be kept off and aren't used so for now I'm leaving it off but eventually this will be enabled for all.

Yeah, I had a way to hide it (the fixed-width bar with 2 icons on the left) but this option is said to be deleted in the near future.

For Element Web, you can also use the uBlock Origin extension to add a rule to hide the bar. This works well for now and spaces can still be accessed by links. i

That being said, I think the idea from cbs228 above makes a lot of sense to get quicker access to re-enabling it

jclulow commented 2 years ago

We just upgraded our deployment to a version of Element that enables Spaces for everyone (though we are not using spaces right now, and were not using Communities before) and this was an immediate complaint from users.

4nd3r commented 2 years ago

I had same experience - people don't want/need it. It would be useful for some users, if user can define own grouping (with drag'n'drop, like in Discord). For now I just added .mx_SpacePanel{display:none !important} to bundle.css.

gdvine commented 2 years ago

Hi 4nd3r, where can I find bundle.css on the macOS install?

4nd3r commented 2 years ago

I don't know, I use Element in browser.

gdvine commented 2 years ago

Does anyone know how default css can be edited for for Element Desktop in macOS?

t3chguy commented 2 years ago

Does anyone know how default css can be edited for for Element Desktop in macOS?

It can't really. You'd need to edit files inside the asar package. Just switch to Communities in Settings and then disable Community Filter Panel in Preferences.

gdvine commented 2 years ago

Just switch to Communities in Settings and then disable Community Filter Panel in Preferences.

Sorry, I can't follow. What does "switch to Communities in Settings" mean? In Settings > Preferences > Communities I only see "Display Communities Instead of Spaces"...

t3chguy commented 2 years ago

Display Communities Instead of Spaces

Yes, showing X instead of Y implies switching from X to Y.

gdvine commented 2 years ago

Yes, showing X instead of Y implies switching from X to Y.

Snarky, but thanks. It's here: Settings > Prefs > Display Communities instead of Spaces

bdefore commented 2 years ago

Until there's a preference for this, there's a hacky workaround for web users with uBlock Origin extension on. Right click in the Spaces area, select 'Block Element', then click 'Create' (to create a new record for a blocked DOM element). You may need to do it twice.

konomikitten commented 2 years ago

I just updated to Element Desktop v1.9.8 and now it seems the User menu has been moved into the spaces column, a change like that seems to indicate to me that having this column hidden in the future would now be more difficult because the spaces column now contains something that has nothing to do with spaces itself.

I personally do not find spaces useful, I find the extra amount of UI navigation just to read the rooms contained within spaces tedious and annoying. I'd like to see a way to disable spaces properly or at least make them far more useful than they are now.

aaronraimist commented 2 years ago

@konomikitten It looks like that has been taken care of in https://github.com/matrix-org/matrix-react-sdk/pull/7258

4nd3r commented 2 years ago

When this change finally lands, please make it configurable (in config.json) with UIFeature.spaces or some similar UI feature flags. Thanks.

t3chguy commented 2 years ago

All settings (vast majority) are configurable within the settingDefaults key

meichthys commented 2 years ago

All settings (vast majority) are configurable within the settingDefaults key

Is there a reference somewhere that shows the settings that are configurable, and their respective values?

RenWal commented 2 years ago

@meichthys https://github.com/vector-im/element-web/blob/develop/docs/config.md#ui-features

meichthys commented 2 years ago

@meichthys https://github.com/vector-im/element-web/blob/develop/docs/config.md#ui-features

Thanks, I did find that although I was mostly looking for the options that are configurable under the 'settingDefaults' Setting described in number 20 on that document.

t3chguy commented 2 years ago

@meichthys https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.tsx#L365-L885

meichthys commented 2 years ago

@meichthys https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.tsx#L365-L885

Perfect, thanks!

BurnyBoi commented 2 years ago

FYI, develop.element.io has now disabled communities, and this change was never merged in, so soon there will be no choice to hide the bar. Can this be merged before removing communities goes live? Those of us using vertical monitors would appreciate this!

t3chguy commented 2 years ago

Given the designer responsible for this area is off at the moment that will unfortunately not happen.

MonkeyBars3k commented 2 years ago

"Settings > Prefs > Display Communities instead of Spaces" has been removed in today's release, so now I don't know of a way to hide this large sidebar that unnecessarily takes up space (pun intended) for users not interested in the feature.

This is a UX downgrade for us. Does anyone know of a way to hide this thing on the desktop client?

ostwilkens commented 2 years ago

Today the Spaces bar popped up again, and I can't find a way to disable it. My current workaround is to use uBlock to hide the div.

Element is for me, since long ago, feature complete. What I am now missing is to disable features I don't need. Spaces and markdown come to mind.

meichthys commented 2 years ago

This is a UX downgrade for us. Does anyone know of a way to hide this thing on the desktop client?

It's not ideal and won't work for large deployments, but a quick hack is: Ctrl - Shift - I then search for mx_SpacePanel collapsed in the Elements pane then in the Styles sub-pane scroll to the bottom and click into the center box shown below and modify the first number to be 0. This seems to survive a restart of the app and also preserves the user provile badge. image

MonkeyBars3k commented 2 years ago

Thanks meichthys, but this doesn't survive app restart on my macOS install. Tried changing a few different CSS items and they didn't stick, either. Do you know of a way to ensure this on mac?

meichthys commented 2 years ago

Thanks meichthys, but this doesn't survive app restart on my macOS install. Tried changing a few different CSS items and they didn't stick, either. Do you know of a way to ensure this on mac?

Oo you're right. I thought i was restarting the app on Windows but it was actually still running in the system tray. I guess we don't have a way to make it survive a restart 😞

thany commented 2 years ago

Try this bit so you won't loose the profile button that also inexplicably moved to the new monstrosity bar:

.mx_LeftPanel_wrapper {
  flex-direction: columns;
}
.mx_LeftPanel_wrapper--user {
  flex-grow: 1;
}

As said, it doesn't survive a restart if you apply it through devtools (and frankly, regular users shouldn't have to be put through this, but instead new releases should be put through better testing procedures).

If you can find how to do it permanantly, please let us know.

wezm commented 2 years ago

I use Element on the web and use custom CSS to hide the sidebar permanently with Stylus. My userstyles for the Element instance look like this:

*[aria-label="Spaces"] {
    display: none;
}
gcp commented 2 years ago

That has the same problem in that it hides the profile button which you now need to access the Element settings. (If that would have worked, the Spaces sidebar could've just been zapped by uBlock Origin).

Those of us using vertical monitors would appreciate this!

If you're using multiple windows side by side this change is also a usability regression. It's a bit sad it was understood that this was going to break and things went live anyway 2 weeks later: https://github.com/vector-im/element-web/issues/18898#issuecomment-1079286699

BurnyBoi commented 2 years ago

For the time being, I've been using this CSS to make the spaces bar a bit more compact:

:root {
    --element-space-panel-collapsed-width: .5em;
    --element-space-panel-dim-left: calc(4.1em);
}

.mx_RoomHeader_buttons .mx_RoomHeader_videoCallButton,
.mx_RoomHeader_buttons .mx_RoomHeader_voiceCallButton,
.mx_MessageComposer_row .mx_MessageComposer_voiceMessage,
.mx_MessageComposer_row .mx_MessageComposer_stickers
{ display: none; }

.mx_SpaceCreateMenu_wrapper .mx_ContextualMenu_background {
    left: var(--element-space-panel-dim-left)!important;
}

#matrixchat .mx_SpacePanel.collapsed .mx_SpaceTreeLevel {
    padding: 0!important
}

#matrixchat .mx_SpacePanel.collapsed .mx_SpaceItem .mx_SpaceButton {
    padding: .2em 0!important
}

#matrixchat .mx_SpacePanel.collapsed .mx_SpaceButton,
#matrixchat .mx_SpacePanel.collapsed .mx_SpacePanel_toggleCollapse {
    margin-left: calc(16px - calc(var(--element-space-panel-collapsed-width) + .1em))!important;
    margin-right: var(--element-space-panel-collapsed-width);
}

#matrixchat .mx_SpacePanel.collapsed .mx_UserMenu {
    margin: 10px!important;
}
odiferousmint commented 2 years ago

It is very easy to get rid of stuff you do not need once you open the Developer Tools. The issue is making it persistent. Any ideas to achieve this on Linux? Most optimal way is preferred, i.e. without third-party application, if possible.

wezm commented 2 years ago

It is very easy to get rid of stuff you do not need once you open the Developer Tools. The issue is making it persistent. Any ideas to achieve this on Linux? Most optimal way is preferred, i.e. without third-party application, if possible.

I use Stylus on Linux (see my comment above

odiferousmint commented 2 years ago

It is very easy to get rid of stuff you do not need once you open the Developer Tools. The issue is making it persistent. Any ideas to achieve this on Linux? Most optimal way is preferred, i.e. without third-party application, if possible.

I use Stylus on Linux (see my comment above

I saw that. Is it supposed to work with the Electron app (Element Desktop)? I apologize, I forgot to mention that I was talking about it. You can open Developer Tools inside the Electron app as well, and it is easy to get rid of what you do not need, but making it persistent is less so.

wezm commented 2 years ago

Is it supposed to work with the Electron app (Element Desktop)?

No, it's for web browser (Firefox in my case).

odiferousmint commented 2 years ago

Is it supposed to work with the Electron app (Element Desktop)?

No, it's for web browser (Firefox in my case).

Yeah, that is what I thought. I do use a browser extension for such purposes so that would not be much of an issue, but the desktop app is. :/ I hope that someone knows a way.

thany commented 2 years ago

We shouldn't be hacking away like that. If users demand change, change must occur. Simple as that.

odiferousmint commented 2 years ago

We shouldn't be hacking away like that. If users demand change, change must occur. Simple as that.

Agreed. It should not even be much of a big deal to keep it as it ORIGINALLY was, or at least revert the commit that removed the setting which at the very least gave us the ability to have it the old way.

I personally do not care about Spaces. I have no clue why I should care about it. I care about People, and Rooms. If you add the ability to switch between accounts, then please, do not use a bar for that either, just let us click on the avatar which would drop down a menu that includes "Switch account" or something.

Additionally, well, this is a feature request, but it would be neat if we had plus two options: 1) completely hide the original / initial bar as well, 2) make it appear only when the cursor is nearby the edge. This feature is not so important; definitely not a priority.

Please someone who is not so busy keep us updated because I cannot keep up with all the tasks that I have to do, and I am sure many of us would appreciate it.

What is the current status on any of the mentioned stuff? After a new status update I hope the next one will be what we have always wanted. :)

t3chguy commented 2 years ago

Reverting that commit would result in bringing back communities and all the tech debt associated, which simply won't happen.

odiferousmint commented 2 years ago

Reverting that commit would result in bringing back communities and all the tech debt associated, which simply won't happen.

I suppose that is a huge commit or a set of commits then, right? What exactly is the difference between Communities and Spaces, and why is the latter preferred over the former? Any pointers?

t3chguy commented 2 years ago

Communities:

Spaces:

I suppose that is a huge commit or a set of commits then, right?

Yup and would break as other projects have dropped support for communities too

odiferousmint commented 2 years ago

Communities:

  • Centralised
  • Not part of the Matrix spec
  • Flat structure
  • Buggy
  • Doesn't reuse existing Matrix data structures

Spaces:

  • Opposite of all of those

I see. I am not sure what you mean by flat structure, but neither of those should be an issue to make Spaces act / seem / feel like Communities, right? We just want one bar at the left side (if not customizable) that can be re-sized and collapsed similarly to how the Communities one could be. This is all possible without undermining any of those points, is this correct?

Are we actually just waiting on the UI guy?

t3chguy commented 2 years ago

I am not sure what you mean by flat structure

Spaces can contain other Spaces

The communities bar could not be resized, it was a fixed size to the left of the room list.

BurnyBoi commented 2 years ago

True, that's why I always enabled the option to hide it. I just want that same option to hide this new bar. I have no problem with spaces being accessible by other means, but I don't need the bar taking up space all the time.

thany commented 2 years ago

Reverting that commit would result in bringing back communities and all the tech debt associated, which simply won't happen.

Shouldn't have put everything in a big giant commit then, ey? Something broke that worked before. That means a revert has to be performed straight away. End of story. This is just part of professional software development in general.

As a user, I don't care about tech debt. It's not part of the Spaces feature in the first place, but is (or should be) part of a different issue, with different commits associated to it. And to be brutally honest, as a user, I don't care about Spaces either. No amount of advantages anyone lists, will convince me, because I simply do not use it.

Also bear in mind there's no shame in having to revert functionality. It happens to the best of us. You should see it as an oppertunity to refine what you thought was already perfect, and to align it better with users' demands.