microsoft / devhome

The new Dev Home experience for Windows!
https://aka.ms/devhomedocs
MIT License
3.56k stars 311 forks source link

Windows Advanced Settings - Feature Exploration! #1983

Closed joadoumie closed 5 months ago

joadoumie commented 9 months ago

Dev Home Feature Exploration: Advanced Windows Settings

Please Provide Feedback & Ideas!

Please let us know what you think about this feature by commenting on this issue! We'd love to hear your ideas and feedback! We will share out our list in the near future but want to hear from you first so we don't influence what is most useful for you.

Let us know:

If so, add a comment to the issue in the table format outlined below:

Setting Name Description How do you modify the setting today? Additional Notes
... ... ... ...

Overview

This issue outlines a suggested new Dev Home feature, Advanced Settings, that would give developers greater autonomy over their machine settings + behaviors, and provide quick access to adjust new/experimental Windows OS features that are centered around developer workflows, such as native File Explorer Version Control Integration.

This feature, along with the Apps & Packages feature #1984 , would allow users to quickly optimize, tweak, and set up their Windows machine to their ideal state.

The Problem

Currently, there are many settings/registry keys that developers desire to tweak that are either not accesible via the Windows Settings app and/or are difficult to discover throughout the OS. Users may have to resort to running scripts or manually changing registry keys to get their machine into their ideal state. Furthermore, there is not a single place for developers to discover and tweak new Windows features specific to developer workflows that are in development and provide feedback on them. This means that developers may not even be aware of features or settings that they can tweak to improve their workflows and optimize their productivity/machine performance. Finally, lots of developers have to search the web to find the best settings to tweak to optimize their machine for their specific use case -- there isn't a single place to find what settings are recommended by fellow developers.

Goals

# Goal
1 Give developers more control over their system settings and advanced bevhaviors
2 Help developers discover powerful settings that can improve their daily workflows & improve machine performance
3 Create a uniform UI experience for managing/customizing new developer experiences on Windows (e.g. Native File Explorer + Version Control integration) so we can rapidly iterate on new features/customizations
4 Work with the developer community to identify additional settings that are helpful to populate in the tool
5 Can be easily scripted and re-applied to new and/or existing machines

Non-Goals

# Non-Goals
1 This feature is not meant to replace existing settings that are found in the Windows Settings App
2 This feature is not meant to complicate the way in which developers currently tweak their machines
3 This feature is not meant to replace existing surfaces in Windows such as the 'For Developers' settings page in the Windows Settings App.

Design Mockups/Concepts

This section contains design concepts for the Advanced Settings feature. These concepts are not final - we'd love to hear your feedback on these concepts and any other ideas you may have for this feature (design and otherwise)!

Developer File Explorer Settings Mock Up Enable Win32 Long Paths - Search Mock Up

agpt8 commented 9 months ago

All of these features shown here would be very useful. Though, "Additional File Explorer" features is something that should be exposed that the OS level for all users, not just Dev. Even though you said that these are not meant to replace existing surfaces, I would like for you to work with the File Explorer/Settings team to expose those to the regular users. This includes the Win32 long paths option.

On the other hand, the other settings are nice but I would like to see having the option to choose the folder icon for repositories. Show the users what will be the default and give an option for them to change it if they want.

Icing on the cake would be to do it on each repository level basis. For example, a dev can assign their project logo as its folder icon for the repository in the explorer making it much easier to distinguish just by looking at the icon.

Again, working with the File Explorer team to expose this as an API option so IDEs and editors using the APIs to get the explorer contents would also be able to get that icon as well making it a much more cohesive experience.

For tagging, I would love to see option to bulk tags repositories instead of going repo by repo each time. And, in the tagging section itself, the folder icon I talked about would be useful! 😉 Showing the modified folder icon here makes for a cohesive experience!

I want to know, if after configuring all this, a developer removes Dev Home app, will the File Explorer enhancements, tagging, folder icon changes will remain or will be reversed to default explorer state? In other words, are these tied to Dev Home or is it just an interface to use these options?

As one of the goal says "Can be easily scripted and re-applied to new and/or existing machines", I dont see the option to import/export the configuration. I believe this is already on the roadmap but still want to highlight that this should be an option. Creating a configuration based on current machines configuration should be also given as an option. This is in tandem to my comment

As for the UX shown here, I find the UX shown in #1984 much better. The Repositories tab in the sidebar gets a dedicated space for adding/removing/modifying repositories. Apps and Packages already tells what it does. Though I am not sure if naming the Parent tab as Resources is fitting here.

