microsoft/PowerToys

Support ARM platform

LivefromRaleighwood opened this issue Β· 73 comments

crutkas: taking over the body here for creating the work items

Can do now work:

  • Upgrade everything to .NET Core/Standard away from .NET Fx. <- #776
  • Eliminate all dependencies that are .NET Fx only. <- #8557
  • Upgrade everything to .NET 5 <- #8650
  • Runner: the exception handler is relying on x64-specific registers
  • Update installer to verify proper processor type for installer
    • don't do ARM installer for x64 user
    • don't do x64 installer for ARM user

Pure ARM64 solution

  • WPF ARM64 support <- dotnet/wpf#1817
  • WinForms ARM64 support
  • Installer updates
  • Get CI to ARM64 solution
  • Get Build farm to ARM64

Hybrid solution work (ARM64 where possible, everything else is x86)

  • Get solution to work E2E on x86
  • Update installer to verify proper processor type for installer
    • warn do x86 installer for x64 user
  • Get solution to work in hybrid ARM64/x86

Should update the readme with this until we have time to address it.

Readme calls this out

Thank you. Lack of ARM64 support seemed like an oversight considering the Surface X product announcement.

We have an internal build that can do this. We are aware of the device and the need to get a build out with ARM support. Just takes time and prioritization for what gets worked on. Great example of a thing people can vote on to get us to up the priority.

#413 is a prerequisite for this issue.

Thanks for the update folks.

Looking forward to Power Toys on SPX!!

Given the amount of work already scheduled for 20.02, if ARM support will not require more work that we already know, we can try to do it, but if it turns out it requires mode work we should move it to the next milestone.

are you looking for Arm beta testers for the internal build? because I would LOVE to volunteer (hint hint!)

@marypcbuk, when a non-POC stable build happens, you'll be one of the first (after me :))

I have also committed myself to an ARM based Tablet / Laptop, alas no the Surface Pro X as yet, I am running the Samsung GalaxyBook2. Since Chromium Edge delivered a production build for ARM64 - there hasn't been much I could not do on my GalaxyBook2. Although the 4gb of RAM and 128gb Storage is a limitation. I'd love to think I could have a Surface Pro X with 16gb RAM and at least 256gb SSD (or even 512gb) by year's end, but the current AUD to USD exchange rate is making that increasingly unlikely.

@bpm-masters we will support ARM

@bpm-masters we will support ARM

Very much looking forward to this for my SPX! I will also throw my hat in the ring if testers are needed.

I don't know if testers are needed, but if they are, hi πŸ‘‹
Using a SPX.

Also would like to be notified once this is available for evaluation, as I'm on an SPX.

Me too - I chose a Pro X over a Pro 7 foolishly believing it would be the wave of the future. I can live without Facebook Messenger (x64-only- whyyyyyy?) but not PowerTools. But x86 would work too.

Me too - I chose a Pro X over a Pro 7 foolishly believing it would be the wave of the future. I can live without Facebook Messenger (x64-only- whyyyyyy?) but not PowerTools. But x86 would work too.

Give us time :)

Take your time. Brice Lamson still has the x86 image resizer :-)

I'm very much looking forward to PowerToys on ARM! It's the one major thing I'm missing on my Surface Pro X, and I desperately miss it. :(

kwe commented

Another SPX owner, who’d love to test this if it was available.

Same here, the only thing I am missing on my SPX is PowerToys.

I love PowerToys on my SB2 and I'm excited for it on aarch64 for the SPX. I will wait however long it takes because I know you guys are awesome and working on it and when it comes out it will be amazing!

Adding to the Choir, really looking forward to this for my Pro X

Any way the community can assist?

Another SPX user desperately waiting to see this happen for many months now - if the ARM user base is too small to consider, please say so and we can go with another alternative.

Another SPX user desperately waiting to see this happen for many months now - if the ARM user base is too small to consider, please say so and we can go with another alternative.

There are existing alternatives? πŸ˜…

Another SPX user desperately waiting to see this happen for many months now - if the ARM user base is too small to consider, please say so and we can go with another alternative.

There are existing alternatives? πŸ˜…

Many individual products exist as alternatives - potentially alternative paths to port to ARM, should exist, too.

Would you suggest there're no alternatives to any functionality provided?

Another SPX user desperately waiting to see this happen for many months now - if the ARM user base is too small to consider, please say so and we can go with another alternative.

There are existing alternatives? πŸ˜…

Many individual products exist as alternatives - potentially alternative paths to port to ARM, should exist, too.

Would you suggest there're no alternatives to any functionality provided?

I think there is no other program with combines so many functions like powertoys. Don't wan't to install 10 programs to have the same functionality as with powertoys.

Any update / visibility on arm64 support for PowerToys?
Microsoft has not only released Chromium Edge but more recently VS Code (now in stable as well) and powertoys is really one of the last needed pieces of the puzzle to make the SPX the perfect device

The timeline for v1 has been specified as September 2020. Would we see the ARM version before PowerToys hit v1.0? The only thing I miss on my new SPX.

