material-shell
material-shell copied to clipboard
Optionally Move status area to top right
Is your feature request related to a problem? Please describe. I don't like that the status Menu is at the bottom left and I have a hard time getting used to it.
Describe the solution you'd like I would like to be able to have the status area at the top right.
Describe alternatives you've considered I didn't really think of alternatives, however I wondered if the whole panel layout could be made more flexible, e.g. allow to have one panel at the top, one at the bottom, move the status area to the top left, and such, although I don't have a specific layout in mind that I would prefer over the current one except for the change mentioned initially.
Hello,
I'm also interested by this idea.
Moreover, I have extensions that display better horizontally, I would prefer to have them on the top bar...
You should check my answer at https://github.com/material-shell/material-shell/issues/46#issuecomment-509296546
The only acceptable answer would be to be able to swap the left panel and the top panel but as explained at https://github.com/material-shell/material-shell/issues/133#issuecomment-544155538 it's would also need to swap the workflow accordingly (having horizontal workspace and vertical window switch).
That would mean a lot of work.
@PapyElGringo Thanks for the answer. But reading the comment you linked, I completely don't get your point TBH.
The only acceptable answer would be to be able to swap the left panel and the top panel
Why exactly? I'm fine with the panels, and just want the system tray to be moved. Both technically and from a workflow perspective, I don't see why the system tray being next to the vertical application categories is better than having it next to the horizontal application instances. I'm also not aware of any concept in the Material Design Guidelines that suggests this.
Regarding switching the panels or moving them and their content in general, I still think this would be nice to have at some point, and it should be up to the user to decide if that workflow is actually reasonable with the way they put things. I certainly realize and agree that making everything flexible is a huge amount of work, but I'm pretty sure people would find individual placements that are more intuitive to their individual workflow and not cancel out the idea as such.
I don't want to cancel any idea that could improve Material Shell and I'll be always glade to debate and discuss about them. But it's seem that my point isn't clear enough and I'll try to clarify it.
First it's indeed not a UI issue or incompatible with the Material Design guidelines but it's related to the UX. To continue we need to agree on the fact that an interface must reflect the state of system or a data model and provide related interaction in the more intelligible way possible.
As a System Shell Material Shell like the Gnome shell must reflect the state of the Linux System but since the Linux System state is very wide we make a selection of the system properties we want to display.
As for exemple the Gnome-Shell is structured as followed:
System
- Top Panel
-- Toggle Overview Action
-- [Current focused Application Actions]
-- Calendar
-- Status Area and system actions
[
- Active workspace
-- Windows Visible
]
or
[
- Overview
-- Workspaces list
--- Windows
...
]
And Material Shell:
System
- Left Panel
-- Toggle Overview Action
-- List of existing Workspaces
--- Preview of opened application
-- Status Area and system actions
-- Calendar
[
- Active workspace
-- Top Panel
--- List of workspace's opened Windows Or placeholders
--- Current Tiling Layout
-- Windows Visible
]
or
[
- Overview
...
]
And one notable thing is that the Top panel is related to the active workspace and to be even more clear :

Since the top panel reflect the state of a single workspace there is a top panel for each workspaces.
Moving the status area to the top panel would mean to either duplicate the the status area in every top panels (Which is impossible) or either regroup all the top panel in a single system wide top panel that would float above all the workspaces.
The other way would have to swap the workflow direction and having the top panel being the system panel and the left panel the workspace panel. Which would require an heavy changes on UI and UX.
Is that more clear that way?
A possible solution (and this needs to be fleshed out for sure) would be to move the system panel to the right side of the screen, and move the status area to the top of the system panel. That way, the compartmentalization of the panels is not violated, while still achieving the original goal of moving the status area to the top right.
There are a few things that may present issues with this potential solution:
- Depending on how many status icons there are, the workspace selector may be offset differently. Because some apps only create status when started, this could be inconsistent and not performant for mouse-heavy users.
- A potential solution to this problem could be fixing the status area to a certain height, and adding an overflow menu so it could expand when more icons are available. A settings page could be added with a priority system not unlike the one seen in the Windows taskbar icon settings, so certain icons could always be visible.
- The position of the layout selector and menu button may be unoptimal given their proximity to the status area.
- If the menu icon is moved, we would also need to deal with the mouse in top-left corner shortcut (either disable or move it)
- The layout may be unintuitive, however I believe the current layout should remain default.
In my case, it is not about system panel icons, but about extensions contents. I have extensions that take up horizontal space, like the "Places" button or the system monitor. However, I understand it is against the Material Shell guidelines to have such extensions. Probably my own workflow simply doesn't fit Material Shell :)
Perhaps if we consider the system panel to be a navigation rail, we can implement an expanded state where large horizontal status icons would be visible (see the Material's Reply example in the above page for an example). The question is: what would cause the panel to expand - a click action or a hover action?
Since the top panel reflect the state of a single workspace there is a top panel for each workspaces.
Moving the status area to the top panel would mean to either duplicate the the status area in every top panels (Which is impossible) or either regroup all the top panel in a single system wide top panel that would float above all the workspaces.
The other way would have to swap the workflow direction and having the top panel being the system panel and the left panel the workspace panel. Which would require an heavy changes on UI and UX.
Is that more clear that way?
Yes, thank you, that is indeed more clear, I get the issue.
I really appreciate this extension and the work involved in developing it. What would make it for usable for me is if we can put the left bar on the top and the top bar on the bottom. It seems this might be easier to do than moving only the status area, no?
I just pushed a new option to have the clock horizontal on the top panel. Does it ease the pain?
Horizontal clock feels visually nicer. However, it raises an issue: The calendar and clock are no longer connected. The current layout already breaks the spatial connection between the notifications (center top) and notifications tray (bottom left). So now the status area functionality is spread to three locations. Since it is optional, it is okay though.
I think it would be the best from UX perspective, if instead of moving just the clock to the top panel, the switch would revers the positions of the whelo bottom left area and the layout button on the top right. Having all that information in the top right corner would be more visually appealing, familiar and closer to default gnome experience. But it would be also much more wasteful use of space. And the idea of having to maintain the code for both of those layouts seems terrifying, so probably best not to try that before you get to that donation goal and can work full time on the project. And maybe have someone actively help in maintaining the code for the other layout.
So, very much nice to have feature, but imho it seems quite costly for the benefit it brings.
Keeping both workspaces and system tray on the left panel - forces me to create less amount of workspaces... Because when having about 10 workspaces - system tray doesn't fit screen anymore and it shifts down out of the screen borders :disappointed: ...
For my usage scenarios - when having a lot of workspaces and only 2-3 windows in each of them - I would prefer having more space for left panel AND less space for top panel - which can be achieved by swapping them.
I believe swapping of the panels only requires to swap also some shortcuts, specifically:
Focus next window<=>Focus next workspaceFocus previous window<=>Focus previous workspaceMove the current window to the left<=>Move the current window to upper workspaceMove the current window to the right<=>Move the current window to lower workspaceFocus App Launcher<=>Focus last workspace
what do you think? :sweat_smile:
Swapping the panels is not a goog idea, it because vertical panels are ill suited for displaying text. I think the current layout is quite good, only the system tray would benefit from the move to the top panel.
Would it be a possible solution to create a floating status area, set to always on top of both panels, which can be set to either horizontal or vertical mode?
Then the user can place it where they want: bottom left, or top right, or right of/below the panel if they need the full space for workspaces/windows.
is it not possible to just repeat the "status" area on each workspace in the top panel? I would really appreciate if the text elements have a horizontal panel (like places status indicator, openweather or status monitors).
Hi, is this issue still alive? I just started using material-shell and I would really love to expand the right corner with extension icons, that would make the workflow so much better.
Meaning, topbar: [application (workspace related) || extensions, clock (fixed)]
Or is this precisely the thing that cant be done code-wise for some reason?
best regards R
What @molen89 suggested would make Material Shell play nicely with extensions/applets that take a bit of horizontal space, like system-monitor-next or Workrave applet.