Utilizing the new context menu in explorer to tag the folders as repositories would also be nice! Maybe make it in a way that when a user do that through context menu, give me a clean option to just tag it, or tag it and change its properties like folder icon, version control and more. A sub-context menu would be better here I guess.

XPower7125 commented 9 months ago

TBH it would be a nice thing. I would add some context menu utilities (take ownership/run CMD as admin here).

Harvester57 commented 9 months ago

Could you consider expanding the scope of the settings available to also include advanced security settings ? Something akin to what David Weston already presented on Twitter recently: https://twitter.com/dwizzzleMSFT/status/1698758645645983853

image

Stanzilla commented 9 months ago

Create a uniform UI experience for managing/customizing new developer experiences on Windows (e.g. Native File Explorer + Version Control integration) so we can rapidly iterate on new features/customizations

This would mean removing the existing ones from PowerToys

1 | This feature is not meant to replace existing settings that are found in the Windows Settings App 2 | This feature is not meant to complicate the way in which developers currently tweak their machines 3 | This feature is not meant to replace existing surfaces in Windows such as the 'For Developers' settings page in the Windows Settings App.

This won't add up. If dev home is a place to list and remove installed apps, it does duplicate functionality with the Windows Settings app. Why would you go there anymore if DH has the same features and more? Confusing.

It will complicate the way developers tweak their machines because now, in addition to the "For Developers" section in settings and PowerToys, you have a third place to check so if you want to do this right, you should replace it.

If you don't want to make everything more confusing, there needs to be a re-thinking of what PowerToys is, if it is supposed to keep the dev-targetted features, it should have all of them. If not, Dev Home should have them.

I know that the goal here is sidestepping the issue of the long OS shipping schedule and having DH as an updatable inbox app is really amazing for that but now PowerToys becomes a problem. You don't want to be in a situation where dev home is like "hey if you want even more cool stuff, just install this other thing as well".

Aside: Please remove the hamburger button from the navigation, it makes no sense on a Desktop OS and just takes space.

crutkas commented 9 months ago

@Stanzilla which PowerToys utility would this remove? There is no deep windows configuration system inside PowerToys

This would mean removing the existing ones from PowerToys

dhoehna commented 9 months ago

All of these features shown here would be very useful. Though, "Additional File Explorer" features is something that should be exposed that the OS level for all users, not just Dev. Even though you said that these are not meant to replace existing surfaces, I would like for you to work with the File Explorer/Settings team to expose those to the regular users. This includes the Win32 long paths option.

On the other hand, the other settings are nice but I would like to see having the option to choose the folder icon for repositories. Show the users what will be the default and give an option for them to change it if they want.

Icing on the cake would be to do it on each repository level basis. For example, a dev can assign their project logo as its folder icon for the repository in the explorer making it much easier to distinguish just by looking at the icon.

Again, working with the File Explorer team to expose this as an API option so IDEs and editors using the APIs to get the explorer contents would also be able to get that icon as well making it a much more cohesive experience.

For tagging, I would love to see option to bulk tags repositories instead of going repo by repo each time. And, in the tagging section itself, the folder icon I talked about would be useful! 😉 Showing the modified folder icon here makes for a cohesive experience!

I want to know, if after configuring all this, a developer removes Dev Home app, will the File Explorer enhancements, tagging, folder icon changes will remain or will be reversed to default explorer state? In other words, are these tied to Dev Home or is it just an interface to use these options?

As one of the goal says "Can be easily scripted and re-applied to new and/or existing machines", I dont see the option to import/export the configuration. I believe this is already on the roadmap but still want to highlight that this should be an option. Creating a configuration based on current machines configuration should be also given as an option. This is in tandem to my comment

As for the UX shown here, I find the UX shown in #1984 much better. The Repositories tab in the sidebar gets a dedicated space for adding/removing/modifying repositories. Apps and Packages already tells what it does. Though I am not sure if naming the Parent tab as Resources is fitting here.

Utilizing the new context menu in explorer to tag the folders as repositories would also be nice! Maybe make it in a way that when a user do that through context menu, give me a clean option to just tag it, or tag it and change its properties like folder icon, version control and more. A sub-context menu would be better here I guess.

+1 for long paths enabled.

Stanzilla commented 9 months ago

@Stanzilla which PowerToys utility would this remove? There is no deep windows configuration system inside PowerToys

