Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes/No (don't know - the point of profiles for me is to switch between different configurations of extensions which are exclusive to each other in the profiles) <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.93 (changed in this version !) OS Version: Windows 10 and Windows 11 (saw it on 2 computers) Steps to Reproduce: Settings gear symbol on lower left does not have a submenu to switch the profile anymore like in the picture below taken from the version before. new profile UI was activated in the prior version. The setting seems to be gone or I didn't find it anymore. This was awesome. I could just change it without another dialog opening. Would be great to have it back. !
It was removed because once a profile is associated to a workspace, switching profiles is not a common action. So, one can use the new profiles editor or the command (command pallette) to switch profiles. User Docs -
For me, switching profiles in a workspace was a common action. I work with monorepos and multiple customers where each customer has their own monorepo. I would reuse the profiles across monorepos for activities that are the same in each monorepo. So e.g. for customers with markdown documentation I have a markdown profile when editing this documentation. For monorepos that contain C# code, I would then switch to the C# profile to work on that. Note that while the activities are the same across monorepos, not each monorepo has content for all activities (otherwise I would just use one big profile with extensions and settings for all activities). So if there are activities A, B and C and monorepos foo and bar, foo would have activities A and C while bar would have B and C. This also allows changing a profile and have that change available in all monorepos. If the profiles are monorepo specific, it becomes harder to transfer a change for e.g. the C# activity to other profiles. I hope this will be reconsidered and at least a setting is provided to bring back the profile quick switcher.
Reopening this to consider it for discussion
Same issue here (as mentioned in duplicate )! I use VS Code for my research and switch between two profiles: one for coding tasks and another for LaTeX work (with a lighter theme, fewer or different extensions, etc.). Whenever I generate new results or need to update the Methods section of my paper after adjusting the code, I quickly switch profiles, navigate to my open LaTeX file, make the necessary changes, and then switch back to my coding profile. While it's not a huge deal to work with the new profile editor, I can see how things could get quite messy with multiple profiles. Also, I’m not entirely sure why a profile is now linked to a workspace. Isn’t the point of workspace settings to differentiate between various workspaces, while profiles are intended for different "users" working within the same workspace?
I didn't even notice it is tied to a workspace. I used the feature without workspaces except one. I switch the profile to get a set of extensions I wanna use. I was hoping for better performance if I streamlined my extensions and settings for the task at hand. Not the workspace. I'd then really appreciate the feature back also for non-workspaces and fast switching.
I think that switching profiles is more common than managing profiles. Thus, I'd also go back to this situation: Maybe we can rename "Profiles" to "Manage Profiles..." FYI
I like suggestion to use "Manage Profiles", I would not use the since Settings and Extensions do not use and it is a similar experience. Ideally if there is just the default profile, this would not be a submenu, but just one action. And it turns into a submenu once there are 2+ profiles. Btw Outlook also calls it Manage Profiles
I also use multiple profiles in a monorepo with many different file types, with different VSCode extensions per type - multiple programming languages, shell scripts, documentation files, etc., but I use the profiles as a way to reduce malware risk from a 3rd party extension downloading/running arbitrary binaries - by only having the needed extensions enabled for the current file type, I figure that gives more of a chance for Microsoft to catch an extension update that introduces malware before I have that specific extension enabled again. (Other items like adding extension permissions/sandboxing or the not-planned auto-switch-profile-based-on-language would also help, but in the absence of those, manual profile switching seems like the best chance to reduce the risk of extensions downloading/running arbitrary binaries on my system, presuming we aren't avoiding 3rd party extensions entirely), so profile switching is a common action for me and restoring fast access would be nice.
Also, at present in the command palette, "Profiles: Open _ Profile" is a top-level command which opens the profile in a new window, but "Profiles: Switch Profile" is a multi-step command (with the specific command selected (after "Switch Profile" is selected) which opens the profile in the current window. I more commonly switch profiles for the current window, not a new window, so my preference would be to reverse the one-step/multi-step commands, although I don't know which is more common for others.
I frequently open folders on disk in vscode to peruse and/or edit files. Maybe Python, maybe JS, maybe R, maybe something else. It was extremely handy to be able to quickly select the right profile for that folder. I strongly encourage you to bring this back. While it's not hard, per se, to switch via the command palette, sometimes you're just feeling, well, mousey, and don't want to move your hands over to the keyboard. Besides, there's such a thing as too much minimalism.

Discussion:
import { IBrowserWorkbenchEnvironmentService } from '../../../services/environment/browser/environmentService.js'; export const OpenProfileMenu = new MenuId('OpenProfile'); <ins> const ProfilesMenu = new MenuId('Profiles'); </ins> export class UserDataProfilesWorkbenchContribution extends Disposable implements IWorkbenchContribution {

} private registerActions(): void { <ins> this.registerProfileSubMenu(); </ins> this._register(this.registerManageProfilesAction()); this._register(this.registerSwitchProfileAction());

this.registerHelpAction(); } <ins> private registerProfileSubMenu(): void { const getProfilesTitle = () => { return localize('profiles', "Profile ({0})", this.userDataProfileService.currentProfile.name); }; MenuRegistry.appendMenuItem(MenuId.GlobalActivity, { get title() { return getProfilesTitle(); }, submenu: ProfilesMenu, group: '2_configuration', order: 1, when: HAS_PROFILES_CONTEXT }); MenuRegistry.appendMenuItem(MenuId.MenubarPreferencesMenu, { get title() { return getProfilesTitle(); }, submenu: ProfilesMenu, group: '2_configuration', order: 1, when: HAS_PROFILES_CONTEXT }); } </ins> private registerOpenProfileSubMenu(): void { MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, { title: localize('New Profile Window', "New Window with Profile"),

this.profilesDisposable.value = new DisposableStore(); for (const profile of this.userDataProfilesService.profiles) { if (!profile.isTransient) { <ins> this.profilesDisposable.value.add(this.registerProfileEntryAction(profile)); </ins> this.profilesDisposable.value.add(this.registerNewWindowAction(profile)); } } } <ins> private registerProfileEntryAction(profile: IUserDataProfile): IDisposable { const that = this; return registerAction2(class ProfileEntryAction extends Action2 { constructor() { super({ id: `workbench.profiles.actions.profileEntry.${profile.id}`, title: profile.name, toggled: ContextKeyExpr.equals(CURRENT_PROFILE_CONTEXT.key, profile.id), menu: [ { id: ProfilesMenu, group: '0_profiles', when: PROFILES_ENABLEMENT_CONTEXT, } ] }); } async run(accessor: ServicesAccessor) { if (that.userDataProfileService.currentProfile.id !== profile.id) { return that.userDataProfileManagementService.switchProfile(profile); } } }); } </ins> private registerNewWindowWithProfileAction(): IDisposable { return registerAction2(class NewWindowWithProfileAction extends Action2 { constructor() {

id: MenuId.GlobalActivity, group: '2_configuration', order: 1, <ins> when: HAS_PROFILES_CONTEXT.negate() </ins> }, { id: MenuId.MenubarPreferencesMenu, group: '2_configuration', order: 1, <ins> when: HAS_PROFILES_CONTEXT.negate() }, { id: ProfilesMenu, group: '1_manage', order: 1, </ins> }, ] });