Any update on PowerToys on ARM64? I would really like to start using it on my SPX, really great device, just think Microsoft dropped the ball on marketing this device, it's much better than I could have imagined, I'm glad I sold my Surface Pro (2017) for this.

Joining the (hopefully not small) group of windows on arm users who would love to see power toy on arm. I am using a Samsung Galacy Book S and love it, but I really miss power toys. Any chance we see it in the near future?

I've heard that they have an internal build that works on arm64, so hopefully they release it soon.
I would be happy with a pre pre pre alpha version too. xD
@sozialpr

@McBaumwolle I would gladly be an alpha or beta tester for this. :)

I've heard that they have an internal build that works on arm64, so hopefully they release it soon.

The internal build was a one off by the WinOnArm team to verify it would work and how well, we still have a ton of infra work to support this.

Talking with a few folks, we may need to do x86 support to then support this as there are parts that will have to be x86 emulated without .NET ARM64 for desktop apps not done yet. By doing x86, we can validate that all x86 is stable before we do the mix mode ARM.

@crutkas does the upcoming X64 emulation on WoA make things any easier?

@clarkezone you signing up to help port everything?

@marypcbuk In some ways yes but others no.

I'm taking over the top for work items.

SPX user here waiting for news or alternative lol

So excited for PowerToys on ARM, it's the only thing I'm really missing on my SPX. Any release date yet?

we need dotnet/wpf#1817 as well

It would be really cool, if you could implement ARM64 support because there are many PCs which use ARM instead of x86, I think.

WPF ARM64 support
WinForms ARM64 support

both have been supported alrready

Any updates here?

@davidvandamage nope, waiting on one critical piece and then magically all the pieces will fall into place. We need winui3 unpackaged to get off .net core 3.1. The settings app has a xaml island and the tooling for that is tied to it. Once we can migrate that off, with two to three releases, we will have ARM64 support.

One month for initial WinUI unpackaged trial run, one for total ports, one month to ensure build farm proper support.

Windows 11 has x64 emulation. Runs smoothly. I think this can be closed

Windows 11 has x64 emulation. Runs smoothly. I think this can be closed

That's underwhelming statement , please don't write something like this in this thread

crutkas: edited, please watch language

Windows 11 has x64 emulation. Runs smoothly. I think this can be closed

@libewa that's not very helpful - or necessary since the last dependency is identified and in progress

also, there are some folks who are very passionate about this, so you can expect to get quite a lot of feedback disagreeing with you!

We have an internal build that can do this.

Just out of interest, how did you create a build for arm when wpf support for arm64 wasn't available, and xaml islands only supports .net core 3.1

That was before when we had only two c++ based projects.

We tried out WinUI 3 for settings and now are waiting for elevation support. Once that comes in … fingers crossed :)

Need Help

@Happykr2 right now, We are working on upgrading everything to .net 5 (then to 6). If you want to help there, pop over to that issue (on our roadmap)

we then are in a holding pattern for WinUI 3 to add elevation and multi window. Hope is soon for those features.

With this DynamicDependencies: support elevation PR being merged, Now All of WinAppSDK (that includes WinUI 3) both Packaged or Unpackaged Apps should be ready for supporting Elevation. wait for the next release. (i.e v1.1)

according to WinAppSDK roadmap WinUI 3's multi top level window support is also planned for v1.1

@crutkas - I can take on the "Runner: the exception handler is relying on x64-specific registers" portion of this.

Also, anything involving changes to the solutions, props, projs I can take on.

Email me and let’s sync. Big blocker no matter need to upgrade settings.

@jaimecbernardo @snickler & co; after recent pr's, (also thinking of winui3, but that's less related) I'm wondering what all this will do with the installer file size. Can you tell already at this point? Would it make sense to create one installer file for x64 and one for ARM? What would be the difference?

Presumably this means ARM64 support is coming with the 0.58 release?

Winui3 will make it bigger. The idea for arm64 is that it'd be a different installer at first.

Presumably this means ARM64 support is coming with the 0.58 release?

Not for 0.58.

@snickler @jaimecbernardo @yuyoyuppe Did someone ever test the preview handlers on arm64? From my experience prevhost makes problems on every corner, so I wouldn't be surprised if it didn't work.

@Aaron-Junker testing it right now, and they indeed do not work :)

@snickler @jaimecbernardo @yuyoyuppe Did someone ever test the preview handlers on arm64? From my experience prevhost makes problems on every corner, so I wouldn't be surprised if it didn't work.

I don't think we've gotten the preview handlers working yet, but I'm sure we'll be able to figure it out 😎.

@Aaron-Junker testing it right now, and they indeed do not work :)

Sadly what I expected. So the registry key name (under shellex) for 32-bit handlers is diffrent then the one for 64-bit ones. So maybe there is another one for arm64.

Hey everyone, we've shipped ARM64 build of PowerToys :) Enjoy

https://aka.ms/installpowertoys

note: if you have the x64 build already installed on your ARM device, you will have to uninstall it before installing the ARM64 version

Hey everyone, we've shipped ARM64 build of PowerToys :) Enjoy
so glad to see it! thanks

A joyous day this is!