To me, Host File Editor and Environment Variables tool are "dev targeted". The file explorer enhancement sections have overlap, it would feel weird to head to tool1 to do this enhancement and then tool2 to do the others?

  • For the apps & packages, the big difference is the ability to do batch processing, direct status and updating. WinGet provides a lot of this behavior via CLI

Yeah I know, and I really want that! But why not add that to the settings app?

Copying the image from Jordi on Twitter here because it's missing in the initial post:

image

That's two extra columns and extra items in the context menu (naive look at the UI only obviously) that could also be in the Settings app.

Also, just so it is very clear: I love that you guys are doing this. This was needed since forever and I'm really happy MS is finally picking up speed here with dev improvements.

crutkas commented 9 months ago

@Stanzilla this is why we created the move some powertoys issue in dev home repo, those utilities you called out actually directly were built for migrating into dev home. Incubated in powertoys for feature set and feedback loop.

They do have larger use outside of devs. I do want to cal that out.

ptfw commented 9 months ago

Please add an option to turn off this newer "Show More Options" that is now the Win11 default on the right click context menu. That is constantly getting in my way.

DavidXanatos commented 9 months ago

Could you consider expanding the scope of the settings available to also include advanced security settings ? Something akin to what David Weston already presented on Twitter recently: https://twitter.com/dwizzzleMSFT/status/1698758645645983853

This should be enhanced by providing easy access to some defender GPO's most notably the ability to prevent defender from taking any autonomous action i.e. never deleting/move/quarantine files it does not like, REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /v DisableRoutinelyTakingAction /t REG_DWORD /d 1 /f

It is IMHO not acceptable for software to mess with files which do not belong to it.

For security, denying access is enough, no need to damage security researchers sample collections.

soredake commented 9 months ago

Advanced options i want to :

MobSlicer152 commented 9 months ago

I have some ideas:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\ShellEx\ContextMenuHandlers\Open With] @={09799AFB-AD67-11d1-ABCD-00C04FC30936}


- Add open with for executables, there are a few tools such as System Informer's executable inspector, Visual Studio debugging, and reverse engineering programs that would be more convenient to use with this
- Maybe just a more advanced GUI to tweak things found in `HKEY_CLASSES_ROOT` in general
- Maybe some way to disable the warning about changing file extensions
Rarisma commented 9 months ago

This is cool and I like the way it's going and the concept but imo it should just be in the default settings menu not Dev home.

majkinetor commented 9 months ago

Can be easily scripted and re-applied to new and/or existing machines

This is the most important aspect for me.

IMO, the correct way to do this is to allow users to export settings as PowerShell script, the one that is designed to be tweaked additionally or used as a base for custom augmentations. GUI settings should be a frontend for script generator, and to the point where each individual setting could be copied as a script snippet. I always wished windows has this for all the settings, not only advanced ones. It would allow one to use GUI for exploration of settings and quickly get everything, or just the individual settings as scripts, to be used as is or further customized.

Any other kind of export that can't be tweaked or made dynamic with real programming language would be limited for power users. PowerShell is a natural fit for this purpose.

junioryono commented 9 months ago

Being able to save these settings to the cloud, just like VS Code settings!

DavidXanatos commented 9 months ago

Being able to save these settings to the cloud, just like VS Code settings!

Cloud is just sone one elses untrustworthy PC, please no cloud!!!

Bluemangoo commented 9 months ago

Being able to save these settings to the cloud, just like VS Code settings!

maybe just being able to export them and import somewhere else. of cource, import after confirmation.

majkinetor commented 9 months ago

Being able to save these settings to the cloud, just like VS Code settings!

Cloud is just sone one elses untrustworthy PC, please no cloud!!!

Option can't harm, you don't have to use it. I would certainly prefer to save it into git repository and version it, which would go nice with my proposal to be able to export it as PowerShell script.

pratnala commented 9 months ago

Source control folders could be automatically detected when .git or .svn is observed, correct? We shouldn't have to manually add such folders?

majkinetor commented 9 months ago

Create a uniform UI experience for managing/customizing new developer experiences on Windows This feature is not meant to replace existing settings that are found in the Windows Settings App This feature, along with the Apps & Packages feature #1984 , would allow users to quickly optimize, tweak, and set up their Windows machine to their ideal state.

I think this is half-baked and somewhat contradictory - "set up Windows machine to ideal state" requires more than tweaking advanced/power settings, it requires unified interface for managing all the settings. @Stanzilla also mentioned some of the related confusion.

