Stefan Markovic 812b343776 🚧 [new module] Environment variables editor (#28722)
* Init EnvironmentVariables UI project

* Models
TitleBar
MainPage init
Icon

* User and system variables

* Profiles init

* XAML cleanup

* Missing ItemTemplate

* EditDialog

* ModuleInterface

* Signing and processes lists

* Installer

* spellcheck

* Fix ARM64 build and consolidate packages

* spellcheck2

* Fix installer

* Single instance. C# telemetry. Wait on PT pid

* ElevationHelper

* Add profile wip

* Init EnvironmentVariables UI project

* Models
TitleBar
MainPage init
Icon

* User and system variables

* Profiles init

* XAML cleanup

* Missing ItemTemplate

* EditDialog

* ModuleInterface

* Signing and processes lists

* Installer

* spellcheck

* Fix ARM64 build and consolidate packages

* spellcheck2

* Fix installer

* Single instance. C# telemetry. Wait on PT pid

* ElevationHelper

* Add profile wip

* show run as administrator in title (#28516)

* Environment Variables added to Run plugin (#28466)

* UI tweaks

* Remove style

* Add profile - init working

* Applied variables

* Read/Write profiles

* Fixes

* Add separator and fix loading profiles

* Only allow to edit System vars if running elevated

* Add tmp progress ring to show applying changes progress
Ignore not needed json fields

* Remove variable and profile logic

* Do not read data async
Update System and User variables on change

* Add isCorrectlyApplied()

* Sort variables in Applied variables

* WIP WndProc

* spellcheck

* Revert "WIP WndProc"

This reverts commit 0c0b6c67de.

* WHY CRASH???

* UI tweaks

* WIP modified state warning

* Add cancel button in dialogs

* Add buttons validations

* Set variables - fire and forget notify

* Revert "Revert "WIP WndProc""

This reverts commit 1b2306eeb7.

* Listen to WM_SETTINGSCHANGED
Add Infobar reload button

* spellcheck

* spellcheck again

* Fix build

* InfoBar runAsAdmin visibility

* Fix comment

* Confirm dialog when deleting variable
Fix add variable button when creating profile

* Edit profile

* Sort variables on Load

* Select existing variables on edit

* Add default variable

* Fix adding existing vars to profile

* update notice.md

* Handle PATH properly

* Add tooltips and fix dialogs text wrapping

* Fix applied values for duplicates
Fix add/eddit variable txt box validation

* Add horizontal scroll bar for applied values

* Fix duplicate variables handling
Fix user variable handling and preview

* spellcheck

* Try fix spellcheck

* Revert "spellcheck"

This reverts commit ee76231974.

* Revert "Try fix spellcheck"

This reverts commit dc8f04afb9.

* Fix path and duplicates conflict

* Fix PATH handling
Fix unapply on delete active variable
Fix ordering in applied variables

* Show variables as lists and add drag-to-reorder feature

* Only show specific variables as list
Update list in edit dialog on editing the value

* spellcheck

* Update GPO policy

* Add Edit and Remove variable buttons
Remove context menu

* Remove drag&drop when editing list variable and add buttons to move up/down

* Fix Edit profile dialog title

* Fix backup and restore variables when editing variable from applied profile

* Apply var to system WIP

* Tweaks

* Simplify edit variable logic

* Minor fixes

* Spellcheck

* Update src/modules/EnvironmentVariables/EnvironmentVariables/app.manifest

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* spellcheck 2

* Remove unneeded string

* Add more telemetry

* Do not allow adding existing variables with the same name into the profile

* Adding icon

* Fix the crash when opening existing variables dialog

* Update Settings and OOBE screenshots

* Fix crash when malformed profiles.json and jsonignore not needed properties

* Fix selecting duplicates in existing variables dialog

* Add user variable name limit (<255 chars)
Check if profile is applicable on apply
Show message if profile is not applicable

* XamlStyling

* Better Flyout positioning
Add Cancel button to the flyout

* Fix UI glitches by using ItemsControl (no virtualization)

* Fix spellcheck

* Fix XAML style

* Add horizontal scrollbar to applied variables

* Revert to ItemsRepeater

* Fix UI glitches by adding a decent minimum cache

* Fixing UI bugs

* Fix spellcheck

* Fix crash while trying to edit a User variable when there's no Parent
profile

* Fix issue overwriting backup var when you edit var on applied profile

* Fix nuking of variables when adding to applied profile

* Fix profile not being saved when deleting a variable

* Fix ValuesList empty crash, issues and no serialization

* fix spellcheck

* Allow in-line edit of list variables

* Fix xaml style

* Fix add profile variable cancel button logic

* Fix add profile variable cancel button logic - clean the list

* Bump VerticalCacheLength to 10

as in some cases UI glitch on expanding System variables was still present

* Fix profile Add variable button enable/disable logic

* Remove unneeded using

* Add to Dashboard

---------

Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Davide Giacometti <davide.giacometti@outlook.it>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2023-10-20 16:28:07 +02:00
2022-10-13 00:12:17 +03:00
2022-07-19 13:06:16 -07:00
2023-07-14 11:48:59 +02:00
2022-10-13 00:09:47 +03:00
2020-03-05 10:11:27 -08:00
2020-05-02 15:59:18 -07:00
2023-10-03 12:06:39 -07:00

Microsoft PowerToys

Hero image for Microsoft PowerToys

How to use PowerToys | Downloads & Release notes | Contributing to PowerToys | What's Happening | Roadmap

Build status

Architecture Solution (Main) Solution (Stable) Installer (Main)
x64 Build Status for Main Build Status for Stable Build Status Installer pipeline
ARM64 Build Status for Main Build Status for Main Build Status Installer pipeline

About

Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity. For more info on PowerToys overviews and how to use the utilities, or any other tools and resources for Windows development environments, head over to learn.microsoft.com!

Current utilities:
Always on Top PowerToys Awake Color Picker
Crop And Lock FancyZones File Explorer Add-ons
File Locksmith Hosts File Editor Image Resizer
Keyboard Manager Mouse utilities Mouse Without Borders
Peek Paste as Plain Text PowerRename
PowerToys Run Quick Accent Registry Preview
Screen Ruler Shortcut Guide Text Extractor
Video Conference Mute

Installing and running Microsoft PowerToys

Requirements

  • Windows 11 or Windows 10 version 2004 (code name 20H1 / build number 19041) or newer.
  • Our installer will install the following items:

Go to the Microsoft PowerToys GitHub releases page and click on Assets at the bottom to show the files available in the release. Please use the appropriate PowerToys installer that matches your machine's architecture and install scope. For most, it is x64 and per-user.

Description Filename sha256 hash
Per user - x64 PowerToysUserSetup-0.74.1-x64.exe 748BF7BA33913237D36D6F48E3839D0C8035967305137A17DEFF39D775735C81
Per user - ARM64 PowerToysUserSetup-0.74.1-arm64.exe F5DAA89A9CF3A2805E121085AFD056A890F241A170FAB5007AA58E2755C88C54
Machine wide - x64 PowerToysSetup-0.74.1-x64.exe 298C6F4E4391BDC06E128BED86A303C3300A68EAF754B4630AF7542C78C0944A
Machine wide - ARM64 PowerToysSetup-0.74.1-arm64.exe A65F3C300A48F9F81312B7FC7B306382CB87F591612D0CEC7E5C0E47E868904B

This is our preferred method.

Via Microsoft Store

Install from the Microsoft Store's PowerToys page. You must be using the new Microsoft Store which is available for both Windows 11 and Windows 10.

Via WinGet

Download PowerToys from WinGet. Updating PowerToys via winget will respect current PowerToys installation scope. To install PowerToys, run the following command from the command line / PowerShell:

User scope installer [default]

winget install Microsoft.PowerToys -s winget

Machine-wide scope installer

winget install --scope machine Microsoft.PowerToys -s winget

Other install methods

There are community driven install methods such as Chocolatey and Scoop. If these are your preferred install solutions, you can find the install instructions there.

Third-Party Run Plugins

There is a collection of third-party plugins created by the community that aren't distributed with PowerToys.

Contributing

This project welcomes contributions of all types. Besides coding features / bug fixes, other ways to assist include spec writing, design, documentation, and finding bugs. We are excited to work with the power user community to build a set of tools for helping you get the most out of Windows.

We ask that before you start work on a feature that you would like to contribute, please read our Contributor's Guide. We would be happy to work with you to figure out the best approach, provide guidance and mentorship throughout feature development, and help avoid any wasted or duplicate effort.

Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you grant us the rights to use your contribution and that you have permission to do so.

For guidance on developing for PowerToys, please read the developer docs for a detailed breakdown. This includes how to setup your computer to compile.

What's Happening

PowerToys Roadmap

Our prioritized roadmap of features and utilities that the core team is focusing on.

0.74 - September 2023 Update

In this release, we focused on stability and improvements.

Highlights

  • Upgraded to Windows App SDK 1.4.1, increasing stability of WinUI3 utilities. Thanks @dongle-the-gadget for starting the upgrade!
  • Text Extractor was upgraded to its version 2.0, with a new overlay, table mode and more Quality of Life improvements. Thanks @TheJoeFin!
  • Improved FancyZones stability, fixing some layout resets and improving handling of newly created windows on Windows 11.
  • Fixed many silent crashes that were reported to Watson and the user's event viewer.

General

  • Turning animations off in Windows Settings will now also turn them off in PowerToys.
  • Upgraded the Windows App SDK dependency to 1.4.1. Thanks @dongle-the-gadget for the original 1.4.0 upgrade!
  • Show in the thumbnail label and application titles when running as administrator. Thanks @davidegiacometti!
  • Upgraded the Win UI Community Toolkit dependency to 8.0. Thanks @niels9001!

Awake

  • Added down-sampled variants to the application's icon. Thanks @morriscurtis!

Color Picker

  • After adding a new color in the editor, the history will scroll the new color into view. Thanks @peerpalo!

Crop and Lock

  • Fixed a Crop and Lock crash that would occur when trying to reparent a window crashes the target application. An error message is shown instead.

FancyZones

  • Set the process and main thread priority to normal.
  • Fixed handling newly created windows on Windows 11.
  • Fixed scenarios where opening the FancyZones Editor would reset the layouts.

File Explorer add-ons

  • Optimized CPU usage for generating SVG thumbnails.
  • Improved handling of Gcode Thumbnails, including JPG and QOI formats. Thanks @pedrolamas!
  • Better handled errors when sending telemetry, which were causing reported crashes.
  • Fixed some thumbnails not being shown centered like before the optimization.

File Locksmith

  • Shows files opened by processes with PID greater than 65535. Thanks @poke30744!
  • Fixed a GDI object leak in the context menu which would crash Explorer.

Find My Mouse

Hosts File Editor

  • Ignore the default ACME sample entries in the hosts file. Thanks @davidegiacometti!
  • Improved save error handling and added better error messages. Thanks @davidegiacometti!
  • Corrected a check for an error when signaling the application to start as administrator.
  • Refactored the context menu. Thanks @davidegiacometti!
  • Fixed dialogs overlapping the title bar after the upgrade to Windows App SDK 1.4. Thanks @davidegiacometti!

Keyboard Manager

  • Distinguish between the regular minus key and the numpad minus key.

Mouse Without Borders

  • Fixed a crash when trying to restart the application.

Peek

  • Using Peek on HTML files will show a white background by default, similar to a browser's default behavior.
  • Fix a white flash on Dark theme when switching file and improved the development file preview detection and adjustments.

PowerRename

  • Fixed a crash caused by big counter values on the new enumeration method.

PowerToys Run

  • It's now possible to select which shell is used by the Shell plugin.
  • A combobox option type was added to the plugin options.
  • Fixed a bug in the Calculator plugin that was causing decimal numbers to be misinterpreted on locales where the dot (.) character isn't used as a decimal or digit separator.
  • Improved the Program plugin stability when it fails to load a program's thumbnail at startup.
  • The use of Pinyin for querying some plugins can now be turned on in Settings. Thanks @ChaseKnowlden!
  • Refactored option types for plugin and added number, string and composite types to be used in the future. Thanks @htcfreek!
  • Fixed the entry for searching for Windows updates in the Settings plugin. Thanks @htcfreek!

Quick Accent

  • The "All languages" character set is now calculated by programmatically querying the characters for every available language. Thanks @dannysummerlin!
  • Added é to the Norwegian and Swedish languages. Thanks @Aaron-Junker!
  • Added a runtime cache to the "All languages" character set, to only calculate accents once per key.

Registry Preview

  • Fixed focusing issues at startup.
  • Improved the data visualization to show data in a similar way to the Windows Registry Editor. Thanks @dillydylann!

Runner

  • Fixed hanging when a bug report was generated from the flyout. Thanks @davidegiacometti!

Settings

  • Improved the way the OOBE window reacts to Windows theme change.
  • Fixed an issue that made it impossible to change the "Switch between windows in the current zone" "Next window" shortcut for FancyZones.
  • Fixed a crash when entering a duplicate name for a color in the Color Picker page and improved clean up when cancelling a color edit. Thanks @davidegiacometti!

Text Extractor

  • Text Extractor 2.0, with a new overlay, table mode and more Quality of Life improvements. Thanks @TheJoeFin!

Documentation

Development

  • Fixed PowerToys Run DateTime plugin tests that were failing depending on locale, so that they can be run correctly on all dev machines.
  • Fixed PowerToys Run System plugin tests that were failing for certain network interfaces, so that they can be run correctly on all dev machines. Thanks @snickler!
  • Fixed a markdown bug on the GitHub /helped command.
  • Switched build pipelines to a new agent pool. Thanks @DHowett!
  • New .cs files created in Visual Studio get the header added automatically. Thanks @davidegiacometti!

What is being planned for version 0.75

For v0.75, we'll work on the items below:

  • Language selection

  • .NET 8 upgrade

  • Policy support for managing PowerToys Run plugins. Attention: A breaking change is planned (for 0.75), in which each plugin has to declare its identifier programmatically so that it can be controlled through GPO. For third-party plugin developers, please check https://github.com/microsoft/PowerToys/pull/27468 for more details.

  • New utility: Environment Variables Editor. Here's a Work in Progress preview:

Environment Variables Editor WIP

  • New Settings homepage. Here's a Work in Progress preview:

PowerToys Settings Dashboard WIP

  • Modernize and refresh the UX of PowerToys based on WPF. Here's Work in Progress previews for the modules "PowerToys Run" and "Color Picker":

PowerToys Run UI refresh WIP

ColorPicker UI refresh WIP

  • Stability / bug fixes

PowerToys Community

The PowerToys team is extremely grateful to have the support of an amazing active community. The work you do is incredibly important. PowerToys wouldnt be nearly what it is today without your help filing bugs, updating documentation, guiding the design, or writing features. We want to say thank you and take time to recognize your work. Month by month, you directly help make PowerToys a better piece of software.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct.

Privacy Statement

The application logs basic telemetry. Our Telemetry Data page (Coming Soon) has the trends from the telemetry. Please read the Microsoft privacy statement for more information.

Description
Microsoft PowerToys is a collection of utilities that help you customize Windows and streamline everyday tasks
Readme MIT 648 MiB
Languages
C# 42.3%
JavaScript 30.9%
C++ 25.2%
PowerShell 0.9%
C 0.6%