diff --git a/.config/configuration.vsEnterprise.winget b/.config/configuration.vsEnterprise.winget
index 4d19d37137..08c9983562 100644
--- a/.config/configuration.vsEnterprise.winget
+++ b/.config/configuration.vsEnterprise.winget
@@ -2,14 +2,14 @@
# Reference: https://github.com/microsoft/PowerToys/blob/main/doc/devdocs/readme.md#compiling-powertoys
properties:
resources:
- - resource: Microsoft.Windows.Developer/DeveloperMode
+ - resource: Microsoft.Windows.Settings/WindowsSettings
directives:
description: Enable Developer Mode
allowPrerelease: true
# Requires elevation for the set operation
securityContext: elevated
settings:
- Ensure: Present
+ DeveloperMode: true
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: vsPackage
directives:
diff --git a/.config/configuration.vsProfessional.winget b/.config/configuration.vsProfessional.winget
index 78fb1c13d5..4d7e4a31c3 100644
--- a/.config/configuration.vsProfessional.winget
+++ b/.config/configuration.vsProfessional.winget
@@ -2,14 +2,14 @@
# Reference: https://github.com/microsoft/PowerToys/blob/main/doc/devdocs/readme.md#compiling-powertoys
properties:
resources:
- - resource: Microsoft.Windows.Developer/DeveloperMode
+ - resource: Microsoft.Windows.Settings/WindowsSettings
directives:
description: Enable Developer Mode
allowPrerelease: true
# Requires elevation for the set operation
securityContext: elevated
settings:
- Ensure: Present
+ DeveloperMode: true
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: vsPackage
directives:
diff --git a/.config/configuration.winget b/.config/configuration.winget
index 456eca47f2..2016dcdc33 100644
--- a/.config/configuration.winget
+++ b/.config/configuration.winget
@@ -2,14 +2,14 @@
# Reference: https://github.com/microsoft/PowerToys/blob/main/doc/devdocs/readme.md#compiling-powertoys
properties:
resources:
- - resource: Microsoft.Windows.Developer/DeveloperMode
+ - resource: Microsoft.Windows.Settings/WindowsSettings
directives:
description: Enable Developer Mode
allowPrerelease: true
# Requires elevation for the set operation
securityContext: elevated
settings:
- Ensure: Present
+ DeveloperMode: true
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: vsPackage
directives:
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index e55d081c91..5e5ea03e7e 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -12,7 +12,7 @@ body:
attributes:
label: Microsoft PowerToys version
placeholder: X.XX.X
- description: Hover over system tray icon or look at Settings
+ description: Hover over the system tray icon or look at Settings
validations:
required: true
@@ -20,7 +20,7 @@ body:
type: dropdown
attributes:
label: Installation method
- description: How / Where was PowerToys installed from?
+ description: How / where was PowerToys installed from?
multiple: true
options:
- GitHub
diff --git a/.github/ISSUE_TEMPLATE/documentation-issue.yml b/.github/ISSUE_TEMPLATE/documentation-issue.yml
index 151fc5a1f7..583cf54811 100644
--- a/.github/ISSUE_TEMPLATE/documentation-issue.yml
+++ b/.github/ISSUE_TEMPLATE/documentation-issue.yml
@@ -6,7 +6,7 @@ labels:
body:
- type: textarea
attributes:
- label: Provide a description of requested docs changes
+ label: Describe the requested doc changes
placeholder: Briefly describe which document needs to be corrected and why.
validations:
required: true
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
index d7d092dbca..a2c7db9cc5 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.yml
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -13,7 +13,7 @@ body:
- type: textarea
attributes:
label: Scenario when this would be used?
- placeholder: What is the scenario this would be used? Why is this important to your workflow as a power user?
+ placeholder: What is the scenario this would be used in? Why is this important to your workflow as a power user?
validations:
required: true
- type: textarea
diff --git a/.github/ISSUE_TEMPLATE/translation_issue.yml b/.github/ISSUE_TEMPLATE/translation_issue.yml
index ffddacb9aa..1fdefbff8b 100644
--- a/.github/ISSUE_TEMPLATE/translation_issue.yml
+++ b/.github/ISSUE_TEMPLATE/translation_issue.yml
@@ -14,7 +14,7 @@ body:
attributes:
label: Microsoft PowerToys version
placeholder: 0.70.0
- description: Hover over system tray icon or look at Settings
+ description: Hover over the system tray icon or look at Settings
validations:
required: true
- type: dropdown
@@ -65,7 +65,7 @@ body:
- type: textarea
attributes:
label: ❌ Actual phrase(s)
- placeholder: What is there? Please include a screenshot as that is extremely helpful.
+ placeholder: What is there? Please include a screenshot, as that is extremely helpful.
validations:
required: true
- type: textarea
diff --git a/.github/actions/spell-check/allow/names.txt b/.github/actions/spell-check/allow/names.txt
index eeda5b9ae1..f570a231af 100644
--- a/.github/actions/spell-check/allow/names.txt
+++ b/.github/actions/spell-check/allow/names.txt
@@ -46,8 +46,8 @@ betsegaw
bricelam
bsky
CCcat
-chenmy
chemwolf
+chenmy
Chinh
chrdavis
Chrzan
@@ -65,8 +65,8 @@ Deondre
DHowett
ductdo
Essey
-Feng
ethanfangg
+Feng
ferraridavide
foxmsft
frankychen
@@ -77,6 +77,7 @@ Galaxi
Garside
Gershaft
Giordani
+Gleb
Gokce
gordon
Griese
@@ -90,12 +91,15 @@ Hemmerlein
hlaueriksson
Horvalds
Howett
+hotkidfamily
htcfreek
Huynh
Ionut
jamrobot
Jaswal
+Jaylyn
jefflord
+Jeremic
Jordi
jyuwono
kai
@@ -105,6 +109,7 @@ Kantarci
Karthick
kaylacinnamon
kevinguo
+Khmyznikov
Krigun
Lambson
Laute
@@ -127,6 +132,8 @@ Naro
nathancartlidge
Nemeth
nielslaute
+Noraa
+noraajunker
oldnewthing
onegreatworld
palenshus
@@ -146,11 +153,13 @@ ricardosantos
riri
ritchielawrence
robmikh
+ruslanlap
Russinovich
Rutkas
ryanbodrug
saahmedm
sachaple
+Sameerjs
Santossio
Schoen
Sekan
@@ -166,9 +175,11 @@ Tadele
talynone
Taras
TBM
+Teutsch
tilovell
Triet
urnotdfs
+vednig
waaverecords
wang
Whuihuan
@@ -187,9 +198,6 @@ zhaopy
zhaoqpcn
Zoltan
Zykova
-Sameerjs
-ruslanlap
-vednig
# OTHERS
@@ -216,6 +224,7 @@ openai
Quickime
regedit
roslyn
+Skia
Spotify
Vanara
wangyi
diff --git a/.github/actions/spell-check/excludes.txt b/.github/actions/spell-check/excludes.txt
index 21d7da66b8..f5710e72ce 100644
--- a/.github/actions/spell-check/excludes.txt
+++ b/.github/actions/spell-check/excludes.txt
@@ -92,6 +92,7 @@
^\.github/actions/spell-check/
^\.gitmodules$
^\Q.github/workflows/spelling2.yml\E$
+^\Q.pipelines/272MSSharedLibSN2048.snk\E$
^\Q.pipelines/ESRPSigning_core.json\E$
^\Qdoc/devdocs/localization.md\E$
^\Qsrc/common/ManagedCommon/ColorFormatHelper.cs\E$
@@ -120,7 +121,9 @@
^src/modules/MouseWithoutBorders/App/Form/.*\.resx$
^src/modules/MouseWithoutBorders/App/Helper/.*\.resx$
^src/modules/previewpane/UnitTests-MarkdownPreviewHandler/HelperFiles/MarkdownWithHTMLImageTag\.txt$
+^src/modules/ZoomIt/ZoomIt/ZoomIt\.idc$
^src/Monaco/
^src/common/sysinternals/Eula/
^tools/Verification scripts/Check preview handler registration\.ps1$
ignore$
+^src/modules/registrypreview/RegistryPreviewUILib/Controls/HexBox/.*$
diff --git a/.github/actions/spell-check/expect.txt b/.github/actions/spell-check/expect.txt
index f9d35feab1..a081d3fcd1 100644
--- a/.github/actions/spell-check/expect.txt
+++ b/.github/actions/spell-check/expect.txt
@@ -14,6 +14,7 @@ AColumn
acrt
ACTIVATEAPP
activationaction
+ACTIVATEOPTIONS
ACVS
adaptivecards
ADate
@@ -68,6 +69,7 @@ appwiz
APSTUDIO
AQS
ARandom
+Arash
ARCHITEW
ARemapped
ARPINSTALLLOCATION
@@ -154,6 +156,7 @@ builttoroam
BVal
BValue
byapp
+BYCOMMAND
BYPOSITION
CALCRECT
CALG
@@ -189,6 +192,7 @@ CImage
cla
CLASSDC
CLASSNOTAVAILABLE
+cleanmgr
clickable
clickonce
CLIENTEDGE
@@ -200,6 +204,7 @@ CLIPSIBLINGS
closesocket
clp
CLSCTX
+CLSCTXLOCALSERVER
clsids
Clusion
cmder
@@ -273,6 +278,7 @@ currentculture
CURRENTDIR
CURSORINFO
cursorpos
+CURSORSHOWING
customaction
CUSTOMACTIONTEST
CUSTOMFORMATPLACEHOLDER
@@ -327,7 +333,6 @@ DEFAULTTONULL
DEFAULTTOPRIMARY
DEFERERASE
DEFPUSHBUTTON
-DEFT
deinitialization
DELA
DELETEDKEYIMAGE
@@ -341,7 +346,9 @@ DESELECTOTHERS
DESIGNINFO
DESKTOPABSOLUTEEDITING
DESKTOPABSOLUTEPARSING
+DESKTOPHORZRES
desktopshorcutinstalled
+DESKTOPVERTRES
devblogs
devdocs
devmgmt
@@ -352,6 +359,7 @@ DFX
DIALOGEX
digicert
dimm
+DINORMAL
DISABLEASACTIONKEY
DISABLENOSCROLL
diskmgmt
@@ -395,6 +403,7 @@ DVASPECTINFO
DVD
dvr
DVTARGETDEVICE
+dwflags
dwl
dwm
dwmapi
@@ -469,6 +478,7 @@ EXPCMDFLAGS
EXPCMDSTATE
explr
exppowertoys
+exprtk
exptas
exsb
exstyle
@@ -482,6 +492,7 @@ FANCYZONESDRAWLAYOUTTEST
FANCYZONESEDITOR
FARPROC
fff
+FFFF
FILEEXPLORER
FILEFLAGS
FILEFLAGSMASK
@@ -600,6 +611,7 @@ helptext
HGFE
hglobal
hhk
+HHmmssfff
hhx
Hiber
Hiberboot
@@ -608,6 +620,7 @@ hicon
HIDEREADONLY
HIDEWINDOW
Hif
+hightlight
HIMAGELIST
himl
hinst
@@ -669,7 +682,6 @@ IBeam
icf
ICONERROR
ICONLOCATION
-idc
IDCANCEL
IDD
idk
@@ -680,7 +692,6 @@ IDR
IDXGI
ietf
IEXPLORE
-iextn
IFACEMETHOD
IFACEMETHODIMP
IFile
@@ -719,7 +730,6 @@ INPUTMOUSE
INPUTSINK
INPUTTYPE
INSTALLDESKTOPSHORTCUT
-INSTALLDIR
installdir
INSTALLFOLDER
INSTALLFOLDERTOBOOTSTRAPPERINSTALLFOLDER
@@ -745,6 +755,7 @@ isocpp
iss
issecret
ISSEPARATOR
+istep
ith
ITHUMBNAIL
IUI
@@ -755,6 +766,7 @@ iwr
jfif
jgeosdfsdsgmkedfgdfgdfgbkmhcgcflmi
jjw
+JLO
jobject
jpe
jpnime
@@ -788,6 +800,7 @@ LCIDTo
Lclean
Ldone
Ldr
+LEFTALIGN
LEFTSCROLLBAR
LEFTTEXT
LError
@@ -810,11 +823,11 @@ LMENU
lnks
LOADFROMFILE
LOBYTE
-localappdata
LOCALDISPLAY
localpackage
LOCALSYSTEM
LOCATIONCHANGE
+LOCKTYPE
LOGFONT
LOGFONTW
logon
@@ -910,6 +923,7 @@ metafile
mfc
Mgmt
Microwaved
+middleclickaction
midl
mii
mindaro
@@ -975,7 +989,6 @@ msrc
msstore
mst
msvcp
-msvsmon
MTND
MULTIPLEUSE
multizone
@@ -1153,6 +1166,7 @@ PARTIALCONFIRMATIONDIALOGTITLE
PATCOPY
PATHMUSTEXIST
PATINVERT
+partow
PATPAINT
pbc
pbi
@@ -1251,6 +1265,7 @@ prg
prgh
prgms
pri
+primaryclickaction
PRINTCLIENT
printmanagement
prm
@@ -1272,6 +1287,7 @@ prvpane
psapi
pscid
PSECURITY
+psexec
psfgao
psfi
PSMODULEPATH
@@ -1282,7 +1298,6 @@ pstm
PStr
pstream
pstrm
-pswd
PSYSTEM
psz
ptb
@@ -1427,6 +1442,7 @@ SDKDDK
sdns
searchterm
SEARCHUI
+secondaryclickaction
SECONDARYDISPLAY
secpol
securestring
@@ -1474,16 +1490,12 @@ SHELLDLL
shellex
SHELLEXECUTEINFO
SHELLEXECUTEINFOW
-SHELLEXTENSION
SHELLICONSIZE
-SHELLNEWVALUE
SHFILEINFO
SHFILEOPSTRUCT
SHGDN
SHGDNF
SHGFI
-SHGFIICON
-SHGFILARGEICON
SHIL
shinfo
shlwapi
@@ -1515,9 +1527,9 @@ SICHINT
SIDs
siex
sigdn
+Signedness
SIGNINGSCENARIO
signtool
-Signtool
SINGLEKEY
sipolicy
SIZEBOX
@@ -1533,6 +1545,7 @@ SLGP
sln
SMALLICON
smartphone
+smileys
SMTO
SNAPPROCESS
snk
@@ -1588,6 +1601,7 @@ steamapps
STGC
STGM
STGMEDIUM
+STGMREAD
STICKYKEYS
sticpl
storelogo
@@ -1664,6 +1678,7 @@ TDefault
TDevice
telephon
templatenamespace
+TESTONLY
testprocess
TEXCOORD
TEXTBOXNEWLINE
@@ -1716,6 +1731,7 @@ trx
tsa
TSender
TServer
+tskill
tstoi
TStr
tweakme
@@ -1779,7 +1795,6 @@ uxtheme
vabdq
validmodulename
valuegenerator
-VARENUM
variantassignment
vcamp
VCENTER
@@ -1875,6 +1890,7 @@ WINDOWPOSCHANGING
WINDOWSBUILDNUMBER
windowssearch
windowssettings
+windowsterminal
WINDOWSTYLES
WINDOWSTYLESICON
winerror
@@ -1949,6 +1965,7 @@ Wwanpp
XAxis
xclip
xcopy
+XDeployment
XDocument
XElement
xfd
@@ -1984,6 +2001,7 @@ Zoneszonabletester
Zoomin
zoomit
ZOOMITX
+Zorder
ZXk
ZXNs
zzz
@@ -1995,3 +2013,10 @@ culori
Evercoder
LCh
CIELCh
+CLSCTXINPROCALL
+IIDI
+irow
+lcid
+ppwsz
+rguid
+VARTYPE
diff --git a/.github/actions/spell-check/patterns.txt b/.github/actions/spell-check/patterns.txt
index 5a6f4785b1..6bd99fb83e 100644
--- a/.github/actions/spell-check/patterns.txt
+++ b/.github/actions/spell-check/patterns.txt
@@ -243,4 +243,4 @@ Process Process
# ZoomIt menu items with accelerator keys
E&xit
-St&yle
\ No newline at end of file
+St&yle
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index 0cff106acb..2db246d63b 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -5,9 +5,9 @@
## PR Checklist
- [ ] **Closes:** #xxx
-- [ ] **Communication:** I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
+- [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
-- [ ] **Localization:** All end user facing strings can be localized
+- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries
@@ -16,7 +16,7 @@
- [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx
-
+
## Detailed Description of the Pull Request / Additional comments
diff --git a/.github/workflows/package-submissions.yml b/.github/workflows/package-submissions.yml
index b03c18b78b..a2d401faa4 100644
--- a/.github/workflows/package-submissions.yml
+++ b/.github/workflows/package-submissions.yml
@@ -1,5 +1,4 @@
name: WinGet submission on release
-# based off of https://github.com/nushell/nushell/blob/main/.github/workflows/winget-submission.yml
on:
workflow_dispatch:
@@ -9,23 +8,31 @@ on:
jobs:
winget:
name: Publish winget package
+
+ # winget-create is only supported on Windows
runs-on: windows-latest
+
+ # winget-create will read the following environment variable to access the GitHub token needed for submitting a PR
+ # See https://aka.ms/winget-create-token
+ env:
+ WINGET_CREATE_GITHUB_TOKEN: ${{ secrets.PT_WINGET }}
+
+ # Only submit stable releases
+ if: ${{ !github.event.release.prerelease }}
steps:
- name: Submit Microsoft.PowerToys package to Windows Package Manager Community Repository
run: |
+ # Get installer info from GitHub release event
+ $assets = '${{ toJSON(github.event.release.assets) }}' | ConvertFrom-Json
+ $x64UserInstallerUrl = $assets | Where-Object -Property name -match 'PowerToysUserSetup.*x64' | Select -ExpandProperty browser_download_url
+ $x64MachineInstallerUrl = $assets | Where-Object -Property name -match 'PowerToysSetup.*x64' | Select -ExpandProperty browser_download_url
+ $arm64UserInstallerUrl = $assets | Where-Object -Property name -match 'PowerToysUserSetup.*arm64' | Select -ExpandProperty browser_download_url
+ $arm64MachineInstallerUrl = $assets | Where-Object -Property name -match 'PowerToysSetup.*arm64' | Select -ExpandProperty browser_download_url
+ $packageVersion = (${{ toJSON(github.event.release.tag_name) }}).Trim('v')
- $wingetPackage = "Microsoft.PowerToys"
- $gitToken = "${{ secrets.PT_WINGET }}"
-
- $github = Invoke-RestMethod -uri "https://api.github.com/repos/Microsoft/PowerToys/releases"
-
- $targetRelease = $github | Where-Object -Property name -match 'Release'| Select -First 1
- $installerUserX64Url = $targetRelease | Select -ExpandProperty assets -First 1 | Where-Object -Property name -match 'PowerToysUserSetup.*x64' | Select -ExpandProperty browser_download_url
- $installerMachineX64Url = $targetRelease | Select -ExpandProperty assets -First 1 | Where-Object -Property name -match 'PowerToysSetup.*x64' | Select -ExpandProperty browser_download_url
- $installerUserArmUrl = $targetRelease | Select -ExpandProperty assets -First 1 | Where-Object -Property name -match 'PowerToysUserSetup.*arm64' | Select -ExpandProperty browser_download_url
- $installerMachineArmUrl = $targetRelease | Select -ExpandProperty assets -First 1 | Where-Object -Property name -match 'PowerToysSetup.*arm64' | Select -ExpandProperty browser_download_url
- $ver = $targetRelease.tag_name -ireplace '^v'
-
- # getting latest wingetcreate file
- iwr https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe
- .\wingetcreate.exe update $wingetPackage -s -v $ver -u "$installerUserX64Url|user" "$installerMachineX64Url|machine" "$installerUserArmUrl|user" "$installerMachineArmUrl|machine" -t $gitToken
+ # Update package using wingetcreate
+ curl.exe -JLO https://aka.ms/wingetcreate/latest
+ .\wingetcreate.exe update Microsoft.PowerToys `
+ --version $packageVersion `
+ --urls "$x64UserInstallerUrl|user" "$x64MachineInstallerUrl|machine" "$arm64UserInstallerUrl|user" "$arm64MachineInstallerUrl|machine" `
+ --submit
diff --git a/.github/workflows/spelling2.yml b/.github/workflows/spelling2.yml
index 03bb66fff6..cd2b6d5b0f 100644
--- a/.github/workflows/spelling2.yml
+++ b/.github/workflows/spelling2.yml
@@ -93,7 +93,7 @@ jobs:
steps:
- name: check-spelling
id: spelling
- uses: check-spelling/check-spelling@67debf50669c7fc76fc8f5d7f996384535a72b77 # v0.0.24
+ uses: check-spelling/check-spelling@c635c2f3f714eec2fcf27b643a1919b9a811ef2e # v0.0.25
with:
config: .github/actions/spell-check
suppress_push_for_open_pull_request: ${{ github.actor != 'dependabot[bot]' && 1 }}
@@ -156,7 +156,7 @@ jobs:
if: (success() || failure()) && needs.spelling.outputs.followup && github.event_name == 'push'
steps:
- name: comment
- uses: check-spelling/check-spelling@67debf50669c7fc76fc8f5d7f996384535a72b77 # v0.0.24
+ uses: check-spelling/check-spelling@c635c2f3f714eec2fcf27b643a1919b9a811ef2e # v0.0.25
with:
config: .github/actions/spell-check
checkout: true
@@ -175,7 +175,7 @@ jobs:
if: (success() || failure()) && needs.spelling.outputs.followup && contains(github.event_name, 'pull_request')
steps:
- name: comment
- uses: check-spelling/check-spelling@67debf50669c7fc76fc8f5d7f996384535a72b77 # v0.0.24
+ uses: check-spelling/check-spelling@c635c2f3f714eec2fcf27b643a1919b9a811ef2e # v0.0.25
with:
config: .github/actions/spell-check
checkout: true
@@ -202,7 +202,7 @@ jobs:
cancel-in-progress: false
steps:
- name: apply spelling updates
- uses: check-spelling/check-spelling@67debf50669c7fc76fc8f5d7f996384535a72b77 # v0.0.24
+ uses: check-spelling/check-spelling@c635c2f3f714eec2fcf27b643a1919b9a811ef2e # v0.0.25
with:
experimental_apply_changes_via_bot: ${{ github.repository_owner != 'microsoft' && 1 }}
checkout: true
diff --git a/.pipelines/ESRPSigning_core.json b/.pipelines/ESRPSigning_core.json
index 615b5633bf..b0b2a42655 100644
--- a/.pipelines/ESRPSigning_core.json
+++ b/.pipelines/ESRPSigning_core.json
@@ -3,226 +3,227 @@
"UseMinimatch": false,
"SignBatches": [
{
- "MatchedPath": [
- "*.resources.dll",
-
- "WinUI3Apps\\Assets\\Settings\\Scripts\\*.ps1",
+ "MatchedPath": [
+ "*.resources.dll",
- "PowerToys.ActionRunner.exe",
- "PowerToys.Update.exe",
- "PowerToys.BackgroundActivatorDLL.dll",
- "Notifications.dll",
- "os-detection.dll",
- "PowerToys.exe",
- "PowerToys.FilePreviewCommon.dll",
- "PowerToys.Interop.dll",
- "Tools\\PowerToys.BugReportTool.exe",
- "StylesReportTool\\PowerToys.StylesReportTool.exe",
- "Telemetry.dll",
- "PowerToys.ManagedTelemetry.dll",
- "PowerToys.ManagedCommon.dll",
- "PowerToys.Common.UI.dll",
- "PowerToys.Settings.UI.Lib.dll",
- "PowerToys.GPOWrapper.dll",
- "PowerToys.GPOWrapperProjection.dll",
- "PowerToys.AllExperiments.dll",
+ "WinUI3Apps\\Assets\\Settings\\Scripts\\*.ps1",
- "PowerToys.AlwaysOnTop.exe",
- "PowerToys.AlwaysOnTopModuleInterface.dll",
+ "PowerToys.ActionRunner.exe",
+ "PowerToys.Update.exe",
+ "PowerToys.BackgroundActivatorDLL.dll",
+ "Notifications.dll",
+ "os-detection.dll",
+ "PowerToys.exe",
+ "PowerToys.FilePreviewCommon.dll",
+ "PowerToys.Interop.dll",
+ "Tools\\PowerToys.BugReportTool.exe",
+ "StylesReportTool\\PowerToys.StylesReportTool.exe",
+ "Telemetry.dll",
+ "CalculatorEngineCommon.dll",
+ "PowerToys.ManagedTelemetry.dll",
+ "PowerToys.ManagedCommon.dll",
+ "PowerToys.Common.UI.dll",
+ "PowerToys.Settings.UI.Lib.dll",
+ "PowerToys.GPOWrapper.dll",
+ "PowerToys.GPOWrapperProjection.dll",
+ "PowerToys.AllExperiments.dll",
- "PowerToys.CmdNotFoundModuleInterface.dll",
- "PowerToys.CmdNotFound.dll",
+ "PowerToys.AlwaysOnTop.exe",
+ "PowerToys.AlwaysOnTopModuleInterface.dll",
- "PowerToys.ColorPicker.dll",
- "PowerToys.ColorPickerUI.dll",
- "PowerToys.ColorPickerUI.exe",
+ "PowerToys.CmdNotFoundModuleInterface.dll",
+ "PowerToys.CmdNotFound.dll",
- "PowerToys.CropAndLockModuleInterface.dll",
- "PowerToys.CropAndLock.exe",
+ "PowerToys.ColorPicker.dll",
+ "PowerToys.ColorPickerUI.dll",
+ "PowerToys.ColorPickerUI.exe",
- "PowerToys.PowerOCRModuleInterface.dll",
- "PowerToys.PowerOCR.dll",
- "PowerToys.PowerOCR.exe",
+ "PowerToys.CropAndLockModuleInterface.dll",
+ "PowerToys.CropAndLock.exe",
- "PowerToys.AdvancedPasteModuleInterface.dll",
- "WinUI3Apps\\PowerToys.AdvancedPaste.exe",
- "WinUI3Apps\\PowerToys.AdvancedPaste.dll",
+ "PowerToys.PowerOCRModuleInterface.dll",
+ "PowerToys.PowerOCR.dll",
+ "PowerToys.PowerOCR.exe",
- "PowerToys.AwakeModuleInterface.dll",
- "PowerToys.Awake.exe",
- "PowerToys.Awake.dll",
+ "PowerToys.AdvancedPasteModuleInterface.dll",
+ "WinUI3Apps\\PowerToys.AdvancedPaste.exe",
+ "WinUI3Apps\\PowerToys.AdvancedPaste.dll",
- "fancyzones.dll",
- "PowerToys.FancyZonesEditor.exe",
- "PowerToys.FancyZonesEditor.dll",
- "PowerToys.FancyZonesEditorCommon.dll",
- "PowerToys.FancyZonesModuleInterface.dll",
- "PowerToys.FancyZones.exe",
+ "PowerToys.AwakeModuleInterface.dll",
+ "PowerToys.Awake.exe",
+ "PowerToys.Awake.dll",
- "PowerToys.GcodePreviewHandler.dll",
- "PowerToys.GcodePreviewHandler.exe",
- "PowerToys.GcodePreviewHandlerCpp.dll",
- "PowerToys.GcodeThumbnailProvider.dll",
- "PowerToys.GcodeThumbnailProvider.exe",
- "PowerToys.GcodeThumbnailProviderCpp.dll",
- "PowerToys.ManagedTelemetry.dll",
- "PowerToys.MarkdownPreviewHandler.dll",
- "PowerToys.MarkdownPreviewHandler.exe",
- "PowerToys.MarkdownPreviewHandlerCpp.dll",
- "PowerToys.MonacoPreviewHandler.dll",
- "PowerToys.MonacoPreviewHandler.exe",
- "PowerToys.MonacoPreviewHandlerCpp.dll",
- "PowerToys.PdfPreviewHandler.dll",
- "PowerToys.PdfPreviewHandler.exe",
- "PowerToys.PdfPreviewHandlerCpp.dll",
- "PowerToys.PdfThumbnailProvider.dll",
- "PowerToys.PdfThumbnailProvider.exe",
- "PowerToys.PdfThumbnailProviderCpp.dll",
- "PowerToys.powerpreview.dll",
- "PowerToys.PreviewHandlerCommon.dll",
- "PowerToys.QoiPreviewHandler.dll",
- "PowerToys.QoiPreviewHandler.exe",
- "PowerToys.QoiPreviewHandlerCpp.dll",
- "PowerToys.QoiThumbnailProvider.dll",
- "PowerToys.QoiThumbnailProvider.exe",
- "PowerToys.QoiThumbnailProviderCpp.dll",
- "PowerToys.StlThumbnailProvider.dll",
- "PowerToys.StlThumbnailProvider.exe",
- "PowerToys.StlThumbnailProviderCpp.dll",
- "PowerToys.SvgPreviewHandler.dll",
- "PowerToys.SvgPreviewHandler.exe",
- "PowerToys.SvgPreviewHandlerCpp.dll",
- "PowerToys.SvgThumbnailProvider.dll",
- "PowerToys.SvgThumbnailProvider.exe",
- "PowerToys.SvgThumbnailProviderCpp.dll",
+ "fancyzones.dll",
+ "PowerToys.FancyZonesEditor.exe",
+ "PowerToys.FancyZonesEditor.dll",
+ "PowerToys.FancyZonesEditorCommon.dll",
+ "PowerToys.FancyZonesModuleInterface.dll",
+ "PowerToys.FancyZones.exe",
- "WinUI3Apps\\PowerToys.HostsModuleInterface.dll",
- "WinUI3Apps\\PowerToys.HostsUILib.dll",
- "WinUI3Apps\\PowerToys.Hosts.dll",
- "WinUI3Apps\\PowerToys.Hosts.exe",
+ "PowerToys.GcodePreviewHandler.dll",
+ "PowerToys.GcodePreviewHandler.exe",
+ "PowerToys.GcodePreviewHandlerCpp.dll",
+ "PowerToys.GcodeThumbnailProvider.dll",
+ "PowerToys.GcodeThumbnailProvider.exe",
+ "PowerToys.GcodeThumbnailProviderCpp.dll",
+ "PowerToys.ManagedTelemetry.dll",
+ "PowerToys.MarkdownPreviewHandler.dll",
+ "PowerToys.MarkdownPreviewHandler.exe",
+ "PowerToys.MarkdownPreviewHandlerCpp.dll",
+ "PowerToys.MonacoPreviewHandler.dll",
+ "PowerToys.MonacoPreviewHandler.exe",
+ "PowerToys.MonacoPreviewHandlerCpp.dll",
+ "PowerToys.PdfPreviewHandler.dll",
+ "PowerToys.PdfPreviewHandler.exe",
+ "PowerToys.PdfPreviewHandlerCpp.dll",
+ "PowerToys.PdfThumbnailProvider.dll",
+ "PowerToys.PdfThumbnailProvider.exe",
+ "PowerToys.PdfThumbnailProviderCpp.dll",
+ "PowerToys.powerpreview.dll",
+ "PowerToys.PreviewHandlerCommon.dll",
+ "PowerToys.QoiPreviewHandler.dll",
+ "PowerToys.QoiPreviewHandler.exe",
+ "PowerToys.QoiPreviewHandlerCpp.dll",
+ "PowerToys.QoiThumbnailProvider.dll",
+ "PowerToys.QoiThumbnailProvider.exe",
+ "PowerToys.QoiThumbnailProviderCpp.dll",
+ "PowerToys.StlThumbnailProvider.dll",
+ "PowerToys.StlThumbnailProvider.exe",
+ "PowerToys.StlThumbnailProviderCpp.dll",
+ "PowerToys.SvgPreviewHandler.dll",
+ "PowerToys.SvgPreviewHandler.exe",
+ "PowerToys.SvgPreviewHandlerCpp.dll",
+ "PowerToys.SvgThumbnailProvider.dll",
+ "PowerToys.SvgThumbnailProvider.exe",
+ "PowerToys.SvgThumbnailProviderCpp.dll",
- "WinUI3Apps\\PowerToys.FileLocksmithLib.Interop.dll",
- "WinUI3Apps\\PowerToys.FileLocksmithExt.dll",
- "WinUI3Apps\\PowerToys.FileLocksmithUI.exe",
- "WinUI3Apps\\PowerToys.FileLocksmithUI.dll",
- "WinUI3Apps\\PowerToys.FileLocksmithContextMenu.dll",
- "FileLocksmithContextMenuPackage.msix",
+ "WinUI3Apps\\PowerToys.HostsModuleInterface.dll",
+ "WinUI3Apps\\PowerToys.HostsUILib.dll",
+ "WinUI3Apps\\PowerToys.Hosts.dll",
+ "WinUI3Apps\\PowerToys.Hosts.exe",
- "WinUI3Apps\\Peek.Common.dll",
- "WinUI3Apps\\Peek.FilePreviewer.dll",
- "WinUI3Apps\\Powertoys.Peek.UI.dll",
- "WinUI3Apps\\Powertoys.Peek.UI.exe",
- "WinUI3Apps\\Powertoys.Peek.dll",
+ "WinUI3Apps\\PowerToys.FileLocksmithLib.Interop.dll",
+ "WinUI3Apps\\PowerToys.FileLocksmithExt.dll",
+ "WinUI3Apps\\PowerToys.FileLocksmithUI.exe",
+ "WinUI3Apps\\PowerToys.FileLocksmithUI.dll",
+ "WinUI3Apps\\PowerToys.FileLocksmithContextMenu.dll",
+ "FileLocksmithContextMenuPackage.msix",
- "WinUI3Apps\\PowerToys.EnvironmentVariablesModuleInterface.dll",
- "WinUI3Apps\\PowerToys.EnvironmentVariablesUILib.dll",
- "WinUI3Apps\\PowerToys.EnvironmentVariables.dll",
- "WinUI3Apps\\PowerToys.EnvironmentVariables.exe",
+ "WinUI3Apps\\Peek.Common.dll",
+ "WinUI3Apps\\Peek.FilePreviewer.dll",
+ "WinUI3Apps\\Powertoys.Peek.UI.dll",
+ "WinUI3Apps\\Powertoys.Peek.UI.exe",
+ "WinUI3Apps\\Powertoys.Peek.dll",
- "PowerToys.ImageResizer.exe",
- "PowerToys.ImageResizer.dll",
- "PowerToys.ImageResizerExt.dll",
- "PowerToys.ImageResizerContextMenu.dll",
- "ImageResizerContextMenuPackage.msix",
+ "WinUI3Apps\\PowerToys.EnvironmentVariablesModuleInterface.dll",
+ "WinUI3Apps\\PowerToys.EnvironmentVariablesUILib.dll",
+ "WinUI3Apps\\PowerToys.EnvironmentVariables.dll",
+ "WinUI3Apps\\PowerToys.EnvironmentVariables.exe",
- "PowerToys.KeyboardManager.dll",
- "KeyboardManagerEditor\\PowerToys.KeyboardManagerEditor.exe",
- "KeyboardManagerEngine\\PowerToys.KeyboardManagerEngine.exe",
- "PowerToys.KeyboardManagerEditorLibraryWrapper.dll",
+ "PowerToys.ImageResizer.exe",
+ "PowerToys.ImageResizer.dll",
+ "PowerToys.ImageResizerExt.dll",
+ "PowerToys.ImageResizerContextMenu.dll",
+ "ImageResizerContextMenuPackage.msix",
- "PowerToys.Launcher.dll",
- "PowerToys.PowerLauncher.dll",
- "PowerToys.PowerLauncher.exe",
- "PowerToys.PowerLauncher.Telemetry.dll",
- "Wox.dll",
- "Wox.Infrastructure.dll",
- "Wox.Plugin.dll",
- "RunPlugins\\Calculator\\Microsoft.PowerToys.Run.Plugin.Calculator.dll",
- "RunPlugins\\Folder\\Microsoft.Plugin.Folder.dll",
- "RunPlugins\\Indexer\\Microsoft.Plugin.Indexer.dll",
- "RunPlugins\\OneNote\\Microsoft.PowerToys.Run.Plugin.OneNote.dll",
- "RunPlugins\\History\\Microsoft.PowerToys.Run.Plugin.History.dll",
- "RunPlugins\\PowerToys\\Microsoft.PowerToys.Run.Plugin.PowerToys.dll",
- "RunPlugins\\Program\\Microsoft.Plugin.Program.dll",
- "RunPlugins\\Registry\\Microsoft.PowerToys.Run.Plugin.Registry.dll",
- "RunPlugins\\WindowsSettings\\Microsoft.PowerToys.Run.Plugin.WindowsSettings.dll",
- "RunPlugins\\Shell\\Microsoft.Plugin.Shell.dll",
- "RunPlugins\\Uri\\Microsoft.Plugin.Uri.dll",
- "RunPlugins\\WindowWalker\\Microsoft.Plugin.WindowWalker.dll",
- "RunPlugins\\UnitConverter\\Community.PowerToys.Run.Plugin.UnitConverter.dll",
- "RunPlugins\\VSCodeWorkspaces\\Community.PowerToys.Run.Plugin.VSCodeWorkspaces.dll",
- "RunPlugins\\Service\\Microsoft.PowerToys.Run.Plugin.Service.dll",
- "RunPlugins\\System\\Microsoft.PowerToys.Run.Plugin.System.dll",
- "RunPlugins\\TimeDate\\Microsoft.PowerToys.Run.Plugin.TimeDate.dll",
- "RunPlugins\\ValueGenerator\\Community.PowerToys.Run.Plugin.ValueGenerator.dll",
- "RunPlugins\\WebSearch\\Community.PowerToys.Run.Plugin.WebSearch.dll",
- "RunPlugins\\WindowsTerminal\\Microsoft.PowerToys.Run.Plugin.WindowsTerminal.dll",
-
- "WinUI3Apps\\PowerToys.MeasureToolModuleInterface.dll",
- "WinUI3Apps\\PowerToys.MeasureToolCore.dll",
- "WinUI3Apps\\PowerToys.MeasureToolUI.dll",
- "WinUI3Apps\\PowerToys.MeasureToolUI.exe",
+ "PowerToys.KeyboardManager.dll",
+ "KeyboardManagerEditor\\PowerToys.KeyboardManagerEditor.exe",
+ "KeyboardManagerEngine\\PowerToys.KeyboardManagerEngine.exe",
+ "PowerToys.KeyboardManagerEditorLibraryWrapper.dll",
- "PowerToys.FindMyMouse.dll",
- "PowerToys.MouseHighlighter.dll",
- "PowerToys.MouseJump.dll",
- "PowerToys.MouseJump.Common.dll",
- "PowerToys.MousePointerCrosshairs.dll",
- "PowerToys.MouseJumpUI.dll",
- "PowerToys.MouseJumpUI.exe",
+ "PowerToys.Launcher.dll",
+ "PowerToys.PowerLauncher.dll",
+ "PowerToys.PowerLauncher.exe",
+ "PowerToys.PowerLauncher.Telemetry.dll",
+ "Wox.dll",
+ "Wox.Infrastructure.dll",
+ "Wox.Plugin.dll",
+ "RunPlugins\\Calculator\\Microsoft.PowerToys.Run.Plugin.Calculator.dll",
+ "RunPlugins\\Folder\\Microsoft.Plugin.Folder.dll",
+ "RunPlugins\\Indexer\\Microsoft.Plugin.Indexer.dll",
+ "RunPlugins\\OneNote\\Microsoft.PowerToys.Run.Plugin.OneNote.dll",
+ "RunPlugins\\History\\Microsoft.PowerToys.Run.Plugin.History.dll",
+ "RunPlugins\\PowerToys\\Microsoft.PowerToys.Run.Plugin.PowerToys.dll",
+ "RunPlugins\\Program\\Microsoft.Plugin.Program.dll",
+ "RunPlugins\\Registry\\Microsoft.PowerToys.Run.Plugin.Registry.dll",
+ "RunPlugins\\WindowsSettings\\Microsoft.PowerToys.Run.Plugin.WindowsSettings.dll",
+ "RunPlugins\\Shell\\Microsoft.Plugin.Shell.dll",
+ "RunPlugins\\Uri\\Microsoft.Plugin.Uri.dll",
+ "RunPlugins\\WindowWalker\\Microsoft.Plugin.WindowWalker.dll",
+ "RunPlugins\\UnitConverter\\Community.PowerToys.Run.Plugin.UnitConverter.dll",
+ "RunPlugins\\VSCodeWorkspaces\\Community.PowerToys.Run.Plugin.VSCodeWorkspaces.dll",
+ "RunPlugins\\Service\\Microsoft.PowerToys.Run.Plugin.Service.dll",
+ "RunPlugins\\System\\Microsoft.PowerToys.Run.Plugin.System.dll",
+ "RunPlugins\\TimeDate\\Microsoft.PowerToys.Run.Plugin.TimeDate.dll",
+ "RunPlugins\\ValueGenerator\\Community.PowerToys.Run.Plugin.ValueGenerator.dll",
+ "RunPlugins\\WebSearch\\Community.PowerToys.Run.Plugin.WebSearch.dll",
+ "RunPlugins\\WindowsTerminal\\Microsoft.PowerToys.Run.Plugin.WindowsTerminal.dll",
- "PowerToys.MouseWithoutBorders.dll",
- "PowerToys.MouseWithoutBorders.exe",
- "PowerToys.MouseWithoutBordersModuleInterface.dll",
- "PowerToys.MouseWithoutBordersService.dll",
- "PowerToys.MouseWithoutBordersService.exe",
- "PowerToys.MouseWithoutBordersHelper.dll",
- "PowerToys.MouseWithoutBordersHelper.exe",
+ "WinUI3Apps\\PowerToys.MeasureToolModuleInterface.dll",
+ "WinUI3Apps\\PowerToys.MeasureToolCore.dll",
+ "WinUI3Apps\\PowerToys.MeasureToolUI.dll",
+ "WinUI3Apps\\PowerToys.MeasureToolUI.exe",
- "WinUI3Apps\\PowerToys.NewPlus.ShellExtension.dll",
- "WinUI3Apps\\NewPlusPackage.msix",
- "WinUI3Apps\\PowerToys.NewPlus.ShellExtension.win10.dll",
+ "PowerToys.FindMyMouse.dll",
+ "PowerToys.MouseHighlighter.dll",
+ "PowerToys.MouseJump.dll",
+ "PowerToys.MouseJump.Common.dll",
+ "PowerToys.MousePointerCrosshairs.dll",
+ "PowerToys.MouseJumpUI.dll",
+ "PowerToys.MouseJumpUI.exe",
- "PowerAccent.Core.dll",
- "PowerToys.PowerAccent.dll",
- "PowerToys.PowerAccent.exe",
- "PowerToys.PowerAccentModuleInterface.dll",
- "PowerToys.PowerAccentKeyboardService.dll",
+ "PowerToys.MouseWithoutBorders.dll",
+ "PowerToys.MouseWithoutBorders.exe",
+ "PowerToys.MouseWithoutBordersModuleInterface.dll",
+ "PowerToys.MouseWithoutBordersService.dll",
+ "PowerToys.MouseWithoutBordersService.exe",
+ "PowerToys.MouseWithoutBordersHelper.dll",
+ "PowerToys.MouseWithoutBordersHelper.exe",
- "WinUI3Apps\\PowerToys.PowerRenameExt.dll",
- "WinUI3Apps\\PowerToys.PowerRename.exe",
- "WinUI3Apps\\PowerToys.PowerRenameContextMenu.dll",
- "WinUI3Apps\\PowerRenameContextMenuPackage.msix",
+ "WinUI3Apps\\PowerToys.NewPlus.ShellExtension.dll",
+ "WinUI3Apps\\NewPlusPackage.msix",
+ "WinUI3Apps\\PowerToys.NewPlus.ShellExtension.win10.dll",
- "PowerToys.WorkspacesSnapshotTool.exe",
- "PowerToys.WorkspacesLauncher.exe",
- "PowerToys.WorkspacesWindowArranger.exe",
- "PowerToys.WorkspacesEditor.exe",
- "PowerToys.WorkspacesEditor.dll",
- "PowerToys.WorkspacesLauncherUI.exe",
- "PowerToys.WorkspacesLauncherUI.dll",
- "PowerToys.WorkspacesModuleInterface.dll",
- "PowerToys.WorkspacesCsharpLibrary.dll",
+ "PowerAccent.Core.dll",
+ "PowerToys.PowerAccent.dll",
+ "PowerToys.PowerAccent.exe",
+ "PowerToys.PowerAccentModuleInterface.dll",
+ "PowerToys.PowerAccentKeyboardService.dll",
- "WinUI3Apps\\PowerToys.RegistryPreviewExt.dll",
- "WinUI3Apps\\PowerToys.RegistryPreviewUILib.dll",
- "WinUI3Apps\\PowerToys.RegistryPreview.dll",
- "WinUI3Apps\\PowerToys.RegistryPreview.exe",
+ "WinUI3Apps\\PowerToys.PowerRenameExt.dll",
+ "WinUI3Apps\\PowerToys.PowerRename.exe",
+ "WinUI3Apps\\PowerToys.PowerRenameContextMenu.dll",
+ "WinUI3Apps\\PowerRenameContextMenuPackage.msix",
- "PowerToys.ShortcutGuide.exe",
- "PowerToys.ShortcutGuideModuleInterface.dll",
+ "PowerToys.WorkspacesSnapshotTool.exe",
+ "PowerToys.WorkspacesLauncher.exe",
+ "PowerToys.WorkspacesWindowArranger.exe",
+ "PowerToys.WorkspacesEditor.exe",
+ "PowerToys.WorkspacesEditor.dll",
+ "PowerToys.WorkspacesLauncherUI.exe",
+ "PowerToys.WorkspacesLauncherUI.dll",
+ "PowerToys.WorkspacesModuleInterface.dll",
+ "PowerToys.WorkspacesCsharpLibrary.dll",
- "PowerToys.ZoomIt.exe",
- "PowerToys.ZoomItModuleInterface.dll",
- "PowerToys.ZoomItSettingsInterop.dll",
+ "WinUI3Apps\\PowerToys.RegistryPreviewExt.dll",
+ "WinUI3Apps\\PowerToys.RegistryPreviewUILib.dll",
+ "WinUI3Apps\\PowerToys.RegistryPreview.dll",
+ "WinUI3Apps\\PowerToys.RegistryPreview.exe",
- "WinUI3Apps\\PowerToys.Settings.dll",
- "WinUI3Apps\\PowerToys.Settings.exe",
+ "PowerToys.ShortcutGuide.exe",
+ "PowerToys.ShortcutGuideModuleInterface.dll",
- "PowerToys.CmdPalModuleInterface.dll",
- "CmdPalKeyboardService.dll",
- "*Microsoft.CmdPal.UI_*.msix"
- ],
+ "PowerToys.ZoomIt.exe",
+ "PowerToys.ZoomItModuleInterface.dll",
+ "PowerToys.ZoomItSettingsInterop.dll",
+
+ "WinUI3Apps\\PowerToys.Settings.dll",
+ "WinUI3Apps\\PowerToys.Settings.exe",
+
+ "PowerToys.CmdPalModuleInterface.dll",
+ "CmdPalKeyboardService.dll",
+ "*Microsoft.CmdPal.UI_*.msix"
+ ],
"SigningInfo": {
"Operations": [
{
diff --git a/.pipelines/UpdateVersions.ps1 b/.pipelines/UpdateVersions.ps1
index a1bc5bef9a..0be3e3d30b 100644
--- a/.pipelines/UpdateVersions.ps1
+++ b/.pipelines/UpdateVersions.ps1
@@ -126,16 +126,15 @@ Get-ChildItem -Path $rootPath -Recurse packages.config | ForEach-Object {
}
# Update Directory.Packages.props file
-$propsFile = [System.IO.Path]::Combine($rootPath,"Directory.Packages.props")
-if (Test-Path $propsFile) {
- $file = Read-FileWithEncoding -Path $propsFile
+Get-ChildItem -Path $rootPath -Recurse "Directory.Packages.props" | ForEach-Object {
+ $file = Read-FileWithEncoding -Path $_.FullName
$content = $file.Content
if ($content -match ''
$oldVersionString = ''
$content = $content -replace $oldVersionString, $newVersionString
- Write-FileWithEncoding -Path $propsFile -Content $content -Encoding $file.encoding
- Write-Host "Modified " $propsFile
+ Write-FileWithEncoding -Path $_.FullName -Content $content -Encoding $file.encoding
+ Write-Host "Modified " $_.FullName
}
}
@@ -144,8 +143,8 @@ Get-ChildItem -Path $rootPath -Recurse *.vcxproj | ForEach-Object {
$file = Read-FileWithEncoding -Path $_.FullName
$content = $file.Content
if ($content -match '\\Microsoft.WindowsAppSDK.') {
- $newVersionString = '\Microsoft.WindowsAppSDK.' + $WinAppSDKVersion + '\'
- $oldVersionString = '\\Microsoft.WindowsAppSDK.[-.0-9a-zA-Z]*\\'
+ $newVersionString = '\Microsoft.WindowsAppSDK.' + $WinAppSDKVersion
+ $oldVersionString = '\\Microsoft.WindowsAppSDK.(?=[-.0-9a-zA-Z]*\d)[-.0-9a-zA-Z]*' #positive lookahead for at least a digit
$content = $content -replace $oldVersionString, $newVersionString
Write-FileWithEncoding -Path $_.FullName -Content $content -Encoding $file.encoding
Write-Host "Modified " $_.FullName
diff --git a/.pipelines/applyXamlStyling.ps1 b/.pipelines/applyXamlStyling.ps1
index 7cb7b4a4b0..1facedc569 100644
--- a/.pipelines/applyXamlStyling.ps1
+++ b/.pipelines/applyXamlStyling.ps1
@@ -41,6 +41,9 @@ Write-Output ""
Write-Output "Restoring dotnet tools..."
dotnet tool restore --disable-parallel --no-cache
+# Use Regex syntax
+$PathExcludes = "(\\obj\\)|(\\bin\\)|(\\x64\\)|(\\Generated Files\\PowerRenameXAML\\)|(\\RegistryPreviewUILib\\Controls\\HexBox\\)"
+
if (-not $Passive)
{
# Look for unstaged changed files by default
@@ -87,7 +90,7 @@ if (-not $Passive)
}
Write-Output "Running Git Diff: $gitDiffCommand"
- $files = Invoke-Expression $gitDiffCommand | Select-String -Pattern "\.xaml$"
+ $files = Invoke-Expression $gitDiffCommand | Select-String -Pattern "\.xaml$" | Where-Object { $_ -notmatch $PathExcludes }
if (-not $Passive -and -not $Main -and -not $Unstaged -and -not $Staged -and -not $LastCommit)
{
@@ -107,7 +110,7 @@ if (-not $Passive)
else
{
Write-Output "Checking all files (passively)"
- $files = Get-ChildItem -Path "$PSScriptRoot\..\src\*.xaml" -Recurse | Select-Object -ExpandProperty FullName | Where-Object { $_ -notmatch "(\\obj\\)|(\\bin\\)|(\\x64\\)|(\\Generated Files\\PowerRenameXAML\\)" }
+ $files = Get-ChildItem -Path "$PSScriptRoot\..\src\*.xaml" -Recurse | Select-Object -ExpandProperty FullName | Where-Object { $_ -notmatch $PathExcludes }
if ($files.count -gt 0)
{
diff --git a/.pipelines/v2/templates/job-build-project.yml b/.pipelines/v2/templates/job-build-project.yml
index 48dd3b2222..5ddacf5435 100644
--- a/.pipelines/v2/templates/job-build-project.yml
+++ b/.pipelines/v2/templates/job-build-project.yml
@@ -53,6 +53,9 @@ parameters:
- name: runTests
type: boolean
default: true
+ - name: buildTests
+ type: boolean
+ default: true
- name: useVSPreview
type: boolean
default: false
@@ -99,7 +102,7 @@ jobs:
${{ else }}:
OutputBuildPlatform: ${{ platform }}
variables:
- MakeAppxPath: 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x86\MakeAppx.exe'
+ MakeAppxPath: 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x86\MakeAppx.exe'
# Azure DevOps abhors a vacuum
# If these are blank, expansion will fail later on... which will result in direct substitution of the variable *names*
# later on. We'll just... set them to a single space and if we need to, check IsNullOrWhiteSpace.
@@ -110,7 +113,7 @@ jobs:
JobOutputArtifactName: build-$(BuildPlatform)-$(BuildConfiguration)${{ parameters.artifactStem }}
NUGET_RESTORE_MSBUILD_ARGS: /p:Platform=$(BuildPlatform) # Required for nuget to work due to self contained
NODE_OPTIONS: --max_old_space_size=16384
- ${{ if eq(parameters.runTests, true) }}:
+ ${{ if or(eq(parameters.runTests, true), eq(parameters.buildTests, true)) }}:
MSBuildMainBuildTargets: Build;Test
${{ else }}:
MSBuildMainBuildTargets: Build
@@ -336,6 +339,7 @@ jobs:
/p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml
+ /p:TargetFramework=net9.0-windows10.0.26100.0
/bl:$(LogOutputDirectory)\publish-${{ join('_',split(project, '/')) }}.binlog
$(RestoreAdditionalProjectSourcesArg)
platform: $(BuildPlatform)
@@ -398,9 +402,7 @@ jobs:
testAssemblyVer2: |
**\KeyboardManagerEngineTest.dll
**\KeyboardManagerEditorTest.dll
- **\UnitTests-CommonLib.dll
- **\PowerRenameUnitTests.dll
- **\UnitTests-FancyZones.dll
+ **\*UnitTest*.dll
!**\obj\**
- pwsh: |-
@@ -578,7 +580,7 @@ jobs:
displayName: Stage GPO files
# Running the tests may result in future jobs consuming artifacts out of this build
- - ${{ if eq(parameters.runTests, true) }}:
+ - ${{ if or(eq(parameters.runTests, true), eq(parameters.buildTests, true)) }}:
- task: CopyFiles@2
displayName: Stage entire build output
inputs:
diff --git a/.pipelines/v2/templates/job-publish-symbols-using-symbolrequestprod-api.yml b/.pipelines/v2/templates/job-publish-symbols-using-symbolrequestprod-api.yml
index 967b7ba4eb..6b214be612 100644
--- a/.pipelines/v2/templates/job-publish-symbols-using-symbolrequestprod-api.yml
+++ b/.pipelines/v2/templates/job-publish-symbols-using-symbolrequestprod-api.yml
@@ -68,7 +68,7 @@ jobs:
pwsh: true
ScriptType: InlineScript
Inline: |-
- $AzToken = (Get-AzAccessToken -ResourceUrl api://30471ccf-0966-45b9-a979-065dbedb24c1).Token
+ $AzToken = (Get-AzAccessToken -AsSecureString -ResourceUrl api://30471ccf-0966-45b9-a979-065dbedb24c1).Token | ConvertFrom-SecureString -AsPlainText
Write-Host "##vso[task.setvariable variable=SymbolAccessToken;issecret=true]$AzToken"
diff --git a/.pipelines/v2/templates/job-test-project.yml b/.pipelines/v2/templates/job-test-project.yml
index 234f477fb6..ab682cd5a5 100644
--- a/.pipelines/v2/templates/job-test-project.yml
+++ b/.pipelines/v2/templates/job-test-project.yml
@@ -15,20 +15,29 @@ parameters:
jobs:
- job: Test${{ parameters.platform }}${{ parameters.configuration }}
displayName: Test ${{ parameters.platform }} ${{ parameters.configuration }}
+ timeoutInMinutes: 300
variables:
- BuildPlatform: ${{ parameters.platform }}
+ ${{ if or(eq(parameters.platform, 'x64Win10'), eq(parameters.platform, 'x64Win11')) }}:
+ BuildPlatform: x64
+ ${{ else }}:
+ BuildPlatform: ${{ parameters.platform }}
+ TestPlatform: ${{ parameters.platform }}
BuildConfiguration: ${{ parameters.configuration }}
SrcPath: $(Build.Repository.LocalPath)
- TestArtifactsName: build-${{ parameters.platform }}-${{ parameters.configuration }}${{ parameters.inputArtifactStem }}
+ TestArtifactsName: build-${{ variables.BuildPlatform }}-${{ parameters.configuration }}${{ parameters.inputArtifactStem }}
pool:
${{ if eq(variables['System.CollectionId'], 'cb55739e-4afe-46a3-970f-1b49d8ee7564') }}:
${{ if ne(parameters.platform, 'ARM64') }}:
name: SHINE-INT-Testing-x64
+ ${{ if eq(parameters.platform, 'x64Win11') }}:
+ demands: ImageOverride -equals SHINE-W11-Testing
${{ else }}:
name: SHINE-INT-Testing-arm64
${{ else }}:
${{ if ne(parameters.platform, 'ARM64') }}:
name: SHINE-OSS-Testing-x64
+ ${{ if eq(parameters.platform, 'x64Win11') }}:
+ demands: ImageOverride -equals SHINE-W11-Testing
${{ else }}:
name: SHINE-OSS-Testing-arm64
steps:
@@ -101,8 +110,13 @@ jobs:
vsTestVersion: 'toolsInstaller'
uiTests: true
rerunFailedTests: true
+ # Since UITests-FancyZonesEditor.dll is generated in both UITests-FancyZonesEditor and UITests-FancyZones, removed one to avoid duplicate test runs
testAssemblyVer2: |
- **\UITests-FancyZones.dll
- **\UITests-FancyZonesEditor.dll
+ **\*UITest*.dll
!**\obj\**
- !**\ref\**
\ No newline at end of file
+ !**\ref\**
+ !**\UITests-FancyZones\**\UITests-FancyZonesEditor.dll
+
+
+ env:
+ platform: '$(TestPlatform)'
diff --git a/.pipelines/v2/templates/pipeline-ci-build.yml b/.pipelines/v2/templates/pipeline-ci-build.yml
index 37e06ae4f2..cc7a67e613 100644
--- a/.pipelines/v2/templates/pipeline-ci-build.yml
+++ b/.pipelines/v2/templates/pipeline-ci-build.yml
@@ -60,16 +60,4 @@ stages:
useLatestWinAppSDK: ${{ parameters.useLatestWinAppSDK }}
${{ if eq(parameters.useLatestWinAppSDK, true) }}:
winAppSDKVersionNumber: ${{ parameters.winAppSDKVersionNumber }}
- useExperimentalVersion: ${{ parameters.useExperimentalVersion }}
-
- - ${{ if and(eq(parameters.runTests, true), not(and(eq(platform, 'arm64'), eq(variables['System.PullRequest.IsFork'], true)))) }}:
- - stage: Test_${{ platform }}
- displayName: Test ${{ platform }}
- dependsOn:
- - Build_${{platform}}
- jobs:
- - template: job-test-project.yml
- parameters:
- platform: ${{ platform }}
- configuration: Release
- useLatestWebView2: ${{ parameters.useLatestWebView2 }}
+ useExperimentalVersion: ${{ parameters.useExperimentalVersion }}
\ No newline at end of file
diff --git a/.pipelines/v2/templates/pipeline-ui-tests-automation.yml b/.pipelines/v2/templates/pipeline-ui-tests-automation.yml
new file mode 100644
index 0000000000..4db1005f3b
--- /dev/null
+++ b/.pipelines/v2/templates/pipeline-ui-tests-automation.yml
@@ -0,0 +1,84 @@
+variables:
+ - name: runCodesignValidationInjectionBG
+ value: false
+ - name: EnablePipelineCache
+ value: true
+ - ${{ if eq(parameters.enableMsBuildCaching, true) }}:
+ - name: EnablePipelineCache
+ value: true
+
+parameters:
+ - name: buildPlatforms
+ type: object
+ default:
+ - x64
+ - arm64
+ - name: enableMsBuildCaching
+ type: boolean
+ default: false
+ - name: useVSPreview
+ type: boolean
+ default: false
+ - name: useLatestWebView2
+ type: boolean
+ default: false
+
+stages:
+ - ${{ each platform in parameters.buildPlatforms }}:
+ - stage: Build_${{ platform }}
+ displayName: Build ${{ platform }}
+ dependsOn: []
+ jobs:
+ - template: job-build-project.yml
+ parameters:
+ pool:
+ ${{ if eq(variables['System.CollectionId'], 'cb55739e-4afe-46a3-970f-1b49d8ee7564') }}:
+ name: SHINE-INT-L
+ ${{ else }}:
+ name: SHINE-OSS-L
+ ${{ if eq(parameters.useVSPreview, true) }}:
+ demands: ImageOverride -equals SHINE-VS17-Preview
+ buildPlatforms:
+ - ${{ platform }}
+ buildConfigurations: [Release]
+ enablePackageCaching: true
+ enableMsBuildCaching: ${{ parameters.enableMsBuildCaching }}
+ runTests: false
+ buildTests: true
+ useVSPreview: ${{ parameters.useVSPreview }}
+
+ - ${{ if eq(platform, 'x64') }}:
+ - stage: Test_x64Win10
+ displayName: Test x64Win10
+ dependsOn:
+ - Build_${{platform}}
+ jobs:
+ - template: job-test-project.yml
+ parameters:
+ platform: x64Win10
+ configuration: Release
+ useLatestWebView2: ${{ parameters.useLatestWebView2 }}
+
+ - ${{ if eq(platform, 'x64') }}:
+ - stage: Test_x64Win11
+ displayName: Test x64Win11
+ dependsOn:
+ - Build_${{platform}}
+ jobs:
+ - template: job-test-project.yml
+ parameters:
+ platform: x64Win11
+ configuration: Release
+ useLatestWebView2: ${{ parameters.useLatestWebView2 }}
+
+ - ${{ if ne(platform, 'x64') }}:
+ - stage: Test_${{ platform }}
+ displayName: Test ${{ platform }}
+ dependsOn:
+ - Build_${{platform}}
+ jobs:
+ - template: job-test-project.yml
+ parameters:
+ platform: ${{ platform }}
+ configuration: Release
+ useLatestWebView2: ${{ parameters.useLatestWebView2 }}
diff --git a/.pipelines/verifyAndSetLatestVCToolsVersion.ps1 b/.pipelines/verifyAndSetLatestVCToolsVersion.ps1
index a47e6a2292..4ebf3a3eec 100644
--- a/.pipelines/verifyAndSetLatestVCToolsVersion.ps1
+++ b/.pipelines/verifyAndSetLatestVCToolsVersion.ps1
@@ -1,7 +1,28 @@
$VSInstances = ([xml](& 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe' -latest -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -include packages -format xml))
$VSPackages = $VSInstances.instances.instance.packages.package
-$LatestVCPackage = ($VSInstances.instances.instance.packages.package | ? { $_.id -eq "Microsoft.VisualCpp.Tools.Core" })
+$LatestVCPackage = ($VSPackages | ? { $_.id -eq "Microsoft.VisualCpp.Tools.Core" })
$LatestVCToolsVersion = $LatestVCPackage.version;
+
+$VSRoot = (& 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe' -latest -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property 'resolvedInstallationPath')
+$VCToolsRoot = Join-Path $VSRoot "VC\Tools\MSVC"
+
+# We have observed a few instances where the VC tools package version actually
+# differs from the version on the files themselves. We might as well check
+# whether the version we just found _actually exists_ before we use it.
+# We'll use whichever highest version exists.
+$PackageVCToolPath = Join-Path $VCToolsRoot $LatestVCToolsVersion
+If ($Null -Eq (Get-Item $PackageVCToolPath -ErrorAction:Ignore)) {
+ $VCToolsVersions = Get-ChildItem $VCToolsRoot | ForEach-Object {
+ [Version]$_.Name
+ } | Sort -Descending
+ $LatestActualVCToolsVersion = $VCToolsVersions | Select -First 1
+
+ If ([Version]$LatestVCToolsVersion -Ne $LatestActualVCToolsVersion) {
+ Write-Output "VC Tools Mismatch: Directory = $LatestActualVCToolsVersion, Package = $LatestVCToolsVersion"
+ $LatestVCToolsVersion = $LatestActualVCToolsVersion.ToString(3)
+ }
+}
+
Write-Output "Latest VCToolsVersion: $LatestVCToolsVersion"
Write-Output "Updating VCToolsVersion environment variable for job"
Write-Output "##vso[task.setvariable variable=VCToolsVersion]$LatestVCToolsVersion"
diff --git a/.pipelines/verifyDepsJsonLibraryVersions.ps1 b/.pipelines/verifyDepsJsonLibraryVersions.ps1
index e85ca1d991..085e1e439a 100644
--- a/.pipelines/verifyDepsJsonLibraryVersions.ps1
+++ b/.pipelines/verifyDepsJsonLibraryVersions.ps1
@@ -92,4 +92,3 @@ if ($totalFailures -gt 0) {
Write-Host -ForegroundColor Green "All " $referencedFileVersionsPerDll.keys.Count " libraries are mentioned with the same version across the dependencies.`r`n"
exit 0
-
diff --git a/.pipelines/verifyNoticeMdAgainstNugetPackages.ps1 b/.pipelines/verifyNoticeMdAgainstNugetPackages.ps1
index ebef8412a7..e3120836c8 100644
--- a/.pipelines/verifyNoticeMdAgainstNugetPackages.ps1
+++ b/.pipelines/verifyNoticeMdAgainstNugetPackages.ps1
@@ -72,9 +72,57 @@ $returnList = [System.Collections.Generic.HashSet[string]]($totalList) -join "`r
Write-Host $returnList
+# Extract the current package list from NOTICE.md
+$noticePattern = "## NuGet Packages used by PowerToys\s*((?:\r?\n- .+)+)"
+$noticeMatch = [regex]::Match($noticeFile, $noticePattern)
+
+if ($noticeMatch.Success) {
+ $currentNoticePackageList = $noticeMatch.Groups[1].Value.Trim()
+} else {
+ Write-Warning "Warning: Could not find 'NuGet Packages used by PowerToys' section in NOTICE.md"
+ $currentNoticePackageList = ""
+}
+
if (!$noticeFile.Trim().EndsWith($returnList.Trim()))
{
Write-Host -ForegroundColor Red "Notice.md does not match NuGet list."
+
+ # Show detailed differences
+ $generatedPackages = $returnList -split "`r`n|`n" | Where-Object { $_.Trim() -ne "" } | Sort-Object
+ $noticePackages = $currentNoticePackageList -split "`r`n|`n" | Where-Object { $_.Trim() -ne "" } | ForEach-Object { $_.Trim() } | Sort-Object
+
+ Write-Host ""
+ Write-Host -ForegroundColor Cyan "=== DETAILED DIFFERENCE ANALYSIS ==="
+ Write-Host ""
+
+ # Find packages in proj file list but not in NOTICE.md
+ $missingFromNotice = $generatedPackages | Where-Object { $noticePackages -notcontains $_ }
+ if ($missingFromNotice.Count -gt 0) {
+ Write-Host -ForegroundColor Red "MissingFromNotice:"
+ foreach ($pkg in $missingFromNotice) {
+ Write-Host -ForegroundColor Red " $pkg"
+ }
+ Write-Host ""
+ }
+
+ # Find packages in NOTICE.md but not in proj file list
+ $extraInNotice = $noticePackages | Where-Object { $generatedPackages -notcontains $_ }
+ if ($extraInNotice.Count -gt 0) {
+ Write-Host -ForegroundColor Yellow "ExtraInNotice:"
+ foreach ($pkg in $extraInNotice) {
+ Write-Host -ForegroundColor Yellow " $pkg"
+ }
+ Write-Host ""
+ }
+
+ # Show counts for summary
+ Write-Host -ForegroundColor Cyan "Summary:"
+ Write-Host " Proj file list has $($generatedPackages.Count) packages"
+ Write-Host " NOTICE.md has $($noticePackages.Count) packages"
+ Write-Host " MissingFromNotice: $($missingFromNotice.Count) packages"
+ Write-Host " ExtraInNotice: $($extraInNotice.Count) packages"
+ Write-Host ""
+
exit 1
}
diff --git a/.pipelines/versionAndSignCheck.ps1 b/.pipelines/versionAndSignCheck.ps1
index 89cfbeea1c..78031ac7e0 100644
--- a/.pipelines/versionAndSignCheck.ps1
+++ b/.pipelines/versionAndSignCheck.ps1
@@ -28,6 +28,8 @@ $versionExceptions = @(
"ObjectModelCsProjection.dll",
"RendererCsProjection.dll") -join '|';
$nullVersionExceptions = @(
+ "SkiaSharp.Views.WinUI.Native.dll",
+ "libSkiaSharp.dll",
"codicon.ttf",
"e_sqlite3.dll",
"getfilesiginforedist.dll",
diff --git a/.vsconfig b/.vsconfig
index 77ec8b0ffd..90abacd81c 100644
--- a/.vsconfig
+++ b/.vsconfig
@@ -9,6 +9,7 @@
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
"Microsoft.VisualStudio.Component.Windows10SDK.20348",
"Microsoft.VisualStudio.Component.Windows10SDK.22621",
+ "Microsoft.VisualStudio.Component.Windows10SDK.26100",
"Microsoft.VisualStudio.ComponentGroup.UWP.VC",
"Microsoft.VisualStudio.Component.UWP.VC.ARM64",
"Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre",
diff --git a/COMMUNITY.md b/COMMUNITY.md
index ccfa61decf..5f9a0a57ea 100644
--- a/COMMUNITY.md
+++ b/COMMUNITY.md
@@ -6,8 +6,8 @@ Names are in alphabetical order based on first name.
## High impact community members
-### [@Aaron-Junker](https://github.com/Aaron-Junker) - [Aaron Junker](https://aaron-junker.github.io)
-Aaron has helped triaging, discussing, and creating a substantial number of issues and contributed features/fixes. Aaron was the primary person for helping build the File Explorer preview pane handler for developer files.
+### [@Noraa-Junker](https://github.com/Noraa-Junker) - [Noraa Junker](https://noraajunker.ch)
+Noraa has helped triaging, discussing, and creating a substantial number of issues and contributed features/fixes. Noraa was the primary person for helping build the File Explorer preview pane handler for developer files.
### [@cgaarden](https://github.com/cgaarden) - [Christian Gaarden Gaardmark](https://www.onegreatworld.com)
Christian contributed New+ utility
@@ -21,7 +21,7 @@ Connor was the creator of Workspaces and helped create Command Palette (PowerToy
### [@damienleroy](https://github.com/damienleroy) - [Damien Leroy](https://www.linkedin.com/in/Damien-Leroy-b2734416a/)
Damien has helped out by developing and contributing the Quick Accent utility.
-### [@daverayment ](https://github.com/daverayment) - [David Rayment](https://www.linkedin.com/in/david-rayment-168b5251/)
+### [@daverayment](https://github.com/daverayment) - [David Rayment](https://www.linkedin.com/in/david-rayment-168b5251/)
Dave has helped improve the experience inside of Peek by adding in new features and fixing bugs.
### [@davidegiacometti](https://github.com/davidegiacometti) - [Davide Giacometti](https://www.linkedin.com/in/davidegiacometti/)
@@ -117,10 +117,6 @@ PowerRename is from Chris's SmartRename and icon rendering for SVGs in File Expl
PowerToys Awake is a tool to keep your computer awake.
-### [@Niels9001](https://github.com/niels9001/) - [Niels Laute](https://nielslaute.com/)
-
-Niels has helped drive large sums of our update toward a new [consistent and modern UX](https://github.com/microsoft/PowerToys/issues/891). This includes the [launcher work](https://github.com/microsoft/PowerToys/issues/44), color picker UX update and [icon design](https://github.com/microsoft/PowerToys/issues/1118).
-
### [@randyrants](https://github.com/randyrants) - [Randy Santossio](https://www.randyrants.com)
Randy contributed Registry Preview and some very early conversations about keyboard remapping.
@@ -184,11 +180,9 @@ ZoomIt source code was originally implemented by [Sysinternals](https://sysinter
## PowerToys core team
-- [@crutkas](https://github.com/crutkas/) - Clint Rutkas - Lead
- [@cinnamon-msft](https://github.com/cinnamon-msft) - Kayla Cinnamon - Lead
-- [@nguyen-dows](https://github.com/nguyen-dows) - Christopher Nguyen - Product Manager
- [@craigloewen-msft](https://github.com/craigloewen-msft) - Craig Loewen - Product Manager
-- [@zhiwei-ms](https://github.com/zhiwei-ms) - Zhiwei Yu - Product Manager
+- [@niels9001](https://github.com/niels9001/) - Niels Laute - Product Manager
- [@dhowett](https://github.com/dhowett) - Dustin Howett - Dev lead
- [@yeelam-gordon](https://github.com/yeelam-gordon) - Gordon Lam - Dev lead
- [@jamrobot](https://github.com/jamrobot) - Jerry Xu - Dev lead
@@ -204,6 +198,13 @@ ZoomIt source code was originally implemented by [Sysinternals](https://sysinter
- [@zhaopy536](https://github.com/zhaopy536) - Peiyao Zhao - Dev
- [@wang563681252](https://github.com/wang563681252) - Zhaopeng Wang - Dev
- [@vanzue](https://github.com/vanzue) - Kai Tao - Dev
+- [@zadjii-msft](https://github.com/zadjii-msft) - Mike Griese - Dev
+- [@khmyznikov](https://github.com/khmyznikov) - Gleb Khmyznikov - Dev
+- [@chatasweetie](https://github.com/chatasweetie) - Jessica Earley-Cha - Dev
+- [@MichaelJolley](https://github.com/MichaelJolley) - Michael Jolley - Dev
+- [@Jaylyn-Barbee](https://github.com/Jaylyn-Barbee) - Jaylyn Barbee - Dev
+- [@zateutsch](https://github.com/zateutsch) - Zach Teutsch - Dev
+- [@crutkas](https://github.com/crutkas/) - Clint Rutkas - Overhead
## Former PowerToys core team members
@@ -211,6 +212,7 @@ ZoomIt source code was originally implemented by [Sysinternals](https://sysinter
- [@ethanfangg](https://github.com/ethanfangg) - Ethan Fang - Product Manager
- [@plante-msft](https://github.com/plante-msft) - Connor Plante - Product Manager
- [@joadoumie](https://github.com/joadoumie) - Jordi Adoumie - Product Manager
+- [@nguyen-dows](https://github.com/nguyen-dows) - Christopher Nguyen - Product Manager
- [@enricogior](https://github.com/enricogior) - Enrico Giordani - Dev Lead
- [@bzoz](https://github.com/bzoz) - Bartosz Sosnowski - Dev
- [@ivan100sic](https://github.com/ivan100sic) - Ivan Stošić - Dev
diff --git a/Cpp.Build.props b/Cpp.Build.props
index 06c22b45bf..5a4538f940 100644
--- a/Cpp.Build.props
+++ b/Cpp.Build.props
@@ -96,8 +96,8 @@
- 10.0.22621.0
- 10.0.22621.0
+ 10.0.26100.0
+ 10.0.26100.0
10.0.19041.0
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 083a66e5a9..8651672751 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -31,31 +31,31 @@
-
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
@@ -69,31 +69,33 @@
+
+
-
+
-
-
-
+
+
+
-
+
-
+
-
-
+
+
-
+
-
-
-
-
+
+
+
+
diff --git a/NOTICE.md b/NOTICE.md
index 21d51192c4..60b480d6c0 100644
--- a/NOTICE.md
+++ b/NOTICE.md
@@ -79,6 +79,43 @@ For more information, please refer to
### Calculator
+#### exprtk
+
+We use the exprtk library (exprtk.hpp) to evaluate mathematical expressions.
+
+**Source**: [https://github.com/ArashPartow/exprtk](https://github.com/ArashPartow/exprtk)
+
+```
+MIT License
+
+Copyright (c) 1999-2024 Arash Partow
+
+https://www.partow.net/programming/exprtk/index.html
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+```
+
+## Utility: PowerToys Run Built-in Extensions
+
+### Calculator
+
#### Mages
We use the Mages NuGet package for calculating the result of expression.
@@ -807,30 +844,25 @@ DEALINGS IN THE SOFTWARE.
**Source**: https://github.com/kuba--/zip
-This is free and unencumbered software released into the public domain.
+All Rights Reserved.
-Anyone is free to copy, modify, publish, use, compile, sell, or
-distribute this software, either in source code form or as a compiled
-binary, for any purpose, commercial or non-commercial, and by any
-means.
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-In jurisdictions that recognize copyright laws, the author or authors
-of this software dedicate any and all copyright interest in the
-software to the public domain. We make this dedication for the benefit
-of the public at large and to the detriment of our heirs and
-successors. We intend this dedication to be an overt act of
-relinquishment in perpetuity of all present and future rights to this
-software under copyright law.
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-For more information, please refer to
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
## Utility: Measure tool
@@ -1395,6 +1427,37 @@ EXHIBIT A -Mozilla Public License.
## Utility: Registry Preview
+### HexBox.WinUI
+
+We use HexBox.WinUI to show a preview of binary values.
+
+**Source**: https://github.com/hotkidfamily/HexBox.WinUI
+
+```
+MIT License
+
+Copyright (c) 2019 Filip Jeremic
+Copyright (c) 2024~2025 hotkidfamily@gmail.com
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+```
+
### Monaco Editor
**Source**: https://github.com/Microsoft/monaco-editor
@@ -1425,6 +1488,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
+
## NuGet Packages used by PowerToys
- AdaptiveCards.ObjectModel.WinUI3 2.0.0-beta
@@ -1453,26 +1517,26 @@ SOFTWARE.
- Mages 3.0.0
- Markdig.Signed 0.34.0
- MessagePack 3.1.3
-- Microsoft.Bcl.AsyncInterfaces 9.0.5
+- Microsoft.Bcl.AsyncInterfaces 9.0.6
- Microsoft.CodeAnalysis.NetAnalyzers 9.0.0
-- Microsoft.Data.Sqlite 9.0.5
+- Microsoft.Data.Sqlite 9.0.6
- Microsoft.Diagnostics.Tracing.TraceEvent 3.1.16
- Microsoft.DotNet.ILCompiler (A)
-- Microsoft.Extensions.DependencyInjection 9.0.5
-- Microsoft.Extensions.Hosting 9.0.5
-- Microsoft.Extensions.Hosting.WindowsServices 9.0.5
-- Microsoft.Extensions.Logging 9.0.5
-- Microsoft.Extensions.Logging.Abstractions 9.0.5
+- Microsoft.Extensions.DependencyInjection 9.0.6
+- Microsoft.Extensions.Hosting 9.0.6
+- Microsoft.Extensions.Hosting.WindowsServices 9.0.6
+- Microsoft.Extensions.Logging 9.0.6
+- Microsoft.Extensions.Logging.Abstractions 9.0.6
- Microsoft.NET.ILLink.Tasks (A)
- Microsoft.SemanticKernel 1.15.0
- Microsoft.Toolkit.Uwp.Notifications 7.1.2
- Microsoft.Web.WebView2 1.0.2903.40
-- Microsoft.Win32.SystemEvents 9.0.5
-- Microsoft.Windows.Compatibility 9.0.5
-- Microsoft.Windows.CsWin32 0.2.46-beta
+- Microsoft.Win32.SystemEvents 9.0.6
+- Microsoft.Windows.Compatibility 9.0.6
+- Microsoft.Windows.CsWin32 0.3.183
- Microsoft.Windows.CsWinRT 2.2.0
-- Microsoft.Windows.SDK.BuildTools 10.0.22621.2428
-- Microsoft.WindowsAppSDK 1.7.250401001
+- Microsoft.Windows.SDK.BuildTools 10.0.26100.4188
+- Microsoft.WindowsAppSDK 1.7.250513003
- Microsoft.WindowsPackageManager.ComInterop 1.10.340
- Microsoft.Xaml.Behaviors.WinUI.Managed 2.0.9
- Microsoft.Xaml.Behaviors.Wpf 1.1.39
@@ -1485,27 +1549,28 @@ SOFTWARE.
- ReverseMarkdown 4.1.0
- ScipBe.Common.Office.OneNote 3.0.1
- SharpCompress 0.37.2
+- SkiaSharp.Views.WinUI 2.88.9
- StreamJsonRpc 2.21.69
- StyleCop.Analyzers 1.2.0-beta.556
-- System.CodeDom 9.0.5
+- System.CodeDom 9.0.6
- System.CommandLine 2.0.0-beta4.22272.1
-- System.ComponentModel.Composition 9.0.5
-- System.Configuration.ConfigurationManager 9.0.5
-- System.Data.OleDb 9.0.5
-- System.Data.SqlClient 4.8.6
-- System.Diagnostics.EventLog 9.0.5
-- System.Diagnostics.PerformanceCounter 9.0.5
-- System.Drawing.Common 9.0.5
+- System.ComponentModel.Composition 9.0.6
+- System.Configuration.ConfigurationManager 9.0.6
+- System.Data.OleDb 9.0.6
+- System.Data.SqlClient 4.9.0
+- System.Diagnostics.EventLog 9.0.6
+- System.Diagnostics.PerformanceCounter 9.0.6
+- System.Drawing.Common 9.0.6
- System.IO.Abstractions 22.0.13
- System.IO.Abstractions.TestingHelpers 22.0.13
-- System.Management 9.0.5
+- System.Management 9.0.6
- System.Net.Http 4.3.4
- System.Private.Uri 4.3.2
- System.Reactive 6.0.1
-- System.Runtime.Caching 9.0.5
-- System.ServiceProcess.ServiceController 9.0.5
-- System.Text.Encoding.CodePages 9.0.5
-- System.Text.Json 9.0.5
+- System.Runtime.Caching 9.0.6
+- System.ServiceProcess.ServiceController 9.0.6
+- System.Text.Encoding.CodePages 9.0.6
+- System.Text.Json 9.0.6
- System.Text.RegularExpressions 4.3.1
- UnicodeInformation 2.6.0
- UnitsNet 5.56.0
diff --git a/PowerToys.sln b/PowerToys.sln
index 201c0fbefe..f81a222668 100644
--- a/PowerToys.sln
+++ b/PowerToys.sln
@@ -604,6 +604,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WindowProperties", "WindowP
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WorkspacesLib", "src\modules\Workspaces\WorkspacesLib\WorkspacesLib.vcxproj", "{B31FCC55-B5A4-4EA7-B414-2DCEAE6AF332}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WorkspacesLibUnitTests", "src\modules\Workspaces\WorkspacesLib.UnitTests\WorkspacesLibUnitTests.vcxproj", "{A85D4D9F-9A39-4B5D-8B5A-9F2D5C9A8B4C}"
+ ProjectSection(ProjectDependencies) = postProject
+ {B31FCC55-B5A4-4EA7-B414-2DCEAE6AF332} = {B31FCC55-B5A4-4EA7-B414-2DCEAE6AF332}
+ EndProjectSection
+EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WorkspacesLauncherUI", "src\modules\Workspaces\WorkspacesLauncherUI\WorkspacesLauncherUI.csproj", "{9C53CC25-0623-4569-95BC-B05410675EE3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WorkspacesModuleInterface", "src\modules\Workspaces\WorkspacesModuleInterface\WorkspacesModuleInterface.vcxproj", "{45285DF2-9742-4ECA-9AC9-58951FC26489}"
@@ -706,10 +711,20 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegistryPreview.FuzzTests",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.System", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.System\Microsoft.CmdPal.Ext.System.csproj", "{64B88F02-CD88-4ED8-9624-989A800230F9}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FancyZones.FuzzTests", "src\modules\fancyzones\FancyZones.FuzzTests\FancyZones.FuzzTests.csproj", "{0217E86E-3476-9946-DE8E-9D200CEBD47A}"
+EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CmdPalKeyboardService", "src\modules\cmdpal\CmdPalKeyboardService\CmdPalKeyboardService.vcxproj", "{5F63C743-F6CE-4DBA-A200-2B3F8A14E8C2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PowerRename.FuzzingTest", "src\modules\powerrename\PowerRename.FuzzingTest\PowerRename.FuzzingTest.vcxproj", "{2694E2FB-DCD5-4BFF-A418-B6C3C7CE3B8E}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MouseUtils.UITests", "src\modules\MouseUtils\MouseUtils.UITests\MouseUtils.UITests.csproj", "{4E0AE3A4-2EE0-44D7-A2D0-8769977254A1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WorkspacesEditorUITest", "src\modules\Workspaces\WorkspacesEditorUITest\WorkspacesEditorUITest.csproj", "{43E779F3-D83C-48B1-BA8D-1912DBD76FC9}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CalculatorEngineCommon", "src\common\CalculatorEngineCommon\CalculatorEngineCommon.vcxproj", "{2CF78CF7-8FEB-4BE1-9591-55FA25B48FC6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ManagedCsWin32", "src\common\ManagedCsWin32\ManagedCsWin32.csproj", "{14AFD976-B4D2-49D0-9E6C-AA93CC061B8A}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM64 = Debug|ARM64
@@ -2198,6 +2213,14 @@ Global
{B31FCC55-B5A4-4EA7-B414-2DCEAE6AF332}.Release|ARM64.Build.0 = Release|ARM64
{B31FCC55-B5A4-4EA7-B414-2DCEAE6AF332}.Release|x64.ActiveCfg = Release|x64
{B31FCC55-B5A4-4EA7-B414-2DCEAE6AF332}.Release|x64.Build.0 = Release|x64
+ {A85D4D9F-9A39-4B5D-8B5A-9F2D5C9A8B4C}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {A85D4D9F-9A39-4B5D-8B5A-9F2D5C9A8B4C}.Debug|ARM64.Build.0 = Debug|ARM64
+ {A85D4D9F-9A39-4B5D-8B5A-9F2D5C9A8B4C}.Debug|x64.ActiveCfg = Debug|x64
+ {A85D4D9F-9A39-4B5D-8B5A-9F2D5C9A8B4C}.Debug|x64.Build.0 = Debug|x64
+ {A85D4D9F-9A39-4B5D-8B5A-9F2D5C9A8B4C}.Release|ARM64.ActiveCfg = Release|ARM64
+ {A85D4D9F-9A39-4B5D-8B5A-9F2D5C9A8B4C}.Release|ARM64.Build.0 = Release|ARM64
+ {A85D4D9F-9A39-4B5D-8B5A-9F2D5C9A8B4C}.Release|x64.ActiveCfg = Release|x64
+ {A85D4D9F-9A39-4B5D-8B5A-9F2D5C9A8B4C}.Release|x64.Build.0 = Release|x64
{9C53CC25-0623-4569-95BC-B05410675EE3}.Debug|ARM64.ActiveCfg = Debug|ARM64
{9C53CC25-0623-4569-95BC-B05410675EE3}.Debug|ARM64.Build.0 = Debug|ARM64
{9C53CC25-0623-4569-95BC-B05410675EE3}.Debug|x64.ActiveCfg = Debug|x64
@@ -2582,6 +2605,30 @@ Global
{64B88F02-CD88-4ED8-9624-989A800230F9}.Release|ARM64.Build.0 = Release|ARM64
{64B88F02-CD88-4ED8-9624-989A800230F9}.Release|x64.ActiveCfg = Release|x64
{64B88F02-CD88-4ED8-9624-989A800230F9}.Release|x64.Build.0 = Release|x64
+ {4E0AE3A4-2EE0-44D7-A2D0-8769977254A1}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {4E0AE3A4-2EE0-44D7-A2D0-8769977254A1}.Debug|ARM64.Build.0 = Debug|ARM64
+ {4E0AE3A4-2EE0-44D7-A2D0-8769977254A1}.Debug|x64.ActiveCfg = Debug|x64
+ {4E0AE3A4-2EE0-44D7-A2D0-8769977254A1}.Debug|x64.Build.0 = Debug|x64
+ {4E0AE3A4-2EE0-44D7-A2D0-8769977254A1}.Release|ARM64.ActiveCfg = Release|ARM64
+ {4E0AE3A4-2EE0-44D7-A2D0-8769977254A1}.Release|ARM64.Build.0 = Release|ARM64
+ {4E0AE3A4-2EE0-44D7-A2D0-8769977254A1}.Release|x64.ActiveCfg = Release|x64
+ {4E0AE3A4-2EE0-44D7-A2D0-8769977254A1}.Release|x64.Build.0 = Release|x64
+ {43E779F3-D83C-48B1-BA8D-1912DBD76FC9}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {43E779F3-D83C-48B1-BA8D-1912DBD76FC9}.Debug|ARM64.Build.0 = Debug|ARM64
+ {43E779F3-D83C-48B1-BA8D-1912DBD76FC9}.Debug|x64.ActiveCfg = Debug|x64
+ {43E779F3-D83C-48B1-BA8D-1912DBD76FC9}.Debug|x64.Build.0 = Debug|x64
+ {43E779F3-D83C-48B1-BA8D-1912DBD76FC9}.Release|ARM64.ActiveCfg = Release|ARM64
+ {43E779F3-D83C-48B1-BA8D-1912DBD76FC9}.Release|ARM64.Build.0 = Release|ARM64
+ {43E779F3-D83C-48B1-BA8D-1912DBD76FC9}.Release|x64.ActiveCfg = Release|x64
+ {43E779F3-D83C-48B1-BA8D-1912DBD76FC9}.Release|x64.Build.0 = Release|x64
+ {0217E86E-3476-9946-DE8E-9D200CEBD47A}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {0217E86E-3476-9946-DE8E-9D200CEBD47A}.Debug|ARM64.Build.0 = Debug|ARM64
+ {0217E86E-3476-9946-DE8E-9D200CEBD47A}.Debug|x64.ActiveCfg = Debug|x64
+ {0217E86E-3476-9946-DE8E-9D200CEBD47A}.Debug|x64.Build.0 = Debug|x64
+ {0217E86E-3476-9946-DE8E-9D200CEBD47A}.Release|ARM64.ActiveCfg = Release|ARM64
+ {0217E86E-3476-9946-DE8E-9D200CEBD47A}.Release|ARM64.Build.0 = Release|ARM64
+ {0217E86E-3476-9946-DE8E-9D200CEBD47A}.Release|x64.ActiveCfg = Release|x64
+ {0217E86E-3476-9946-DE8E-9D200CEBD47A}.Release|x64.Build.0 = Release|x64
{5F63C743-F6CE-4DBA-A200-2B3F8A14E8C2}.Debug|ARM64.ActiveCfg = Debug|ARM64
{5F63C743-F6CE-4DBA-A200-2B3F8A14E8C2}.Debug|ARM64.Build.0 = Debug|ARM64
{5F63C743-F6CE-4DBA-A200-2B3F8A14E8C2}.Debug|x64.ActiveCfg = Debug|x64
@@ -2596,6 +2643,22 @@ Global
{2694E2FB-DCD5-4BFF-A418-B6C3C7CE3B8E}.Release|ARM64.ActiveCfg = Release|ARM64
{2694E2FB-DCD5-4BFF-A418-B6C3C7CE3B8E}.Release|x64.ActiveCfg = Release|x64
{2694E2FB-DCD5-4BFF-A418-B6C3C7CE3B8E}.Release|x64.Build.0 = Release|x64
+ {2CF78CF7-8FEB-4BE1-9591-55FA25B48FC6}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {2CF78CF7-8FEB-4BE1-9591-55FA25B48FC6}.Debug|ARM64.Build.0 = Debug|ARM64
+ {2CF78CF7-8FEB-4BE1-9591-55FA25B48FC6}.Debug|x64.ActiveCfg = Debug|x64
+ {2CF78CF7-8FEB-4BE1-9591-55FA25B48FC6}.Debug|x64.Build.0 = Debug|x64
+ {2CF78CF7-8FEB-4BE1-9591-55FA25B48FC6}.Release|ARM64.ActiveCfg = Release|ARM64
+ {2CF78CF7-8FEB-4BE1-9591-55FA25B48FC6}.Release|ARM64.Build.0 = Release|ARM64
+ {2CF78CF7-8FEB-4BE1-9591-55FA25B48FC6}.Release|x64.ActiveCfg = Release|x64
+ {2CF78CF7-8FEB-4BE1-9591-55FA25B48FC6}.Release|x64.Build.0 = Release|x64
+ {14AFD976-B4D2-49D0-9E6C-AA93CC061B8A}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {14AFD976-B4D2-49D0-9E6C-AA93CC061B8A}.Debug|ARM64.Build.0 = Debug|ARM64
+ {14AFD976-B4D2-49D0-9E6C-AA93CC061B8A}.Debug|x64.ActiveCfg = Debug|x64
+ {14AFD976-B4D2-49D0-9E6C-AA93CC061B8A}.Debug|x64.Build.0 = Debug|x64
+ {14AFD976-B4D2-49D0-9E6C-AA93CC061B8A}.Release|ARM64.ActiveCfg = Release|ARM64
+ {14AFD976-B4D2-49D0-9E6C-AA93CC061B8A}.Release|ARM64.Build.0 = Release|ARM64
+ {14AFD976-B4D2-49D0-9E6C-AA93CC061B8A}.Release|x64.ActiveCfg = Release|x64
+ {14AFD976-B4D2-49D0-9E6C-AA93CC061B8A}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -2735,7 +2798,7 @@ Global
{25C91A4E-BA4E-467A-85CD-8B62545BF674} = {A50C70A6-2DA0-4027-B90E-B1A40755A8A5}
{6AB6A2D6-F859-4A82-9184-0BD29C9F07D1} = {A50C70A6-2DA0-4027-B90E-B1A40755A8A5}
{212AD910-8488-4036-BE20-326931B75FB2} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
- {7AC943C9-52E8-44CF-9083-744D8049667B} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
+ {7AC943C9-52E8-44CF-9083-744D8049667B} = {322566EF-20DC-43A6-B9F8-616AF942579A}
{54A93AF7-60C7-4F6C-99D2-FBB1F75F853A} = {7AC943C9-52E8-44CF-9083-744D8049667B}
{92C39820-9F84-4529-BC7D-22AAE514D63B} = {7AC943C9-52E8-44CF-9083-744D8049667B}
{515554D1-D004-4F7F-A107-2211FC0F6B2C} = {7AC943C9-52E8-44CF-9083-744D8049667B}
@@ -2815,6 +2878,7 @@ Global
{BE126CBB-AE12-406A-9837-A05ACFCA57A7} = {A2221D7E-55E7-4BEA-90D1-4F162D670BBF}
{14CB58B7-D280-4A7A-95DE-4B2DF14EA000} = {A2221D7E-55E7-4BEA-90D1-4F162D670BBF}
{B31FCC55-B5A4-4EA7-B414-2DCEAE6AF332} = {A2221D7E-55E7-4BEA-90D1-4F162D670BBF}
+ {A85D4D9F-9A39-4B5D-8B5A-9F2D5C9A8B4C} = {A2221D7E-55E7-4BEA-90D1-4F162D670BBF}
{9C53CC25-0623-4569-95BC-B05410675EE3} = {A2221D7E-55E7-4BEA-90D1-4F162D670BBF}
{45285DF2-9742-4ECA-9AC9-58951FC26489} = {A2221D7E-55E7-4BEA-90D1-4F162D670BBF}
{3D63307B-9D27-44FD-B033-B26F39245B85} = {A2221D7E-55E7-4BEA-90D1-4F162D670BBF}
@@ -2866,8 +2930,13 @@ Global
{4E0AE3A4-2EE0-44D7-A2D0-8769977254A0} = {F05E590D-AD46-42BE-9C25-6A63ADD2E3EA}
{5702B3CC-8575-48D5-83D8-15BB42269CD3} = {929C1324-22E8-4412-A9A8-80E85F3985A5}
{64B88F02-CD88-4ED8-9624-989A800230F9} = {ECB8E0D1-7603-4E5C-AB10-D1E545E6F8E2}
+ {4E0AE3A4-2EE0-44D7-A2D0-8769977254A1} = {322566EF-20DC-43A6-B9F8-616AF942579A}
+ {43E779F3-D83C-48B1-BA8D-1912DBD76FC9} = {A2221D7E-55E7-4BEA-90D1-4F162D670BBF}
+ {0217E86E-3476-9946-DE8E-9D200CEBD47A} = {D1D6BC88-09AE-4FB4-AD24-5DED46A791DD}
{5F63C743-F6CE-4DBA-A200-2B3F8A14E8C2} = {3846508C-77EB-4034-A702-F8BB263C4F79}
{2694E2FB-DCD5-4BFF-A418-B6C3C7CE3B8E} = {89E20BCE-EB9C-46C8-8B50-E01A82E6FDC3}
+ {2CF78CF7-8FEB-4BE1-9591-55FA25B48FC6} = {1AFB6476-670D-4E80-A464-657E01DFF482}
+ {14AFD976-B4D2-49D0-9E6C-AA93CC061B8A} = {1AFB6476-670D-4E80-A464-657E01DFF482}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C3A2F9D1-7930-4EF4-A6FC-7EE0A99821D0}
diff --git a/README.md b/README.md
index 44c1a800c0..232cf6fd82 100644
--- a/README.md
+++ b/README.md
@@ -53,10 +53,10 @@ This is our preferred method.
### Via Microsoft Store
-Install from the [Microsoft Store's PowerToys page][microsoft-store-link]. You must be using the [new Microsoft Store](https://blogs.windows.com/windowsExperience/2021/06/24/building-a-new-open-microsoft-store-on-windows-11/) which is available for both Windows 11 and Windows 10.
+Install from the [Microsoft Store's PowerToys page][microsoft-store-link]. You must be using the [new Microsoft Store](https://blogs.windows.com/windowsExperience/2021/06/24/building-a-new-open-microsoft-store-on-windows-11/), which is available for both Windows 11 and Windows 10.
### Via WinGet
-Download PowerToys from [WinGet][winget-link]. Updating PowerToys via winget will respect current PowerToys installation scope. To install PowerToys, run the following command from the command line / PowerShell:
+Download PowerToys from [WinGet][winget-link]. Updating PowerToys via winget will respect the current PowerToys installation scope. To install PowerToys, run the following command from the command line / PowerShell:
#### User scope installer [default]
```powershell
@@ -79,7 +79,7 @@ There is a collection of [third-party plugins](./doc/thirdPartyRunPlugins.md) cr
## Contributing
-This project welcomes contributions of all types. Besides coding features / bug fixes, other ways to assist include spec writing, design, documentation, and finding bugs. We are excited to work with the power user community to build a set of tools for helping you get the most out of Windows.
+This project welcomes contributions of all types. Besides coding features / bug fixes, other ways to assist include spec writing, design, documentation, and finding bugs. We are excited to work with the power user community to build a set of tools for helping you get the most out of Windows.
We ask that **before you start work on a feature that you would like to contribute**, please read our [Contributor's Guide](CONTRIBUTING.md). We would be happy to work with you to figure out the best approach, provide guidance and mentorship throughout feature development, and help avoid any wasted or duplicate effort.
@@ -99,7 +99,7 @@ In this release, we focused on new features, stability, and automation.
**✨Highlights**
- - We focused on greatly improving Command Palette's performance and fixing a large amount of bugs. Some new features we've added are:
+ - We focused on greatly improving the Command Palette's performance and fixing a large number of bugs. Some new features we've added are:
- Added the ability for Command Palette to search any file using a fallback command.
- Added the ability to make the Command Palette global hotkey a low-level keyboard hook.
- Added open URL fallback command for the WebSearch extension, enabling users to directly open URLs in the browser from Command Palette.
@@ -117,17 +117,17 @@ In this release, we focused on new features, stability, and automation.
### Command Not Found
- - Updated the WinGet Command Not Found script to only enable the experimental features if they actually exist.
+ - Updated the WinGet Command Not Found script to only enable the experimental features if they exist.
### Command Palette
- Updated bug template to include Command Palette module.
- Fixed an issue where the toast window was not scaled for DPI, causing layout issues under display scaling.
- - Fixed an issue where Up/Down keyboard navigation didn't move selection when caret was at position 0, and add continuous navigation like PT Run v1. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
+ - Fixed an issue where Up/Down keyboard navigation didn't move selection when the caret was at position 0, and added continuous navigation like PT Run v1. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
- Updated the Time and Date extension code to simplify it and improve clarity.
- Fixed an issue where capitalization in the command causes failure when trying to go to the mouse pointer, resolved by adjusting the command to lowercase.
- - Added open URL fallback command for the WebSearch extension, enabling users to directly open URLs in the browser from Command Palette. Thanks [@htcfreek](https://github.com/htcfreek)!
- - Added setting to enable/disable system tray icon in CmdPal and align terminology with Windows 11. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
+ - Added open URL fallback command for the WebSearch extension, enabling users to directly open URLs in the browser from the Command Palette. Thanks [@htcfreek](https://github.com/htcfreek)!
+ - Added setting to enable/disable system tray icon in CmdPal and aligned terminology with Windows 11. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
- Fixed an alias update issue by removing the old alias when a new one is set.
- Resolved GitHub casing conflict by migrating Exts and exts into a new ext directory, ensuring consistent structure across platforms and preventing path fragmentation.
- Fix an issue where the 'Create New Extension' command generated empty file names.
@@ -155,9 +155,9 @@ In this release, we focused on new features, stability, and automation.
- Refactored CmdPal classes to improve JSON serialization and introduced new serialization contexts for better performance and maintainability.
- Added support for ahead-of-time (AoT) compilation.
- Added retry mechanism for CmdPal launch.
- - Removed some unused files from CmdPal.Common to simplify codebase and facilitate marking it as AoT-compatible.
+ - Removed some unused files from CmdPal.Common to simplify the codebase and facilitate marking it as AoT-compatible.
- Fixed a bug where a race condition in the update of SearchText caused the cursor in the input box to automatically jump to the end of the line, ensuring SearchText is only updated after it has actually been changed.
- - Added support for searching any file in fallback command.
+ - Added support for searching any file in the fallback command.
- Cleaned up AoT-related code to prevent duplicate operations during testing.
- Reduced CmdPal load time by parallelizing extension startup and adding timeouts to prevent misbehaving extensions from blocking others.
- Enhanced UI behavior by dismissing the details pane when the list gets emptied, avoiding inconsistent visual states.
@@ -179,7 +179,7 @@ In this release, we focused on new features, stability, and automation.
### Keyboard Manager
- - Fixed an issue where a modifier key, when set without specifying left or right, would get stuck due to incorrect key handling, by tracking the pressed keys and sending the correct key accordingly. Thanks [@mantaionut](https://github.com/mantaionut)!
+ - Fixed an issue where a modifier key, when set without specifying left or right, would get stuck due to incorrect key handling by tracking the pressed keys and sending the correct key accordingly. Thanks [@mantaionut](https://github.com/mantaionut)!
### PowerRename
@@ -187,7 +187,7 @@ In this release, we focused on new features, stability, and automation.
### PowerToys Run
- - Added support for custom formats in the "Time and Date" plugin and improves error messages for invalid input formats. Thanks [@htcfreek](https://github.com/htcfreek)!
+ - Added support for custom formats in the "Time and Date" plugin and improved error messages for invalid input formats. Thanks [@htcfreek](https://github.com/htcfreek)!
- Fix two crashes: one for WFT on very early dates and another for calculating the week of the month on very late dates (e.g., 31.12.9999), and reorder UI settings. Thanks [@htcfreek](https://github.com/htcfreek)!
- Fix an issue where capitalization in the command causes failure when trying to go to the mouse pointer, resolved by adjusting the command to lowercase.
- Added version details to plugin error messages for 'Loading error' and 'Init error'. Thanks [@htcfreek](https://github.com/htcfreek)!
@@ -254,7 +254,7 @@ For [v0.92][github-next-release-work], we'll work on the items below:
- New UI Automation tests
- Working on installer upgrades
- Upgrading Keyboard Manager's editor UI
- - Stability / bug fixes
+ - Stability, bug fixes
## PowerToys Community
@@ -266,7 +266,7 @@ This project has adopted the [Microsoft Open Source Code of Conduct][oss-conduct
## Privacy Statement
-The application logs basic diagnostic data (telemetry). For more information on privacy and what we collect, see our [PowerToys Data and Privacy documentation](https://aka.ms/powertoys-data-and-privacy-documentation).
+The application logs basic diagnostic data (telemetry). For more privacy information and what we collect, see our [PowerToys Data and Privacy documentation](https://aka.ms/powertoys-data-and-privacy-documentation).
[oss-CLA]: https://cla.opensource.microsoft.com
[oss-conduct-code]: CODE_OF_CONDUCT.md
diff --git a/deps/cziplib b/deps/cziplib
index 7a57414261..81314fff0a 160000
--- a/deps/cziplib
+++ b/deps/cziplib
@@ -1 +1 @@
-Subproject commit 7a57414261361ca991ff8053881343eb6bb6f205
+Subproject commit 81314fff0a882b72a9ad321e7a3311660125b56e
diff --git a/doc/devdocs/UITests.md b/doc/devdocs/UITests.md
index b1b91a632c..d02eeb6993 100644
--- a/doc/devdocs/UITests.md
+++ b/doc/devdocs/UITests.md
@@ -21,67 +21,74 @@
- Create a new project and add the following references to the project file. Change the OutputPath to your own module's path.
```
-
- Library
-
- false
-
-
-
- ..\..\..\..\$(Platform)\$(Configuration)\tests\KeyboardManagerUITests\
-
-
-
-
-
-
-
+
+
+
+
+
+ {4E0AE3A4-2EE0-44D7-A2D0-8769977254A0}
+ PowerToys.Hosts.UITests
+ PowerToys.Hosts.UITests
+ false
+ true
+ enable
+ Library
+
+
+ false
+
+
+ $(SolutionDir)$(Platform)\$(Configuration)\tests\Hosts.UITests\
+
+
+
+
+
+
+
+
```
- Inherit your test class from UITestBase.
>Set Scope: The default scope starts from the PowerToys settings UI. If you want to start from your own module, set the constructor as shown below:
>Specify Scope:
```
- [TestClass]
- public class RunFancyZonesTest : UITestBase
- {
- public RunFancyZonesTest()
- : base(PowerToysModule.FancyZone)
- {
- }
- }
+ [TestClass]
+ public class HostModuleTests : UITestBase
+ {
+ public HostModuleTests()
+ : base(PowerToysModule.Hosts, WindowSize.Small_Vertical)
+ {
+ }
+ }
```
-- Then you can start using session to perform the UI operations.
+- Then you can start performing the UI operations.
**Example**
```
-using Microsoft.PowerToys.UITest;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-
-namespace UITests_KeyboardManager
+[TestMethod("Hosts.Basic.EmptyViewShouldWork")]
+[TestCategory("Hosts File Editor #4")]
+public void TestEmptyView()
{
- [TestClass]
- public class RunKeyboardManagerUITests : UITestBase
- {
- [TestMethod]
- public void OpenKeyboardManagerEditor()
- {
- // Open KeyboardManagerEditor
- this.Session.Find