Let me give one example. Ideal experience may include providing regional and language settings - apps may not even work correctly without setting those to correct values. Currently, we have Settings -> Region which is not considered advanced setting, yet it may be required for "ideal machine state". Currently, one has to resort to either manually setting it or running a custom script of any kind, which is error-prone. I do this after Windows installation for some of my environments:

Set-WinUserLanguageList 'en-US', 'sr-Latn-RS', 'sr-Cyrl-RS' -Force
Set-Culture 'sr-Latn-RS'
tzutil.exe /s "Central Europe Standard Time"

This is something configurable via Settings UI or Control Panel, but one can't export those settings as a script so he must create custom scripts, which is error-prone and requires scripting knowledge.

Contrary to that, if was able to export just this Settings page as a script, I could be able to cherry-pick my required configuration into a full initialization script that will create easily repeatable custom Windows environment, with script snippets that are officially maintained and thus universal source of correct scripting. Such export should work in multiple modes - export all settings, current page, non-defaults etc. in order to be able to easily manage different use cases.

There are several projects trying to do that in what looks like ad-hoc manner, like Sophia-Script-for-Windows, Blackbird, Debloat Windows 10 or even ShutUP10. While I appreciate the existence of such efforts, this is very hard to do correctly outside of Microsoft.

I understand that this is not meant to replace existing Windows Settings, but it could reimplement it for different target group where focus is in precision, automation and reproducibility rather than user friendlies and good looks.

CanePlayz commented 9 months ago

I'd love to see that, people provided some great ideas in the comments here, although I'm not 100% sure whether this should be in DevHome or just regular Windows settings. Either way though, I'd love these new settings. ❤️

dnguyen032123 commented 9 months ago

What about the ability to change the type/location/data of the .dmp files of certain apps? HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Error Reporting\LocalDumps\

HotCakeX commented 9 months ago

These facts make me think it's suitable to have these options in the Dev Home's settings rather than Windows settings.

P.S I love all the settings I see in the screenshots, they all seem very useful.

CanePlayz commented 9 months ago
  • These settings are targeted at developers only.
  • Windows is a general-purpose OS by default with the ability to be tuned for any specialized use case.
  • Dev Home is for developers.
  • Dev Home is an unremovable inbox app in Windows OS.

These facts make me think it's suitable to have these options in the Dev Home's settings rather than Windows settings.

P.S I love all the settings I see in the screenshots, they all seem very useful.

Fair point

gauravsingh90 commented 9 months ago

Feature request:

agpt8 commented 9 months ago

Feature request:

  • Option to change the default terminal, with dropdown options that enable us to install git bash etc. I believe this is currently possible via command line but is not a UI element.

  • Enable font ligatures on the terminal fonts if that doesn't already exist so we can use firacode etc. I dont know if this is already a feature/setting somewhere else.

Both of these are already present in the terminal app. Git bash is installed when you install git. And you can set Git bash as default shell in terminal.

For font ligatures, I believe this is automatically enabled in terminal when you use a compatible font.

Bluemangoo commented 9 months ago

image

Bluemangoo commented 9 months ago
Sw3d15h-F1s4 commented 9 months ago

Not sure if someone has already mentioned this or not, but I'd really like some way to edit the context menu across windows, or at the very least in the file explorer. There's the "new" win11 context menu (with the show more options button), and then there's the "old" context menu once you click show more options. It'd be wonderful if we could customize either of these menus easily, or at the very least delete items from the menu without having to deal with editing the registry. For example, if I right click on a folder, I have about 25 different options (with some having even more submenus) in the "old" context menu. Now, all of these buttons are useful to someone, but honestly I'd rather replace more than half of em with "Open in Terminal" and use cmd or wsl to do it. I'm sure someone else uses these options more regularly, that's why it could be configurable! This could be something to allow for some really helpful personalization. It would be amazing to have some kind of UI to edit these options, remove them, or add them back later. Not sure if this is impossible either.

CanePlayz commented 9 months ago

@Sw3d15h-F1s4 Great idea!

tmssngr commented 9 months ago

I'd love an option to get rid of all the non-drive shortcuts in the File Open/Save dialogs

2023-12-11 12_35_56-Select File
tmssngr commented 9 months ago

I don't care about the File Explorer options as I only use it one time to install a different file manager.

beneush commented 9 months ago

Always open as Administrator

FLY1NGSQU1RR3L commented 7 months ago

