-
Notifications
You must be signed in to change notification settings - Fork 282
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Request] Configure items in statusbar #2496
Comments
This doesn't seem like it will get much attention anytime soon by looking at the 👍🏻 count 😅
I'm really surprised that this isn't the case by default. It's confusing for me even though I'm a VS Code user. It gets worse when I have to - currently - constantly switch between VS Code and Oni. The placement of the Github branch, problems ..etc bothers me too. Soooo, that might be enough motivation for me to try to tackle this myself soon-ish ;) I think going forward the status bar should be configurable, not just the Vim mode, but all/or most of the items. . You should be able to decide what to show and where to show it somehow. @CrossR / @bryphe would you mind sharing how you envision this? and maybe some pointers on where I should start looking if I got some time to implement it? |
A similar VS Code issue since 2017. I hope this one doesn't end up like it :) |
(Continuation from #3391)
|
I see what you mean now, thanks. I don't really see the value of showing other items alongside a notification tbh but maybe I'm missing something. In other words, I'd be just fine with hiding everything and showing the notification to make it simple. Another option would be to treat the notification banner just like any other status bar item. The user would decide where to show it. When shown, it takes a predefined width (which could also be a configuration). These are just some thoughts on the top of my head. I still need to think about this more and get more context. |
Umm, it could also just take the available space. If a user puts the item in the wrong position (e.g. between two items) it will be too small, so in that case, the fix will be to show every other item before the notification. E.g. "workbench.statusBar.items.start": ["mode", "git", "error-count", "...", "notification"] So if we take the gif above as an example, I would expect the yellow notification banner to take the space between the What do you think of that? |
I deleted a text about letting the user decide if they want to show the notification status bar item from the above comment since it's not relevant in that config. I think that will go in a different configuration e.g "workbench.statusBar.items.hidden": ["item1"] |
Awesome 👏🏻 I'm assuming the final version will only show the yellow background only around the notification item. Right?
Why do you think so? I think UX-wise it creates more focus for the end-user. Currently flashing the full status bar forces my eyes to scan the whole bar looking for changes before focusing on the message itself. If the popup shows more often I will probably get tired and distracted. If we have the notification on a limited space (as in, just like any other item like what you're doing above) + having the yellow background only around the notification item, IMHO I think that will be less stressful for the developer and sort of point my eyes immediately to the part that changed in the status bar (i.e. the notification message body itself). I'm no UX-expert though, so don't take my word for it :D |
Good point, right now I think it changes the background of the entire bar, but that can be changed. Although it still might be interesting the ability to hide the items when the notification appears...
Neither am I :D |
Well, if that's valuable for developers then we can have a flag like: "workbench.statusBar.notificationMode": "full-width", // or "auto" to take the available width - like above But in that case, it will be as simple as hiding everything and showing the notification banner because having a configuration for that might not be a good idea:
Also, out of curiosity, is that a behavior you've seen in another editor? |
That's a great idea. But it will make it less customizable because then you can not have items that do not change or the notification popup changes or all changes... For example this one is made by removing everything from the |
I'm not following 😅 . Can you elaborate a bit? The last gif is exactly what I want though, less moving parts and more focus 👍🏻 |
Yes, that's right. Let's take a step back though, what is it that you want to do when a notification is shown? Giving the yellow banner more space Or changing the position of items? If it's only about giving more space (in other words, hiding some elements) then how about instead of "workbench.statusBar.items.start": [ /* same as before */],
"workbench.statusBar.items.end": [ /* same as before */],
"workbench.statusBar.hideOnNotification": ["lindEndings", "identation"] That could be enough to achieve your goal with On the other hand, We can still achieve the An obvious limitation of |
More special values can be added to "workbench.statusBar.hideOnNotification": ["modeIndicator", "itemsEnd"] P.S. naming is hard, I'm just throwing random names here :D |
Needless to say, it could be the other way around too. As in, To reiterate, we use |
I don't quite get this one the items are in the same position they are in the same group of the notification pop up
Well the animation kinda is nice, and I personally think that it does make the UX a little better... |
For a short period as 1 second, I'm not sure but that's just my personal opinion and you don't have to agree.
To achieve the same exact status bar you show in this demo we need the followings: // The "notification" item needs to be at the very end. Otherwise, it will take the full width
"workbench.statusBar.items.start": ["modeIndicator", "notificationCount", "lineNumber", "error-count", "...", "notification"],
"workbench.statusBar.items.end":["...", "identation", "language"] ,
"workbench.statusBar.items.showOnNotification": ["modeIndicator", "notificationCount", "lineNumber", "error-count"] Would that be enough? By changing the position of the items I mean changing the position for example of the I hope that's clear. |
So after trying I don't think something this <View
?key
style={Styles.view(
Feature_Theme.Colors.StatusBar.background.from(theme),
yOffset,
)}>
<sectionGroup style={Styles.sectionGroup(background)}>
<section align=`FlexStart> startItems </section>
<sectionGroup style={Styles.sectionGroup(Feature_Theme.Colors.StatusBar.background.from(theme))}>
<section align=`FlexStart> notificationItemsStart </section>
<section align=`Center> notificationItemsCenter </section>
<section align=`FlexEnd> notificationItemsEnd </section>
</sectionGroup>
<section align=`FlexStart> endItems </section>
<notificationPopups />
</sectionGroup>
</View>; So even though I am forcing the |
So I did the one where it automatically moves the ones that can be hidden by the notification to the right section and I think it ended up striking the right balance between being able to change things around and easiness to configure "workbench.statusBar.items.start": [ "modeIndicator", "notificationCount", "macro", "leftItems", "diagnosticCount", "position", "git" ],
"workbench.statusBar.items.hideOnNotification": [ "macro", "leftItems", "git", "rightItems", "lineEndings", "indentation", "fileType" ],
"workbench.statusBar.items.end": [ "..." ], Maybe changing it to |
I didn't fully grasp the concept, even with the demo lol. Can you maybe update your fork so I could play with the feature and get how it feels?
I think so |
Maybe in a different branch so it doesn't interfere with your existing PR :D |
Sure 👍 |
It is really weird seeing the vim mode in the bottom right hand corner. It would be nice to be able to change the positioning of items in the statusbar or to have a boolean in the settings to have the vim mode on the left like vim.
The text was updated successfully, but these errors were encountered: