Change:
Testing I think we will soon turn command center on by default. What is the impact on then? I see we are only showing the full title in the hover now, but I wonder if we need another setting (?) so that users still can configure what we show in the command center? ! Or maybe we should find a way to show the even in the command center with ellipsis if overflowing. //cc
Seems reasonable to me
Enabling the command centre removes my custom window title, showing the full path of the currently focussed editor. I find this very useful especially when there are files with the same name but in different directories. Can't the command centre show the full custom window title (without having to hover over it)? Without this, I would permanently disable it.
We can say the default is different but a customisation is honoured
To verify enable command center configure and/or validate that any customization is picked up by the CC reset above settings validate that the CC uses a default
Any reason we wouldn't also apply this with the default setting? My worry is that when we eventually make command center on by default, the setting would basically not work until you change it? I think it looks good when enabled even with default setting: !
The idea is that the CC shows an affordance to do something, like "Search vscode" - we replaced "search" with the icon which watered this down a bit. The worry is that the more title-stuff we put here the less likely it is that folks understand this as affordance

Discussion:
override getTooltip() { // label: just workspace name and optional decorations const { prefix, suffix } = windowTitle.getTitleDecorations(); <del> let label = windowTitle.workspaceName; </del> <ins> let label = windowTitle.isCustomTitleFormat() ? windowTitle.getWindowTitle() : windowTitle.workspaceName; </ins> if (!label) { label = localize('label.dfl', "Search"); }

import { withNullAsUndefined } from 'vs/base/common/types'; import { getVirtualWorkspaceLocation } from 'vs/platform/workspace/common/virtualWorkspace'; <ins> const enum WindowSettingNames { titleSeparator = 'window.titleSeparator', title = 'window.title', } </ins> export class WindowTitle extends Disposable { private static readonly NLS_USER_IS_ADMIN = isWindows ? localize('userIsAdmin', "[Administrator]") : localize('userIsSudo', "[Superuser]");

} private onConfigurationChanged(event: IConfigurationChangeEvent): void { <del> if (event.affectsConfiguration('window.title') || event.affectsConfiguration('window.titleSeparator')) { </del> <ins> if (event.affectsConfiguration(WindowSettingNames.title) || event.affectsConfiguration(WindowSettingNames.titleSeparator)) { </ins> this.titleUpdater.schedule(); } }

} private doUpdateTitle(): void { <del> const title = this.getWindowTitle(); </del> <ins> const title = this.getFullWindowTitle(); </ins> if (title !== this.title) { // Always set the native window title to identify us properly to the OS let nativeTitle = title;

} } <del> private getWindowTitle(): string { let title = this.doGetWindowTitle() || this.productService.nameLong; </del> <ins> private getFullWindowTitle(): string { let title = this.getWindowTitle() || this.productService.nameLong; </ins> const { prefix, suffix } = this.getTitleDecorations(); if (prefix) { title = `${prefix} ${title}`;

* {dirty}: indicator * {separator}: conditional separator */ <del> private doGetWindowTitle(): string { </del> <ins> getWindowTitle(): string { </ins> const editor = this.editorService.activeEditor; const workspace = this.contextService.getWorkspace();

const folderPath = folder ? this.labelService.getUriLabel(folder.uri) : ''; const dirty = editor?.isDirty() && !editor.isSaving() ? WindowTitle.TITLE_DIRTY : ''; const appName = this.productService.nameLong; <del> const separator = this.configurationService.getValue<string>('window.titleSeparator'); const titleTemplate = this.configurationService.getValue<string>('window.title'); </del> <ins> const separator = this.configurationService.getValue<string>(WindowSettingNames.titleSeparator); const titleTemplate = this.configurationService.getValue<string>(WindowSettingNames.title); </ins> return template(titleTemplate, { activeEditorShort,

separator: { label: separator } }); } <ins> isCustomTitleFormat(): boolean { const title = this.configurationService.inspect<string>(WindowSettingNames.title); const titleSeparator = this.configurationService.inspect<string>(WindowSettingNames.titleSeparator); return title.value !== title.defaultValue || titleSeparator.value !== titleSeparator.defaultValue; } </ins> }