diff --git a/PowerToys.sln b/PowerToys.sln
index e185f09f7..d637dee1e 100644
--- a/PowerToys.sln
+++ b/PowerToys.sln
@@ -371,6 +371,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MouseUtils", "MouseUtils",
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FindMyMouse", "src\modules\MouseUtils\FindMyMouse\FindMyMouse.vcxproj", "{E94FD11C-0591-456F-899F-EFC0CA548336}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.PowerToys.Settings.UI.WinUI3", "src\settings-ui\Microsoft.PowerToys.Settings.UI.WinUI3\Microsoft.PowerToys.Settings.UI.WinUI3.csproj", "{496AB2AA-4BF0-4C1D-9598-DCCDA2B6E289}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -986,6 +988,12 @@ Global
{E94FD11C-0591-456F-899F-EFC0CA548336}.Release|x64.ActiveCfg = Release|x64
{E94FD11C-0591-456F-899F-EFC0CA548336}.Release|x64.Build.0 = Release|x64
{E94FD11C-0591-456F-899F-EFC0CA548336}.Release|x86.ActiveCfg = Release|x64
+ {496AB2AA-4BF0-4C1D-9598-DCCDA2B6E289}.Debug|x64.ActiveCfg = Debug|x64
+ {496AB2AA-4BF0-4C1D-9598-DCCDA2B6E289}.Debug|x64.Build.0 = Debug|x64
+ {496AB2AA-4BF0-4C1D-9598-DCCDA2B6E289}.Debug|x86.ActiveCfg = Debug|x64
+ {496AB2AA-4BF0-4C1D-9598-DCCDA2B6E289}.Release|x64.ActiveCfg = Release|x64
+ {496AB2AA-4BF0-4C1D-9598-DCCDA2B6E289}.Release|x64.Build.0 = Release|x64
+ {496AB2AA-4BF0-4C1D-9598-DCCDA2B6E289}.Release|x86.ActiveCfg = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1105,6 +1113,7 @@ Global
{4642D596-723F-4BFC-894C-46811219AC4A} = {89E20BCE-EB9C-46C8-8B50-E01A82E6FDC3}
{322566EF-20DC-43A6-B9F8-616AF942579A} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
{E94FD11C-0591-456F-899F-EFC0CA548336} = {322566EF-20DC-43A6-B9F8-616AF942579A}
+ {496AB2AA-4BF0-4C1D-9598-DCCDA2B6E289} = {C3081D9A-1586-441A-B5F4-ED815B3719C1}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C3A2F9D1-7930-4EF4-A6FC-7EE0A99821D0}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/App.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/App.xaml
new file mode 100644
index 000000000..39d492a97
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/App.xaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/App.xaml.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/App.xaml.cs
new file mode 100644
index 000000000..556cb4b39
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/App.xaml.cs
@@ -0,0 +1,51 @@
+using Microsoft.UI.Xaml;
+using Microsoft.UI.Xaml.Controls;
+using Microsoft.UI.Xaml.Controls.Primitives;
+using Microsoft.UI.Xaml.Data;
+using Microsoft.UI.Xaml.Input;
+using Microsoft.UI.Xaml.Media;
+using Microsoft.UI.Xaml.Navigation;
+using Microsoft.UI.Xaml.Shapes;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices.WindowsRuntime;
+using Windows.ApplicationModel;
+using Windows.ApplicationModel.Activation;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace Microsoft.PowerToys.Settings.UI.WinUI3
+{
+ ///
+ /// Provides application-specific behavior to supplement the default Application class.
+ ///
+ public partial class App : Application
+ {
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ }
+
+ ///
+ /// Invoked when the application is launched normally by the end user. Other entry points
+ /// will be used such as when the application is launched to open a specific file.
+ ///
+ /// Details about the launch request and process.
+ protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
+ {
+ m_window = new MainWindow();
+ m_window.Activate();
+ }
+
+ private Window m_window;
+ }
+}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/LockScreenLogo.scale-200.png b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/LockScreenLogo.scale-200.png
new file mode 100644
index 000000000..7440f0d4b
Binary files /dev/null and b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/LockScreenLogo.scale-200.png differ
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/SplashScreen.scale-200.png b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/SplashScreen.scale-200.png
new file mode 100644
index 000000000..32f486a86
Binary files /dev/null and b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/SplashScreen.scale-200.png differ
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/Square150x150Logo.scale-200.png b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/Square150x150Logo.scale-200.png
new file mode 100644
index 000000000..53ee3777e
Binary files /dev/null and b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/Square150x150Logo.scale-200.png differ
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/Square44x44Logo.scale-200.png b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/Square44x44Logo.scale-200.png
new file mode 100644
index 000000000..f713bba67
Binary files /dev/null and b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/Square44x44Logo.scale-200.png differ
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 000000000..dc9f5bea0
Binary files /dev/null and b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/StoreLogo.png b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/StoreLogo.png
new file mode 100644
index 000000000..a4586f26b
Binary files /dev/null and b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/StoreLogo.png differ
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/Wide310x150Logo.scale-200.png b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/Wide310x150Logo.scale-200.png
new file mode 100644
index 000000000..8b4a5d0dd
Binary files /dev/null and b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Assets/Wide310x150Logo.scale-200.png differ
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/MainWindow.xaml b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/MainWindow.xaml
new file mode 100644
index 000000000..6b11e3b29
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/MainWindow.xaml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/MainWindow.xaml.cs b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/MainWindow.xaml.cs
new file mode 100644
index 000000000..3cf8ec68f
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/MainWindow.xaml.cs
@@ -0,0 +1,36 @@
+using Microsoft.UI.Xaml;
+using Microsoft.UI.Xaml.Controls;
+using Microsoft.UI.Xaml.Controls.Primitives;
+using Microsoft.UI.Xaml.Data;
+using Microsoft.UI.Xaml.Input;
+using Microsoft.UI.Xaml.Media;
+using Microsoft.UI.Xaml.Navigation;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices.WindowsRuntime;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace Microsoft.PowerToys.Settings.UI.WinUI3
+{
+ ///
+ /// An empty window that can be used on its own or navigated to within a Frame.
+ ///
+ public sealed partial class MainWindow : Window
+ {
+ public MainWindow()
+ {
+ this.InitializeComponent();
+ }
+
+ private void myButton_Click(object sender, RoutedEventArgs e)
+ {
+ myButton.Content = "Clicked";
+ }
+ }
+}
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Microsoft.PowerToys.Settings.UI.WinUI3.csproj b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Microsoft.PowerToys.Settings.UI.WinUI3.csproj
new file mode 100644
index 000000000..ca156ccc0
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/Microsoft.PowerToys.Settings.UI.WinUI3.csproj
@@ -0,0 +1,43 @@
+
+
+ WinExe
+ net5.0-windows10.0.19041.0
+ 10.0.17763.0
+ Microsoft.PowerToys.Settings.UI.WinUI3
+ app.manifest
+ x64;
+ win10-x64;
+ win10-$(Platform).pubxml
+ true
+ true
+ None
+
+
+
+
+
+ ..\..\..\x64\Debug\SettingsUI\
+
+
+ ..\..\..\x64\Release\SettingsUI\
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/app.manifest b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/app.manifest
new file mode 100644
index 000000000..c7e515303
--- /dev/null
+++ b/src/settings-ui/Microsoft.PowerToys.Settings.UI.WinUI3/app.manifest
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+ true/PM
+ PerMonitorV2, PerMonitor
+
+
+