Skip to content
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

Implement an overflow design for status bar entries #6651

Open
Alphapage opened this issue May 23, 2016 · 14 comments
Open

Implement an overflow design for status bar entries #6651

Alphapage opened this issue May 23, 2016 · 14 comments
Labels
feature-request Request for new features or functionality ux User experience issues workbench-status Status bar
Milestone

Comments

@Alphapage
Copy link

Hello,

For now, when you add a lot of items to the statusbar via plugins, only first few items are displayed and the remaining items are hidden.

It would be great to have a dropdownlist which will show all those remaining items.

I hope such a feature could enhance vscode.

Thanks in advance for your comments.

@weinand weinand added the feature-request Request for new features or functionality label May 23, 2016
@bpasero bpasero added the ux User experience issues label May 23, 2016
@bpasero bpasero assigned stevencl and unassigned bpasero May 23, 2016
@bpasero
Copy link
Member

bpasero commented May 23, 2016

This probably qualifies for a UX review of the status bar first.

@bpasero bpasero changed the title Feature request: add dropdownlist when too much statusbar buttons Add dropdownlist when too much statusbar buttons Nov 16, 2017
@bpasero bpasero added layout General VS Code workbench layout issues workbench-status Status bar and removed workbench layout General VS Code workbench layout issues labels Nov 16, 2017
@isidorn isidorn added this to the Backlog milestone Nov 20, 2017
@bpasero bpasero removed this from the Backlog milestone Apr 26, 2018
@miguelsolorio miguelsolorio mentioned this issue Jan 9, 2019
33 tasks
@bpasero bpasero added this to the Backlog milestone Oct 24, 2019
@bpasero bpasero changed the title Add dropdownlist when too much statusbar buttons Implement an overflow design for status bar entries Nov 2, 2020
@alexreg
Copy link

alexreg commented Mar 2, 2021

This issue has been open for 5 years, wow! Do you plan to address it or not really?

@mayur-who
Copy link

is it fixed? or is there any workaround to this?

@bpasero bpasero added the *out-of-scope Posted issue is not in scope of VS Code label Oct 5, 2021
@alexreg
Copy link

alexreg commented Oct 5, 2021

Disappointing, considering this is a major UI defect.

@OleksandrKvl
Copy link

Wow, I didn't expect to find that this issue has been here for a 5 years. I understand that you might consider it to be not so critical but not for years. I use vscode for a C++ development, major contributors to my status bar are: SSH ip, git branch name, Debug (project name), CMake: [RelWithDebInfo]: Ready, Clang 13.0.0 x86_64-pc-linux-gnu, Build, build target name, debug target name. They depend on the underlying values and usually it's not possible to fit them on my 13' display. I believe that without this feature status bar is incomplete.

@barsdeveloper
Copy link

barsdeveloper commented Jan 11, 2022

Looks like I'm late to the party, anyway I want to comment on it. This issue is a major UX annoyance and the decision to close it is not really justified (at least give a precise reason why it won't be addressed). You already do that scroll X that someone else suggested, for the tabs bar. What is the reason you are not doing it also for the Status Bar. To me it looks like a simple change that would greatly benefit user experience. It is clear from the duplicates popping up periodically that this affects a lot of users. Please consider reopening the issue.

@alexreg
Copy link

alexreg commented Jan 11, 2022

Thanks for adding your voice. I don't know if there's a formal process to express our disagreement that this addressing this issue was postponed, or we just need more people to comment here?

@ToBoMi
Copy link

ToBoMi commented Feb 22, 2023

My status bar is filled now.
There are static extension statuses or buttons in the status bar. They are there and they stay there.

Now I trigger a process of one extension and I would like to see the status of that extension and its temporarily progress shown in the status bar. This background process vanishes after completion. I want to know that it is running.
For me a status that shows the progress of a background process of an extension (with a rotating circle arrow thing) has a higher priority than other entires in the status bar and should therefor be shown.
I suggest some kind of priorities of statuses that are given to such entries in the status bar.

Rezising my window larger than the screen is and moving it until I see the part of interest of the status shows all items and also the temporary entry.

@OleksandrKvl
Copy link

I think it should just be allowed to move status bar entries so that client can arrange them as they wish.

@barsdeveloper
Copy link

I don't think moving the entries can be done easily, what I don't understand is why they didn't think about implementing a horizontal scroll with the overlay scrollbar like they already do for tabs. This would solve the problem.

@ToBoMi
Copy link

ToBoMi commented Mar 2, 2023

Related question on stackoverflow

@vrn-sn
Copy link

vrn-sn commented Sep 1, 2023

I don't think moving the entries can be done easily, what I don't understand is why they didn't think about implementing a horizontal scroll with the overlay scrollbar like they already do for tabs. This would solve the problem.

@bpasero, is adding something small like scrolling functionality still out-of-scope? This issue originally proposed a drop-down list, but allowing horizontal scrolling instead seems a smaller-impact UX decision.

@Dexter0-0
Copy link

I came really late to the party thinking i could contribute to this but the issue seems to be left ignored for a few years by the developers even thou a scrollbar wouldn't be a big hassle to implement and would benefit a lot of developers.

@bpasero bpasero reopened this Sep 12, 2024
@bpasero bpasero removed the *out-of-scope Posted issue is not in scope of VS Code label Sep 12, 2024
@ylazy
Copy link

ylazy commented Oct 29, 2024

While waiting for an official fix, I did some hack with custom JS/CSS:

  • Use VsCode Action Buttons + Command Runner for more control over status bar items. Use icons instead of text wherever possible.
  • Decrease the item padding using custom CSS (see bellow)
  • Keep only the left items. Move the right items out of the status bar and hide them. Show/hide the right items when mouse over/out the status bar. Using custom CSS/JS (see bellow)

Before:
Image

After - On Roll Out:
Image

After - On Roll Over:
Image

The custom CSS:

.monaco-workbench .part.statusbar>.items-container>.statusbar-item>.statusbar-item-label
{
	padding: 0 3px !important;
}

.monaco-workbench .part.statusbar>.left-items
{
	justify-content: center;
}

.monaco-workbench .part.statusbar>.right-items
{
	justify-content: center;
	align-items: center;
	background-color: rgb(17, 17, 17);
	position: absolute;
	top: -20px;
	z-index: 999;
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
}

.monaco-workbench .part.statusbar
{
	justify-content: center;
}

The custom JS:

var initCheck = setInterval(onInit, 10);
var workbench_parts_statusbar, workbench_parts_statusbar_left, workbench_parts_statusbar_right;

function onInit()
{
	var workbench_parts_statusbar = document.getElementById("workbench.parts.statusbar");
	if (workbench_parts_statusbar)
	{
		clearInterval(initCheck);
		betterStatusBar();
	}
}

function betterStatusBar()
{
	workbench_parts_statusbar = document.getElementById("workbench.parts.statusbar");
	workbench_parts_statusbar_left = workbench_parts_statusbar.childNodes[0];
	workbench_parts_statusbar_right = workbench_parts_statusbar.childNodes[1];
	
	workbench_parts_statusbar_right.style.visibility = "hidden";
	
	workbench_parts_statusbar.addEventListener("mouseenter", onStatusBarOver);
	workbench_parts_statusbar.addEventListener("mouseleave", onStatusBarOut);
}

function onStatusBarOver()
{
	workbench_parts_statusbar_right.style.visibility = "visible";
}

function onStatusBarOut()
{
	workbench_parts_statusbar_right.style.visibility = "hidden";
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request Request for new features or functionality ux User experience issues workbench-status Status bar
Projects
None yet
Development

No branches or pull requests

14 participants