ivanstosic-janea db191b8b75 [New PowerToy] File Locksmith (#20930)
* Imported offline solution

* Make solution compile

* Add Windows sample, doesn't work?

* Added new project to implement the dll

* Remove unneeded header

* Implemented IUnknown part of ExplorerCommand

* Implemented IExplorerCommand methods

* Implemented ClassFactory

* Implemented DLL register/unregister

* Implemented other DLL exports, not working?

* Implemented IShellExtInit inferface

* Implemented IContextMenu, it works!

* Implement command data fetching

* Make sample project compile on VS 2022

* Add plan

* Implement Lib as separate project

* Implemented IPC, not tested

* Console UI project skeleton

* Implemented basic console UI

* Implemented piping, there are bugs

* Prototype works

* Remove old project

* Added GUI project skeleton

* Mitigate issue with WinUI3

* Added a control for displaying results

* Add button

* Implement core functions in lib project

* Call new library function from console main

* Implement showing results

* Improve UI

* Implemented subdirectory search

* Remove useless code

* Set window size

* UI adjustments

* Implement killing process

* Rename variable

* Add lib project to main solution

* Add Ext and GUI projects to solution

* Tweak packages for GUI project

* Add a settings page

* Add a few resource strings

* Add one more resources string

* VS keeps trying to correct this

* Add references to File Locksmith in /,github

* Implement some parts of FileLocksmithModule

* Change output directory

* Change target name and add to runner

* Add logger

* Started implementing settings backend

* Fix log folder

* Settings work

* Add some basic tracing

* Attempt at adding resources

* Remove junk files

* Added missing defines

* Replaced some constants with resources

Something's not working

* Move resources to the Ext project

* Remove experiment

* Add binaries for signing

* Improve tracing

* Remove old Settings calls

* Show something when there are no results

* Change window title

* Move computation to another thread, improve UX

* Increase font size for default text

* Remove entries for killed processes

* Show user name

* Remove nonrecursive implementation

* Implement back end for getting file names

* Show list of files, UI tweaks

* Remove useless includes

* Implement back end for getting full process path

* Dark title bar on dark themes

* Using Expander, other UI adjustments

* Show "No results" after killing all processes

* Show progress ring

* Update configuration mapping

* Revert "Update configuration mapping"

This reverts commit d8e13206f3c7de3c6dbf880299bfff3bf9f27a37.

* Fixed solution configuration, ARM64 should build

* Backend for refreshing

* Variable window size

* Add refresh button

* New WinUI3 C# project for FL

* Started porting functionality

* Add Interop project

* Move IPC to Ext project

* Ported native functions to Interop

* Ported finding processes

* Ported most of Main Window functionality

* Display paths of files

* Implement killing processes

* Use resource string for "End Task"

* Remove entries for terminated processes

* Show User name

* Set default window size

* Make the new UI the default

* Reading paths from stdin, completed port to C#

* Fix small bug

* Moving to MVVM

* Adding Labs

* Merge branch 'ivan/file-locksmith' of https://github.com/microsoft/PowerToys into ivan/file-locksmith

Removing one parent commit for cleaner history

Co-Authored-By: Niels Laute <niels.laute@live.nl>

* Reintroducing features

* Moving UI strings to resources file

* Restored functionality

* Add missing dlls

* Add FIle Locksmith to publish.cmd

* Rebase fixes

* Try updating nuget.config

* Fix copy-paste blunder

* Add File Locksmith UI for publishing

* Add .pubxml file in FileLocksmith

* Change build output folder

* Fix installer build issues

Remove old projects from solution so MSBuild doesn't build them.
Downgrade target framework to what most other projects are using.
Fix publishing profile and project runtimes.
Remove unused CsWinRT references.

* [CI] Add clear to nuget packages

* Fix module reference counting

* Fix nuget for release CI

* Fix version and signing

* Fix path for resources

* Fix incorrect results when running 2 instances

* Fix default nuget source

* Windows 10 icon and fallback for UI

* Code clean-up and spaces instead of tabs

* Add gif showcasing FL

* Add screenshot of File Locksmith for Settings

* Add new files to the installer

* Add OOBE page

* Showing selected paths in the header

* Tweak path list

* Added new, wider gif

* Add GPO

* Add some logs

* [CI]Get CommunityToolkit.Labs from BigPark feed

* [CI]Use azure package feed for Nuget in release

* [CI]Another try for the labs source

* Revert changes to feed

* Use RestoreAdditionalProjectSources

* Add tooltip to file list

* Change tooltip to not trim the lines

* Add Tips and tricks section mentioning elevated

* Add some more logs messages.

* Grammar fix

* Add to bug report tool

* Fix UI virtualization not working

* Disable virtualization to avoid crashes

* Get better virtualization

* Add dialog instead of tooltip to show list of items

* No results refresh icon is now a button too

* Use managed methods for handling processes

* Remove registry code from Ext.

* Support drives too

Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2022-10-28 14:51:21 +01:00
2022-10-13 00:12:17 +03:00
2022-07-19 13:06:16 -07: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
2022-10-13 00:09:47 +03:00
2022-10-04 20:17:45 -07:00
2020-07-17 14:45:18 -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
FancyZones File Explorer Add-ons Image Resizer
Keyboard Manager Mouse utilities PowerRename
PowerToys Run Quick Accent Screen Ruler
Shortcut Guide Text Extractor Video Conference Mute

Installing and running Microsoft PowerToys

Requirements

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

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 will be available for both Windows 11 and Windows 10.

Via WinGet (Preview)

Download PowerToys from WinGet. To install PowerToys, run the following command from the command line / PowerShell:

winget install 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, this will have the install instructions.

Contributing

This project welcomes contributions of all types. Help spec'ing, design, documentation, finding bugs are ways everyone can help on top of coding features / bug fixes. 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 will 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 have the right to, and actually do, grant us the rights to use your contribution.

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.63 - September 2022 Update

In this release, we focused on stability and improvement.

Highlights

  • QuickAccent contains a new setting to select a language. This should reduce the number of accented characters a user needs to pick from. Thanks @damienleroy!
  • Reduced installer file size (83 MB for 0.63.0 compared to 125 MB for 0.62.1) and drive storage use (587 MB for 0.63.0 compared to 817 MB for 0.62.1) by sharing the Windows App SDK, VC++ redistributable and PowerToys Interop runtime files between utilities. This is a step towards removing the UAC requirement on install. The next step is shipping .NET self-contained and shared between utilities.

Known issues

General

  • Fixed an issue that caused bug report generation to fail. (This was a hotfix for 0.62)
  • Updated the Windows App SDK runtimes to 1.1.5.

Always on Top

  • Fixed an issue causing the border to linger when moving a window between virtual desktops.
  • The minimum thickness for the borders is now 1. Thanks @unuing!
  • Borders were showing in Virtual Desktop thumbnails. These were removed.
  • Corrected the borders visuals to more closely follow the application borders.

Awake

  • Fixed utility exit logic to close all threads and avoid crashes. (This was a hotfix for 0.62)

Color Picker

  • Fixed utility exit logic to close all threads and avoid crashes. (This was a hotfix for 0.62)
  • Fixed initialization error that caused the mouse position to be incorrectly set.

FancyZones

  • Fixed FancyZones Editor exit logic to close all threads and avoid crashes. (This was a hotfix for 0.62)

File explorer add-ons

  • Updated the WebView 2 dependency to 1.0.1343.22. Thanks @Aaron-Junker!
  • Fixed preview of .reg files.

Image Resizer

  • Fixed a bug causing File Explorer to crash under some conditions when accessing the context menu.

PowerToys Run

  • Added support to opening Terminal windows in quake mode. Thanks @FWest98!
  • Fixed utility exit logic to close all threads and avoid crashes. (This was a hotfix for 0.62)
  • Improve the icon shown in the Program plugin for application execution aliases. Thanks @MikeBarker-MSFT!
  • Fix calls to the default browser when Firefox is installed from the Microsoft Store.
  • Fixed accessibility issue in which controls appended to the result entries weren't announced.
  • Search was improved and should now return results where the terms in the query appear at the end of the result.

Quick Accent

  • Improved the keyboard hooks performance. (This was a hotfix for 0.62)
  • Fixed a bug that was causing Quick Accent to interfere with Keyboard Manager. (This was a hotfix for 0.62)
  • Added the correct ß uppercase character. Thanks @Aaron-Junker!
  • Accent character selection should now wrap around. Thanks @wmentha!
  • Added language selection setting to reduce the number of accented characters shown. The available accented character sets are Currency, Czech, Dutch, French, Hungarian, Icelandic, Italian, Maori, Pinyin, Polish, Romanian, Slovakian, Spanish and Turkish. Thanks @damienleroy!

Screen Ruler

  • Improved UI/UX and settings descriptions.
  • Fixed utility exit logic to close all threads and avoid crashes. (This was a hotfix for 0.62)

Settings

  • UI icons updated. Thanks @Jay-o-Way!
  • Descriptions improvement and disambiguation. Thanks @Jay-o-Way!
  • Fixed checkbox margins and other design tweaks. Thanks @Jay-o-Way!

Text Extractor

  • Removed extra spaces when recognizing Chinese, Japanese or Korean languages. Thanks @TheJoeFin!
  • Fixed utility exit logic to close all threads and avoid crashes. (This was a hotfix for 0.62)
  • Fixed an issue where a selection would start on right-click.

Installer

  • Added logic to exit PowerToys on upgrade before trying to update .NET.
  • Updated the .NET dependency to 6.0.9.
  • Added clearer installation step names for the bootstrapper. Thanks @htcfreek and @Jay-o-Way!
  • Windows App SDK, VC++ redistributable and PowerToys Interop runtime files are now shared between utilities through hardlinks, reducing installation size.

Documentation

  • Fixed typos in Keyboard Manager documentation. Thanks @eltociear!
  • Replaced docs.microsoft.com links with learn.microsoft.com. Thanks @Aaron-Junker!

Development

  • Fixed a build error that was restricting developers to switch between configuration without first cleaning local build files.
  • C++ exception catches were corrected to be caught by reference to avoid unnecessary copy operations. Thanks @NN---!
  • General C# code clean up, format fixing and removal of unused code analysis suppressions.
  • Removed unnecessary muxc prefix from XAML files. Thanks @Jay-o-Way!
  • Re-enabled tests on our pipeline that depend on WebView2.
  • Windows 11 tier 1 context menu packages now contain the "Microsoft.PowerToys" prefix.

What is being planned for v0.64

For v0.64, we'll work on below:

  • Environment Variables Editor PowerToy
  • GPO policies for PowerToys
  • Utility to list which processes are using a file
  • Ship .NET self contained and shared between utilities
  • Hosts file editor, contributed by @davidegiacometti. Thank you!
  • Settings backup and restore, contributed by @jefflord. Thank you!
  • 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 over 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%