* Added the inotifyPropertyChanged to all the properties and that stops the memory for shooting up
* some more inotify properties added
(cherry picked from commit 26fa05d9b661dadc5ab0257d540ab838a07c43a6)
* Revert "some more inotify properties added"
This reverts commit 845a94c9b2.
* Removed unnecessary inotifypropertychanged interfaces and cleaned up the code
* removed the ctrl+c from folder plugin
* removed unnecessary init
* Added unit test to check if PropertyChanged is called
* renamed var
* refactored the tests
* formatting and adding comments
* changed access modifier in test
* Used observable collection instead of a list
* clearing the observable collection instead of setting it to a new one
* Migrate theme manager to infrastructure and added it as input to public API instance
* Working event-delegate for PublicAPIInstance
* Theme aware UWP applications
* Theme aware program plugin
* Update query icon on theme change
* Theme aware calculator plugin
* Fix issue with query running before theme change
* Theme based changes in ImageLoader
* Removed ErrorIcon direct references and added references from ImageLoader
* Nit fixes
* Removed unnecessary TODO in UWP.cs
* Added preference to theme based icons
* Added IDisposable interfaces to unsubscribe events
* Clean termination of powertoys process.
* Fixed issue with run not responding to WM_CLOSE
* Fixed serialization error in pinyin and image cache
* Fixed merge conflict
* Fixed nit wrt to master
* Basic framework of clearing up of cache is working
* formatting
* removed the default argument of load
* fixed nit comment
* rewriting the PowerToys version
* Each storage file has an associated version file which helps decide whether or not to delete that file on loading
* removed unnecessary reference
* renamed file to StoragePowerToysVersionInfo
* adding log files
* Checking whether the version strings are null, if so, we would clear the cache
* Added filepath to log files to make it more informative
* fixed nit naming
* using lesser than to compare instead of portable version
Co-authored-by: Divyansh Srivastava <somm14divi@gmail.com>
* reducing storage of images
* Added task.run
* cleaned up code and added comments
* Renamed variable
* refactored code
* Removed task.run because it was leading to race conditions in the concurrent dictionary and it was taking only upto 10 ms for reordering the dictionary
* Added comments and fixed variable name
* Clean termination of powertoys process.
* Fixed issue with run not responding to WM_CLOSE
* Fixed serialization error in pinyin and image cache
* Fixed merge conflict
* Fixed nit wrt to master
* Fixed undeterministic behaviour of Environment.Exit function
* Update timing for terminate process
* Added extended key flag to more keys
* Add test for extended key flag
* Move shlwapi.lib reference
* Added shcore ref
* Fixed pipeline incompatibility
* Fixed lib declaration in common
* Fixed formatting
* Remove unused statements
* removed another statement
Error CS0436 The type 'ActionKeywords' in 'C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\ActionKeywords.xaml.cs' conflicts with the imported type 'ActionKeywords' in 'Wox, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Using the type defined in 'C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\ActionKeywords.xaml.cs'. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\ActionKeywords.xaml 7 Active
Severity Code Description Project File Line Suppression State
Warning CA1060 Move pinvokes to native methods class PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\App.xaml.cs 24 Active
Warning CA1812 ReportWindow is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static members, make it static (Shared in Visual Basic). PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\ReportWindow.xaml.cs 15 Active
Warning CA1307 The behavior of 'string.IndexOf(string)' could vary based on the current user's locale settings. Replace this call in 'PowerLauncher.MainWindow.ListView_FirstItem(string)' with a call to 'string.IndexOf(string, System.StringComparison)'. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\MainWindow.xaml.cs 269 Active
Severity Code Description Project File Line Suppression State
Warning CA1823 Unused field '_progressBarStoryboard'. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\MainWindow.xaml.cs 27 Active
Severity Code Description Project File Line Suppression State
Warning CA2007 Consider calling ConfigureAwait on the awaited task PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\MainWindow.xaml.cs 305 Active
Warning CA1801 Parameter text of method DelayedCheck is never used. Remove the parameter or use it in the method body. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\MainWindow.xaml.cs 303 Active
Warning CA1820 Test for empty strings using 'string.Length' property or 'string.IsNullOrEmpty' method instead of an Equality check. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\MainWindow.xaml.cs 291 Active
Warning CA1031 Modify '.ctor' to catch a more specific allowed exception type, or rethrow the exception. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\SettingsWatcher.cs 33 Active
Settings.json is locked by the settings application and throws a system IO Exception. This should be syncronized with the settings application, but for now I'm just fixing the exception to be more specific and not hide unexpected exceptions.
System.IO.IOException: 'The process cannot access the file 'C:\Users\ryanbod\AppData\Local\Microsoft\PowerToys\PowerToys Run\settings.json' because it is being used by another process.'
Severity Code Description Project File Line Suppression State
Warning CA1031 Modify 'OverloadSettings' to catch a more specific allowed exception type, or rethrow the exception. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\SettingsWatcher.cs 76 Active
Severity Code Description Project File Line Suppression State
Warning CA1822 Member 'ConvertHotkey' does not access instance data and can be marked as static PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\SettingsWatcher.cs 85 Active
Severity Code Description Project File Line Suppression State
Warning CA1822 Member 'WaitForPowerToysRunner' does not access instance data and can be marked as static PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\App.xaml.cs 130 Active
Severity Code Description Project File Line Suppression State
Warning CA1401 P/Invoke method 'OpenProcess' should not be visible PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\App.xaml.cs 125 Active
Warning CA1806 Main calls TryParse but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\App.xaml.cs 45 Active
Warning CA1062 In externally visible method 'void App.Main(string[] args)', validate parameter 'args' is non-null before using it. If appropriate, throw an ArgumentNullException when the argument is null or add a Code Contract precondition asserting non-null argument. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\App.xaml.cs
Warning CA1001 Type 'MainWindow' owns disposable field(s) '_firstDeleteTimer' but is not disposable PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\MainWindow.xaml.cs
Warning CA1816 Change App.Dispose() to call GC.SuppressFinalize(object). This will prevent derived types that introduce a finalizer from needing to re-implement 'IDisposable' to call it. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\App.xaml.cs
* Search for programs in the path env variable
* removing list of disabled programs
* Added env variable string to classify apps
* reverted the fullpath change
* removing full paths while calculating dups
* removed dups
* removed debugging code
* Renamed to run command
* Added condition to filter run commands unless there is an exact match
* renamed occurances to RUN COMMAND
* localized the subtitle - Run command
* Added tests
* add fullpath back to hash calculation
* renamed the function
* Added support to index desktop app
* Fixed dedup for url files
* Added internet shortcut scheme for epic games
* Added test for internet shortcut dedup
* Updated hostname for steam game
* save general settings to file upon launch
* ImageResizer: Added flags to disable and hide extra boxes
Co-authored-by: Lavius Motileng <laviusmotileng-ms>
* Added functionality to not display hidden files
* Added interfaces for seperating db layer
* Updated variable naming and refactored Database connection class
* Added tests for WindowsSearchAPI class
* Fixed nit with braces
* Added function to test that all connections from database are closed
* Move window into last known position on active work area (if possible)
* Refactor code to avoid double checks
* Address PR comments
* Perform all HWND checks at one place
* Improve handling of active/primary work area in app zone history
* Address PR comments: naming, arguments checks
* Rename some functions to increase readability
* Implement special handling in 2+ monitor scenario
* Minor naming change
* Simplify
* Improve readability
* Remove blank line
* Don't move away from secondary monitor if there is no app zone history
* Update comment
* FancyZonesEditor should not be zoned
* Preserve width and height (if possible) when opening on active monitor
* Maintain w/h whenever possible
* Remove scaling, add window coordinates on active monitor top-left corner
* If there is no app zone history on secondary screen, fallback to default windows behavior.
* Fix capturing group bug when Match All Occurrences is not checked
* Capture groups are now available when Match All Occurences option is not selected
* Bug fix when capture group is indicated with leading zeros. $01 should be considered as $1 etc
* Use flags in regex_replace() when Match All Occurences is not selected
Now the behaviour is consistent with how regex works when Match All Occurences is selected.
* Add workaround for Japanese IME Caps Lock issue
* Changed tweak to reset modifier key rather than Caps Lock
* added tests
* Fixed test comment
* Moved environment initialization in KBM tests to TEST_METHOD_INITIALIZE
* Search shows up steam games
* Formatting
* Filtering only those steam shortcuts which run an application
* Using equals instead of ==
* PWAs should not show up when searching for the main app
* Modified the subtitle to say progressive web application
* renamed to web application
* To search for web applications for all chromium based browsers
* Renamed it to WebApplication
* Added unit tests and refactored code
* made string global const
* Added localization tags
* Added a separate function for localization as the IPublic API was not available to all
* Removed unnecessary references and variables
* Update src/modules/launcher/Plugins/Microsoft.Plugin.Program/Languages/de.xaml
Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
* Added enum for application types
Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
* Add test proj, refactor proj with filters, and move single remap function to a separate header
* Moved all methods to header files
* remove more unused commented code
* Reverted sln file
* Fixed sln file
* Added interface wrapping SendInput calls
* fixed formatting
* Created test mock class
* Added keyboard input logic
* Fixed compilation errors and added nuget reference to CppWinRT
* Added tests for single key remapping
* Refactored code for adding shortcut remap tests
* Separated test classes
* Fixed tests in release mode
* Added more tests
* Resolved comments
* [Launcher/Settings] Low Level Keyboard Hooks
* [Run] LowLevel Keyboard Hook for Hotkeys
* Prevent shortcuts from auto repeating when keeping the keys pressed down
* first adjustment to wiki move
* Image Resizer and deleting imgs for FZ
* updating stuff to aka links
* updating app to leverage aka links
* moving files to wiki
* KBM adjustment
* updating
* getting PT Run moved over
* Shortcut guide and fixing launcher's readme text
* Update README.md
* img for shortcut guide moved to wiki
* updated setting img to be aka link as well
* Restart explorer.exe programatically after successful update
* Move RestartManager related code into common
* Add newline at the end of files
* Note that explorer.exe should not be localized string
* Search shows up steam games
* Formatting
* Filtering only those steam shortcuts which run an application
* Using equals instead of ==
* Case change in Internet shortcut
* Initial work, not tested
* Forgot the most important part
* Use target argument instead of hardcoded string
* Removed old way of running Launcher
* Completed rebase, updated some code
* Added fix for UWP icons not showing up
* updated comment and reversed the list of target sizes
* find the icon closest in size to the appIcon size
* Remove nlog reference that was added by mistake
* Add skip to currently invoked shortcut code - should change no behavior
* Fixed Alt tab issue
* Added comment
* Added step to check if original shortcut action key should be pressed
* Fix number of cases in comment
* Removed Wox Theme Manager
* Added Light and dark theme and template for high contrast theme
* Updated themeManager to remove strings
* Fixed issue with high contrast theme not being applied
* Fixed formatting
* Updated MSI to include dll for Mahapps and controlzex
* Added support for multiple high contrast themes
* Remove app zone history belonging to deleted virtual desktop.
* Implement support fancy zones app zone history on multiple desktops.
* Break when device id is located to avoid unnecessary loop iterations.
* Fix failing unit tests after JSONHelpers API changes.
* Use valid UUIDs in json helper unit tests.
* User properly formated test data in app zone history unit tests.
* Don't delete entire app history when moving out of zone on one desktop.
* added error handling for FZ Hotkeys
* moved hint to hot key control text
* updated icon size 16px
* updated styling and fixed typos
* fixed typo
* moved text to string resource
Co-authored-by: Lavius Motileng <laviusmotileng-ms>
Connect Wox's existing "ignore hotkeys in fullscreen mode" setting to PowerLauncher and the PowerToys settings UI.
This allows PowerLauncher to ignore hotkeys if any application is currently in fullscreen mode, whether it's real exclusive fullscreen or borderless windowed mode. This applies to things like fullscreen games, video and presentations but not maximized windows.
* reverted the dedup code, file explorer shows up but so do duplicates
* Fixed file explorer and dedup
* Formatting
* Added tests for all the cases
* Formatting
* Tests
* take name and exe into consideration while calculating hash
* unique primes while calculating hash code
Microsoft changed the name of Fabric UI to Fluent UI. Updated title and URL (which still links to the same page, just with a direct link instead of a redirect).
* Basic WPF searchbox working
* Updated key navigation and removed coldstart for searhbox
* refactored and added code back in commented
* Removed XAML Island references
* Basic searchbox+listview working
* Getting a bit more back
* got color there
* Result list bit better now
* Added image loader for WPF Image
* Partially got the context menus rendering again
* adjusting coldstart to load, control will load with main form
* getting context menus back
* mouse over works now
* Click now works, started to remove Win.XAML references
* being a bit more forcusful on focus
* Shadow text is not aligned
* fixing focus if listbox was used
* small tweak to fix shadow text
* inputs don't work but gotta figure out why. commenting out
* preview text
* adding back in delay
* fixed height issue
* Applied the correct context button styles
* Created custom ItemContainerStyle to fix the blue highlights behind the command buttons
* Applied the correct highlight / mouseover styling
* Removed vertical scrollbar in listview
* fixed for alt-space prompt
* Fixed right click focus issue
* Somil55/wpf modifier keys (#3378)
* Removed DPI change as it was not required
* Global key hooks for context menu items
* Updated Key for shell, folder and indexer plugin
* Updated key mapping for indexer plugin
* Somil55/wpf context menu selection (#3389)
* Removed DPI change as it was not required
* Global key hooks for context menu items
* Updated Key for shell, folder and indexer plugin
* Updated key mapping for indexer plugin
* Add trigger to selection on tabbing
* Minor shadow adjustments so its more similiar to default shell shadow. Added intro/outro animations
* Added UWP-like scrollbar style for the results list
* Fixed formating and naming
* Removed Powerlauncher UI project
* Update PowerToys.sln
* Commented out scrollbar and fade in/out animations
* Added missing features from UWP branch
* Fixed formatting for Product.wxs
* Add dragging to WPF window
Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
* Initial design for improving handling of different engaged work areas in fancyzones.
* Remove active device id check in ZoneWindow.
* Remove concept of active device identifier in JSONHelpers.
* Refactor interface description and add new method.
* Simplify ZoneWindow initialization.
* Default value for active ZoneWindow during move/size.
* Add newline at the end of file.
* Use COM pointers for ZoneWindow instead of passing raw ptr.
* Solve few issues after merging with master.
* Fix typo in documentation.
* Update settings header: Remap keys
We write "Remap Keyboard" but it must be "Remap keys" because we not remapping the whole keyboard. We only remap single keys.
* Tweaked c++ side naming
Co-authored-by: Arjun <arjunbalgovind@gmail.com>
* Add test proj, refactor proj with filters, and move single remap function to a separate header
* Moved all methods to header files
* remove more unused commented code
* Undo test project addition
* Treat warnings as errors
* Adding Uninstall instaructions to ReadMe
* Fixed issue link
* Move "uninstall hint" link
* Did requested changes
Remove hand emoji, move link and fix text mistakes.
After reading the rest of the paragraph, I believe the intention was for this to read "This project welcomes contributions of all types" rather than "This project welcomes contributions of all times" or "..at all times"
* Sync'ing nuget packages. more to do
JSON, islands
* updating sql and oledb
* upgrading to 2.0 RTM for MahApps
* consolidated Microsoft.NETCore.UniversalWindowsPlatform
* updating Microsoft.Windows.ImplementationLibrary
* Microsoft.Windows.SDK.Contracts
* Persist app zone history in a separate file
* Almost ready to be functionally tested
* Now all unit tests pass
* Bug fixes, it seems to work
* Various fixups
* Improved performance of FancyZones::UpdateWindowsPositions()
Have not seen this requirement mentioned anywhere until PowerToys is already installed.
For those installing PowerToys specifically to try this, it would be useful to know the requirement in advance, especially given that https://github.com/microsoft/PowerToys/blob/master/README.md mentions only 1803.
* Increase score for exact matches in the name
* Added tests for exact matching
* Used TestCase
* variable for bonus score
* Removed comment, variable is self explanatory
* updated general settings tests
* reverted changes to solution files
* fetch test strings from a string resource
* updated bidning variable name to avoid confusion
Co-authored-by: Lavius Motileng <laviusmotileng-ms>
* Adding privacy event tags to each telemetry event.
* Moving Privacy events to Telemetry base, Removing tag values, and fixing namespaces.
* Adding documentation comments to fix style cop errors in release
* UTCReplace_AppSessionGuid boolean property to all C# telemetry events.
* Adding hardcoded version number to boot events.
* Adding reference to telemetry in settings unittest
* Adding Preview Pane events for loading w/ hardcoded version number
* Adding telemetry.h to msi for svg and markdown events
* removing unused explicit interface exception
* Removed AppxPackaging dll
* Added helper class and fixed some AppxPackage errors
* Modified it to use the COM interface
* Got it to build without errors but UWP apps don't show up
* Added app to the array
* Deleted the AppxPackaging.dll
* Added github reference
* Removed unnecessary uwp app argument
* Removed dll from installer wxs file
* Change auto-download setting's title
The update don't get automatically downloaded when the user is connected over an metered connection.
This is something the user should known about. Because of not have to be afraid on having extra costs and to not being confused if it not works on metered connections.
* auto-download title (old settings)
Did the same change also for the old web-settings.
* Deleted the dll
* Added Shell Link helper class
* Add activation manager helper
* Use helper shell link and remove shell namespace
* removed using shell and added Activation helper namespace
* Removed the dll from the installer
* formatting
* nit formatting
* Replaced UWP searchbox with WPF
* Updated foreground color scheme for textbox
* Add focus on visibility changed
* Updated initial hiding of window
* Fixed list box border
* vis issue on start, fixing border
* Revert "Merge branch 'somil55/MigrateSearchBoxToWPF' into fewTweaks"
This reverts commit 3525171621, reversing
changes made to b5daffca55.
* Remove change in startup visibility
Co-authored-by: Clint Rutkas <clint@rutkas.com>
* Added the settings hyperlink code back
* Moved the os detection code to a different file so that it can be imported by image resizer
* Added code to the Image resizer project to react to import the dll
* Added an empty dll project
* Added a dll which can be imported by image resizer
* ImageResizer binding works
* Added the setDllDirectory to load the os-detection dll
* Removed the OS detection files that has been added to the common project
* Added reference to os-detect and removed reference to common/OS-Detection.h
* Modified project files
* Revert "Modified project files"
This reverts commit 75f9d73f30.
* Removed unnecessary showAdvanced bool variables
* Removed OS Detection code from common project
* Cleaned configuration properties of soln and projects
* runner is dependent on os-detection
* Added the os-detection.dll to wxs file
* nit space formatting
* Added reference to os-detection
* Added os-detection header file
* Add os-detection reference
* Added os-detection.dll
* removed the set dll directory and using relative paths instead
* Add relative path
* WIP Confirmation dialog for orphaned keys
* Confirmation Dialog for orphaned keys
* White OK button, Anyways capitalizef
* Change Apply to Ok for shortcuts
* Validate that mappings can be made before changing keyboardManagerState
* Set fixed MinWidth for OK button
* Fix typo
* Partial remappings confirmation dialog
Both for Shortcuts and SingleKey
* Remove warning icon callback in OnClickAccept
* Add text wrapping for OrphanKeys dialog
* Updated the add button styles to a standard used in W10 settings
* Updated the "About this feature" text to About [Module name]
* Set larger changes to the Shortcut Guide opacity numberbox
* Re-organised the General page
* Improved width of the add button so it's inline with the corresponding listview.
* Seperated warning label from header. Re-organised general settings
* Consistent formatting of the word 'administrator'
* Typo fix
* Warning text is collapsed when the user runs the app as admin
* Removed underline of version number
* XAML fix
* Fixed foreground issue and added arrow
* Tweaked Remap Keyboard UI
* Fix errors in warning handling and update UI layout
* Tweaked sizes and centered to screen
* Fixed flyouts appearing on search for Single key remaps
* Fixed flyouts appearing on search for Shortcut remaps
* Remove warning exclamation icon and tooltip
* Fixed a bug where setting None on a drop down which would create a shortcut with a conflict would cause a crash
* Remove IsTypeKey logic
* Changed warning text
* Resolve comments
* Fixed foreground issue and added arrow
* Tweaked Remap Keyboard UI
* Fix errors in warning handling and update UI layout
* Tweaked sizes and centered to screen
* Changed size to scale based on resolution
* Fixed comments
* Raising Telemetry events when svg and markdown preview pane is turned off
* Properly serializing Bool property. This allows us to be backwards compatible with .17 settings but interact with the properties as boolean elements, and fire events on property changed notification
* Updated UWP app to set entry point type for each app
* Working run as admin for packaged app with permission
* Updated UWP to allow apps with mediumIl trust level to be run as admin
* cleanup variables not required
* Had reverted the changes made in the Microsoft.Launcher.rc file by mistake while resolving merge conflicts
* reverted company name to how it was before
* Add new text for Remap Keyboard
* Added text in KBM windows
* Tweaked KBM landing page view
* Changed to transparent background
* Tweaked text
* Tweaked text
* Added code to detect os build number
* To set the settings.exe according to the powerToys version that is running
* Modified the description of old UI for launcher and keyboard remapper
* Using API contracts instead of registry
* Removing file that was included by mistake
* Clean up resources taken by closed virtual desktops on FancyZones module startup.
* Overload GetVirtualDesktopIds to return wide string.
* Refactor OnDisplayChange method.
* Commented out ToggleToMod and AppSpecific function calls
* Added logic to make sure key remaps don't occur on Edit Keyboard Window
* Changed behavior such that remappings only apply after window is closed
* Update version in General Settings
* Set version in settings.json file
* Only overwrite the settings.json file if it is newer than the old version.
* Fix tests
* Fix test names and added comment
* Added output folder
* Added FileExplorerPreview output folder for all projects
* Added extra dlls and FileExplorerPreview to path
* Added folder and modified path for registry setup of preview handlers
* fixed run-elevated error and powerpreview settings not working
* removed EXTENDED_STARTUPINFO_PRESENT flag
* removed test string
* Update Microsoft.PowerToys.Settings.UnitTest.csproj
* Rename PowerLauncher.cs to PowerLauncherViewModelTest.cs
* Bypass XamlBridge Window focus handling
* Constrain only one window can be opened at a time
* Revert changes on files changed in another PR
* Changed WM_DESTROY to WM_NCDESTROY
Co-authored-by: Tomas Raies <tomas.raies@gmail.com>
* Fixed left and top window
* Added dpi Aware launcher positioning code
* Code cleanup
* Added support to drag window
* Multi monitor support added
Remaining fix : Launcher doesn't open first time on changing monitor
* removed code handling change in DPI manually
* Code cleanup
* Fix to support multimonitor display
* Code cleanup
* Revert "Code cleanup"
This reverts commit 38f39924f0.
* Revert back to WOX helper for calculating normalized DPI
* Move part of the virtual desktops related logic from FancyZones to VirtualDesktopUtils.
* Post WM message from vritual desktop tracker thread to FZ thread.
* Minor improvements in RegisterVirtualDesktopUpdates method.
* Close registry key after HandleVirtualDesktopUpdates thread finishes execution.
* Remove comment explaining workaround to VirtualDesktopUtils namespace.
* Move HandleVirtualDesktopUpdates to VirtualDesktopUtils namespace. Resolve PR comments.
* Fix typos in window messages description.
* Remove lock from OnKeyDown method to avoid deadlock.
* Handle scenario with only primary desktop and no desktop swithc in current session.
* Add scoped lock when changing current desktop id. Address PR comments.
* Explain purpose of UpdatePrimaryDesktopData method.
* Fix typo in documentation.
* "Unhooked" the Shortcut guide module from the PT event dispatcher
* Fixup: warning/undefined behavior/terrible bug
* SetWindowsHookEx and UnhookWindowsHookEx now fail silently
* Updated a comment in shortcut_guide.h
* Renamed a method, added an error message
* Removed unnecessary styling resources.
Fixed searchbox overlay.
Fixed a bug where the command buttons would fall of the list
* Fixed a bug where the app icon could overlap the title/path textblocks
* Consistent background / border color
* Tweaked shadow, background color now theme depended
* minor modifications in README
* Added launcher project and changed references to common
* Added the code to launch another process
* added shellapi header
* Added launcher to runner
* added functions to remove the abstract class error
* added the wox launcher dll
* Readded the reference to common
* modified the additional include directories for the release version
* changed the name to be displayed from Wox.Launcher to Launcher
* Localized the strings of Launcher
* Added a SearchResult Helper class
* Created a helper class to use indexer and return search results
* Added the main and settings file which declare most of the plugin interfaces
* Added references and renamed a class
* Added the images folder which contains the windows indexer icon
* Added the image
* Added the plugin.json file
* Minor changes in project files
* Added plugin.json to the project
* Modified the output paths to create the dll for the plugin in the correct location
* Refactored the code to make it unit testable
* Made the code unit testable and added unit tests for the indexer plugin
* Removed commented out code
* Code to terminate wox when we exit PowerToys
* Copy from Jeremy's fork PR
* Removed unnecessary plugins from source tree
* add missing files
* Fix postbuild event
* Added x64 for all Wox project - Debug mode
* Removed the AnyCPU config - Debug
* Added the build paths for release x64 (removed AnyCPU)
* Set warning level to 4 : Release
* Set warning level 4 : Debug
* set optimize code to false
* Removed notify icon component
* Removed setting UI XAML file and references
* Readded necessary callback functions
* Removed python path and python plugin functions
* Removed UI related to python path and the bindings related to that
* Remove python bindings
* Removed the localized string translations from pythonDirectory and SelectPythonDirectory
* Manually resolving conflicts
* Fix Wox build in project settings
* deleting unused project files
* Undo change internal
* Fix internal variable
* All wox exceptions in debug are getting rethrown, and thus causing the app to crash. This change removes the debug specific code and allows exceptions to be handled the same was as release.
* Ported Indexer plugin to .net core 3
* Added the test project back
* Removed the .net framework indexer folder
* readding the plugin.json file
* Changed the anyCPU config to x64 for windows indexer plugin
* Adding dependency to wox project on the runner. This should make sure the wox.exe can be build and launched by the runner so wox can run as a background process.
* Updating build dependencies. Wox.Launcher wasn't built as part of the F5 Experience, and nor were the plugins
* removing locks from the ResultListBox code behind file. All callbacks are accessed from the Main/UI thread.
* Remove anyCPU config and changed it to x64
* Removed anycpu of test proj
* Adding dependency
* Renaming executable to PowerLauncher. Replaceing icons with placeholder. Deleting Docs folder
* Renaming AppData directory from 'Wox' to 'PowerLauncher'. Also replacing issue link with powertoys github.
* adding support for xaml islands
* Added Neils UI code
* Replace Niels Code references
* Added assets and behaviours
* Add missing reference
* Add main view model binding
* Using proper executable name when closing 'PowerLauncher' process
* changed x:bind to Binding to avoid reference
* Updated bindings for launcher
* Added binding on searchBox
* Adding Directory.Build.targets file to kill the PowerLauncher pprocess on Build or Clean operations of all 'Launcher' projects.
* Fixed exception preventing result display
* Fixed issue with wpf marshalling events to a non UI thread
* Optimised result binding by inserting search result from multiple plugin in parallel
* copy resource files to output folder
* Corrected the output path for the indexer plugin
* windows indexer plugin is working
* Remove console print statement
* Added callback function for mouse click on search result
* Working App execution
* Cherry picked pinyin performance changes from jjw24's master branch
* change nuget package to msft for winrt compat
* Working up/down arrow key
* updating references and removing a few that seem uneeded for how stuff is referenced
* adding two back in
* Removing Squirrel dll. unsure on updating so i kept that logic in
* Updated functionality on suggestion chosen in autosuggestbox
* Added the <useWPF> tag to remove the warning
* Removed an unnecessary <useWindowsForms> tag
* Removed the item group for properties from calculator plugin
* Removed the item group for properties from folder plugin
* Removed the item group for properties from indexer, program and shell plugin
* Removed itemgrp from wox.core and wox.test csprojs
* Removed the unnecessary wox files to clean up codebase
* Renamed Wox.Plugin.Indexer to Microsoft.Plugin.Indexer
* Renamed Wox.Launcher to Microsoft.Launcher
* To avoid DBNull to String typecast exception
* Added query submitted event to handle default action on clicking a list view item
* Merge pull request #42 from microsoft/AddPinyinPerformance
Cherry picked pinyin performance changes from jjw24's master branch
(cherry picked from commit b9e437c6cd)
* Rectyfying title display
* Title display working correctly
* Removed .yml files
* adding checks
* Making wox.csproj build wox assembly instead of powerlauncher
* Removing update logic from PowerLuanch App.xaml.cs as was done in Wox project.
* Making Query internals visible to wox.
* Update Powerlauncher nuget packages to be same version as wox.csproj. Note: FoxyWeavers.xsd change is automatically done as part of nuget package update.
* Updating build dependencies to so that wox.launcher depends on powerlauncher.csproj not wox.csproj
* Removing 'Wox' branded logos from powerlauncher.csproj as was done previously or wox.csproj
* Downgraded the library to the latest stable version
* single thread execution of the indexer plugin and InvalidOperationException due to connection being closed on ExecuteReader, handled separately
* Modified the test, the connection need not be null after being disposed. There is no direct way of checking if an object has been disposed other than to throw the InvalidOperationException
* Removing x86,ARM,ARM64, build configurations, as these were added accidentally when adding xaml island support.
* Removed STAThread
* Modified the output folder produced
* Renamed the dll produced
* Added dependency on PowerLauncher to the Microsoft.Launcher project
* modified the name of the dll in the indexer plugin
* Ignoring 128 errors from taskkill, as this means the process isn't running. We don't want htis to show up in the warnings list on build
* Added fix for closing wox on pressing escape and app execution (#75)
* adding useWPF to get rid of warning
* Launcher resize issue on selecting search result (#77)
* Added fix for closing wox on pressing escape and app execution
* Added fix to prevent autosuggestbox resize
* Fixing xaml catastrophic failure, based on Miguels suggestion here: https://github.com/windows-toolkit/Microsoft.Toolkit.Win32/issues/210
* suggested fix
* removing unused mutex string
* Searches for keyword only in title and not content to improve the quality of results
* Display the title from System.Title directly instead of extracting it from the path
* Removed additional README instructions before moving to the powerToys repo
* Fix Query builder test (#86)
* Revert base viewModel class to fix tests.
* Removing unused post build and deploy scripts.
* tweaked url
* Update plugin.json
* Update README.md
* removed unused dep (#2080)
* removed reference to everything (#2133)
* SearchIndexer - Modifying QueryContentProperties and QuerySelectColumns to use System.FileName
* Search result thumbnail for PowerLauncher (#2124)
* Replace WPF Imaging library with UWP
* Removed UWP and WPF namespace conflicting files from Wox
* Removed Image hashing as it wasn't used anywhere
* Updated formatting
* Set MainViewModel visibility to hidden on startup
* Enable CI build on PowerLauncher Branch (#2181)
* Enable CI build on PowerLauncher Branch
* Updated Nuget restore to latest and added AssetTargetFallback property
* tweak text (#2177)
* [Window Walker] Migrate to Launcher (#2093)
* Copy the existing calc. plugin foldeR
* Blindly rename a bunch of things to Window Walker
* Update the solution to reference the new plugin
* Get basic Yo returned
* Remove all the languages except english
* Lower quality of icon as well as test showing it
* Add the core non-ui parts to the plugin
* Delete calculator png
* Get it to compile
* Added the actual code which apparently doesn't work
* Finally start showing results
* Fix up strings
* Switch working
* Remove unused classes
* Remove unneeded async
* Added MSI support for Launcher (#2242)
* Fixed typo in output folder of calculator plugin
* Calculator plugin works
* Modified the name of the image to remove space as space is assumed to be a separator in wcx file
* Fixed typo in calculator dll
* Fixed typo in calculator plugin
* Shell, Program, Folde and indexer plugin working
* Added the ww plugin
* Fixed typos in the calculator plugin
* Delete file that was added unintentionally
* revert calculator rename changes
* Reverted other files changed
* Reverted renaming of file with space
* Pull changes from master to dev/powerLauncher (#2255)
* Dpi unaware placement bug (#2121)
Fix for bug when placing dpi unaware window such as Notepad++ in left of right part of monitor. In that application gap of about 7px was left or right.
This fixes only single-monitor scenario
It skips correction for dpi unaware window that leaves a gap
* Move markdown parsing logic outside control thread (#2099)
* Move markdown parsing logic outside control thread
* Update MarkdownPreviewHandlerControl.cs
* Remove trailing whitespace.
That'll teach me for trying to make an edit from the GitHub page.
* Migrate power rename MRU lists from registry to JSON (#2090)
* Handle most recently used search/replace strings within settings.
* Check for last modified time of json file and reload it if needed.
* Handle changes in MRU search / replace lists size.
* Improve handling of changes in MRU list size.
* Don't check for last modified time in every getter method. Load only when starting application.
* Add const identifier to getter methods.
* Address PR comments: Add const to reg and json file paths and set them in constructor initializer. Check pushIdx validity. Move implementation to cpp of PowerRenameUI constructor.
* Add error checking when getting values from registry.
* Implementing changes suggested in #1992 (#2116)
* Implementing changes suggested in #1992
* Update Product.wxs
Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>
* Fix for issue #1532 - [PowerToys tray icon] Show version on tooltip (#2117)
* Fix for issue #1532
[PowerToys] Show version on tooltip
* Update src/runner/tray_icon.cpp
Co-Authored-By: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
* FZ editor: Splitted zones positioning (#2158)
* Added a mutex to ZoneWindow, ensured no data races occur (#2154)
* Added a mutex to ZoneWindow, ensured no data races occur
* Protected draggedWindow* members with a mutex
* Ensured that critical reads happen in a single transaction
* Dpi unaware placement bug - multimontior with same DPI settings fix (#2156)
* Dpi unaware placement bug - multimontior with same DPI settings fix
* Using different enumerating method
* Changed AllMonitorHaveSameDpiScaling method
* Removed accidental file
* small rename
* Changed some methods to CamelCase
* Review comments fixes
Co-authored-by: PrzemyslawTusinski <61138537+PrzemyslawTusinski@users.noreply.github.com>
Co-authored-by: Ben Randall <veleek@gmail.com>
Co-authored-by: vldmr11080 <57061786+vldmr11080@users.noreply.github.com>
Co-authored-by: eduardodextil <55205162+eduardodextil@users.noreply.github.com>
Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>
Co-authored-by: Nghia M. Luong <32159519+sqrlmn@users.noreply.github.com>
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>
Co-authored-by: Ivan Stošić <ivan100sic@gmail.com>
* Somil55/merge custom ui into launcher (#2271)
* Remove Autosuggest box (#2192)
* Update Settings.Designer.cs
* Revert "Update Settings.Designer.cs"
This reverts commit a1bc0dda56.
* Updated LauncherControl XAML to add textbox and listview
* List View displayed
* Hooking up execution on the selected index, removing two way binding on selection, and experimenting with popup that doesn't work
* Updated MainViewModel to Remove context menu and history
* Added Resultist XAML Island project
* Updated SelectedItem and SelectedList Binding.
Issues : List box doesn't open when query is written for first time but opens in subsequent queries.
* 1. Mouse Click working
2. List View is can't be focused
3. Fixed width of Launcher
* Removed two way QueryText box binding
* Removed SelectedItem two way binding and replaced with a callback
* [Cleaning] Remove redundant UWP project
* [Cleaning] Updated files to keep only atomic changes against dev/powerLauncher
* Thmbnail fixed for NEW UI
* Removed PreviewMouseDown function required by older WOX code
Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>
* Added the auto-complete feature
* Removing ContextMenuPluginInfo, and ContextMenuTopMost as these commands are not used int the new design.
* Fixed merge conflicts
* Set only when index is 0
* One way binding
* Removed unnecessary binding
* Deleting unused (commented out code) that was legacy from wox project.
* Binding Buttons to appropriate context menu commands.
1. Buttons are dynamically loaded in a listview based on the actions supported be each plugin.
This change also deletes unused commands.
Note: Most button events don't seem to be getting routed to the Selected Item. Currently using 'PointerEntered' to validate the behavior. The actions should be trigged by the button command property in the future.
* manually handling tab in mainwindow
* Loading context buttons on Selecting a suggestion list item
* Allowing hover event to load content menu items and display them as well.
* Adding context buttons to Indexer plugin. This allows for the following:
1. [Files] Open Containing folder
2. [Folders/Files] Copy Path
* Remove White background of list (#2218)
* Remove white background of list
* Removed comments
* Changed to ContainerContentChanging event
* add const variables instead of numbers
* Added comment before the updatelistSize function
* Search box UI (#2224)
* Added backdrop and rounded corner
* Fix for two alt+space press to bring searchbox issue
* Fixed merge conflict
* Clean Mainwindow.xaml code
* Fix for textbox focus on first visible
* Allowing users to tab between the context buttons for the selected resut. Also allowing users to press 'enter' to action on the selected items.
* Renaming SelectedIndex to ContextMenuSelectedIndex
* Enabling key accelerators on context buttons.
1. Add new object ContextMenuResult instead instead of reusing Result for both query results and context menu results.
2. Binding KeyboardAccelerator keys to contextmenuitemviewmodel
3. Enabling and disabling contextmenu items when selecting or deselecting each row. Because we are manually maintaining selectionwe can't use ScopeOwners as the textbox is really the only item ever in focus.
* Launching explorer instead of the UWP application when selecting 'open file location'.
* Added fix for border showing up when result count is zero
* Updated fix for border on no result
* Adding visibility after clearing result in MainViewmodel
* Launcher Light/Dark mode (#2235)
* Fixed issue with list view background not updating with Windows theme change
* Added theme change for WPF
* updated ShadowDepth for dropshadow
* Updated border thicknes of searchbox and listview
* Diff issue with ResultList.xaml
* Removed change in result delay
* Added code to pull colors from UWP
* Updated border resource to use system based SystemControlHighlightAccentBrush
* Updated corner radius in dark mode
* Updated Launcher description text
Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>
Co-authored-by: Alekhya Reddy <reddykalekhya@gmail.com>
* Changed to SystemChromeLow from Accent brush (#2272)
* Removed ListView animations
* Positioning ContextButtons and adding background.
* Disabling scrollbars for gridview items.
* Removed folder plugin
* removed deployment for uwp apps (#2298)
* Simulating Win+backspace key press, instead of Win+Control as it was launching WW (#2250)
* text is selected whenever launcher gets hidden and is then set to visible (#2315)
* Update nuget packages across solution to latest (#2334)
* simplifying the xaml and making things tighter (#2327)
* Setting runcommand as the default execution method, and turning off run as admin by default.
* Opening explorer if the user has types a file path.
* Enable PowerLauncher toggle
* Launcher MSI - Added a required dll and removed folder plugin (#2355)
* Modified the product.wxs file
* Added the x64 config
* Modify scoring algorithm for fuzzy search (#2361)
* Modify scoring
* modified to if else
* Fixes race conditions with PointerEnter/Exit events conflicting with Selection and unselection. This change provides better encapsulation of the logic to enable a selected item for accelerator (hotkey) events, and allow mouse input on results where the pointer is over.
* Fixes an issue where PointerExit would hide the selected context buttons.
* Result List - Bad rebase overwrote margin and translation fields.
* Fixed process executing on clicking enter if no text in search box
* Codeflow cleanup when selectedItem is not null
* adjusting how programs are displayed. (#2369)
* Removing description from title
* adjusting subtitle
* removing accidently paste
* removing desc for uwp apps
* Revert "Removed folder plugin"
This reverts commit 064d638588.
We will use the folder plugin to better mimic the way the start menu and run prompt deal with directories
* Updating JetBrains.Annotations to 2020.1.0 to be consistent with other projects.
* Replacing submenu text with full path as 'Ctrl-Enter' doesn't do anything. Also reducing the String of CreateOpenCurrentResult to fit in one line.
* - Making Open Directory subtitle fixed, and the title as the current directory.
* Adding back binding to QueryText and updating the cursor position similar to how wox originally did it.
* Add the folder plugin wxs back in (#2374)
* Deduping results for program plugin (#2375)
* Removing description from title
* adjusting subtitle
* removing accidently paste
* removing desc for uwp apps
* Getting dups removed from list if LNK exists
* adjusting subtitle
* removing accidently paste
* Getting dups removed from list if LNK exists
* changed to normal forloop
* Removing WinR (#2381)
* Updated program execution to call action on background thread. (#2370)
* PowerLauncher Settings integration
* Added cold start fix (#2385)
* - Fixes cursor jumping around issue.
- Seperating the ability to set the text from initiating a query.
- Plugins have to explicitly request the query be updated.
- Updating Folder plugin to explicty update the query on folder selection.
- Removing unused changes from 'Wox' that don't compile.
* Fixing gap in logic where query was triggering when programatically setting text.
Updating the binding and settext both will trigger the TextChanged event on a seperate event dispatcher. For this reason we dynamically detect which eventhandler is most approapriate on the textchanging event.
* Updating the QueryText to the selected item when navigating up/down with the arrow keys.
* Removing action on folder result, and displaying folder path on selecting a folder result from the folder plugin.
* Making folder results from the search indexer plugin behave like folder results from folder plugin.
* Folder Results open the explorer window when selected.
* The Open Current Folder result shouldn't change the query text to 'Open {folder path}' when selecting the results.
* Initializing query text strings.
* Defensive check for QueryText being empty
* Adding file watchers for UWP detecting when apps are installed or deleted and reindexing the uwp apps
* Removing unused namespace.
* Looking at files and not filtering is better because the timer is more likely to reset while an install is happening, preventing uneeded indexing
* Fix project references
* Fix MaxResultsToShow
* Fix Alt + Space display
* Fix settings defaults
Co-authored-by: Alekhya Reddy Kommuru <reddykalekhya@gmail.com>
Co-authored-by: bkudiess <bakudies@microsoft.com>
Co-authored-by: Divyansh <somm14divi@gmail.com>
Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>
Co-authored-by: Barbara Kudiess <bkudiess@me.com>
Co-authored-by: Jeremy Wu <jeremy24wu@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: udit3333 <udit3333@gmail.com>
Co-authored-by: Betsegaw (Beta) Tadele <betsegaw.ta@gmail.com>
Co-authored-by: PrzemyslawTusinski <61138537+PrzemyslawTusinski@users.noreply.github.com>
Co-authored-by: Ben Randall <veleek@gmail.com>
Co-authored-by: vldmr11080 <57061786+vldmr11080@users.noreply.github.com>
Co-authored-by: eduardodextil <55205162+eduardodextil@users.noreply.github.com>
Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>
Co-authored-by: Nghia M. Luong <32159519+sqrlmn@users.noreply.github.com>
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>
Co-authored-by: Ivan Stošić <ivan100sic@gmail.com>
* Fixed right margin
* Fixed issue where the background of the gridview would light up on pointerover.
* Fixed issue where application title/path run through command buttons. Centrally aligned image/icon.
* Updated the shadow so it looks more like a UWP ThemeShadow.
* Handled invalid input for single key remaps
* Added some functions
* Added better error message functions and finished warnings for edit keyboard
* Updated dropdown order of keys
* Added new warning template for shortcuts
* Added show warning on Apply code
* Removed old flyout code
* Fixed issue where tooltips were replaced on Apply
* Simplified == operator
Updating the binding and settext both will trigger the TextChanged event on a seperate event dispatcher. For this reason we dynamically detect which eventhandler is most approapriate on the textchanging event.
- Seperating the ability to set the text from initiating a query.
- Plugins have to explicitly request the query be updated.
- Updating Folder plugin to explicty update the query on folder selection.
- Removing unused changes from 'Wox' that don't compile.
* Removing description from title
* adjusting subtitle
* removing accidently paste
* removing desc for uwp apps
* Getting dups removed from list if LNK exists
* adjusting subtitle
* removing accidently paste
* Getting dups removed from list if LNK exists
* changed to normal forloop
* Deprecate ATL based IPC wrapper library
* C# projects now use named pipe server implementations from two_way_pipe_message
through the interop C++/Cli library.
* Added Unit testing to interop library
* Added grid to edit keyboard
* Fixed all issues for Edit keyboard window with grid
* Added step to delete row definition and move row indices
* Handled grid operations for Edit Shortcuts
* Added dynamic layout for edit shortcuts
* Fixed resize windows message behaviour and removed warnings
* Added missing c++17 compile flag to common-md-flag
* Remove .NET native tool chain from Settings.UI release config
* This flag has to be removed because .Net Native does not support
mixed assemblies, like PowerToysInterop.
* Fix HotkeyControl virtual key display
* A new interop project was setup to provide wrappers for C# projects
that want to access functionality in the common project.
* Add assembly info
* Remove WIN32 configurations
* Remove Autosuggest box (#2192)
* Update Settings.Designer.cs
* Revert "Update Settings.Designer.cs"
This reverts commit a1bc0dda56.
* Updated LauncherControl XAML to add textbox and listview
* List View displayed
* Hooking up execution on the selected index, removing two way binding on selection, and experimenting with popup that doesn't work
* Updated MainViewModel to Remove context menu and history
* Added Resultist XAML Island project
* Updated SelectedItem and SelectedList Binding.
Issues : List box doesn't open when query is written for first time but opens in subsequent queries.
* 1. Mouse Click working
2. List View is can't be focused
3. Fixed width of Launcher
* Removed two way QueryText box binding
* Removed SelectedItem two way binding and replaced with a callback
* [Cleaning] Remove redundant UWP project
* [Cleaning] Updated files to keep only atomic changes against dev/powerLauncher
* Thmbnail fixed for NEW UI
* Removed PreviewMouseDown function required by older WOX code
Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>
* Added the auto-complete feature
* Removing ContextMenuPluginInfo, and ContextMenuTopMost as these commands are not used int the new design.
* Fixed merge conflicts
* Set only when index is 0
* One way binding
* Removed unnecessary binding
* Deleting unused (commented out code) that was legacy from wox project.
* Binding Buttons to appropriate context menu commands.
1. Buttons are dynamically loaded in a listview based on the actions supported be each plugin.
This change also deletes unused commands.
Note: Most button events don't seem to be getting routed to the Selected Item. Currently using 'PointerEntered' to validate the behavior. The actions should be trigged by the button command property in the future.
* manually handling tab in mainwindow
* Loading context buttons on Selecting a suggestion list item
* Allowing hover event to load content menu items and display them as well.
* Adding context buttons to Indexer plugin. This allows for the following:
1. [Files] Open Containing folder
2. [Folders/Files] Copy Path
* Remove White background of list (#2218)
* Remove white background of list
* Removed comments
* Changed to ContainerContentChanging event
* add const variables instead of numbers
* Added comment before the updatelistSize function
* Search box UI (#2224)
* Added backdrop and rounded corner
* Fix for two alt+space press to bring searchbox issue
* Fixed merge conflict
* Clean Mainwindow.xaml code
* Fix for textbox focus on first visible
* Allowing users to tab between the context buttons for the selected resut. Also allowing users to press 'enter' to action on the selected items.
* Renaming SelectedIndex to ContextMenuSelectedIndex
* Enabling key accelerators on context buttons.
1. Add new object ContextMenuResult instead instead of reusing Result for both query results and context menu results.
2. Binding KeyboardAccelerator keys to contextmenuitemviewmodel
3. Enabling and disabling contextmenu items when selecting or deselecting each row. Because we are manually maintaining selectionwe can't use ScopeOwners as the textbox is really the only item ever in focus.
* Launching explorer instead of the UWP application when selecting 'open file location'.
* Added fix for border showing up when result count is zero
* Updated fix for border on no result
* Adding visibility after clearing result in MainViewmodel
* Launcher Light/Dark mode (#2235)
* Fixed issue with list view background not updating with Windows theme change
* Added theme change for WPF
* updated ShadowDepth for dropshadow
* Updated border thicknes of searchbox and listview
* Diff issue with ResultList.xaml
* Removed change in result delay
* Added code to pull colors from UWP
* Updated border resource to use system based SystemControlHighlightAccentBrush
* Updated corner radius in dark mode
* Updated Launcher description text
Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>
Co-authored-by: Alekhya Reddy <reddykalekhya@gmail.com>
* Dpi unaware placement bug (#2121)
Fix for bug when placing dpi unaware window such as Notepad++ in left of right part of monitor. In that application gap of about 7px was left or right.
This fixes only single-monitor scenario
It skips correction for dpi unaware window that leaves a gap
* Move markdown parsing logic outside control thread (#2099)
* Move markdown parsing logic outside control thread
* Update MarkdownPreviewHandlerControl.cs
* Remove trailing whitespace.
That'll teach me for trying to make an edit from the GitHub page.
* Migrate power rename MRU lists from registry to JSON (#2090)
* Handle most recently used search/replace strings within settings.
* Check for last modified time of json file and reload it if needed.
* Handle changes in MRU search / replace lists size.
* Improve handling of changes in MRU list size.
* Don't check for last modified time in every getter method. Load only when starting application.
* Add const identifier to getter methods.
* Address PR comments: Add const to reg and json file paths and set them in constructor initializer. Check pushIdx validity. Move implementation to cpp of PowerRenameUI constructor.
* Add error checking when getting values from registry.
* Implementing changes suggested in #1992 (#2116)
* Implementing changes suggested in #1992
* Update Product.wxs
Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>
* Fix for issue #1532 - [PowerToys tray icon] Show version on tooltip (#2117)
* Fix for issue #1532
[PowerToys] Show version on tooltip
* Update src/runner/tray_icon.cpp
Co-Authored-By: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
* FZ editor: Splitted zones positioning (#2158)
* Added a mutex to ZoneWindow, ensured no data races occur (#2154)
* Added a mutex to ZoneWindow, ensured no data races occur
* Protected draggedWindow* members with a mutex
* Ensured that critical reads happen in a single transaction
* Dpi unaware placement bug - multimontior with same DPI settings fix (#2156)
* Dpi unaware placement bug - multimontior with same DPI settings fix
* Using different enumerating method
* Changed AllMonitorHaveSameDpiScaling method
* Removed accidental file
* small rename
* Changed some methods to CamelCase
* Review comments fixes
Co-authored-by: PrzemyslawTusinski <61138537+PrzemyslawTusinski@users.noreply.github.com>
Co-authored-by: Ben Randall <veleek@gmail.com>
Co-authored-by: vldmr11080 <57061786+vldmr11080@users.noreply.github.com>
Co-authored-by: eduardodextil <55205162+eduardodextil@users.noreply.github.com>
Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>
Co-authored-by: Nghia M. Luong <32159519+sqrlmn@users.noreply.github.com>
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>
Co-authored-by: Ivan Stošić <ivan100sic@gmail.com>
* Fixed typo in output folder of calculator plugin
* Calculator plugin works
* Modified the name of the image to remove space as space is assumed to be a separator in wcx file
* Fixed typo in calculator dll
* Fixed typo in calculator plugin
* Shell, Program, Folde and indexer plugin working
* Added the ww plugin
* Fixed typos in the calculator plugin
* Delete file that was added unintentionally
* revert calculator rename changes
* Reverted other files changed
* Reverted renaming of file with space
* Added combobox
* Formatted and removed unused code
* Added drop down support for Edit Keyboard window
* Reordered the displayed key list
* Add shortcut stack panels and drop downs linked to detect shortcut
* Add more selected item logic
* Added complete dropdown support for edit shortcuts window
* Added Flyout warning for incorrect drop down input
* Tweaked warnings
* Removed MainWindow code
* Changed SelectedValue toSelectedIndex
* Removed unnecessary assignments
* Added a warning for two dropdowns and the first one is changed to an action key
* Added function comments in cpp file
* Fixed some comments
* Fixed all allocation and out of scope issues
* Fix most issues except reloading shortcuts
* Fixed issue while reloading shortcuts
* Fixed type cast warnings
* Changed delete to delete[]
* tweaked
* Copy the existing calc. plugin foldeR
* Blindly rename a bunch of things to Window Walker
* Update the solution to reference the new plugin
* Get basic Yo returned
* Remove all the languages except english
* Lower quality of icon as well as test showing it
* Add the core non-ui parts to the plugin
* Delete calculator png
* Get it to compile
* Added the actual code which apparently doesn't work
* Finally start showing results
* Fix up strings
* Switch working
* Remove unused classes
* Remove unneeded async
* Added Tests and Refactored code
* removed un-used file
* delete test files when test completes
* removed extra build configs
* added clean-up method
* removed unused variable
* re-added removed attributtion
* added error handling and move strings to string resource
* added error handling to file explorer view model
* moved varible assignment to if statement block
* removed savin of settings file from the UI
* re-added open source notice
* added missing controls for powerrename and fancy zones
* removed dead coded
* remove un-used configuration
* added error handling for file saving and updated powerreanme constructor
* removed added configurations
* added settings state
* Replace WPF Imaging library with UWP
* Removed UWP and WPF namespace conflicting files from Wox
* Removed Image hashing as it wasn't used anywhere
* Updated formatting
* Added CustomAction Data Models
* Updated data model
* Updated Button command trigger for keyboard manager
* Integerated custom actions in Keyboard manager module backend
* Allow Runner to launch windows on foreground
* Refactor and moved the execution logic to background thread
* Removed non-required unlock calls
* Fixed typo
* Resolve PR comments
* updating a ton of warnings.
* bunch of cleanup
* few smaller ones
* fixed naming
* reversing an oops
* adjusting json to use attribute
* more json properties
* Added unique lock mutexes for thread safety
* Fixed a bug in detect key logic
* Changed dword to word
* Added early unlock statements to fix issue with shortcut guide
* Fixed type conversion warnings
* Migrated detect shortcut window to use Shortcut class
* made changes in Apply button logic
* Revert thread safety changes
* refactored code works on the UI side
* Refactored remapping code to use new Shortcut class
* Refactored to SetKeyEvent function
* Moved function to cpp file and added more comments
* Refactored map variable and handled common Win key
* Remove debug code
* Change arguments to const references
* Added unique lock mutexes for thread safety
* Fixed a bug in detect key logic
* Added early unlock statements to fix issue with shortcut guide
* Added comments for unlocks before SendInput and changed some unique_locks to lock_guards
* Added check keyboard state function
* Added keyboard state check to avoid n-key shortcuts being affected by 2 key shortcuts
* Added support for n key shortcuts in backend and UI
* Added a fix to ensure mouse buttons states are not checked
* reverted some debugging changes
* reverted some debugging changes
* Added EditShortcuts Window and added Detecting shortcuts functionality
* Fixed build error
* Changed detection to take place only when window is in focus
* Added solution folder
* Added a common project and refactored shared variables to an object with wrapper functions
* Added dynamic addition of shortcuts
* Moved all shared variables in detection to state variable with wrapper functions
* Added code to re-load saved shortcuts in the UI
* Added comments
* Fixed argument modifiers in Helpers
* Updated arg modifiers in all functions
* Removed unused headers and added precompiled headers
* Created PowerKeys project
* Swapping tab with shift
* Added hash map and iterators for remapping code
* Added PowerKeys flag and added toggletomod function
* Added shortcut base code
* Fixed os level shortcut functionality
* Added 1 extra event
* Added check for same modifier and comments
* Added app-specific remapping for 4 apps including UWP apps
* Changed foreground window logic
* Added a separate hook for PowerKeys which can be re-hooked by enabling and disabling
* Added a separate hook for PowerKeys which can be re-hooked by enabling and disabling
* Fixed all priority issues and changed injection flags
* Added another msedge.exe shortcut
* Added a UI which is linked to the backend hook
* Cleaned code and added comments
* Added second button
* Renamed some files/variables and added an extra button
* added power preview settings
* Added link to module oververview
* create settings file if one is not found
* removed run oon start up speficic callback
* Update src/core/Microsoft.PowerToys.Settings.UI.Lib/ModuleSettings.cs
Co-Authored-By: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
* fixed merge conflicts
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
* archive
* formmated code
* reverted changes to test class file.
* reverted changes to test file: reverted name
* added class models and updated link
* removed test console project
* Add handling of portable mode when updating
Additionally:
1. Changed getting version from internally rather than from RELEASES file
2. Added PortableDataPath as a constant so can be used to determine if portable mode is used
* Fix incorrectly wired auto update event handler
* Fix Sys plugin missing Shutdown command icon
* Add check update command to Sys plugin
* Add message if current Wox version is latest
* Add default silent when auto checking updates in background
Silent when current is still the latest version
* Move UserData folder to new version location
* Changes per review
1. Move IsPortableMode to Constant
2. Merge if statement
* Per comment- change variables to be more descriptive
UpdateInfo and UpdateManager renamed
* Per comment- Add exception handling and message if failed.
* fix typo
* make function obsolete
it is not used in the code
* rewrite the function that converts chinese chars to pinyin
1. Only difference in this rewrite is instead of returning 2D array, return as a combined single string of all the possible pinyin combination. Since fuzzy search does character matching, this shouldn't be a problem.
2. Added a function that returns a custom language converter. In this case Pinyin converter. New converters can be added.
* Use new language converter param + strip out ScoreForPinyin method
* update
* Change parameter name
* fix failing tests
* WIP
* Remove todo
There should be some distinction between score after precision filter and actual raw score derived from FuzzySearch. Although so far RawScore is used in testing, but it seems to describe the structure. Originally it was to avoid assigning score directly as it would be hard to reason about that output of FuzzySearch score is.
* Add constructors, remove default to enforce required properties
* remove setting rawscore in SearchPrecision
* Change method name to reflect intention
* Change parameter name + update comment
* update
* Remove params comment
Co-authored-by: theClueless <14300910+theClueless@users.noreply.github.com>
- Moved if statement that checks if all query substrings are matched into a funciton
- convert into shorthand expression the if statement that checks if all words are fully matched
- Move checking if there is a prev compare string char match into function
- Move updating of index list when a better match is found for the first substring logic into function
Flag is used in method "ShouldUsePinyin()" to avoid calling Alphabet
service. Otherwise, tests applying to StringMatcher.FuzzySearch() would
fail because the pinyin helper library fails to initialize.
The MatchResult will always get the maximum score from either
ScoreForPinyin() or CalculateSearchScore(). ScoreForPinyin() is
completely dependant on the "ShouldUsePinyin" global setting.
The search precision must be used, so it makes sense to apply the filter
directly on score assignment. Score will be "0" if precision filter
was not met.
As Alphabet class is static, its methods could be used without
ever calling Alphabet.initialize(_settings) beforehand which would end
in an exception. Therefor only _shouldUsePinyin settings needed will
be transferred with a given default value.
SelectedSearchSource will be null if the user clicks on Edit or Delete after finishing with previous edit and not highlighting the search source again.
* Added thumbnail loader
* Deleted old shell icon extraction logic.
Refactored ImageLoader.Load to improve readibility.
* Moved error handling down into the API call itself
* Minor renamings in ImageLoader
* Load icons only for files that are not images. Fixes stutters when loading folders.
* Added the ability to load a full image through ImageLoader.
ImageLoader.Load now also has a "loadFullImage" parameter.
* Max image cache is now 5000 instead of 200.
* Added some commentaries on how thumbnails are loaded
* ProgramPaths now searches for files on a per-folder basis using a Queue instead of calling EnumerateFiles. This allows us to escape permission errors.
Issue #1779 is fixed because of this too.
Tries to convert numbers in query string to invariant culture format before passing to YAMP, and the other way around when presenting result from
YAMP. Nothing fancy, just a regular expression scanning for substrings consisting of number, decimal separator and group separator, trying a
parse and convert on them. Translation is skipped if no conversion between user locale and invariant culture number format is necessary.
Closes#436.
Added functions I commonly use on e.g. google calculator but were missed by parser.
Specifically I added:
e (constant like pi)
tan, arcsin, and arctan
log and ln
1. remove unnecessary events from MainViewModel
2. remove usage of Obsolete api (show, hide etc)
3. fix space problem in #660
4. part of #486
5. fix up/down key bug introduced in 92b7ca6a1bafd254e39ee92812ff691906cd85c1
6. fix#678
1. installer
2. auto check update on startup
3. auto start on next startup
4. remove command line arguments which breaks squirrel
5. auto generate installer on continue integration
1. Fix can't find Result.ctor bug for plugin introduced in
c0889de1f9ae460b2cc189eb59e5bd90ddb7d17e
2. use %APPDATA% for all data, part of #389
3. MISC
1. Remove ItemDropEvent
2. Remove ShowContextMenus from API
3. Fix context menu item can't be opened ( #535 ), bug introduced from PR #494 (commit 45dbb50)
4. Move open result command and load context menu command back to
MainViewModel
5. unify load context menu logic
6. other performance enhancement and potential bug fixed
1. Fix "Remember launch location", this was introduced since e7aa6022.
Fix#511
2. Fix opening position ( #510 ), bug introduced from PR #494 (commit e7aa602)
1. Reorder the sequence of initialization of UserSettings.
2. Use dictionary for CustomizedPluginConfigs, so code logic like
`.FirstOrDefault(o => o.ID == id);` are removed
3. part of #389
1. Remove ItemDropEvent
2. Remove ShowContextMenus from API
3. Fix context menu item can't be opened ( #535 ), bug introduced from PR #494 (commit 45dbb50)
4. Move open result command and load context menu command back to
MainViewModel
5. unify load context menu logic
6. other performance enhancement and potential bug fixed
1. Fix "Remember launch location", this was introduced since e7aa6022.
Fix#511
2. Fix opening position ( #510 ), bug introduced from PR #494 (commit e7aa602)
1. Reorder the sequence of initialization of UserSettings.
2. Use dictionary for CustomizedPluginConfigs, so code logic like
`.FirstOrDefault(o => o.ID == id);` are removed
3. part of #389
- Add MVVM structure(BaseViewModel)
- Create ViewModel for MainWindow
- Refactor MainWindow.xaml to support MVVM
- Move PublicAPI implementation from MainViewModel to PublicAPIInstance
- Exposed a new function "SetBlurForWindow" in WindowIntelopHelper that handles the blur.
- Deleted Accent and Test themes
- Changed SimpleBlur and Base themes according to changes
WindowIntelopHelper: Added accent handling
SettingsWindow: Added combobox with accent selector to Theme tab (not functional yet)
Languages: Added entries for accent colors (all are in english for now)
[TEMP] Blur and Accent themes experiments
[TEMP] blur set in mainwindow on load.
The last commit f132cb54baa000a245feb5da87149960f6dbd9f5 only fix UI
flickering for different icon. This commit also fix the commit for same
icon. e.g. in web search plugin, although the title is different, but
the icon is not changes.
part of #350
2,In FolderPluginSettings when trigger Delete Action need confirm;
3,Add drag and drop functionality in ProgramSetting and FileSystemSettings.
Signed-off-by: 716 <525223688@qq.com>
Stupid automatic formatting changed more then I wanted
Here is the change I made if you just want the code
case Key.Tab:
case Key.Enter:
AcceptSelect(resultCtrl.GetActiveResult());
e.Handled = true;
break;
This reverts commit cf7ae900.
Short name will produce no errors when debugging using Visual Studio hosting process. However, this will crash outside Visual Studio.
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
* [] Applies to #xxx
* [] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/PowerToys) and sign the CLA
* [] Tests added/passed
* [] Requires documentation to be updated
* [] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx
*[ ] Applies to #xxx
*[ ] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/PowerToys) and sign the CLA
*[ ] Tests added/passed
*[ ] Requires documentation to be updated
*[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx
<!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments
Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity. Inspired by the [Windows 95 era PowerToys project](https://en.wikipedia.org/wiki/Microsoft_PowerToys), this reboot provides power users with ways to squeeze more efficiency out of the Windows 10 shell and customize it for individual workflows. A great overview of the Windows 95 PowerToys can be found [here](https://socket3.wordpress.com/2016/10/22/using-windows-95-powertoys/).
## Installing and running Microsoft PowerToys 0.16
👉 **Note:** Microsoft PowerToys requires Windows 10 1803 (build 17134) or later.
## Current PowerToy Utilities
### Via Github with MSI [Recommended]
### FancyZones
Install from the [Microsoft PowerToys GitHub releases page][github-release-link]. Click on `Assets` to show the files available in the release and then click on `PowerToysSetup-0.16.1-x64.msi` to download the PowerToys installer.
[<img align="left" src="./doc/images/overview/FancyZones_small.png" />](https://aka.ms/PowerToysOverview_FancyZones) [FancyZones](https://aka.ms/PowerToysOverview_FancyZones) is a window manager that makes it easy to create complex window layouts and quickly position windows into those layouts.
<br>
<br>
<br>
<br>
<br>
### File Explorer Add-ons (Preview Panes)
[<img align="left" src="./doc/images/overview/PowerPreview_small.PNG" />](https://aka.ms/PowerToysOverview_FileExplorerAddOns) [File Explorer](https://aka.ms/PowerToysOverview_FileExplorerAddOns) add-ons right now are just limited to Preview Pane additions for File Explorer. Preview Pane is an existing feature in the File Explorer. To enable it, you just click the View tab in the ribbon and then click "Preview Pane".
PowerToys will now enable two types of files to be previewed: Markdown (.md) & SVG (.svg)
<br>
<br>
### Image Resizer
[<img align="left" src="./doc/images/overview/ImageResizer_small.png" />](https://aka.ms/PowerToysOverview_ImageResizer) [Image Resizer](https://aka.ms/PowerToysOverview_ImageResizer) is a Windows Shell Extension for quickly resizing images. With a simple right click from File Explorer, resize one or many images instantly. This code is based on [Brice Lambson's Image Resizer](https://github.com/bricelam/ImageResizer).
<br>
<br>
<br>
<br>
### Keyboard Manager
[<img align="left" src="./doc/images/overview/KBM_small.png" />](https://aka.ms/PowerToysOverview_KeyboardManager) [Keyboard Manager](https://aka.ms/PowerToysOverview_KeyboardManager) allows you to customize the keyboard to be more productive by remapping keys and creating your own keyboard shortcuts. This PowerToy requires Windows 10 1903 (build 18362) or later.
<br>
<br>
<br>
<br>
### PowerRename
[<img align="left" src="./doc/images/overview/PowerRename_small.PNG" />](https://aka.ms/PowerToysOverview_PowerRename) [PowerRename](https://aka.ms/PowerToysOverview_PowerRename) is a Windows Shell Extension for advanced bulk renaming using search and replace or regular expressions. PowerRename allows simple search and replace or more advanced regular expression matching. While you type in the search and replace input fields, the preview area will show what the items will be renamed to. PowerRename then calls into the Windows Explorer file operations engine to perform the rename. This has the benefit of allowing the rename operation to be undone after PowerRename exits. This code is based on [Chris Davis's SmartRename](https://github.com/chrdavis/SmartRename).
<br>
### PowerToys Run
[<img align="left" src="./doc/images/overview/PowerLauncher_small.png" />](https://aka.ms/PowerToysOverview_PowerToysRun) [PowerToys Run](https://aka.ms/PowerToysOverview_PowerToysRun) is a new toy in PowerToys that can help you search and launch your app instantly with a simple alt-space and start typing! It is open source and modular for additional plugins. Window Walker is now inside too! This PowerToy requires Windows 10 1903 (build 18362) or later.
<br>
<br>
<br>
### Shortcut Guide
[<img align="left" src="./doc/images/overview/Shortcut guide_small.png" />](https://aka.ms/PowerToysOverview_ShortcutGuide) [Windows key shortcut guide](https://aka.ms/PowerToysOverview_ShortcutGuide) appears when a user holds the Windows key down for more than one second and shows the available shortcuts for the current state of the desktop.
<br>
<br>
<br>
<br>
<br>
## Installing and running Microsoft PowerToys
**Requirements**
- Windows 10 1803 (build 17134) or later.
- Have [.NET Core 3.1 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-desktop-3.1.4-windows-x64-installer). The installer will prompt this but we want to directly make people aware.
### Via GitHub with MSI [Recommended]
Install from the [Microsoft PowerToys GitHub releases page][github-release-link]. Click on `Assets` to show the files available in the release and then click on `PowerToysSetup-0.19.0-x64.msi` to download the PowerToys installer.
**Note:** After installing, you will have to start PowerToys for the first time. We will improve install experience this moving forward but due to a possible install dependency, we can't start after install currently.
This is our preferred method.
### Via WinGet (Preview)
Download PowerToys from [WinGet](https://github.com/microsoft/winget-cli/releases). To install PowerToys, run the following command from the command line / PowerShell:
```powershell
WinGetinstallpowertoys
```
### Other install methods
##### MSIX / Store Build Update
- We put in a lot of effort here but currently our plan of record is to make the MSI our only installer option and built-in auto-upgrade. MSIX is a great installer / container tech but there are few spots we are working with the team to improve so we can adopt.
#### Via Chocolatey - ⚠ Unofficial ⚠
#### Via Chocolatey (Unofficial)
Download and upgrade PowerToys from [Chocolatey](https://chocolatey.org). If you have any issues when installing/upgrading the package please go to the [package page](https://chocolatey.org/packages/powertoys) and follow the [Chocolatey triage process](https://chocolatey.org/docs/package-triage-process)
@@ -39,6 +105,12 @@ To upgrade PowerToys, run the following command from the command line / PowerShe
chocoupgradepowertoys
```
### Known issues
- PT Run, Newly installed apps can't be found [#3553](https://github.com/microsoft/PowerToys/issues/3553). We will address this in 0.20.
- PT Run, CPU / Memory, still investigating [#3208](https://github.com/microsoft/PowerToys/issues/3208). We have 2 leads and fixed one item.
- WinKey remapping for PT Run can be quirky [#4578](https://github.com/microsoft/PowerToys/issues/4578)
### Processor support
We currently support the matrix below.
@@ -47,88 +119,43 @@ We currently support the matrix below.
[FancyZones](/src/modules/fancyzones/) - FancyZones is a window manager that makes it easy to create complex window layouts and quickly position windows into those layouts.
Our goals for 0.19 release cycle had one big goal, add in stability / quality fixes. We've addressed over 100 issues across all our utilities. We've improved our installer experience and parts will start coming online in 0.19 and 0.20. In this release, it will be the last time during upgrade you'll see Windows Explorer flash on you. For 0.20, the .NET Core install experience much smoother.
### Shortcut Guide
We'd also stress feedback is critical. We know there are areas for improvement on PowerToys Run. We would love feedback so we can improve. We also would love to know if you want us to be more aggressive on auto-upgrading.
[Windows key shortcut guide](/src/modules/shortcut_guide) - The shortcut guide appears when a user holds the Windows key down for more than one second and shows the available shortcuts for the current state of the desktop.
Lastly, we'd like to thank everyone who filed a bug, gave feedback or made a pull-request. The PowerToys team is extremely grateful to have the support of an amazing active community.
### PowerRename
- We shipped [v0.19][github-release-link]!
- Big push for PowerToys Run search quality fixes
- PowerToys Run can now remap to any key shortcut (minus restricted ones such as WinKey+L)
- Improved FancyZones on Virtual Desktops and multi-thread design
- Installer after 0.19 will no longer restart Windows Explorer
- Fixed [#2012 - Uninstalling with old control panel fails](https://github.com/microsoft/PowerToys/issues/2012)
- Fixed [#3384 - PowerToys Settings window is empty](https://github.com/microsoft/PowerToys/issues/3384)
- Over 100 bug fixes!
[PowerRename](/src/modules/powerrename) - PowerRename is a Windows Shell Extension for advanced bulk renaming using search and replace or regular expressions. PowerRename allows simple search and replace or more advanced regular expression matching. While you type in the search and replace input fields, the preview area will show what the items will be renamed to. PowerRename then calls into the Windows Explorer file operations engine to perform the rename. This has the benefit of allowing the rename operation to be undone after PowerRename exits.
For [0.20](https://github.com/microsoft/PowerToys/issues?q=is%3Aopen+is%3Aissue+project%3Amicrosoft%2FPowerToys%2F6), we are proactively working on:
This code is based on [Chris Davis's SmartRename](https://github.com/chrdavis/SmartRename).
### File Explorer (Preview Panes)
[File Explorer](/src/modules/previewpane) add-ons right now are just limited to Preview Pane additions for File Explorer. Preview Pane is an existing feature in the File Explorer. To enable it, you just click the View tab in the ribbon and then click "Preview Pane".
PowerToys will now enable two types of files to be previewed:
- Markdown files (.md)
- SVG (.svg)
### Image Resizer
[Image Resizer](/src/modules/imageresizer) is a Windows Shell Extension for quickly resizing images. With a simple right click from File Explorer, resize one or many images instantly.
This code is based on [Brice Lambson's Image Resizer](https://github.com/bricelam/ImageResizer).
### Window Walker (Text based alt-tab alternative)
[Window Walker](src/modules/windowwalker/) is an app that lets you search and switch between windows that you have open, all from the comfort of your keyboard. As you are searching for an app, you can use the keyboard up and down arrows to see an Alt-Tab style preview of the windows. In the future, this will be merged into the Launcher project.
This code is based on [Beta Tadele's Window Walker](https://github.com/betsegaw/windowwalker).
- Stability
- Start work on FZ Editor V2
- Start work on OOBE improvements
- Keyboard manager improvements
### Version 1.0 plan
Our plan for all the [goals and utilities for v1.0 detailed over here in the wiki][v1].
## What's Happening
### March 2020 Update
Our mantra for the 0.16 was adding in new features along with a continual push for quality and stability. We are working toward getting a way to auto-update PowerToys and have a good plan for this. We want to proactively thank the community for quickly identifying a few bugs inside 0.15 and allowing us to quickly release 0.15.1 and 0.15.2.
Below are just a few of the bullet items from this release.
- We shipped [v0.16][github-release-link]!
- FancyZone improvement:
- Multi-Monitor improvement: Zone flipping switching now works between monitors!
- Simplified UX: Removed layout hot-swap and flashing feature due to need to improve multi-monitor support
- New Utilities!
- Markdown Preview pane extension
- SVG Preview pane extension
- Image Resizer Window Shell extension
- Window Walker, an alt-tab alternative
- Fixed over 100 issues!
- Testing improvements
- 54 UX Functional tests
- 161 new Unit tests
For [0.17](https://github.com/microsoft/PowerToys/issues?q=is%3Aopen+is%3Aissue+project%3Amicrosoft%2FPowerToys%2F3), we are proactively working on:
- Auto-updating
- Win+R replacement (Launcher)
- Keyboard remapping
- Performance improvements with FancyZones
- A testing utility for FancyZones to be sure we can test different window configurations.
Future release work, we are proactively working on:
- Settings v2 / Fix bug #243
## Developer Guidance
Please read the [developer docs](/doc/devdocs) for a detailed breakdown.
## Contributing
This project welcomes contributions of all times. 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.
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](contributing.md). 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.
@@ -142,7 +169,7 @@ PowerToys is still a very fluidic project and the team is actively working out o
## Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct][oss-conduct-code].
This project has adopted the [Microsoft Open Source Code of Conduct][oss-conduct-code].
The PowerToys team is extremely grateful to have the support of an amazing active community. The work you do is incredibly important. PowerToys wouldn’t be near what it is without your help filing bugs, updating documentation, guiding the design, or writing features. We want to say thanks and to recognize your work. This is a living document dedicated to highlighting the high impact community members and their contributions.
Names are in alphabetical order based on first name.
Rafael has helped do the [upgrade from CppWinRT 1.x to 2.0](https://github.com/microsoft/PowerToys/issues/1907). He directly provided feedback to the CppWinRT team for bugs from this migration as well.
Rafael has helped do the [upgrade from CppWinRT 1.x to 2.0](https://github.com/microsoft/PowerToys/issues/1907). He directly provided feedback to the CppWinRT team for bugs from this migration as well.
## Open source projects
As PowerToys creates new utilities, some will be based off existing technology. We'll continue to do our best to contribute back to these projects but their efforts were the base of some of our projects. We want to be sure their work is directly recognized.
### [@jjw24](https://github.com/jjw24/) - Jeremy Wu
Initial base of jjw24's fork, which makes it the base of PowerToys Run.
## Microsoft community members
We would like to also directly call out some extremely helpful Microsoft employees that have directly contributed to PowerToys. This isn't their day job and was work they did out of passion. We want to say thank you and recognize your work.
After the user has changed the module settings in the Settings editor, the runner calls this method to pass to the module the updated values. It's a good place to save the settings as well.
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
- Try to package new ideas/components into libraries that have nicely defined interfaces.
- Package new ideas into classes or refactor existing ideas into a class as you extend.
- When adding new classes/methos/changing existing code: add new unit tests or update the existing tests.
- When adding new classes/methods/changing existing code: add new unit tests or update the existing tests.
## Github Workflow
@@ -46,32 +46,44 @@ Contains the source code of the PowerToys runner and of all of the PowerToys mod
Various tools used by PowerToys. Includes the Visual Studio 2019 project template for new PowerToys.
## Building code
## Compiling PowerToys
### Build Prerequisites
### Prerequisites for Compiling PowerToys
- Windows 10 1803 (build 10.0.17134.0) or above to build and run PowerToys.
- Visual Studio 2019 Community edition or higher, with the 'Desktop Development with C++' component and the Windows 10 SDK version 10.0.18362.0 or higher.
1. Windows 10 April 2018 Update (version 1803) or newer
2. Visual Studio Community/Professional/Enterprise 2019
3. Run the command below in cmd/terminal to install all the workloads and components for VS.<br />
**Note:** the script assumes VS is installed and Community edition. Please update path accordingly if Professional/Enterprise.
- Open `powertoys.sln` in Visual Studio, in the `Solutions Configuration` drop-down menu select `Release` or `Debug`, from the `Build` menu choose `Build Solution`.
- The PowerToys binaries will be in your repo under `x64\Release`.
- If you want to copy the `PowerToys.exe` binary to a different location, you'll also need to copy the `modules` and the `svgs` folders.
### Building the .msi Installer
## Building the Installer (.MSI)
* From the `installer` folder open `PowerToysSetup.sln` in Visual Studio, in the `Solutions Configuration` drop-down menu select `Release` or `Debug`, from the `Build` menu choose `Build Solution`.
* The resulting `PowerToysSetup.msi` installer will be available in the `installer\PowerToysSetup\x64\Release\` folder.
### Prerequisites Building the Installer (.MSI)
#### Prerequisites to Build the MSI Installer
1. Install the [WiX Toolset Visual Studio 2019 Extension](https://marketplace.visualstudio.com/items?itemName=RobMensching.WiXToolset).
2. Install the [WiX Toolset build tools](https://wixtoolset.org/releases/).
* Install the [WiX Toolset Visual Studio 2019 Extension](https://marketplace.visualstudio.com/items?itemName=RobMensching.WiXToolset).
* Install the [WiX Toolset build tools](https://wixtoolset.org/releases/).
### Compiling Installer (.MSI)
### Building the MSIX Installer
Please follow the [installer instructions](./installer/readme.md) which include items such as creating the self-signed cert for testing.
- From the `installer` folder open `PowerToysSetup.sln` in Visual Studio, in the `Solutions Configuration` drop-down menu select `Release`, from the `Build` menu choose `Build Solution`.
- The resulting `PowerToysSetup.msi` installer will be available in the `installer\PowerToysSetup\x64\Release\` folder.
## Debugging
@@ -79,8 +91,8 @@ The following configuration issue only applies if the user is a member of the Ad
Some PowerToys modules require being run with the highest permission level if the current user is a member of the Administrators group. The highest permission level is required to be able to perform some actions when an elevated application (e.g. Task Manager) is in the foreground or is the target of an action. Without elevated privileges some PowerToys modules will still work but with some limitations:
-the `FancyZones` module will be not be able to move an elevated window to a zone.
-the `Shortcut Guide` module will not appear if the foreground window belongs to an elevated application.
-The `FancyZones` module will be not be able to move an elevated window to a zone.
-The `Shortcut Guide` module will not appear if the foreground window belongs to an elevated application.
To run and debug PowerToys from Visual Studio when the user is a member of the Administrators group, Visual Studio has to be started with elevated privileges. If you want to avoid running Visual Studio with elevated privileges and don't mind the limitations described above, you can do the following: open the `runner` project properties and navigate to the `Linker -> Manifest File` settings, edit the `UAC Execution Level` property and change it from `highestAvailable (level='highestAvailable')` to `asInvoker (/level='asInvoker')`, save the changes.
@@ -122,7 +134,7 @@ While developing, it's possible to connect the WebView to the development server
### [`Settings-web`](settings-web.md)
This project generates the web UI shown in the [PowerToys Settings](/src/editor).
It's a `ReactJS` project created using [UI Fabric](https://developer.microsoft.com/en-us/fabric#/).
It's a `ReactJS` project created using [Fluent UI](https://developer.microsoft.com/en-us/fluentui#/).
## Current modules
### [`FancyZones`](modules/fancyzones.md)
@@ -134,11 +146,6 @@ PowerRename is a Windows Shell Context Menu Extension for advanced bulk renaming
### [`Shortcut Guide`](modules/shortcut_guide.md)
The Windows Shortcut Guide, displayed when the WinKey is held for some time.
An example PowerToy, that demonstrates how to create new ones. Please note, that this is going to become a Visual Studio project template soon.
This PowerToy serves as a sample to show how to implement the [PowerToys interface](/src/modules/interface/) when creating a PowerToy. It also showcases the currently implemented settings.
#### Options
This module has a setting to serve as an example for each of the currently implemented settings property:
@@ -8,7 +8,7 @@ If you're running any application as an administrator (aka elevated) and PowerTo
We understand users will run applications elevated. We do as well. We have two options for you when this scenario happens:
1.**Recommended:** PowerToys will prompt when we detect a process that is elevated. Go to PowerToys settings inside the General Tab and click "Relaunch as adminstrator".
1.**Recommended:** PowerToys will prompt when we detect a process that is elevated. Go to PowerToys settings inside the General Tab and click "Relaunch as administrator".
2. Enable "Always run as administrator" in the PowerToys settings.
## What is "Run as Administrator" / Elevated processes
Contains the executable starting point, initialization code and the list of known PowerToys. All singletones are also initialized here at the start. Loads all the powertoys by scanning the `./modules` folder and `enable()`s those makred as enabled in `%LOCALAPPDATA%\Microsoft\PowerToys\settings.json` config. Then it runs [a message loop](https://docs.microsoft.com/en-us/windows/win32/winmsg/using-messages-and-message-queues) for the tray UI. Note that this message loop also [handles lowlevel_keyboard_hook events](https://github.com/microsoft/PowerToys/blob/1760af50c8803588cb575167baae0439af38a9c1/src/runner/lowlevel_keyboard_event.cpp#L24).
Contains the executable starting point, initialization code and the list of known PowerToys. All singletones are also initialized here at the start. Loads all the powertoys by scanning the `./modules` folder and `enable()`s those marked as enabled in `%LOCALAPPDATA%\Microsoft\PowerToys\settings.json` config. Then it runs [a message loop](https://docs.microsoft.com/en-us/windows/win32/winmsg/using-messages-and-message-queues) for the tray UI. Note that this message loop also [handles lowlevel_keyboard_hook events](https://github.com/microsoft/PowerToys/blob/1760af50c8803588cb575167baae0439af38a9c1/src/runner/lowlevel_keyboard_event.cpp#L24).
<?foreach File in vcruntime140.dll;vcruntime140_1.dll;concrt140.dll;msvcp140.dll;msvcp140_1.dll;msvcp140_2.dll;msvcp140_codecvt_ids.dll;vccorlib140.dll?>
<?foreach File in vcruntime140.dll;vcruntime140_1.dll;concrt140.dll;msvcp140.dll;msvcp140_1.dll;msvcp140_2.dll;msvcp140_codecvt_ids.dll;vccorlib140.dll?>
<?foreach File in concrt140_app.dll;Microsoft.Bcl.AsyncInterfaces.dll;Microsoft.PowerToys.Settings.UI.Lib.dll;Microsoft.PowerToys.Settings.UI.Runner.dll;Microsoft.Toolkit.dll;Microsoft.Toolkit.Uwp.dll;Microsoft.Toolkit.Uwp.UI.dll;Microsoft.Toolkit.Win32.UI.XamlHost.dll;Microsoft.Toolkit.Win32.UI.XamlHost.Managed.dll;Microsoft.Toolkit.Wpf.UI.Controls.dll;Microsoft.Toolkit.Wpf.UI.XamlHost.dll;Microsoft.UI.Xaml.dll;Microsoft.Xaml.Interactions.dll;Microsoft.Xaml.Interactivity.dll;msvcp140_1_app.dll;msvcp140_2_app.dll;msvcp140_app.dll;Newtonsoft.Json.dll;PowerToysInterop.dll;System.Runtime.CompilerServices.Unsafe.dll;System.Runtime.dll;System.Text.Encodings.Web.dll;System.Text.Json.dll;vcamp140_app.dll;vccorlib140_app.dll;vcomp140_app.dll;vcruntime140_1_app.dll;vcruntime140_app.dll;Telemetry.dll;ManagedCommon.dll?>
<?foreach File in Microsoft.Toolkit.Uwp.pri;Microsoft.Toolkit.Uwp.UI.pri;Microsoft.Toolkit.Win32.UI.XamlHost.pri;Microsoft.UI.Xaml.pri;Microsoft.Xaml.Interactions.pri;Microsoft.Xaml.Interactivity.pri;resources.pri?>
<?foreach File in vcruntime140.dll;vcruntime140_1.dll;concrt140.dll;msvcp140.dll;msvcp140_1.dll;msvcp140_2.dll;msvcp140_codecvt_ids.dll;vccorlib140.dll?>
<?foreach File in FancyZonesPage.xbf;GeneralPage.xbf;ImageResizerPage.xbf;KeyboardManagerPage.xbf;PowerLauncherPage.xbf;PowerPreviewPage.xbf;PowerRenamePage.xbf;ShellPage.xbf;ShortcutGuidePage.xbf?>
<?foreach File in concrt140_app.dll;ICSharpCode.SharpZipLib.dll;JetBrains.Annotations.dll;Mages.Core.dll;Microsoft.Search.Interop.dll;EntityFramework.SqlServer.dll;EntityFramework.dll;Mono.Cecil.dll;Mono.Cecil.Mdb.dll;Mono.Cecil.Pdb.dll;Mono.Cecil.Rocks.dll;msvcp140_1_app.dll;msvcp140_2_app.dll;msvcp140_app.dll;Newtonsoft.Json.dll;NLog.dll;NLog.Extensions.Logging.dll;Pinyin4Net.dll;PowerLauncher.deps.json;PowerLauncher.dll;PowerLauncher.exe;Microsoft.Xaml.Behaviors.dll;System.Text.Json.dll;sni.dll;System.Data.SQLite.EF6.dll;PowerLauncher.runtimeconfig.json;SQLite.Interop.dll;System.Data.OleDb.dll;System.Data.SqlClient.dll;System.Data.SQLite.dll;vcamp140_app.dll;vccorlib140_app.dll;vcomp140_app.dll;vcruntime140_1_app.dll;vcruntime140_app.dll;WindowsInput.dll;Wox.Core.dll;Wox.dll;Wox.Infrastructure.dll;Wox.Plugin.dll;PowerToysInterop.dll;Telemetry.dll;PowerLauncher.Telemetry.dll;PropertyChanged.dll;Microsoft.Extensions.Configuration.Abstractions.dll;Microsoft.Extensions.Configuration.Binder.dll;Microsoft.Extensions.Configuration.dll;Microsoft.Extensions.DependencyInjection.Abstractions.dll;Microsoft.Extensions.DependencyInjection.dll;Microsoft.Extensions.Logging.Abstractions.dll;Microsoft.Extensions.Logging.dll;Microsoft.Extensions.Options.dll;Microsoft.Extensions.Primitives.dll;ControlzEx.dll;MahApps.Metro.dll;ManagedCommon.dll?>
<?foreach File in vcruntime140.dll;vcruntime140_1.dll;concrt140.dll;msvcp140.dll;msvcp140_1.dll;msvcp140_2.dll;msvcp140_codecvt_ids.dll;vccorlib140.dll?>
<?foreach File in app.png;app_error.png;Browser.png;calculator.png;cancel.png;close.png;cmd.png;color.png;copy.png;down.png;EXE.png;file.png;find.png;folder.png;history.png;image.png;Link.png;lock.png;logoff.png;ok.png;open.png;plugin.png;recyclebin.png;restart.png;search.png;settings.png;shutdown.png;sleep.png;up.png;update.png;warning.png?>
<?foreach File in plugin.json;Wox.Infrastructure.dll;Microsoft.Plugin.Calculator.deps.json;Microsoft.Plugin.Calculator.dll;Wox.Plugin.dll;Telemetry.dll?>
<?foreach File in plugin.json;Wox.Infrastructure.dll;Wox.Plugin.dll;Microsoft.Plugin.WindowWalker.deps.json;Microsoft.Plugin.WindowWalker.dll;Telemetry.dll?>
@@ -5,4 +5,4 @@ The PowerToys are split into DLLs for each PowerToy module ([`modules`](/src/mod
The settings window is a separate executable, contained in [`settings`](/src/settings) folder. It utilizes a WebView to display an HTML-based settings window (contained in [`settings-web`](/src/settings-web) folder).
The [`common`](/src/common) contains code for a static libary with helper functions, used by both the runner and the PowerToys modules.
The [`common`](/src/common) contains code for a static library with helper functions, used by both the runner and the PowerToys modules.
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
PowerToysTelemetry.Log.WriteEvent(newDebugEvent(){Message=$"[{assembly}][{callingMethod}]WaitForPowerToysRunner waiting for Event powerToysPID={powerToysPID}"});
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.