Developer Request: Developer-Language Feature

Problem: There is no standard method to choose the language for a specific developer tool or all developers tools on Windows. Using CLI tools as one example, the manual methods for setting a specific command prompt w/o changing the entire Windows display language, require registry hacks, manual settings changes (buried), and a reboot.

Proposed Solution:

  1. Developer advanced settings should have a Developer Language selection.
  2. v1 should make this standard that tools can query, with a language pick list in the advanced settings UI. Bonus: if you can just set "CMD" or "Powershell" to a specific language via the settings as a quick fix, that would be of immediate value.
  3. vNext could make this app-specific and let you set the language per app (similar to how a smartphones let you choose permissions/preferences on a per-app basis).
joadoumie commented 7 months ago

Create a uniform UI experience for managing/customizing new developer experiences on Windows This feature is not meant to replace existing settings that are found in the Windows Settings App This feature, along with the Apps & Packages feature #1984 , would allow users to quickly optimize, tweak, and set up their Windows machine to their ideal state.

I think this is half-baked and somewhat contradictory - "set up Windows machine to ideal state" requires more than tweaking advanced/power settings, it requires unified interface for managing all the settings. @Stanzilla also mentioned some of the related confusion.

Let me give one example. Ideal experience may include providing regional and language settings - apps may not even work correctly without setting those to correct values. Currently, we have Settings -> Region which is not considered advanced setting, yet it may be required for "ideal machine state". Currently, one has to resort to either manually setting it or running a custom script of any kind, which is error-prone. I do this after Windows installation for some of my environments:

Set-WinUserLanguageList 'en-US', 'sr-Latn-RS', 'sr-Cyrl-RS' -Force
Set-Culture 'sr-Latn-RS'
tzutil.exe /s "Central Europe Standard Time"

This is something configurable via Settings UI or Control Panel, but one can't export those settings as a script so he must create custom scripts, which is error-prone and requires scripting knowledge.

Contrary to that, if was able to export just this Settings page as a script, I could be able to cherry-pick my required configuration into a full initialization script that will create easily repeatable custom Windows environment, with script snippets that are officially maintained and thus universal source of correct scripting. Such export should work in multiple modes - export all settings, current page, non-defaults etc. in order to be able to easily manage different use cases.

There are several projects trying to do that in what looks like ad-hoc manner, like Sophia-Script-for-Windows, Blackbird, Debloat Windows 10 or even ShutUP10. While I appreciate the existence of such efforts, this is very hard to do correctly outside of Microsoft.

I understand that this is not meant to replace existing Windows Settings, but it could reimplement it for different target group where focus is in precision, automation and reproducibility rather than user friendlies and good looks.

This is great feedback. It could potentially be the case that while some settings are surfaced here in Dev Home, that whatever the underlying tech is to export those settings could be more broadly applied to Windows settings including the ones you are referring to here. Will noodle on this more!

majkinetor commented 7 months ago

@joadoumie, I am able to discuss this more if needed, my contact is available on my GH profile.

nieubank commented 7 months ago

I don't care about the File Explorer options as I only use it one time to install a different file manager.

Out of curiosity, what are the primary reasons you use an alternative file manager?

CanePlayz commented 7 months ago

I don't care about the File Explorer options as I only use it one time to install a different file manager.

Out of curiosity, what are the primary reasons you use an alternative file manager?

I know you didn't ask me, but I personally use Files because it looks more modern and fits more into the general Windows theme in my opinion. It also feels more cleaned up with options such as Drives or Cloud Storages in the navigation pane.

majkinetor commented 7 months ago

@nieubank , Files simply isn't efficient and feature rich. It's way better than Explorer (which doesn't even have tabs), but still lacking a lot.

  1. Double panel file managers feel more natural, copying stuff from A to B is a regular thing.
  2. There is no flat view to show files from all subfolders
  3. There is no multi-rename (apart from trivial)
  4. No filtering out files when typing, which prevents positioning and keyboard navigation over file hierarchy
  5. A lot of things that should be instant are not, like creating a new folder or file, running a terminal in the current folder etc.
  6. Search is suboptimal. Everything exists for decades.

Actually, I don't know any power user who uses Files/Explorer. Typically, such people use Total Commander or really great FOSS and cross-platform variant Double Commander.

tmssngr commented 7 months ago

I don't care about the File Explorer options as I only use it one time to install a different file manager.

Out of curiosity, what are the primary reasons you use an alternative file manager?

Efficient use: