diff --git a/.config/menus/applications-merged/wine-Programs-LiveWall.menu b/.config/menus/applications-merged/wine-Programs-LiveWall.menu new file mode 100644 index 0000000..13f0115 --- /dev/null +++ b/.config/menus/applications-merged/wine-Programs-LiveWall.menu @@ -0,0 +1,16 @@ + + + Applications + + wine-wine + wine-wine.directory + + wine-Programs + wine-Programs.directory + + wine-Programs-LiveWall.desktop + + + + diff --git a/.dotnet/.workloadAdvertisingManifestSentinel8.0.400 b/.dotnet/.workloadAdvertisingManifestSentinel8.0.400 new file mode 100644 index 0000000..e69de29 diff --git a/.dotnet/.workloadAdvertisingUpdates8.0.400 b/.dotnet/.workloadAdvertisingUpdates8.0.400 new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/.dotnet/.workloadAdvertisingUpdates8.0.400 @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/.dotnet/8.0.427.aspNetCertificateSentinel b/.dotnet/8.0.427.aspNetCertificateSentinel new file mode 100644 index 0000000..e69de29 diff --git a/.dotnet/8.0.427.dotnetFirstUseSentinel b/.dotnet/8.0.427.dotnetFirstUseSentinel new file mode 100644 index 0000000..e69de29 diff --git a/.dotnet/8.0.427.toolpath.sentinel b/.dotnet/8.0.427.toolpath.sentinel new file mode 100644 index 0000000..e69de29 diff --git a/.dotnet/corefx/Runtime/SharedMemory/.dotnet/shm/global/V6vJPHVvg+Sp3Qh189_2qXHgPkI4qqe8oyDQZN+k+MM.server b/.dotnet/corefx/Runtime/SharedMemory/.dotnet/shm/global/V6vJPHVvg+Sp3Qh189_2qXHgPkI4qqe8oyDQZN+k+MM.server new file mode 100644 index 0000000..b9ff8df Binary files /dev/null and b/.dotnet/corefx/Runtime/SharedMemory/.dotnet/shm/global/V6vJPHVvg+Sp3Qh189_2qXHgPkI4qqe8oyDQZN+k+MM.server differ diff --git a/.dotnet/corefx/cryptography/crls/75d1b2ed.de05bb98.crl b/.dotnet/corefx/cryptography/crls/75d1b2ed.de05bb98.crl new file mode 100644 index 0000000..805aa25 --- /dev/null +++ b/.dotnet/corefx/cryptography/crls/75d1b2ed.de05bb98.crl @@ -0,0 +1,18 @@ +-----BEGIN X509 CRL----- +MIIC3TCBxgIBATANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQGEwJVUzEVMBMGA1UE +ChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEwHwYD +VQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQXDTI2MTAzMDE3NDIzNVoXDTI2 +MTEyMDE3NDIzNVqgMDAuMB8GA1UdIwQYMBaAFOzX44LScV1kTN8uZz/nupiuHA9P +MAsGA1UdFAQEAgIDCTANBgkqhkiG9w0BAQwFAAOCAgEAuyJwNbNRv3YXzowM4Pyb +NM3mYGWmADl/YbLkMc3yJ5fI/9zLkR3QtHr570Gh6YDuciCuUs/U4UbQDrvNm/3j +q618MXyBpRnHgsNZZ4+snIzUUlmX9LVk47/NMMNcKyOHAfcJnz/5ZrDltSmL5DuB +MAJn5ufIVJwwdZjYEv1fdPKaJmDF9Pbe+qp8rUdcpNgaqkHToDROixgZ4EB8aEes +5qjDnvFDt6Xd/mcY59NoAjnocv2RdN+PmelO5B48aiahf5XMceKAAPDhCazg+DZo +Yi7X6coMS8ahQLPjuqn6lIr617edeUOsyQ+Bsh9PBmMstTDYGr0UiCLHIcATBdC4 +RSqjKgf8QUgJu1cvo3tikYzcQANMR6njJ/KEWR8Nr978JSpFfYcmsrfUm6I1Eytn +bKP3woWntBJTVX3PFrq9NMnFQXLfKALhIVIRzRoc849j7L8eNqKnpcKNqc0mHBSd +KsPOT8TLxe6opfRybG2yDpfqs+ugWC1ydkMmQbI+MVD+u5l+WnpRdA+sdYFpn0kV +pJQDaNIwdNKjvYywsVeNJALH+wArpwBfuBoPxwkwXHjWj9SEgbOjide6nwZRXqAS +rUppXgLzJBgULsOfiU6mHrB4TCFRmkCFBiAXRosON17uRP69O7eIzojOnz1ENu1/ +PJuwNwV8oNxqqQPpk7DhtEE= +-----END X509 CRL----- diff --git a/.dotnet/corefx/cryptography/crls/cf887acb.0f995861.crl b/.dotnet/corefx/cryptography/crls/cf887acb.0f995861.crl new file mode 100644 index 0000000..80eac52 --- /dev/null +++ b/.dotnet/corefx/cryptography/crls/cf887acb.0f995861.crl @@ -0,0 +1,22 @@ +-----BEGIN X509 CRL----- +MIIDnTCCAYUCAQEwDQYJKoZIhvcNAQELBQAwaTELMAkGA1UEBhMCVVMxFzAVBgNV +BAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2VydCBUcnVzdGVkIEc0 +IFRpbWVTdGFtcGluZyBSU0E0MDk2IFNIQTI1NiAyMDI1IENBMRcNMjYxMDI4MTY0 +MDI2WhcNMjYxMTE4MTY0MDI2WqCB5zCB5DAfBgNVHSMEGDAWgBTvb1NK6eQGfHrK +4pBW9i/USezLTjAKBgNVHRQEAwIBTzCBtAYDVR0cAQH/BIGpMIGmoIGjoIGghk5o +dHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRUaW1lU3Rh +bXBpbmdSU0E0MDk2U0hBMjU2MjAyNUNBMS5jcmyGTmh0dHA6Ly9jcmw0LmRpZ2lj +ZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNFRpbWVTdGFtcGluZ1JTQTQwOTZTSEEy +NTYyMDI1Q0ExLmNybDANBgkqhkiG9w0BAQsFAAOCAgEADAj8kSpzYt1n103D8QgZ +VdSZZl+pNdH3M8IwSpQz3yOHIl0+HJoRH+yIAUsBUf7kqtAghfkb68DdsINrmEn1 +HChyzQZMZko/qrA42wXRBgDoxbfNoLhJnG64PwbOb0oRlc8q+4cxcb+pzlFkszFs +6yr/HY3SEgLj/Yf4oFNsWToGmfjgb7nK6zZXQqD/GjrRLhaO9bxyb2o2XupHcwlf +t8oJ+P+62eb0PX4OZ7icR0Akn+dMoYvSxKyI5RplS6mdBxmjE7T7cJee1RNbWPyl +3kd7LjLEdvszA0y6SzChhRxhmEGGR9XFSweAs4hF5IjX65chf2arNKdJy9ITxDS3 +1N3fmkYq0uAe86l/swXoKg63eStu22QNaH7FuiNBOFWFcUsDVn+EJiXlFJdCkK9e +2YL6yjxarZZ78q9GuG6Wo86HpRMU2bV4uCbAv7x6Y5sS7jgCTvUGWq6kKcyz5h6l +rHLIB0IpJTOZ+HPMOVPbblElKDW/yFKfIz2vXY/rbxocQII5ykJw6XLEaIRAG+jh +kAQArkbBE1iLdCFxpnPwT0EJd1jHdBnIeQd/SbYhI7KUN5Gkp3JNNXuLUjlzFn4J +90iFoniPRfegIYJISk6n8i3v4rryOC/Ks1aTFNoiMHi3wwQ+1rvWj9fpa8/x31P0 +xIgqutlMiFp2Y29qv5i8LG4= +-----END X509 CRL----- diff --git a/.dotnet/corefx/cryptography/crls/d16da424.cbeb964c.crl b/.dotnet/corefx/cryptography/crls/d16da424.cbeb964c.crl new file mode 100644 index 0000000..ea66e4f --- /dev/null +++ b/.dotnet/corefx/cryptography/crls/d16da424.cbeb964c.crl @@ -0,0 +1,3921 @@ +-----BEGIN X509 CRL----- +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 +q8RT88YmZpnd +-----END X509 CRL----- diff --git a/.dotnet/corefx/cryptography/x509stores/my/D169BA29079C4DB30CD080EFC95B92BB93841802.pfx b/.dotnet/corefx/cryptography/x509stores/my/D169BA29079C4DB30CD080EFC95B92BB93841802.pfx new file mode 100644 index 0000000..5c0b15e Binary files /dev/null and b/.dotnet/corefx/cryptography/x509stores/my/D169BA29079C4DB30CD080EFC95B92BB93841802.pfx differ diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.android/AdvertisedManifestFeatureBand.txt b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.android/AdvertisedManifestFeatureBand.txt new file mode 100644 index 0000000..d3f1dda --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.android/AdvertisedManifestFeatureBand.txt @@ -0,0 +1 @@ +8.0.100 \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.android/WorkloadManifest.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.android/WorkloadManifest.json new file mode 100644 index 0000000..f474874 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.android/WorkloadManifest.json @@ -0,0 +1,77 @@ +{ + "version": "34.0.154", + "workloads": { + "android": { + "description": ".NET SDK Workload for building Android applications.", + "packs": [ + "Microsoft.Android.Sdk.net8", + "Microsoft.Android.Sdk.net7", + "Microsoft.Android.Ref.34", + "Microsoft.Android.Runtime.34.android-arm", + "Microsoft.Android.Runtime.34.android-arm64", + "Microsoft.Android.Runtime.34.android-x86", + "Microsoft.Android.Runtime.34.android-x64", + "Microsoft.Android.Templates" + ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64" ], + "extends" : [ + "microsoft-net-runtime-android-net7", + "microsoft-net-runtime-android-aot-net7", + "microsoft-net-runtime-android", + "microsoft-net-runtime-android-aot" + ] + } + }, + "packs": { + "Microsoft.Android.Sdk.net8": { + "kind": "sdk", + "version": "34.0.154", + "alias-to": { + "osx-x64": "Microsoft.Android.Sdk.Darwin", + "osx-arm64": "Microsoft.Android.Sdk.Darwin", + "win-x86": "Microsoft.Android.Sdk.Windows", + "win-x64": "Microsoft.Android.Sdk.Windows", + "win-arm64": "Microsoft.Android.Sdk.Windows", + "linux-x64": "Microsoft.Android.Sdk.Linux", + "linux-arm64": "Microsoft.Android.Sdk.Linux" + } + }, + "Microsoft.Android.Sdk.net7": { + "kind": "sdk", + "version": "33.0.95", + "alias-to": { + "osx-x64": "Microsoft.Android.Sdk.Darwin", + "osx-arm64": "Microsoft.Android.Sdk.Darwin", + "win-x86": "Microsoft.Android.Sdk.Windows", + "win-x64": "Microsoft.Android.Sdk.Windows", + "win-arm64": "Microsoft.Android.Sdk.Windows", + "linux-x64": "Microsoft.Android.Sdk.Linux", + "linux-arm64": "Microsoft.Android.Sdk.Linux" + } + }, + "Microsoft.Android.Ref.34": { + "kind": "framework", + "version": "34.0.154" + }, + "Microsoft.Android.Runtime.34.android-arm": { + "kind": "framework", + "version": "34.0.154" + }, + "Microsoft.Android.Runtime.34.android-arm64": { + "kind": "framework", + "version": "34.0.154" + }, + "Microsoft.Android.Runtime.34.android-x86": { + "kind": "framework", + "version": "34.0.154" + }, + "Microsoft.Android.Runtime.34.android-x64": { + "kind": "framework", + "version": "34.0.154" + }, + "Microsoft.Android.Templates": { + "kind": "template", + "version": "34.0.154" + } + } +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.android/WorkloadManifest.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.android/WorkloadManifest.targets new file mode 100644 index 0000000..029e436 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.android/WorkloadManifest.targets @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.aspire/AdvertisedManifestFeatureBand.txt b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.aspire/AdvertisedManifestFeatureBand.txt new file mode 100644 index 0000000..d3f1dda --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.aspire/AdvertisedManifestFeatureBand.txt @@ -0,0 +1 @@ +8.0.100 \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.aspire/WorkloadManifest.Aspire.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.aspire/WorkloadManifest.Aspire.targets new file mode 100644 index 0000000..1b7b21f --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.aspire/WorkloadManifest.Aspire.targets @@ -0,0 +1,6 @@ + + + + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.aspire/WorkloadManifest.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.aspire/WorkloadManifest.json new file mode 100644 index 0000000..dbf830d --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.aspire/WorkloadManifest.json @@ -0,0 +1,22 @@ +{ + "version": "8.2.2", + "workloads": { + "aspire": { + "description": ".NET Aspire SDK", + "packs": [ + "Aspire.Hosting.Sdk", + "Aspire.ProjectTemplates" + ] + } + }, + "packs": { + "Aspire.Hosting.Sdk": { + "kind": "sdk", + "version": "8.2.2" + }, + "Aspire.ProjectTemplates": { + "kind": "template", + "version": "8.2.2" + } + } +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.aspire/WorkloadManifest.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.aspire/WorkloadManifest.targets new file mode 100644 index 0000000..20a0461 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.aspire/WorkloadManifest.targets @@ -0,0 +1,8 @@ + + + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.ios/AdvertisedManifestFeatureBand.txt b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.ios/AdvertisedManifestFeatureBand.txt new file mode 100644 index 0000000..d3f1dda --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.ios/AdvertisedManifestFeatureBand.txt @@ -0,0 +1 @@ +8.0.100 \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.ios/WorkloadManifest.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.ios/WorkloadManifest.json new file mode 100644 index 0000000..895586c --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.ios/WorkloadManifest.json @@ -0,0 +1,92 @@ +{ + "version": "18.0.8319", + "workloads": { + "ios": { + "description": ".NET SDK Workload for building iOS applications.", + "packs": [ + "Microsoft.iOS.Sdk.net8.0_18.0", + "Microsoft.iOS.Sdk.net8.0_17.0", + "Microsoft.iOS.Sdk.net7", + "Microsoft.iOS.Windows.Sdk.Aliased.net8.0_18.0", + "Microsoft.iOS.Windows.Sdk.Aliased.net8.0_17.0", + "Microsoft.iOS.Windows.Sdk.Aliased.net7", + "Microsoft.iOS.Ref.net8.0_18.0", + "Microsoft.iOS.Runtime.ios-arm64.net8.0_18.0", + "Microsoft.iOS.Runtime.iossimulator-x64.net8.0_18.0", + "Microsoft.iOS.Runtime.iossimulator-arm64.net8.0_18.0", + "Microsoft.iOS.Templates.net8" + ], + "extends": [ + "microsoft-net-runtime-ios", + "microsoft-net-runtime-ios-net7", + ] + }, + }, + "packs": { + "Microsoft.iOS.Sdk.net8.0_18.0": { + "kind": "sdk", + "version": "18.0.8319", + }, + "Microsoft.iOS.Windows.Sdk.Aliased.net8.0_18.0": { + "kind": "sdk", + "version": "18.0.8319", + "alias-to": { + "win-x64": "Microsoft.iOS.Windows.Sdk.net8.0_18.0", + "win-x86": "Microsoft.iOS.Windows.Sdk.net8.0_18.0", + "win-arm64": "Microsoft.iOS.Windows.Sdk.net8.0_18.0", + } + }, + "Microsoft.iOS.Sdk.net8.0_17.0": { + "kind": "sdk", + "version": "17.0.8523", + }, + "Microsoft.iOS.Windows.Sdk.Aliased.net8.0_17.0": { + "kind": "sdk", + "version": "17.0.8523", + "alias-to": { + "win-x64": "Microsoft.iOS.Windows.Sdk.net8.0_17.0", + "win-x86": "Microsoft.iOS.Windows.Sdk.net8.0_17.0", + "win-arm64": "Microsoft.iOS.Windows.Sdk.net8.0_17.0", + } + }, + "Microsoft.iOS.Sdk.net7": { + "kind": "sdk", + "version": "16.4.7142", + "alias-to": { + "any": "Microsoft.iOS.Sdk" + } + }, + "Microsoft.iOS.Windows.Sdk.Aliased.net7": { + "kind": "sdk", + "version": "16.4.7142", + "alias-to": { + "win-x64": "Microsoft.iOS.Windows.Sdk", + "win-x86": "Microsoft.iOS.Windows.Sdk", + "win-arm64": "Microsoft.iOS.Windows.Sdk", + } + }, + "Microsoft.iOS.Ref.net8.0_18.0": { + "kind": "framework", + "version": "18.0.8319" + }, + "Microsoft.iOS.Runtime.ios-arm64.net8.0_18.0": { + "kind": "framework", + "version": "18.0.8319" + }, + "Microsoft.iOS.Runtime.iossimulator-x64.net8.0_18.0": { + "kind": "framework", + "version": "18.0.8319" + }, + "Microsoft.iOS.Runtime.iossimulator-arm64.net8.0_18.0": { + "kind": "framework", + "version": "18.0.8319" + }, + "Microsoft.iOS.Templates.net8": { + "kind": "template", + "version": "18.0.8319", + "alias-to": { + "any": "Microsoft.iOS.Templates", + } + } + } +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.ios/WorkloadManifest.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.ios/WorkloadManifest.targets new file mode 100644 index 0000000..206a89a --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.ios/WorkloadManifest.targets @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maccatalyst/AdvertisedManifestFeatureBand.txt b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maccatalyst/AdvertisedManifestFeatureBand.txt new file mode 100644 index 0000000..d3f1dda --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maccatalyst/AdvertisedManifestFeatureBand.txt @@ -0,0 +1 @@ +8.0.100 \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maccatalyst/WorkloadManifest.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maccatalyst/WorkloadManifest.json new file mode 100644 index 0000000..cc8a729 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maccatalyst/WorkloadManifest.json @@ -0,0 +1,57 @@ +{ + "version": "18.0.8319", + "workloads": { + "maccatalyst": { + "description": ".NET SDK Workload for building MacCatalyst applications.", + "packs": [ + "Microsoft.MacCatalyst.Sdk.net8.0_18.0", + "Microsoft.MacCatalyst.Sdk.net8.0_17.0", + "Microsoft.MacCatalyst.Sdk.net7", + "Microsoft.MacCatalyst.Ref.net8.0_18.0", + "Microsoft.MacCatalyst.Runtime.maccatalyst-x64.net8.0_18.0", + "Microsoft.MacCatalyst.Runtime.maccatalyst-arm64.net8.0_18.0", + "Microsoft.MacCatalyst.Templates.net8" + ], + "extends": [ + "microsoft-net-runtime-maccatalyst", + "microsoft-net-runtime-maccatalyst-net7", + ] + }, + }, + "packs": { + "Microsoft.MacCatalyst.Sdk.net8.0_18.0": { + "kind": "sdk", + "version": "18.0.8319", + }, + "Microsoft.MacCatalyst.Sdk.net8.0_17.0": { + "kind": "sdk", + "version": "17.0.8523", + }, + "Microsoft.MacCatalyst.Sdk.net7": { + "kind": "sdk", + "version": "16.4.7142", + "alias-to": { + "any": "Microsoft.MacCatalyst.Sdk" + } + }, + "Microsoft.MacCatalyst.Ref.net8.0_18.0": { + "kind": "framework", + "version": "18.0.8319" + }, + "Microsoft.MacCatalyst.Runtime.maccatalyst-x64.net8.0_18.0": { + "kind": "framework", + "version": "18.0.8319" + }, + "Microsoft.MacCatalyst.Runtime.maccatalyst-arm64.net8.0_18.0": { + "kind": "framework", + "version": "18.0.8319" + }, + "Microsoft.MacCatalyst.Templates.net8": { + "kind": "template", + "version": "18.0.8319", + "alias-to": { + "any": "Microsoft.MacCatalyst.Templates", + } + } + } +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maccatalyst/WorkloadManifest.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maccatalyst/WorkloadManifest.targets new file mode 100644 index 0000000..3b79453 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maccatalyst/WorkloadManifest.targets @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.macos/AdvertisedManifestFeatureBand.txt b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.macos/AdvertisedManifestFeatureBand.txt new file mode 100644 index 0000000..d3f1dda --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.macos/AdvertisedManifestFeatureBand.txt @@ -0,0 +1 @@ +8.0.100 \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.macos/WorkloadManifest.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.macos/WorkloadManifest.json new file mode 100644 index 0000000..1f0340f --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.macos/WorkloadManifest.json @@ -0,0 +1,57 @@ +{ + "version": "15.0.8319", + "workloads": { + "macos": { + "description": ".NET SDK Workload for building macOS applications.", + "packs": [ + "Microsoft.macOS.Sdk.net8.0_15.0", + "Microsoft.macOS.Sdk.net8.0_14.0", + "Microsoft.macOS.Sdk.net7", + "Microsoft.macOS.Ref.net8.0_15.0", + "Microsoft.macOS.Runtime.osx-x64.net8.0_15.0", + "Microsoft.macOS.Runtime.osx-arm64.net8.0_15.0", + "Microsoft.macOS.Templates.net8" + ], + "extends": [ + "microsoft-net-runtime-mono-tooling", + "microsoft-net-runtime-mono-tooling-net7", + ] + }, + }, + "packs": { + "Microsoft.macOS.Sdk.net8.0_15.0": { + "kind": "sdk", + "version": "15.0.8319", + }, + "Microsoft.macOS.Sdk.net8.0_14.0": { + "kind": "sdk", + "version": "14.0.8523", + }, + "Microsoft.macOS.Sdk.net7": { + "kind": "sdk", + "version": "13.3.7142", + "alias-to": { + "any": "Microsoft.macOS.Sdk" + } + }, + "Microsoft.macOS.Ref.net8.0_15.0": { + "kind": "framework", + "version": "15.0.8319" + }, + "Microsoft.macOS.Runtime.osx-x64.net8.0_15.0": { + "kind": "framework", + "version": "15.0.8319" + }, + "Microsoft.macOS.Runtime.osx-arm64.net8.0_15.0": { + "kind": "framework", + "version": "15.0.8319" + }, + "Microsoft.macOS.Templates.net8": { + "kind": "template", + "version": "15.0.8319", + "alias-to": { + "any": "Microsoft.macOS.Templates", + } + } + } +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.macos/WorkloadManifest.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.macos/WorkloadManifest.targets new file mode 100644 index 0000000..2d40387 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.macos/WorkloadManifest.targets @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maui/AdvertisedManifestFeatureBand.txt b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maui/AdvertisedManifestFeatureBand.txt new file mode 100644 index 0000000..d3f1dda --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maui/AdvertisedManifestFeatureBand.txt @@ -0,0 +1 @@ +8.0.100 \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maui/WorkloadManifest.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maui/WorkloadManifest.json new file mode 100644 index 0000000..963b9f3 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maui/WorkloadManifest.json @@ -0,0 +1,166 @@ +{ + "version": "8.0.100", + "workloads": { + "maui": { + "description": ".NET MAUI SDK for all platforms", + "extends": [ + "maui-mobile", + "maui-desktop" + ] + }, + "maui-mobile": { + "description": ".NET MAUI SDK for Mobile", + "extends": [ + "maui-android", + "maui-ios", + "maui-tizen" + ] + }, + "maui-desktop": { + "description": ".NET MAUI SDK for Desktop", + "extends": [ + "maui-maccatalyst", + "maui-windows" + ] + }, + "maui-core": { + "abstract": true, + "description": ".NET MAUI SDK Core Packages", + "packs": [ + "Microsoft.Maui.Sdk.net8", + "Microsoft.Maui.Sdk.net7", + "Microsoft.Maui.Graphics", + "Microsoft.Maui.Resizetizer", + "Microsoft.Maui.Resizetizer.Sdk", + "Microsoft.Maui.Templates.net8", + "Microsoft.Maui.Templates.net7", + "Microsoft.Maui.Core", + "Microsoft.Maui.Controls", + "Microsoft.Maui.Controls.Build.Tasks", + "Microsoft.Maui.Controls.Core", + "Microsoft.Maui.Controls.Xaml", + "Microsoft.Maui.Controls.Compatibility", + "Microsoft.Maui.Essentials" + ] + }, + "maui-blazor": { + "abstract": true, + "description": ".NET MAUI SDK Blazor Packages", + "extends": [ "maui-core" ], + "packs": [ + "Microsoft.AspNetCore.Components.WebView.Maui" + ] + }, + "maui-android": { + "description": ".NET MAUI SDK for Android", + "extends": [ + "maui-blazor", + "android" + ] + }, + "maui-maccatalyst": { + "description": ".NET MAUI SDK for Mac Catalyst", + "extends": [ + "maui-blazor", + "maccatalyst" + ] + }, + "maui-ios": { + "description": ".NET MAUI SDK for iOS", + "extends": [ + "maui-blazor", + "ios" + ] + }, + "maui-windows": { + "description": ".NET MAUI SDK for Windows", + "extends": [ "maui-blazor" ], + "packs": [ + "Microsoft.Maui.Graphics.Windows" + ] + }, + "maui-tizen": { + "description": ".NET MAUI SDK for Tizen", + "extends": [ + "maui-blazor" + ] + } + }, + "packs": { + "Microsoft.AspNetCore.Components.WebView.Maui": { + "kind": "library", + "version": "8.0.100" + }, + "Microsoft.Maui.Core": { + "kind": "library", + "version": "8.0.100" + }, + "Microsoft.Maui.Controls": { + "kind": "library", + "version": "8.0.100" + }, + "Microsoft.Maui.Controls.Build.Tasks": { + "kind": "library", + "version": "8.0.100" + }, + "Microsoft.Maui.Controls.Core": { + "kind": "library", + "version": "8.0.100" + }, + "Microsoft.Maui.Controls.Xaml": { + "kind": "library", + "version": "8.0.100" + }, + "Microsoft.Maui.Controls.Compatibility": { + "kind": "library", + "version": "8.0.100" + }, + "Microsoft.Maui.Essentials": { + "kind": "library", + "version": "8.0.100" + }, + "Microsoft.Maui.Graphics": { + "kind": "library", + "version": "8.0.100" + }, + "Microsoft.Maui.Graphics.Windows": { + "kind": "library", + "version": "8.0.100", + "alias-to": { + "win-x86": "Microsoft.Maui.Graphics.Win2D.WinUI.Desktop", + "win-x64": "Microsoft.Maui.Graphics.Win2D.WinUI.Desktop", + "win-arm64": "Microsoft.Maui.Graphics.Win2D.WinUI.Desktop" + } + }, + "Microsoft.Maui.Resizetizer": { + "kind": "library", + "version": "8.0.100" + }, + "Microsoft.Maui.Sdk.net8": { + "kind": "sdk", + "version": "8.0.100", + "alias-to": { + "any": "Microsoft.Maui.Sdk" + } + }, + "Microsoft.Maui.Sdk.net7": { + "kind": "sdk", + "version": "7.0.101", + "alias-to": { + "any": "Microsoft.Maui.Sdk" + } + }, + "Microsoft.Maui.Resizetizer.Sdk": { + "kind": "sdk", + "version": "7.0.101" + }, + "Microsoft.Maui.Templates.net8": { + "kind": "template", + "version": "8.0.100" + }, + "Microsoft.Maui.Templates.net7": { + "kind": "template", + "version": "7.0.101" + } + } +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maui/WorkloadManifest.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maui/WorkloadManifest.targets new file mode 100644 index 0000000..0d95bee --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.maui/WorkloadManifest.targets @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.tvos/AdvertisedManifestFeatureBand.txt b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.tvos/AdvertisedManifestFeatureBand.txt new file mode 100644 index 0000000..d3f1dda --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.tvos/AdvertisedManifestFeatureBand.txt @@ -0,0 +1 @@ +8.0.100 \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.tvos/WorkloadManifest.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.tvos/WorkloadManifest.json new file mode 100644 index 0000000..d80b8e8 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.tvos/WorkloadManifest.json @@ -0,0 +1,62 @@ +{ + "version": "18.0.8319", + "workloads": { + "tvos": { + "description": ".NET SDK Workload for building tvOS applications.", + "packs": [ + "Microsoft.tvOS.Sdk.net8.0_18.0", + "Microsoft.tvOS.Sdk.net8.0_17.0", + "Microsoft.tvOS.Sdk.net7", + "Microsoft.tvOS.Ref.net8.0_18.0", + "Microsoft.tvOS.Runtime.tvos-arm64.net8.0_18.0", + "Microsoft.tvOS.Runtime.tvossimulator-x64.net8.0_18.0", + "Microsoft.tvOS.Runtime.tvossimulator-arm64.net8.0_18.0", + "Microsoft.tvOS.Templates.net8" + ], + "extends": [ + "microsoft-net-runtime-tvos", + "microsoft-net-runtime-tvos-net7", + ] + }, + }, + "packs": { + "Microsoft.tvOS.Sdk.net8.0_18.0": { + "kind": "sdk", + "version": "18.0.8319", + }, + "Microsoft.tvOS.Sdk.net8.0_17.0": { + "kind": "sdk", + "version": "17.0.8523", + }, + "Microsoft.tvOS.Sdk.net7": { + "kind": "sdk", + "version": "16.4.7142", + "alias-to": { + "any": "Microsoft.tvOS.Sdk" + } + }, + "Microsoft.tvOS.Ref.net8.0_18.0": { + "kind": "framework", + "version": "18.0.8319" + }, + "Microsoft.tvOS.Runtime.tvos-arm64.net8.0_18.0": { + "kind": "framework", + "version": "18.0.8319" + }, + "Microsoft.tvOS.Runtime.tvossimulator-x64.net8.0_18.0": { + "kind": "framework", + "version": "18.0.8319" + }, + "Microsoft.tvOS.Runtime.tvossimulator-arm64.net8.0_18.0": { + "kind": "framework", + "version": "18.0.8319" + }, + "Microsoft.tvOS.Templates.net8": { + "kind": "template", + "version": "18.0.8319", + "alias-to": { + "any": "Microsoft.tvOS.Templates", + } + } + } +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.tvos/WorkloadManifest.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.tvos/WorkloadManifest.targets new file mode 100644 index 0000000..cfe68f4 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.sdk.tvos/WorkloadManifest.targets @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.current/AdvertisedManifestFeatureBand.txt b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.current/AdvertisedManifestFeatureBand.txt new file mode 100644 index 0000000..d3f1dda --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.current/AdvertisedManifestFeatureBand.txt @@ -0,0 +1 @@ +8.0.100 \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.current/WorkloadManifest.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.current/WorkloadManifest.json new file mode 100644 index 0000000..53fb31e --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.current/WorkloadManifest.json @@ -0,0 +1,64 @@ +{ + "version": "8.0.33", + "workloads": { + "microsoft-net-sdk-emscripten": { + "abstract": true, + "description": "Emscripten SDK compiler tooling for net8.0", + "packs": [ + "Microsoft.NET.Runtime.Emscripten.Node.net8", + "Microsoft.NET.Runtime.Emscripten.Python.net8", + "Microsoft.NET.Runtime.Emscripten.Cache.net8", + "Microsoft.NET.Runtime.Emscripten.Sdk.net8" + ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64" ] + } + }, + "packs": { + "Microsoft.NET.Runtime.Emscripten.Node.net8" : { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Node.win-x64", + "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Node.win-arm64", + "linux-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Node.linux-x64", + "linux-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Node.linux-arm64", + "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Node.osx-x64", + "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Node.osx-arm64" + } + }, + "Microsoft.NET.Runtime.Emscripten.Python.net8" : { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Python.win-x64", + "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Python.win-arm64", + "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Python.osx-x64", + "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Python.osx-arm64" + } + }, + "Microsoft.NET.Runtime.Emscripten.Cache.net8" : { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.win-x64", + "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.win-arm64", + "linux-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.linux-x64", + "linux-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.linux-arm64", + "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.osx-x64", + "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.osx-arm64" + } + }, + "Microsoft.NET.Runtime.Emscripten.Sdk.net8" : { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.win-x64", + "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.win-arm64", + "linux-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.linux-x64", + "linux-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.linux-arm64", + "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.osx-x64", + "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.osx-arm64" + } + } + } +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.current/WorkloadManifest.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.current/WorkloadManifest.targets new file mode 100644 index 0000000..a3419ba --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.current/WorkloadManifest.targets @@ -0,0 +1,28 @@ + + + true + + + + <_NativeBuildNeeded Condition="'$(RunAOTCompilation)' == 'true'">true + WebAssembly workloads (required for AOT) are only supported for projects targeting net6.0+ + + + + true + $(WasmNativeWorkload) + + + + false + false + + + + + + + + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net6/AdvertisedManifestFeatureBand.txt b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net6/AdvertisedManifestFeatureBand.txt new file mode 100644 index 0000000..d3f1dda --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net6/AdvertisedManifestFeatureBand.txt @@ -0,0 +1 @@ +8.0.100 \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net6/WorkloadManifest.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net6/WorkloadManifest.json new file mode 100644 index 0000000..988e2ca --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net6/WorkloadManifest.json @@ -0,0 +1,49 @@ +{ + "version": "8.0.33", + "workloads": { + "microsoft-net-sdk-emscripten-net6": { + "abstract": true, + "description": "Emscripten SDK compiler tooling", + "packs": [ + "Microsoft.NET.Runtime.Emscripten.Node.net6", + "Microsoft.NET.Runtime.Emscripten.Python.net6", + "Microsoft.NET.Runtime.Emscripten.Sdk.net6" + ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + } + }, + "packs": { + "Microsoft.NET.Runtime.Emscripten.Node.net6" : { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.win-x64", + "win-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.win-x64", + "linux-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.linux-x64", + "osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.osx-x64", + "osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.osx-x64" + } + }, + "Microsoft.NET.Runtime.Emscripten.Python.net6" : { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Python.win-x64", + "win-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Python.win-x64", + "osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Python.osx-x64", + "osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Python.osx-x64" + } + }, + "Microsoft.NET.Runtime.Emscripten.Sdk.net6" : { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.win-x64", + "win-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.win-x64", + "linux-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.linux-x64", + "osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.osx-x64", + "osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.osx-x64" + } + } + } +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net6/WorkloadManifest.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net6/WorkloadManifest.targets new file mode 100644 index 0000000..d543257 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net6/WorkloadManifest.targets @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net7/AdvertisedManifestFeatureBand.txt b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net7/AdvertisedManifestFeatureBand.txt new file mode 100644 index 0000000..d3f1dda --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net7/AdvertisedManifestFeatureBand.txt @@ -0,0 +1 @@ +8.0.100 \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net7/WorkloadManifest.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net7/WorkloadManifest.json new file mode 100644 index 0000000..72e13ad --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net7/WorkloadManifest.json @@ -0,0 +1,61 @@ +{ + "version": "8.0.33", + "workloads": { + "microsoft-net-sdk-emscripten-net7": { + "abstract": true, + "description": "Emscripten SDK compiler tooling", + "packs": [ + "Microsoft.NET.Runtime.Emscripten.Node.net7", + "Microsoft.NET.Runtime.Emscripten.Python.net7", + "Microsoft.NET.Runtime.Emscripten.Cache.net7", + "Microsoft.NET.Runtime.Emscripten.Sdk.net7" + ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + } + }, + "packs": { + "Microsoft.NET.Runtime.Emscripten.Node.net7" : { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Node.win-x64", + "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Node.win-x64", + "linux-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Node.linux-x64", + "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Node.osx-x64", + "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Node.osx-x64" + } + }, + "Microsoft.NET.Runtime.Emscripten.Python.net7" : { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Python.win-x64", + "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Python.win-x64", + "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Python.osx-x64", + "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Python.osx-x64" + } + }, + "Microsoft.NET.Runtime.Emscripten.Cache.net7" : { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Cache.win-x64", + "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Cache.win-x64", + "linux-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Cache.linux-x64", + "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Cache.osx-x64", + "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Cache.osx-x64" + } + }, + "Microsoft.NET.Runtime.Emscripten.Sdk.net7" : { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Sdk.win-x64", + "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Sdk.win-x64", + "linux-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Sdk.linux-x64", + "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Sdk.osx-x64", + "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Sdk.osx-x64" + } + } + } +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net7/WorkloadManifest.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net7/WorkloadManifest.targets new file mode 100644 index 0000000..3a2dbbd --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.emscripten.net7/WorkloadManifest.targets @@ -0,0 +1,28 @@ + + + true + + + + <_NativeBuildNeeded Condition="'$(RunAOTCompilation)' == 'true'">true + WebAssembly workloads (required for AOT) are only supported for projects targeting net6.0+ + + + + true + $(WasmNativeWorkload) + + + + false + false + + + + + + + + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/AdvertisedManifestFeatureBand.txt b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/AdvertisedManifestFeatureBand.txt new file mode 100644 index 0000000..d3f1dda --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/AdvertisedManifestFeatureBand.txt @@ -0,0 +1 @@ +8.0.100 \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/WorkloadManifest.Wasi.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/WorkloadManifest.Wasi.targets new file mode 100644 index 0000000..f6197d5 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/WorkloadManifest.Wasi.targets @@ -0,0 +1,10 @@ + + + + true + + + + $(WasiNativeWorkloadAvailable) + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/WorkloadManifest.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/WorkloadManifest.json new file mode 100644 index 0000000..7bda6dd --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/WorkloadManifest.json @@ -0,0 +1,469 @@ +{ + "version": "8.0.33", + "depends-on": { + "Microsoft.NET.Workload.Emscripten.Current": "8.0.33" + }, + "workloads": { + "wasm-tools": { + "description": ".NET WebAssembly build tools for net8.0", + "packs": [ + "Microsoft.NET.Runtime.WebAssembly.Sdk.net8", + "Microsoft.NETCore.App.Runtime.Mono.net8.browser-wasm", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.browser-wasm" + ], + "extends": [ "microsoft-net-runtime-mono-tooling", "microsoft-net-sdk-emscripten" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64"] + }, + "wasm-experimental": { + "description": ".NET WebAssembly experimental tooling for net8.0", + "packs": [ + "Microsoft.NET.Runtime.WebAssembly.Templates.net8", + "Microsoft.NETCore.App.Runtime.Mono.multithread.net8.browser-wasm", + ], + "extends": [ "wasm-tools" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64" ] + }, + "wasi-experimental": { + "description": ".NET WASI experimental for net8.0", + "packs": [ + "Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.net8", + "Microsoft.NETCore.App.Runtime.Mono.net8.wasi-wasm", + "Microsoft.NET.Runtime.WebAssembly.Templates.net8" + ], + "extends": [ "microsoft-net-runtime-mono-tooling" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64" ] + }, + "mobile-librarybuilder": { + "description": "Mobile SDK for building a self-contained .NET native library", + "packs": [ + "Microsoft.NET.Runtime.LibraryBuilder.Sdk.net8" + ], + "extends": [ "microsoft-net-runtime-android-aot", "microsoft-net-runtime-ios", "microsoft-net-runtime-maccatalyst", "microsoft-net-runtime-tvos" ], + "platforms": [ "win-x64", "win-arm64", "osx-x64", "osx-arm64" ] + }, + "microsoft-net-runtime-android": { + "abstract": true, + "description": "Android Mono Runtime", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net8.android-arm", + "Microsoft.NETCore.App.Runtime.Mono.net8.android-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net8.android-x64", + "Microsoft.NETCore.App.Runtime.Mono.net8.android-x86" + ], + "extends": [ "microsoft-net-runtime-mono-tooling" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, + "microsoft-net-runtime-android-aot": { + "abstract": true, + "description": "Android Mono AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-x86", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-x64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-arm", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-arm64" + ], + "extends": [ "microsoft-net-runtime-android" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, + "microsoft-net-runtime-ios": { + "abstract": true, + "description": "iOS Mono Runtime and AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.ios-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.iossimulator-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.iossimulator-x64" + ], + "extends": [ "runtimes-ios" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "runtimes-ios": { + "abstract": true, + "description": "iOS Mono Runtime Packs", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net8.ios-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net8.iossimulator-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net8.iossimulator-x64" + ], + "extends": [ "microsoft-net-runtime-mono-tooling" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "microsoft-net-runtime-maccatalyst": { + "abstract": true, + "description": "MacCatalyst Mono Runtime and AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.maccatalyst-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.maccatalyst-x64" + ], + "extends": [ "runtimes-maccatalyst" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "runtimes-maccatalyst": { + "abstract": true, + "description": "MacCatalyst Mono Runtime Packs", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net8.maccatalyst-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net8.maccatalyst-x64" + ], + "extends": [ "microsoft-net-runtime-mono-tooling" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "microsoft-net-runtime-macos": { + "abstract": true, + "description": "MacOS CoreCLR and Mono Runtime Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net8.osx-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net8.osx-x64", + "Microsoft.NETCore.App.Runtime.osx-arm64", + "Microsoft.NETCore.App.Runtime.osx-x64" + ], + "extends": [ "microsoft-net-runtime-mono-tooling" ], + "platforms": [ "osx-arm64", "osx-x64" ] + }, + "microsoft-net-runtime-tvos": { + "abstract": true, + "description": "tvOS Mono Runtime and AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.tvos-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.tvossimulator-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.tvossimulator-x64" + ], + "extends": [ "runtimes-tvos" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "runtimes-tvos": { + "abstract": true, + "description": "tvOS Mono Runtime Packs", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net8.tvos-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net8.tvossimulator-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net8.tvossimulator-x64" + ], + "extends": [ "microsoft-net-runtime-mono-tooling" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "runtimes-windows": { + "abstract": true, + "description": "Windows Runtime Packs", + "packs": [ + "Microsoft.NETCore.App.Runtime.win-x64", + "Microsoft.NETCore.App.Runtime.win-x86", + "Microsoft.NETCore.App.Runtime.win-arm64" + ] + }, + "microsoft-net-runtime-mono-tooling": { + "abstract": true, + "description": "Shared native build tooling for Mono runtime", + "packs": [ + "Microsoft.NET.Runtime.MonoAOTCompiler.Task.net8", + "Microsoft.NET.Runtime.MonoTargets.Sdk.net8" + ] + } + }, + "packs": { + "Microsoft.NET.Runtime.MonoAOTCompiler.Task.net8": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NET.Runtime.MonoAOTCompiler.Task" + } + }, + "Microsoft.NET.Runtime.MonoTargets.Sdk.net8": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NET.Runtime.MonoTargets.Sdk" + } + }, + "Microsoft.NET.Runtime.LibraryBuilder.Sdk.net8": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NET.Runtime.LibraryBuilder.Sdk" + } + }, + "Microsoft.NET.Runtime.WebAssembly.Sdk.net8": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NET.Runtime.WebAssembly.Sdk" + } + }, + "Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.net8": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk" + } + }, + "Microsoft.NET.Runtime.WebAssembly.Templates.net8": { + "kind": "template", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NET.Runtime.WebAssembly.Templates" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.android-arm": { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.android-arm64": { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.android-x64": { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-x64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.android-x86": { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-x86": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86", + "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-x86", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-x64": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64", + "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-arm": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm", + "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-arm", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-arm" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-arm64": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64", + "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.maccatalyst-arm64": { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.maccatalyst-x64": { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.osx-arm64": { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.osx-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.osx-x64": { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.osx-x64" + } + }, + "Microsoft.NETCore.App.Runtime.osx-arm64": { + "kind": "framework", + "version": "8.0.33" + }, + "Microsoft.NETCore.App.Runtime.osx-x64": { + "kind": "framework", + "version": "8.0.33" + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.ios-arm64" : { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.ios-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.iossimulator-arm64" : { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.iossimulator-x64" : { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.tvos-arm64": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvos-arm64", + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.tvos-arm64" : { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.tvos-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.tvossimulator-arm64" : { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.tvossimulator-x64" : { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.maccatalyst-arm64": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.maccatalyst-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.maccatalyst-x64": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.maccatalyst-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.tvossimulator-arm64": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvossimulator-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.tvossimulator-x64": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvossimulator-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.ios-arm64": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.ios-arm64", + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.iossimulator-arm64": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.iossimulator-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.iossimulator-x64": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.iossimulator-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.browser-wasm": { + "kind": "Sdk", + "version": "8.0.33", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.browser-wasm", + "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.browser-wasm", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.browser-wasm" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.browser-wasm" : { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.browser-wasm" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.multithread.net8.browser-wasm" : { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net8.wasi-wasm" : { + "kind": "framework", + "version": "8.0.33", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.wasi-wasm" + } + }, + "Microsoft.NETCore.App.Runtime.win-x64" : { + "kind": "framework", + "version": "8.0.33" + }, + "Microsoft.NETCore.App.Runtime.win-x86" : { + "kind": "framework", + "version": "8.0.33" + }, + "Microsoft.NETCore.App.Runtime.win-arm64" : { + "kind": "framework", + "version": "8.0.33" + } + } +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/WorkloadManifest.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/WorkloadManifest.targets new file mode 100644 index 0000000..74ebdb2 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/WorkloadManifest.targets @@ -0,0 +1,218 @@ + + + + <_RuntimePackInWorkloadVersionCurrent>8.0.33 + <_RuntimePackInWorkloadVersion7>7.0.20 + <_RuntimePackInWorkloadVersion6>6.0.36 + + true + true + true + true + + + $(WasmNativeWorkload8) + + + + + + <_BrowserWorkloadNotSupportedForTFM Condition="$([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '6.0'))">true + <_BrowserWorkloadDisabled>$(_BrowserWorkloadNotSupportedForTFM) + + <_UsingBlazorOrWasmSdk Condition="'$(UsingMicrosoftNETSdkBlazorWebAssembly)' == 'true' or '$(UsingMicrosoftNETSdkWebAssembly)' == 'true'">true + + + + + + + + + + true + $(WasmNativeWorkload7) + $(WasmNativeWorkload8) + $(WasmNativeWorkload) + false + $(WasmNativeWorkloadAvailable) + + + + + <_WasmPropertiesDifferFromRuntimePackThusNativeBuildNeeded Condition=" + '$(WasmEnableLegacyJsInterop)' == 'false' or + '$(WasmEnableSIMD)' == 'false' or + '$(WasmEnableExceptionHandling)' == 'false' or + '$(InvariantTimezone)' == 'true' or + ('$(_UsingBlazorOrWasmSdk)' != 'true' and '$(InvariantGlobalization)' == 'true') or + '$(WasmNativeStrip)' == 'false'">true + + + + <_WasmNativeWorkloadNeeded Condition=" + '$(_WasmPropertiesDifferFromRuntimePackThusNativeBuildNeeded)' == 'true' or + '$(RunAOTCompilation)' == 'true' or + '$(WasmBuildNative)' == 'true' or + '$(WasmGenerateAppBundle)' == 'true' or + '$(_UsingBlazorOrWasmSdk)' != 'true'" >true + + false + true + $(WasmNativeWorkloadAvailable) + + + + + <_IsAndroidLibraryMode Condition="'$(RuntimeIdentifier)' == 'android-arm64' or '$(RuntimeIdentifier)' == 'android-arm' or '$(RuntimeIdentifier)' == 'android-x64' or '$(RuntimeIdentifier)' == 'android-x86'">true + <_IsAppleMobileLibraryMode Condition="'$(RuntimeIdentifier)' == 'ios-arm64' or '$(RuntimeIdentifier)' == 'iossimulator-arm64' or '$(RuntimeIdentifier)' == 'iossimulator-x64' or '$(RuntimeIdentifier)' == 'maccatalyst-arm64' or '$(RuntimeIdentifier)' == 'maccatalyst-x64' or '$(RuntimeIdentifier)' == 'tvos-arm64'">true + <_IsiOSLibraryMode Condition="'$(RuntimeIdentifier)' == 'ios-arm64' or '$(RuntimeIdentifier)' == 'iossimulator-arm64' or '$(RuntimeIdentifier)' == 'iossimulator-x64'">true + <_IsMacCatalystLibraryMode Condition="'$(RuntimeIdentifier)' == 'maccatalyst-arm64' or '$(RuntimeIdentifier)' == 'maccatalyst-x64'">true + <_IstvOSLibraryMode Condition="'$(RuntimeIdentifier)' == 'tvos-arm64'">true + + + + true + + + + false + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_MonoWorkloadTargetsMobile>true + <_MonoWorkloadRuntimePackPackageVersion>$(_RuntimePackInWorkloadVersionCurrent) + <_KnownWebAssemblySdkPackVersion>$(_RuntimePackInWorkloadVersionCurrent) + + + + + true + 1.0 + + + + + + + + + %(RuntimePackRuntimeIdentifiers);wasi-wasm + + $(_MonoWorkloadRuntimePackPackageVersion) + + Microsoft.NETCore.App.Runtime.Mono.multithread.**RID** + + + $(_KnownWebAssemblySdkPackVersion) + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/WorkloadTelemetry.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/WorkloadTelemetry.targets new file mode 100644 index 0000000..d94c7de --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/WorkloadTelemetry.targets @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + <_WorkloadUsesBlazorWasm>$(UsingMicrosoftNETSdkBlazorWebAssembly) + <_WorkloadUsesWasmSDK>$(UsingMicrosoftNETSdkWebAssembly) + <_WorkloadUsesMonoAOT>$(RunAOTCompilation) + <_WorkloadUsesMonoAOT Condition="'$(_WorkloadUsesMonoAOT)' == '' and '$(PublishAot)' != 'true' and ('$(TargetPlatformIdentifier)' == 'maccatalyst' or '$(TargetPlatformIdentifier)' == 'ios' or '$(TargetPlatformIdentifier)' == 'tvos')">$(_RunAotCompiler) + <_WorkloadUsesNativeAOT>$(PublishAot) + <_WorkloadUsesInterpreter>$(MonoForceInterpreter) + <_WorkloadUsesInterpreter Condition="'$(_WorkloadUsesInterpreter)' == '' and '$(UseInterpreter)' == 'true'">true + <_WorkloadUsesInterpreter Condition="'$(_WorkloadUsesInterpreter)' == '' and '$(RunAOTCompilation)' != 'true' and ('$(_WorkloadUsesBlazorWasm)' == 'true' or '$(_WorkloadUsesWasmSDK)' == 'true')">true + <_WorkloadUsesLibraryMode Condition="'$(NativeLib)' != '' and ('$(_WorkloadUsesMonoAOT)' == 'true' or '$(_WorkloadUsesNativeAOT)' == 'true')">true + <_WorkloadUsesStripILAfterAOT Condition="'$(WasmStripILAfterAOT)' == 'true' or '$(AndroidStripILAfterAOT)' == 'true'">true + + + + <_WorkloadUsesOther Condition="'$([System.IO.Path]::GetFileName("%(ReferencePath.Identity)").ToLowerInvariant())' == 'avalonia.dll'">true + <_WorkloadUsesOther Condition="'$([System.IO.Path]::GetFileName("%(ReferencePath.Identity)").ToLowerInvariant())' == 'uno.dll'">true + <_WorkloadUsesMobileSDKOnly Condition="'$(RuntimeIdentifier)' != 'browser-wasm' and '$(UseMaui)' != 'true' and '$(_WorkloadUsesOther)' != 'true'">true + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.cs.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.cs.json new file mode 100644 index 0000000..24ca535 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.cs.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools/description": "Nástroje pro sestavení .NET WebAssembly" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.de.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.de.json new file mode 100644 index 0000000..891691d --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.de.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools/description": ".NET WebAssembly-Buildtools" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.en.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.en.json new file mode 100644 index 0000000..5bcb3f5 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.en.json @@ -0,0 +1,5 @@ +{ + "workloads/wasm-tools/description": ".NET WebAssembly build tools", + "workloads/wasm-tools-experimental/description": ".NET WebAssembly experimental tooling", + "workloads/runtimes-windows/description": "Windows Runtime Packs" +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.es.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.es.json new file mode 100644 index 0000000..4d54ce7 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.es.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools/description": "Herramientas de compilación de WebAssembly de .NET" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.fr.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.fr.json new file mode 100644 index 0000000..e7a3dfe --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.fr.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools/description": "Outils de construction .NET WebAssembly" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.it.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.it.json new file mode 100644 index 0000000..65b188d --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.it.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools/description": "Strumenti di compilazione WebAssembly .NET" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.ja.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.ja.json new file mode 100644 index 0000000..bed9081 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.ja.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools/description": ".NET WebAssembly ビルド ツール" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.ko.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.ko.json new file mode 100644 index 0000000..9e7a2f0 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.ko.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools/description": ".NET WebAssembly 빌드 도구" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.pl.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.pl.json new file mode 100644 index 0000000..62e111d --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.pl.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools/description": "Narzędzia kompilacji zestawu WebAssembly platformy .NET" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.pt-BR.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.pt-BR.json new file mode 100644 index 0000000..db37343 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.pt-BR.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools/description": "Ferramentas de build do .NET WebAssembly" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.ru.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.ru.json new file mode 100644 index 0000000..7230d7e --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.ru.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools/description": "Средства сборки WebAssembly .NET" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.tr.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.tr.json new file mode 100644 index 0000000..6fa976b --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.tr.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools/description": ".NET WebAssembly derleme araçları" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.zh-Hans.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.zh-Hans.json new file mode 100644 index 0000000..5c042d0 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.zh-Hans.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools/description": ".NET WebAssembly 生成工具" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.zh-Hant.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.zh-Hant.json new file mode 100644 index 0000000..17e6026 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.current/localize/WorkloadManifest.zh-Hant.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools/description": ".NET WebAssembly 組建工具" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/AdvertisedManifestFeatureBand.txt b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/AdvertisedManifestFeatureBand.txt new file mode 100644 index 0000000..d3f1dda --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/AdvertisedManifestFeatureBand.txt @@ -0,0 +1 @@ +8.0.100 \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/WorkloadManifest.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/WorkloadManifest.json new file mode 100644 index 0000000..85c5a88 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/WorkloadManifest.json @@ -0,0 +1,459 @@ +{ + "version": "8.0.33", + "depends-on": { + "Microsoft.NET.Workload.Emscripten.net6": "8.0.33" + }, + "workloads": { + "wasm-tools-net6": { + "description": ".NET WebAssembly build tools for net6.0", + "packs": [ + "Microsoft.NET.Runtime.WebAssembly.Sdk.net6", + "Microsoft.NETCore.App.Runtime.Mono.net6.browser-wasm", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.browser-wasm" + ], + "extends": [ "microsoft-net-runtime-mono-tooling-net6", "microsoft-net-sdk-emscripten-net6" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, + "microsoft-net-runtime-android-net6": { + "abstract": true, + "description": "Android Mono Runtime", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm", + "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net6.android-x64", + "Microsoft.NETCore.App.Runtime.Mono.net6.android-x86" + ], + "extends": [ "microsoft-net-runtime-mono-tooling-net6" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, + "microsoft-net-runtime-android-aot-net6": { + "abstract": true, + "description": "Android Mono AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x86", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm64" + ], + "extends": [ "microsoft-net-runtime-android-net6" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, + "microsoft-net-runtime-ios-net6": { + "abstract": true, + "description": "iOS Mono Runtime and AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.ios-arm", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.ios-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.iossimulator-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.iossimulator-x64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.iossimulator-x86" + ], + "extends": [ "runtimes-ios-net6" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "runtimes-ios-net6": { + "abstract": true, + "description": "iOS Mono Runtime Packs", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net6.ios-arm", + "Microsoft.NETCore.App.Runtime.Mono.net6.ios-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net6.iossimulator-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net6.iossimulator-x64", + "Microsoft.NETCore.App.Runtime.Mono.net6.iossimulator-x86" + ], + "extends": [ "microsoft-net-runtime-mono-tooling-net6" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "microsoft-net-runtime-maccatalyst-net6": { + "abstract": true, + "description": "MacCatalyst Mono Runtime and AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.maccatalyst-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.maccatalyst-x64" + ], + "extends": [ "runtimes-maccatalyst-net6" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "runtimes-maccatalyst-net6": { + "abstract": true, + "description": "MacCatalyst Mono Runtime Packs", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net6.maccatalyst-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net6.maccatalyst-x64" + ], + "extends": [ "microsoft-net-runtime-mono-tooling-net6" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "microsoft-net-runtime-macos-net6": { + "abstract": true, + "description": "MacOS CoreCLR and Mono Runtime Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net6.osx-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net6.osx-x64", + "Microsoft.NETCore.App.Runtime.net6.osx-arm64", + "Microsoft.NETCore.App.Runtime.net6.osx-x64" + ], + "extends": [ "microsoft-net-runtime-mono-tooling-net6" ], + "platforms": [ "osx-arm64", "osx-x64" ] + }, + "microsoft-net-runtime-tvos-net6": { + "abstract": true, + "description": "tvOS Mono Runtime and AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.tvos-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.tvossimulator-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.tvossimulator-x64" + ], + "extends": [ "runtimes-tvos-net6" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "runtimes-tvos-net6": { + "abstract": true, + "description": "tvOS Mono Runtime Packs", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net6.tvos-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net6.tvossimulator-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net6.tvossimulator-x64" + ], + "extends": [ "microsoft-net-runtime-mono-tooling-net6" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "runtimes-windows-net6": { + "abstract": true, + "description": "Windows Runtime Packs for net6.0", + "packs": [ + "Microsoft.NETCore.App.Runtime.net6.win-x64", + "Microsoft.NETCore.App.Runtime.net6.win-x86", + "Microsoft.NETCore.App.Runtime.net6.win-arm", + "Microsoft.NETCore.App.Runtime.net6.win-arm64" + ] + }, + "microsoft-net-runtime-mono-tooling-net6": { + "abstract": true, + "description": "Shared native build tooling for Mono runtime", + "packs": [ + "Microsoft.NET.Runtime.MonoAOTCompiler.Task.net6", + "Microsoft.NET.Runtime.MonoTargets.Sdk.net6" + ] + } + }, + "packs": { + "Microsoft.NET.Runtime.MonoAOTCompiler.Task.net6": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NET.Runtime.MonoAOTCompiler.Task" + } + }, + "Microsoft.NET.Runtime.MonoTargets.Sdk.net6": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NET.Runtime.MonoTargets.Sdk" + } + }, + "Microsoft.NET.Runtime.WebAssembly.Sdk.net6": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NET.Runtime.WebAssembly.Sdk" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm": { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm64": { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.android-x64": { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-x64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.android-x86": { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x86": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x64": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm64": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.maccatalyst-arm64": { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.maccatalyst-x64": { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.osx-arm64": { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.osx-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.osx-x64": { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.osx-x64" + } + }, + "Microsoft.NETCore.App.Runtime.net6.osx-arm64": { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.osx-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.net6.osx-x64": { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.osx-x64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.ios-arm" : { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.ios-arm" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.ios-arm64" : { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.ios-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.iossimulator-arm64" : { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.iossimulator-x64" : { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.iossimulator-x86" : { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.tvos-arm64": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.tvos-arm64" : { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.tvos-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.tvossimulator-arm64" : { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.tvossimulator-x64" : { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.maccatalyst-arm64": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.maccatalyst-x64": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.tvossimulator-arm64": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.tvossimulator-x64": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.ios-arm": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.ios-arm64": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.iossimulator-arm64": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.iossimulator-x64": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.iossimulator-x86": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x86", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.browser-wasm": { + "kind": "Sdk", + "version": "6.0.36", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.browser-wasm", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.browser-wasm" : { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.browser-wasm" + } + }, + "Microsoft.NETCore.App.Runtime.net6.win-x64" : { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.win-x64" + } + }, + "Microsoft.NETCore.App.Runtime.net6.win-x86" : { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.win-x86" + } + }, + "Microsoft.NETCore.App.Runtime.net6.win-arm" : { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.win-arm" + } + }, + "Microsoft.NETCore.App.Runtime.net6.win-arm64" : { + "kind": "framework", + "version": "6.0.36", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.win-arm64" + } + } + } +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/WorkloadManifest.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/WorkloadManifest.targets new file mode 100644 index 0000000..12f4083 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/WorkloadManifest.targets @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_MonoWorkloadTargetsMobile>true + <_MonoWorkloadRuntimePackPackageVersion>$(_RuntimePackInWorkloadVersion6) + + + + + $(_MonoWorkloadRuntimePackPackageVersion) + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.cs.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.cs.json new file mode 100644 index 0000000..1ab9678 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.cs.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net6/description": "Nástroje pro sestavení .NET WebAssembly" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.de.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.de.json new file mode 100644 index 0000000..c8fd66a --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.de.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net6/description": ".NET WebAssembly-Buildtools" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.en.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.en.json new file mode 100644 index 0000000..8199246 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.en.json @@ -0,0 +1,4 @@ +{ + "workloads/wasm-tools-net6/description": ".NET WebAssembly build tools for net6.0", + "workloads/runtimes-windows-net6/description": "Windows Runtime Packs for net6.0" +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.es.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.es.json new file mode 100644 index 0000000..3e24863 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.es.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net6/description": "Herramientas de compilación de WebAssembly de .NET" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.fr.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.fr.json new file mode 100644 index 0000000..3a83ef2 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.fr.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net6/description": "Outils de construction .NET WebAssembly" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.it.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.it.json new file mode 100644 index 0000000..2e5d725 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.it.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net6/description": "Strumenti di compilazione WebAssembly .NET" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.ja.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.ja.json new file mode 100644 index 0000000..9543778 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.ja.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net6/description": ".NET WebAssembly ビルド ツール" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.ko.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.ko.json new file mode 100644 index 0000000..c10840d --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.ko.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net6/description": ".NET WebAssembly 빌드 도구" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.pl.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.pl.json new file mode 100644 index 0000000..118033e --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.pl.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net6/description": "Narzędzia kompilacji zestawu WebAssembly platformy .NET" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.pt-BR.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.pt-BR.json new file mode 100644 index 0000000..2689089 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.pt-BR.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net6/description": "Ferramentas de build do .NET WebAssembly" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.ru.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.ru.json new file mode 100644 index 0000000..6a3d87f --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.ru.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net6/description": "Средства сборки WebAssembly .NET" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.tr.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.tr.json new file mode 100644 index 0000000..d9524bb --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.tr.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net6/description": ".NET WebAssembly derleme araçları" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.zh-Hans.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.zh-Hans.json new file mode 100644 index 0000000..aeadc4d --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.zh-Hans.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net6/description": ".NET WebAssembly 生成工具" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.zh-Hant.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.zh-Hant.json new file mode 100644 index 0000000..c43e1e7 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net6/localize/WorkloadManifest.zh-Hant.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net6/description": ".NET WebAssembly 組建工具" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/AdvertisedManifestFeatureBand.txt b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/AdvertisedManifestFeatureBand.txt new file mode 100644 index 0000000..d3f1dda --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/AdvertisedManifestFeatureBand.txt @@ -0,0 +1 @@ +8.0.100 \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/WorkloadManifest.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/WorkloadManifest.json new file mode 100644 index 0000000..5afe915 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/WorkloadManifest.json @@ -0,0 +1,490 @@ +{ + "version": "8.0.33", + "depends-on": { + "Microsoft.NET.Workload.Emscripten.net7": "8.0.33" + }, + "workloads": { + "wasm-tools-net7": { + "description": ".NET WebAssembly build tools for net7.0", + "packs": [ + "Microsoft.NET.Runtime.WebAssembly.Sdk.net7", + "Microsoft.NETCore.App.Runtime.Mono.net7.browser-wasm", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.browser-wasm" + ], + "extends": [ "microsoft-net-runtime-mono-tooling-net7", "microsoft-net-sdk-emscripten-net7" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, + "wasm-experimental-net7": { + "description": ".NET WebAssembly experimental tooling for net7.0", + "packs": [ + "Microsoft.NET.Runtime.WebAssembly.Templates.net7", + "Microsoft.NETCore.App.Runtime.Mono.multithread.net7.browser-wasm", + "Microsoft.NETCore.App.Runtime.Mono.perftrace.net7.browser-wasm" + ], + "extends": [ "wasm-tools-net7" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, + "microsoft-net-runtime-android-net7": { + "abstract": true, + "description": "Android Mono Runtime", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm", + "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net7.android-x64", + "Microsoft.NETCore.App.Runtime.Mono.net7.android-x86" + ], + "extends": [ "microsoft-net-runtime-mono-tooling-net7" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, + "microsoft-net-runtime-android-aot-net7": { + "abstract": true, + "description": "Android Mono AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x86", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm64" + ], + "extends": [ "microsoft-net-runtime-android-net7" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, + "microsoft-net-runtime-ios-net7": { + "abstract": true, + "description": "iOS Mono Runtime and AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.ios-arm", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.ios-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.iossimulator-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.iossimulator-x64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.iossimulator-x86" + ], + "extends": [ "runtimes-ios-net7" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "runtimes-ios-net7": { + "abstract": true, + "description": "iOS Mono Runtime Packs", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net7.ios-arm", + "Microsoft.NETCore.App.Runtime.Mono.net7.ios-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net7.iossimulator-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net7.iossimulator-x64", + "Microsoft.NETCore.App.Runtime.Mono.net7.iossimulator-x86" + ], + "extends": [ "microsoft-net-runtime-mono-tooling-net7" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "microsoft-net-runtime-maccatalyst-net7": { + "abstract": true, + "description": "MacCatalyst Mono Runtime and AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.maccatalyst-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.maccatalyst-x64" + ], + "extends": [ "runtimes-maccatalyst-net7" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "runtimes-maccatalyst-net7": { + "abstract": true, + "description": "MacCatalyst Mono Runtime Packs", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net7.maccatalyst-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net7.maccatalyst-x64" + ], + "extends": [ "microsoft-net-runtime-mono-tooling-net7" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "microsoft-net-runtime-macos-net7": { + "abstract": true, + "description": "MacOS CoreCLR and Mono Runtime Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net7.osx-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net7.osx-x64", + "Microsoft.NETCore.App.Runtime.osx-arm64", + "Microsoft.NETCore.App.Runtime.osx-x64" + ], + "extends": [ "microsoft-net-runtime-mono-tooling-net7" ], + "platforms": [ "osx-arm64", "osx-x64" ] + }, + "microsoft-net-runtime-tvos-net7": { + "abstract": true, + "description": "tvOS Mono Runtime and AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.tvos-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.tvossimulator-arm64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.tvossimulator-x64" + ], + "extends": [ "runtimes-tvos-net7" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "runtimes-tvos-net7": { + "abstract": true, + "description": "tvOS Mono Runtime Packs", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net7.tvos-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net7.tvossimulator-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net7.tvossimulator-x64" + ], + "extends": [ "microsoft-net-runtime-mono-tooling-net7" ], + "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ] + }, + "runtimes-windows-net7": { + "abstract": true, + "description": "Windows Runtime Packs for net7.0", + "packs": [ + "Microsoft.NETCore.App.Runtime.net7.win-x64", + "Microsoft.NETCore.App.Runtime.net7.win-x86", + "Microsoft.NETCore.App.Runtime.net7.win-arm", + "Microsoft.NETCore.App.Runtime.net7.win-arm64" + ] + }, + "microsoft-net-runtime-mono-tooling-net7": { + "abstract": true, + "description": "Shared native build tooling for Mono runtime", + "packs": [ + "Microsoft.NET.Runtime.MonoAOTCompiler.Task.net7", + "Microsoft.NET.Runtime.MonoTargets.Sdk.net7" + ] + } + }, + "packs": { + "Microsoft.NET.Runtime.MonoAOTCompiler.Task.net7": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NET.Runtime.MonoAOTCompiler.Task" + } + }, + "Microsoft.NET.Runtime.MonoTargets.Sdk.net7": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NET.Runtime.MonoTargets.Sdk" + } + }, + "Microsoft.NET.Runtime.WebAssembly.Sdk.net7": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NET.Runtime.WebAssembly.Sdk" + } + }, + "Microsoft.NET.Runtime.WebAssembly.Templates.net7": { + "kind": "template", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NET.Runtime.WebAssembly.Templates" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm": { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm64": { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.android-x64": { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-x64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.android-x86": { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x86": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x64": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm64": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.maccatalyst-arm64": { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.maccatalyst-x64": { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.osx-arm64": { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.osx-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.osx-x64": { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.osx-x64" + } + }, + "Microsoft.NETCore.App.Runtime.net7.osx-arm64": { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.osx-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.net7.osx-x64": { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.osx-x64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.ios-arm" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.ios-arm" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.ios-arm64" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.ios-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.iossimulator-arm64" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.iossimulator-x64" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.iossimulator-x86" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.tvos-arm64": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.tvos-arm64" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.tvos-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.tvossimulator-arm64" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.tvossimulator-x64" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.maccatalyst-arm64": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.maccatalyst-x64": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.tvossimulator-arm64": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.tvossimulator-x64": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.ios-arm": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.ios-arm64": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.iossimulator-arm64": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.iossimulator-x64": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.iossimulator-x86": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x86", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.browser-wasm": { + "kind": "Sdk", + "version": "7.0.20", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.browser-wasm", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.browser-wasm" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.browser-wasm" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.multithread.net7.browser-wasm" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.perftrace.net7.browser-wasm" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.perftrace.browser-wasm" + } + }, + "Microsoft.NETCore.App.Runtime.net7.win-x64" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.win-x64" + } + }, + "Microsoft.NETCore.App.Runtime.net7.win-x86" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.win-x86" + } + }, + "Microsoft.NETCore.App.Runtime.net7.win-arm" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.win-arm" + } + }, + "Microsoft.NETCore.App.Runtime.net7.win-arm64" : { + "kind": "framework", + "version": "7.0.20", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.win-arm64" + } + } + } +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/WorkloadManifest.targets b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/WorkloadManifest.targets new file mode 100644 index 0000000..39288d1 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/WorkloadManifest.targets @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_MonoWorkloadTargetsMobile>true + <_MonoWorkloadRuntimePackPackageVersion>$(_RuntimePackInWorkloadVersion7) + + + + + $(_MonoWorkloadRuntimePackPackageVersion) + + Microsoft.NETCore.App.Runtime.Mono.multithread.**RID** + Microsoft.NETCore.App.Runtime.Mono.perftrace.**RID** + + + diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.cs.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.cs.json new file mode 100644 index 0000000..2866f53 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.cs.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net7/description": "Nástroje pro sestavení .NET WebAssembly" +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.de.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.de.json new file mode 100644 index 0000000..1190fc2 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.de.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net7/description": ".NET WebAssembly-Buildtools" +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.en.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.en.json new file mode 100644 index 0000000..9818c50 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.en.json @@ -0,0 +1,5 @@ +{ + "workloads/wasm-tools-net7/description": ".NET WebAssembly build tools for net7.0", + "workloads/wasm-experimental-net7/description": ".NET WebAssembly experimental tooling for net7.0", + "workloads/runtimes-windows-net7/description": "Windows Runtime Packs for net7.0" +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.es.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.es.json new file mode 100644 index 0000000..88e0301 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.es.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net7/description": "Herramientas de compilación de WebAssembly de .NET" +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.fr.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.fr.json new file mode 100644 index 0000000..b3609f7 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.fr.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net7/description": "Outils de construction .NET WebAssembly" +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.it.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.it.json new file mode 100644 index 0000000..d45e15b --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.it.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net7/description": "Strumenti di compilazione WebAssembly .NET" +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.ja.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.ja.json new file mode 100644 index 0000000..7a1ec2c --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.ja.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net7/description": ".NET WebAssembly ビルド ツール" +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.ko.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.ko.json new file mode 100644 index 0000000..3fbb236 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.ko.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net7/description": ".NET WebAssembly 빌드 도구" +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.pl.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.pl.json new file mode 100644 index 0000000..0041a66 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.pl.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net7/description": "Narzędzia kompilacji zestawu WebAssembly platformy .NET" +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.pt-BR.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.pt-BR.json new file mode 100644 index 0000000..7694f2c --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.pt-BR.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net7/description": "Ferramentas de build do .NET WebAssembly" +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.ru.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.ru.json new file mode 100644 index 0000000..7230d7e --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.ru.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools/description": "Средства сборки WebAssembly .NET" +} \ No newline at end of file diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.tr.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.tr.json new file mode 100644 index 0000000..eaeb79b --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.tr.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net7/description": ".NET WebAssembly derleme araçları" +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.zh-Hans.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.zh-Hans.json new file mode 100644 index 0000000..33f8aae --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.zh-Hans.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net7/description": ".NET WebAssembly 生成工具" +} diff --git a/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.zh-Hant.json b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.zh-Hant.json new file mode 100644 index 0000000..112ff46 --- /dev/null +++ b/.dotnet/sdk-advertising/8.0.400/microsoft.net.workload.mono.toolchain.net7/localize/WorkloadManifest.zh-Hant.json @@ -0,0 +1,3 @@ +{ + "workloads/wasm-tools-net7/description": ".NET WebAssembly 組建工具" +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1d11926 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +# build output +bin/ +obj/ +prebuilt/ +*.user +.vs/ +# installers and archives — attach these to a Gitea Release instead of committing them +*.exe +*.zip +*.pdb \ No newline at end of file diff --git a/.nuget/NuGet/NuGet.Config b/.nuget/NuGet/NuGet.Config new file mode 100644 index 0000000..2c70539 --- /dev/null +++ b/.nuget/NuGet/NuGet.Config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.sudo_as_admin_successful b/.sudo_as_admin_successful new file mode 100644 index 0000000..e69de29 diff --git a/LiveWall.Sdk/Contracts.cs b/LiveWall.Sdk/Contracts.cs new file mode 100644 index 0000000..52b237f --- /dev/null +++ b/LiveWall.Sdk/Contracts.cs @@ -0,0 +1,359 @@ +using System.Windows; + +namespace LiveWall.Sdk; + +/// Version of the plugin API. Bumped when contracts change in an incompatible way. +public static class PluginApi +{ + /// Current contract version. Plugins must declare a compatible version in plugin.json. + public const string Version = "1.0"; + + /// Host application version this SDK shipped with (informational). + public const string HostVersion = "1.8.4"; +} + +/// +/// What a plugin is allowed to do, declared in its plugin.json and shown to the user before +/// the plugin is enabled. These are declarations, not a sandbox: a plugin runs inside LiveWall's +/// process with full .NET rights. They exist so the user knows what they are agreeing to. +/// +[Flags] +public enum PluginPermission +{ + None = 0, + + /// Read the current wallpaper, playback state and a snapshot of the settings. + ReadWallpaper = 1 << 0, + + /// Play / pause / next / set the wallpaper. + ControlPlayback = 1 << 1, + + /// Draw a layer on top of the wallpaper (clocks, visualisers, badges…). + DesktopOverlay = 1 << 2, + + /// Contribute pages to the LiveWall settings window. + SettingsUi = 1 << 3, + + /// Contribute commands the user can run from the app. + Commands = 1 << 4, + + /// Contribute entries to the tray menu. + TrayMenu = 1 << 5, + + /// Register global hotkeys. + Hotkeys = 1 << 6, + + /// Read and write files (the plugin's data folder, and anything the user points it at). + FileSystem = 1 << 7, + + /// Make outbound network requests. + Network = 1 << 8, + + /// Supply a wallpaper renderer for sources it claims (overrides the built-in players). + Renderer = 1 << 9, + + /// Rewrite or veto wallpaper requests before the engine applies them. + Filters = 1 << 10, + + All = ReadWallpaper | ControlPlayback | DesktopOverlay | SettingsUi | Commands | TrayMenu | + Hotkeys | FileSystem | Network | Renderer | Filters +} + +/// Human readable description of what every permission means (used by the warning dialog). +public static class PluginPermissionInfo +{ + public static string Describe(PluginPermission permission) => permission switch + { + PluginPermission.ReadWallpaper => "Read your current wallpaper, playback state and settings", + PluginPermission.ControlPlayback => "Start, stop, skip and replace your wallpaper", + PluginPermission.DesktopOverlay => "Draw content on top of your desktop wallpaper", + PluginPermission.SettingsUi => "Add pages to the LiveWall settings window", + PluginPermission.Commands => "Add commands to LiveWall", + PluginPermission.TrayMenu => "Add entries to the LiveWall tray menu", + PluginPermission.Hotkeys => "Register system-wide keyboard shortcuts", + PluginPermission.FileSystem => "Read and write files on your computer", + PluginPermission.Network => "Connect to the internet", + PluginPermission.Renderer => "Take over wallpaper playback with its own renderer", + PluginPermission.Filters => "Rewrite or block wallpaper changes", + _ => permission.ToString() + }; + + /// Expands a flag set into individual descriptions. + public static IReadOnlyList<(PluginPermission Permission, string Description)> Expand(PluginPermission permissions) + { + var list = new List<(PluginPermission, string)>(); + foreach (PluginPermission p in Enum.GetValues()) + { + if (p is PluginPermission.None or PluginPermission.All) continue; + if (permissions.HasFlag(p)) list.Add((p, Describe(p))); + } + return list; + } +} + +/// Everything the host knows about a plugin. Filled in by LiveWall before Initialize. +public sealed class PluginInfo +{ + public string Id { get; init; } = ""; + public string Name { get; init; } = ""; + public string Version { get; init; } = ""; + public string Author { get; init; } = ""; + public string Description { get; init; } = ""; + public string Homepage { get; init; } = ""; + public string ApiVersion { get; init; } = ""; + public PluginPermission Permissions { get; init; } + + /// Absolute path of the plugin folder. + public string Folder { get; init; } = ""; + + /// Absolute path of the plugin assembly. + public string AssemblyPath { get; init; } = ""; + + /// SHA-256 of the plugin assembly (lower case hex). + public string Sha256 { get; init; } = ""; + + /// + /// True when the loaded assembly hash matches the hash the user trusted on this machine, or the + /// publisher ships it in LiveWall's built-in trusted list. Unverified plugins run with a warning. + /// + public bool Verified { get; init; } +} + +/// The plugin entry point. One public class implementing this per assembly. +public interface ILiveWallPlugin +{ + /// + /// Called once, on the UI thread, after the user enabled the plugin. Register your extensions + /// and subscribe to events here. Exceptions are caught, logged and disable the plugin. + /// + void Initialize(IPluginContext context); + + /// Called when the plugin is disabled, reloaded or the app is closing. + void Shutdown(); +} + +/// Everything a plugin can reach. One instance per plugin. +public interface IPluginContext +{ + PluginInfo Info { get; } + + /// Writes to the LiveWall log next to the host's own messages. + IPluginLog Log { get; } + + /// Persistent key/value storage owned by the plugin (JSON file in its data folder). + IPluginStorage Storage { get; } + + /// Read-only snapshot of the user's configuration. + ISettingsSnapshot Settings { get; } + + /// Actions a plugin may trigger in the host. + IHostActions Host { get; } + + /// Type based publish/subscribe bus. + IPluginEvents Events { get; } + + /// Registers extension points (overlays, pages, commands, renderers, filters, hotkeys). + IPluginRegistrar Extensions { get; } + + /// Cancelled when the plugin is being shut down. Pass it to your async work. + CancellationToken ShutdownToken { get; } +} + +/// Logging façade. Everything lands in %APPDATA%\LiveWall\logs. +public interface IPluginLog +{ + void Debug(string message); + void Info(string message); + void Warn(string message); + void Error(string message, Exception? exception = null); +} + +/// +/// Per plugin JSON storage. Values are serialised with System.Text.Json, so any POCO works. +/// +public interface IPluginStorage +{ + /// The plugin's private data folder (created on demand). + string DataFolder { get; } + + T? Get(string key, T? fallback = default); + void Set(string key, T value); + bool Remove(string key); + IReadOnlyCollection Keys { get; } + + /// Absolute path inside the data folder; the directory is created for you. + string PathFor(string fileName); + + /// Writes pending changes immediately (normally done automatically). + void Flush(); +} + +/// Read-only view of the live settings. +public interface ISettingsSnapshot +{ + Guid SnapshotId { get; } + string SourceKind { get; } // "Video", "AnimatedGif", "Image", "YouTube", "WebPage" + string SourceLocation { get; } // file path or URL + bool Muted { get; } + double Volume { get; } // 0–100 + double Speed { get; } // 0.25–4 + bool Loop { get; } + bool InteractiveMode { get; } + bool Paused { get; } + int DimPercent { get; } + string DimColor { get; } + IReadOnlyList DisplayDevices { get; } +} + +/// The current wallpaper, as seen by plugins. +public sealed class WallpaperState +{ + public string Kind { get; init; } = ""; + public string Source { get; init; } = ""; + public string Title { get; init; } = ""; + public bool IsPlaying { get; init; } + public bool IsPaused { get; init; } + public bool IsInteractive { get; init; } + public bool SuppliedByPlugin { get; init; } + public string RendererName { get; init; } = ""; +} + +/// Host actions. Each one is a no-op when the plugin lacks the permission for it. +public interface IHostActions +{ + WallpaperState Current { get; } + + /// Replaces the wallpaper (needs ). + void SetWallpaper(WallpaperRequest request); + + void Play(); + void Pause(); + void TogglePause(); + void NextWallpaper(); + void ReloadWallpaper(); + void Reattach(); + + /// Opens the LiveWall settings window. + void OpenSettings(); + + /// Status line in the settings window. + void SetStatus(string text); + + /// Balloon notification (respects the user's notification setting). + void ShowNotification(string title, string message); + + /// Shows or hides the desktop overlay layer for this plugin. + void SetOverlayVisible(bool visible); +} + +/// A wallpaper a plugin wants to show. +public sealed class WallpaperRequest +{ + /// "Video", "AnimatedGif", "Image", "YouTube", "WebPage" or "Custom". + public string Kind { get; set; } = "Custom"; + + /// File path, URL or any string your renderer interprets. + public string Source { get; set; } = ""; + + public string Title { get; set; } = ""; + + /// Free-form data for your own renderer (survives filters, not persisted). + public Dictionary Metadata { get; } = new(StringComparer.OrdinalIgnoreCase); + + public WallpaperRequest Clone() + { + var clone = new WallpaperRequest { Kind = Kind, Source = Source, Title = Title }; + foreach (var pair in Metadata) clone.Metadata[pair.Key] = pair.Value; + return clone; + } + + public override string ToString() => $"{Kind}:{Source}"; +} + +/// Registers extension points. All calls are thread safe and may happen in Initialize. +public interface IPluginRegistrar +{ + /// Draws above the wallpaper (needs ). + void AddOverlay(IWallpaperOverlay overlay); + + void RemoveOverlay(IWallpaperOverlay overlay); + + /// Adds a page to the Plugins tab (needs ). + void AddSettingsPage(IPluginSettingsPage page); + + /// Adds a command to the app and the tray menu. + void AddCommand(PluginCommand command); + + /// Adds a wallpaper filter (needs ). + void AddFilter(IWallpaperFilter filter); + + /// Takes over rendering of sources it claims (needs ). + void AddRenderer(IWallpaperRendererPlugin renderer); + + /// Registers a global hotkey such as "Ctrl+Alt+K" (needs ). + void AddHotkey(PluginHotkey hotkey); +} + +/// An entry in the app's plugin command list and the tray menu. +public sealed class PluginCommand +{ + public PluginCommand(string id, string title, Action execute) + { + Id = id; + Title = title; + Execute = execute; + } + + public string Id { get; } + public string Title { get; set; } + + /// Optional grouping label, e.g. "Wallpaper". + public string Category { get; set; } = ""; + + /// Return false to disable the entry (evaluated when the menu opens). + public Func? CanExecute { get; set; } + + internal Action Execute { get; } + + public void Run(PluginCommandContext context) => Execute(context); +} + +/// Passed to . +public sealed class PluginCommandContext +{ + public PluginCommandContext(IPluginContext plugin, IHostActions host) + { + Plugin = plugin; + Host = host; + } + + public IPluginContext Plugin { get; } + public IHostActions Host { get; } +} + +/// A global keyboard shortcut contributed by a plugin. +public sealed class PluginHotkey +{ + public PluginHotkey(string id, string gesture, Action action) + { + Id = id; + Gesture = gesture; + Action = action; + } + + public string Id { get; } + + /// Combination such as "Ctrl+Alt+K", parsed like LiveWall's own hotkeys. + public string Gesture { get; } + + public string Description { get; set; } = ""; + + public Action Action { get; } +} + +/// Raised by plugins to inform others about something (or to listen). +public interface IPluginEvents +{ + IDisposable Subscribe(Action handler) where TEvent : class; + void Publish(TEvent payload) where TEvent : class; +} diff --git a/LiveWall.Sdk/Events.cs b/LiveWall.Sdk/Events.cs new file mode 100644 index 0000000..f42eccd --- /dev/null +++ b/LiveWall.Sdk/Events.cs @@ -0,0 +1,82 @@ +namespace LiveWall.Sdk; + +// --------------------------------------------------------------------------------------------- +// Events published on IPluginEvents. Subscribe from ILiveWallPlugin.Initialize: +// +// context.Events.Subscribe(e => context.Log.Info($"now: {e.Source}")); +// +// Handlers always run on the WPF UI thread. +// --------------------------------------------------------------------------------------------- + +/// The host finished starting: settings are loaded and the wallpaper is attached. +public sealed class AppStartedEvent +{ + public string HostVersion { get; init; } = ""; + public string PluginApiVersion { get; init; } = ""; +} + +/// LiveWall is shutting down. Unsubscribe and release resources now. +public sealed class AppStoppingEvent +{ + public string Reason { get; init; } = "exit"; +} + +/// A new wallpaper was applied (kind/source/renderer as they are now). +public sealed class WallpaperChangedEvent +{ + public string Kind { get; init; } = ""; + public string Source { get; init; } = ""; + public string RendererName { get; init; } = ""; + public bool FromPlugin { get; init; } +} + +/// Playback started, stopped or was suspended (lock screen, battery, fullscreen…). +public sealed class PlaybackChangedEvent +{ + public bool IsPlaying { get; init; } + public bool IsPaused { get; init; } + public string Reason { get; init; } = ""; +} + +/// Interactive mode was toggled. +public sealed class InteractionChangedEvent +{ + public bool Interactive { get; init; } +} + +/// Any settings change. is the property name that changed. +public sealed class SettingsChangedEvent +{ + public string Property { get; init; } = ""; + public ISettingsSnapshot Snapshot { get; init; } = null!; +} + +/// Display topology changed or the wallpaper was re-attached. +public sealed class DisplayChangedEvent +{ + public IReadOnlyList Devices { get; init; } = Array.Empty(); + public bool Reattached { get; init; } +} + +/// Session state (lock screen, battery, remote desktop) changed. +public sealed class SessionChangedEvent +{ + public bool Locked { get; init; } + public bool OnBattery { get; init; } + public bool RemoteSession { get; init; } +} + +/// Something failed inside the host; useful for plugins that surface errors. +public sealed class HostErrorEvent +{ + public string Message { get; init; } = ""; + public string Source { get; init; } = ""; +} + +/// Plugin-to-plugin messaging: publish any class you like. +public sealed class PluginMessageEvent +{ + public string FromPluginId { get; init; } = ""; + public string Topic { get; init; } = ""; + public string? Payload { get; init; } +} diff --git a/LiveWall.Sdk/Extensions.cs b/LiveWall.Sdk/Extensions.cs new file mode 100644 index 0000000..7299077 --- /dev/null +++ b/LiveWall.Sdk/Extensions.cs @@ -0,0 +1,115 @@ +using System.Windows; + +namespace LiveWall.Sdk; + +/// +/// A visual layer drawn on top of the wallpaper, inside LiveWall's desktop overlay window (the same +/// window that carries the desktop icons). Because that window is per-pixel transparent, only the +/// pixels you paint block the mouse - everything else falls through to the desktop. +/// +public interface IWallpaperOverlay +{ + /// Shown in the plugin's UI and the diagnostics report. + string Name { get; } + + /// + /// Creates the visual. Called once per display, on the UI thread. Keep it cheap and transparent. + /// The returned element is stretched to the display and is not hit-testable by default. + /// + FrameworkElement CreateView(OverlayContext context); + + /// Called whenever the wallpaper, playback or interaction state changes. + void Update(OverlayState state); + + /// Called when the user hides the overlay or the plugin is disabled. + void OnVisibilityChanged(bool visible) { } +} + +/// Display specific context handed to . +public sealed class OverlayContext +{ + public int DisplayIndex { get; init; } + public string DeviceName { get; init; } = ""; + public double Width { get; init; } + public double Height { get; init; } + public double DpiScale { get; init; } = 1.0; + public bool Primary { get; init; } +} + +/// State handed to . +public sealed class OverlayState +{ + public string Kind { get; init; } = ""; + public string Source { get; init; } = ""; + public string Title { get; init; } = ""; + public bool IsPlaying { get; init; } + public bool IsPaused { get; init; } + public bool IsInteractive { get; init; } + public DateTime TimestampUtc { get; init; } = DateTime.UtcNow; +} + +/// A page the plugin adds to the LiveWall settings window (Plugins tab). +public interface IPluginSettingsPage +{ + string Title { get; } + + /// One or two sentences for the page header. + string Description { get; } + + /// Builds the page content. Called once, on the UI thread. + FrameworkElement CreateView(); +} + +/// +/// Rewrites wallpaper requests before the engine applies them: resolve a URL, swap a file, pin a +/// playlist entry, or veto a change by returning the previous request. +/// +public interface IWallpaperFilter +{ + /// Higher runs first. 0 is a good default. + int Priority { get; } + + /// Return the request to apply (return the argument unchanged to leave it alone). + WallpaperRequest Apply(WallpaperRequest request, IHostActions host); +} + +/// +/// Renders wallpaper sources the built-in players cannot handle. The first renderer whose +/// returns true wins (highest first), so a plugin can +/// also take over a source LiveWall would otherwise play itself. +/// +public interface IWallpaperRendererPlugin +{ + string Name { get; } + + /// Higher wins over other plugins (built-in renderers are not in this race). + int Priority { get; } + + /// Decides whether this renderer handles the source string. + bool CanRender(WallpaperRequest request); + + IWallpaperRenderer Create(); +} + +/// The renderer instance. LiveWall owns its lifetime. +public interface IWallpaperRenderer : IDisposable +{ + /// The visual shown as the wallpaper. Keep the background opaque. + FrameworkElement View { get; } + + /// Loads the source. Throw to report a problem (it is shown to the user). + void Load(WallpaperRequest request); + + void Play(); + void Pause(); + void Unload(); + + /// Volume is 0–100, speed 0.25–4. + void ApplyPlayback(bool muted, double volume, double speed); + + /// Raised when playback fails (message is shown in the status bar and the log). + event EventHandler? Failed; + + /// Raised when a non-looping source finished. + event EventHandler? Ended; +} diff --git a/LiveWall.Sdk/LiveWall.Sdk.csproj b/LiveWall.Sdk/LiveWall.Sdk.csproj new file mode 100644 index 0000000..479d455 --- /dev/null +++ b/LiveWall.Sdk/LiveWall.Sdk.csproj @@ -0,0 +1,17 @@ + + + + net8.0-windows + true + enable + enable + latest + LiveWall.Sdk + LiveWall.Sdk + true + true + $(NoWarn);CA1416;CS1591 + Contract assembly for LiveWall plugins. + + + diff --git a/LiveWall/.gitignore b/LiveWall/.gitignore new file mode 100644 index 0000000..1c53e31 --- /dev/null +++ b/LiveWall/.gitignore @@ -0,0 +1,6 @@ +bin/ +obj/ +dist/ +*.user +.vs/ +*.log diff --git a/LiveWall/App.xaml b/LiveWall/App.xaml new file mode 100644 index 0000000..96e6962 --- /dev/null +++ b/LiveWall/App.xaml @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/LiveWall/App.xaml.cs b/LiveWall/App.xaml.cs new file mode 100644 index 0000000..82e3fb8 --- /dev/null +++ b/LiveWall/App.xaml.cs @@ -0,0 +1,466 @@ +using System.Windows; +using System.Windows.Threading; +using LiveWall.Models; +using LiveWall.Plugins; +using LiveWall.Sdk; +using LiveWall.Services; + +namespace LiveWall; + +public partial class App : Application +{ + private Mutex? _mutex; + private EventWaitHandle? _showEvent; + private Thread? _showListener; + private volatile bool _running = true; + + private MainWindow? _window; + private TrayService? _tray; + private HotkeyManager? _hotkeys; + private PluginHost? _plugins; + private DispatcherTimer? _saveTimer; + private bool _exiting; + + public AppSettings Settings { get; private set; } = new(); + public WallpaperEngine Engine { get; private set; } = null!; + + protected override void OnStartup(StartupEventArgs e) + { + base.OnStartup(e); + + if (!AcquireSingleInstance()) + { + Shutdown(); + return; + } + + DispatcherUnhandledException += OnUnhandledException; + AppDomain.CurrentDomain.UnhandledException += (_, args) => + { + if (args.ExceptionObject is Exception ex) + Log.Error("Unhandled", ex); + }; + + Log.Info("==== LiveWall starting ===="); + + Settings = SettingsStore.Load(); + Log.Verbose = Settings.Advanced.VerboseLogging; + + // The registry is the source of truth for autostart. + Settings.Automation.StartWithWindows = StartupManager.IsEnabled(); + + _saveTimer = new DispatcherTimer(DispatcherPriority.Background) { Interval = TimeSpan.FromSeconds(1.2) }; + _saveTimer.Tick += (_, _) => + { + _saveTimer!.Stop(); + SettingsStore.Save(Settings); + Log.Debug("Settings saved"); + }; + Settings.Changed += (_, _) => + { + _saveTimer.Stop(); + _saveTimer.Start(); + }; + + Engine = new WallpaperEngine(Settings); + Engine.Failure += OnEngineFailure; + Engine.SettingsRequested += (_, _) => ShowSettingsWindow(); + Engine.StatusChanged += (_, _) => UpdateStatusUi(); + Engine.Start(); + + _hotkeys = new HotkeyManager(); + ApplyHotkeys(); + + if (Settings.Automation.ShowTrayIcon) + CreateTray(); + + StartPlugins(); + + _window = new MainWindow(Settings, Engine, _plugins); + MainWindow = _window; + + bool startMinimized = Settings.Automation.StartMinimized + || e.Args.Any(a => a.Equals("--minimized", StringComparison.OrdinalIgnoreCase)); + + if (startMinimized && Settings.Automation.ShowTrayIcon) + { + Log.Info("Starting minimized to tray"); + } + else + { + _window.Show(); + _window.Activate(); + } + + StartShowListener(); + UpdateStatusUi(); + } + + // -------------------------------------------------------------- plugins + + /// Wires the plugin host to the engine and the UI, then loads the enabled plugins. + private void StartPlugins() + { + try + { + _plugins = new PluginHost(Settings, new PluginBridge + { + SetWallpaper = ApplyPluginWallpaper, + Play = () => Engine.Resume(), + Pause = () => Engine.Pause(), + TogglePause = () => Engine.TogglePause(), + NextWallpaper = () => Engine.NextWallpaper(), + ReloadWallpaper = () => Engine.Reload(), + Reattach = () => Engine.Reattach(), + OpenSettings = ShowSettingsWindow, + SetStatus = text => Engine.SetStatusText(text), + Notify = (title, message) => _tray?.ShowBalloon(title, message), + GetState = BuildWallpaperState, + GetSnapshot = BuildSnapshot, + OverlaysChanged = () => Engine.RefreshPluginOverlays() + }); + + Engine.Plugins = _plugins; + _plugins.Changed += (_, _) => RefreshTrayPluginCommands(); + _plugins.OverlaysChanged += (_, _) => RefreshTrayPluginCommands(); + + _plugins.Start(); + if (_hotkeys != null) _plugins.RegisterHotkeys(_hotkeys); + RefreshTrayPluginCommands(); + + _plugins.Publish(new AppStartedEvent + { + HostVersion = PluginApi.HostVersion, + PluginApiVersion = PluginApi.Version + }); + + Log.Info($"Plugin system ready ({_plugins.ActiveCount} active)"); + } + catch (Exception ex) + { + // Plugins are an optional extra: never let them stop LiveWall from starting. + Log.Error("The plugin system failed to start", ex); + _plugins = null; + Engine.Plugins = null; + } + } + + private void RefreshTrayPluginCommands() + { + try + { + _tray?.SetPluginCommands(_plugins?.TrayCommands() ?? Array.Empty<(string, Action)>()); + + bool hasOverlays = _plugins?.Overlays.Count > 0; + _tray?.SetOverlayToggle(hasOverlays, _plugins?.AllOverlaysHidden ?? false, () => + { + if (_plugins == null) return; + _plugins.SetAllOverlaysVisible(_plugins.AllOverlaysHidden); + }); + } + catch (Exception ex) { Log.Debug($"Tray plugin commands: {ex.Message}"); } + } + + /// A plugin asked for a different wallpaper: translate it into settings and reload. + private void ApplyPluginWallpaper(WallpaperRequest request) + { + if (request == null || string.IsNullOrWhiteSpace(request.Source)) + return; + + try + { + Log.Info($"A plugin set the wallpaper: {request.Kind} -> {request.Source}"); + + switch (request.Kind?.ToLowerInvariant()) + { + case "video": + Settings.Source.Type = WallpaperType.Video; + Settings.Source.FilePath = request.Source; + break; + case "animatedgif": + case "gif": + Settings.Source.Type = WallpaperType.AnimatedGif; + Settings.Source.FilePath = request.Source; + break; + case "image": + Settings.Source.Type = WallpaperType.Image; + Settings.Source.FilePath = request.Source; + break; + case "youtube": + Settings.Source.Type = WallpaperType.YouTube; + Settings.Source.WebUrl = request.Source; + break; + default: + // "Custom" and web pages: a plugin renderer may claim this source, otherwise + // WebView2 shows it as a page. + Settings.Source.Type = WallpaperType.WebPage; + Settings.Source.WebUrl = request.Source; + break; + } + + Engine.Reload(); + } + catch (Exception ex) + { + Log.Error("Applying a wallpaper requested by a plugin failed", ex); + } + } + + private static WallpaperState BuildWallpaperState() + => new() + { + Kind = "", + Source = "", + Title = "", + IsPlaying = false, + IsPaused = false, + IsInteractive = false + }; + + private ISettingsSnapshot BuildSnapshot() + { + var devices = Util.Displays.Resolve(Settings.Displays).Select(d => d.DeviceName).ToList(); + + return new LiveSettingsSnapshot + { + SnapshotId = Guid.NewGuid(), + SourceKind = Settings.Source.Type.ToString(), + SourceLocation = Settings.Source.Type is WallpaperType.YouTube or WallpaperType.WebPage + ? Settings.Source.WebUrl + : Settings.Source.FilePath, + Muted = Settings.Playback.Muted, + Volume = Settings.Playback.Volume, + Speed = Settings.Playback.Speed, + Loop = Settings.Playback.Loop, + InteractiveMode = Settings.Displays.Interaction == InteractionMode.Interactive, + Paused = Engine.IsPaused, + DimPercent = (int)Settings.Playback.Dim, + DimColor = Settings.Playback.DimColor, + DisplayDevices = devices + }; + } + + // -------------------------------------------------------------- single instance + + private bool AcquireSingleInstance() + { + try + { + _mutex = new Mutex(initiallyOwned: true, name: @"Global\LiveWall.SingleInstance", out bool createdNew); + if (createdNew) return true; + + // Another instance is running – ask it to show its window, then quit. + try + { + if (EventWaitHandle.TryOpenExisting(@"Global\LiveWall.ShowSettings", out var handle)) + { + handle.Set(); + handle.Dispose(); + } + } + catch { } + return false; + } + catch (Exception ex) + { + Log.Warn($"Single-instance check failed: {ex.Message}"); + return true; + } + } + + private void StartShowListener() + { + try + { + _showEvent = new EventWaitHandle(false, EventResetMode.AutoReset, @"Global\LiveWall.ShowSettings"); + } + catch (Exception ex) + { + Log.Warn($"Could not create show-event: {ex.Message}"); + return; + } + + _showListener = new Thread(() => + { + while (_running) + { + try + { + _showEvent.WaitOne(); + if (!_running) break; + Dispatcher.BeginInvoke(ShowSettingsWindow); + } + catch { break; } + } + }) + { IsBackground = true, Name = "LiveWall.ShowListener" }; + _showListener.Start(); + } + + // -------------------------------------------------------------- tray / hotkeys + + private void CreateTray() + { + _tray?.Dispose(); + _tray = new TrayService( + openSettings: ShowSettingsWindow, + togglePause: () => Engine.TogglePause(), + nextWallpaper: () => Engine.NextWallpaper(), + reload: () => Engine.Reload(), + toggleInteractive: () => Engine.ToggleInteractive(), + openLogs: OpenLogFolder, + exit: ExitApp); + UpdateStatusUi(); + } + + public void ApplyHotkeys() + { + if (_hotkeys == null) return; + + var problems = _hotkeys.Apply(Settings.Hotkeys, action => + { + switch (action) + { + case HotkeyAction.TogglePause: + Engine.TogglePause(); + break; + case HotkeyAction.NextWallpaper: + Engine.NextWallpaper(); + break; + case HotkeyAction.Reload: + Engine.Reload(); + break; + case HotkeyAction.ToggleInteractive: + Engine.ToggleInteractive(); + break; + } + }); + + if (problems.Count > 0) + { + Log.Warn("Hotkey problems: " + string.Join("; ", problems)); + _window?.SetHotkeyWarning(string.Join("\n", problems)); + } + else + { + _window?.SetHotkeyWarning(null); + } + } + + public void ApplyTrayVisibility() + { + if (Settings.Automation.ShowTrayIcon) + { + if (_tray == null) CreateTray(); + else _tray.SetVisible(true); + } + else + { + _tray?.SetVisible(false); + } + } + + // -------------------------------------------------------------- window / status + + public void ShowSettingsWindow() + { + if (_window == null) return; + _window.Show(); + if (_window.WindowState == WindowState.Minimized) + _window.WindowState = WindowState.Normal; + _window.Activate(); + _window.Topmost = true; + _window.Topmost = false; + _window.Focus(); + } + + private void UpdateStatusUi() + { + _window?.RefreshStatus(Engine.Status, Engine.IsPaused, Engine.IsInteractive); + _tray?.UpdateState(Engine.IsPaused, Engine.IsInteractive); + } + + private void OnEngineFailure(object? sender, string message) + { + Dispatcher.BeginInvoke(() => + { + _window?.ShowTransientError(message); + if (Settings.Automation.ShowNotifications) + _tray?.ShowBalloon("LiveWall", message); + }); + } + + public void OpenLogFolder() + { + try + { + System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo + { + FileName = Paths.LogFolder, + UseShellExecute = true + }); + } + catch (Exception ex) + { + Log.Warn($"Could not open log folder: {ex.Message}"); + } + } + + // -------------------------------------------------------------- shutdown + + public void ExitApp() + { + if (_exiting) return; + _exiting = true; + Log.Info("Exit requested"); + + _running = false; + try { _showEvent?.Set(); } catch { } + _saveTimer?.Stop(); + + try { SettingsStore.Save(Settings); } catch { } + + // Plugins first: they may still want to talk to the engine while it is alive. + try + { + _plugins?.Publish(new AppStoppingEvent { Reason = "exit" }); + _plugins?.Dispose(); + } + catch (Exception ex) { Log.Error("Plugin host dispose", ex); } + + try { _hotkeys?.Dispose(); } catch { } + try { Engine?.Dispose(); } catch (Exception ex) { Log.Error("Engine dispose", ex); } + try { _tray?.Dispose(); } catch { } + try { _window?.ForceClose(); } catch { } + + Shutdown(); + } + + protected override void OnExit(ExitEventArgs e) + { + _running = false; + try { _showEvent?.Set(); } catch { } + _mutex?.Dispose(); + Log.Info("==== LiveWall stopped ===="); + base.OnExit(e); + } + + private void OnUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) + { + Log.Error("Unhandled UI exception", e.Exception); + + // Keep running, but tell the user exactly what failed and where to find the details. + string headline = $"{e.Exception.GetType().Name}: {e.Exception.Message}"; + Log.Warn("Reported to user: " + headline); + + e.Handled = true; + + if (_window != null) + { + _window.ShowTransientError("Something went wrong - " + headline + + " (full details in the log: Advanced ▸ Open log folder)"); + if (Settings.Automation.ShowNotifications) + _tray?.ShowBalloon("LiveWall hit a problem", headline); + } + } +} diff --git a/LiveWall/Assets/app.ico b/LiveWall/Assets/app.ico new file mode 100644 index 0000000..79e7cc8 Binary files /dev/null and b/LiveWall/Assets/app.ico differ diff --git a/LiveWall/Desktop/DesktopIconLayer.cs b/LiveWall/Desktop/DesktopIconLayer.cs new file mode 100644 index 0000000..8c00b38 --- /dev/null +++ b/LiveWall/Desktop/DesktopIconLayer.cs @@ -0,0 +1,311 @@ +using System.Diagnostics; +using System.IO; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Effects; +using LiveWall.Models; + +namespace LiveWall.Desktop; + +/// +/// Draws the desktop icons on top of an overlay wallpaper and makes them usable: +/// click to select, double-click to open, right-click for a small menu. +/// +/// This exists because the overlay wallpaper sits above the shell's own icon window, so the real +/// icons would otherwise be covered. The layout is a simple grid (Explorer's own arrangement can't +/// be read reliably), and the items come straight from the two desktop folders. +/// +public sealed class DesktopIconLayer : Canvas, IDisposable +{ + private readonly DesktopIconsSettings _settings; + private readonly DesktopIconService _service = new(); + private readonly List _items = new(); + private readonly List _tiles = new(); + private Border? _selected; + + /// Number of icons currently drawn (used by the diagnostics report). + public int Tiles => _tiles.Count; + private bool _disposed; + + public event EventHandler? SettingsRequested; + public event EventHandler? DisableRequested; + + public DesktopIconLayer(DesktopIconsSettings settings) + { + _settings = settings; + + // The layer lives in its own per-pixel transparent window: pixels with alpha 0 (or no + // brush at all) let the click fall through to the desktop, which is what we want between + // icons. Right-clicking empty space only works when the canvas paints something. + Background = settings.BlockDesktopClicks + ? new SolidColorBrush(Color.FromArgb(1, 0, 0, 0)) + : null; + + ClipToBounds = true; + SizeChanged += (_, _) => LayoutTiles(); + } + + public void Initialize() + { + Reload(); + _service.StartWatching(() => Dispatcher.Invoke(Reload)); + } + + public void Reload() + { + if (_disposed) return; + + _items.Clear(); + _items.AddRange(_service.Load()); + BuildTiles(); + LayoutTiles(); + } + + // ------------------------------------------------------------------ visuals + + private void BuildTiles() + { + Children.Clear(); + _tiles.Clear(); + _selected = null; + + double iconSize = _settings.IconSize; + + foreach (var item in _items) + { + var image = new Image + { + Source = item.Icon, + Width = iconSize, + Height = iconSize, + Stretch = Stretch.Uniform, + SnapsToDevicePixels = true, + HorizontalAlignment = HorizontalAlignment.Center + }; + + var stack = new StackPanel { HorizontalAlignment = HorizontalAlignment.Center }; + + // Icons without an image still need the space. + if (item.Icon == null) + { + image.Source = null; + image.Width = iconSize; + image.Height = iconSize; + } + stack.Children.Add(image); + + if (_settings.ShowLabels) + { + var label = new TextBlock + { + Text = item.Name, + FontSize = 11.5, + Foreground = Brushes.White, + TextWrapping = TextWrapping.Wrap, + TextAlignment = TextAlignment.Center, + MaxWidth = iconSize + 44, + Margin = new Thickness(0, 4, 0, 0), + Effect = new DropShadowEffect + { + BlurRadius = 4, + ShadowDepth = 0, + Opacity = 0.95, + Color = Colors.Black + } + }; + stack.Children.Add(label); + } + + var tile = new Border + { + Child = stack, + Background = Brushes.Transparent, + BorderBrush = Brushes.Transparent, + BorderThickness = new Thickness(1), + CornerRadius = new CornerRadius(4), + Padding = new Thickness(4), + Tag = item, + Cursor = Cursors.Hand, + ToolTip = item.Path + }; + + tile.MouseLeftButtonDown += (_, e) => + { + if (e.ClickCount == 2) Open(item); + else Select(tile); + e.Handled = true; + }; + + tile.MouseRightButtonDown += (_, e) => + { + Select(tile); + tile.ContextMenu = BuildItemMenu(item); + tile.ContextMenu.IsOpen = true; + e.Handled = true; + }; + + Children.Add(tile); + _tiles.Add(tile); + } + } + + private void LayoutTiles() + { + if (ActualWidth < 10 || ActualHeight < 10 || _tiles.Count == 0) return; + + double iconSize = _settings.IconSize; + double cellWidth = iconSize + 52; + double cellHeight = iconSize + (_settings.ShowLabels ? 34 : 14); + + const double marginX = 14; + const double marginY = 14; + + double usableHeight = Math.Max(cellHeight, ActualHeight - marginY * 2); + int rows = Math.Max(1, (int)(usableHeight / cellHeight)); + + for (int i = 0; i < _tiles.Count; i++) + { + int column = i / rows; + int row = i % rows; + + var tile = _tiles[i]; + tile.Width = cellWidth; + tile.Height = cellHeight; + SetLeft(tile, marginX + column * cellWidth); + SetTop(tile, marginY + row * cellHeight); + } + } + + /// + /// Points that sit on actual icons, in this element's coordinates. Used to ask Windows which + /// window is really on top there - the only trustworthy check that the icons are visible. + /// Several points are returned so a single transparent pixel cannot fake a failure. + /// + public List<(double X, double Y)> ProbePoints() + { + var points = new List<(double, double)>(); + if (_tiles.Count == 0) return points; + + void Add(Border tile) + { + double left = GetLeft(tile); + double top = GetTop(tile); + if (double.IsNaN(left) || double.IsNaN(top)) return; + + double centreX = left + tile.Width / 2.0; + points.Add((centreX, top + 4 + _settings.IconSize / 2.0)); // the glyph itself + points.Add((centreX, top + tile.Height / 2.0)); // between glyph and label + if (_settings.ShowLabels) + points.Add((centreX, top + 4 + _settings.IconSize + 10)); // the label text + } + + Add(_tiles[0]); + if (_tiles.Count > 1) Add(_tiles[_tiles.Count / 2]); + if (_tiles.Count > 2) Add(_tiles[^1]); + + return points; + } + + private void Select(Border? tile) + { + if (_selected != null) + { + _selected.Background = Brushes.Transparent; + _selected.BorderBrush = Brushes.Transparent; + } + + _selected = tile; + + if (_selected != null) + { + _selected.Background = new SolidColorBrush(Color.FromArgb(64, 108, 140, 255)); + _selected.BorderBrush = new SolidColorBrush(Color.FromArgb(140, 108, 140, 255)); + } + } + + // ------------------------------------------------------------------ actions + + private void Open(DesktopItem item) + { + try + { + Log.Info($"Opening desktop item '{item.Path}'"); + Process.Start(new ProcessStartInfo + { + FileName = item.Path, + UseShellExecute = true + }); + } + catch (Exception ex) + { + Log.Error($"Could not open '{item.Path}'", ex); + } + } + + private ContextMenu BuildItemMenu(DesktopItem item) + { + var menu = new ContextMenu(); + + menu.Items.Add(MenuItem("Open", () => Open(item))); + menu.Items.Add(MenuItem("Show in File Explorer", () => + { + try + { + Process.Start(new ProcessStartInfo + { + FileName = "explorer.exe", + Arguments = item.IsFolder ? $"\"{item.Path}\"" : $"/select,\"{item.Path}\"", + UseShellExecute = true + }); + } + catch (Exception ex) { Log.Warn(ex.Message); } + })); + menu.Items.Add(new Separator()); + menu.Items.Add(MenuItem("Refresh desktop icons", Reload)); + menu.Items.Add(MenuItem("LiveWall settings…", () => SettingsRequested?.Invoke(this, EventArgs.Empty))); + menu.Items.Add(MenuItem("Stop drawing icons on the wallpaper", () => DisableRequested?.Invoke(this, EventArgs.Empty))); + + return menu; + } + + private static MenuItem MenuItem(string header, Action action) + { + var item = new MenuItem { Header = header }; + item.Click += (_, _) => + { + try { action(); } catch (Exception ex) { Log.Error("Menu action failed", ex); } + }; + return item; + } + + protected override void OnMouseRightButtonDown(MouseButtonEventArgs e) + { + base.OnMouseRightButtonDown(e); + + var menu = new ContextMenu(); + menu.Items.Add(MenuItem("Refresh desktop icons", Reload)); + menu.Items.Add(MenuItem("LiveWall settings…", () => SettingsRequested?.Invoke(this, EventArgs.Empty))); + menu.Items.Add(MenuItem("Stop drawing icons on the wallpaper", () => DisableRequested?.Invoke(this, EventArgs.Empty))); + ContextMenu = menu; + menu.IsOpen = true; + e.Handled = true; + } + + protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e) + { + base.OnMouseLeftButtonDown(e); + Select(null); + } + + public void Dispose() + { + if (_disposed) return; + _disposed = true; + _service.Dispose(); + Children.Clear(); + _tiles.Clear(); + _items.Clear(); + } +} diff --git a/LiveWall/Desktop/DesktopIconService.cs b/LiveWall/Desktop/DesktopIconService.cs new file mode 100644 index 0000000..37a2c55 --- /dev/null +++ b/LiveWall/Desktop/DesktopIconService.cs @@ -0,0 +1,201 @@ +using System.IO; +using System.Runtime.InteropServices; +using System.Windows; +using System.Windows.Interop; +using System.Windows.Media; +using System.Windows.Media.Imaging; + +namespace LiveWall.Desktop; + +/// One item from the user's %USERPROFILE%\Desktop or the public desktop folder. +public sealed class DesktopItem +{ + public string Name { get; init; } = ""; + public string Path { get; init; } = ""; + public bool IsFolder { get; init; } + public ImageSource? Icon { get; init; } +} + +/// Reads the desktop folders and their shell icons, and watches them for changes. +public sealed class DesktopIconService : IDisposable +{ + private const uint ShgfiIcon = 0x00000100; + private const uint ShgfiLargeIcon = 0x00000000; + private const uint ShgfiUseFileAttributes = 0x00000010; + private const uint FileAttributeDirectory = 0x00000010; + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + private struct ShFileInfo + { + public IntPtr hIcon; + public int iIcon; + public uint dwAttributes; + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] public string szDisplayName; + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)] public string szTypeName; + } + + [DllImport("shell32.dll", CharSet = CharSet.Unicode)] + private static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, + ref ShFileInfo psfi, uint cbFileInfo, uint uFlags); + + [DllImport("user32.dll")] + private static extern bool DestroyIcon(IntPtr hIcon); + + private readonly List _watchers = new(); + private readonly System.Windows.Threading.DispatcherTimer _debounce; + private Action? _onChanged; + + public DesktopIconService() + { + _debounce = new System.Windows.Threading.DispatcherTimer { Interval = TimeSpan.FromSeconds(1.5) }; + _debounce.Tick += (_, _) => + { + _debounce.Stop(); + Log.Debug("Desktop folder changed – reloading icons"); + _onChanged?.Invoke(); + }; + } + + public string[] Folders => new[] + { + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + Environment.GetFolderPath(Environment.SpecialFolder.CommonDesktopDirectory) + }.Where(Directory.Exists).ToArray(); + + public void StartWatching(Action onChanged) + { + _onChanged = onChanged; + + foreach (string folder in Folders) + { + try + { + var watcher = new FileSystemWatcher(folder) + { + NotifyFilter = NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.LastWrite | NotifyFilters.Attributes, + IncludeSubdirectories = false, + EnableRaisingEvents = true + }; + watcher.Created += (_, _) => Trigger(); + watcher.Deleted += (_, _) => Trigger(); + watcher.Changed += (_, _) => Trigger(); + watcher.Renamed += (_, _) => Trigger(); + _watchers.Add(watcher); + } + catch (Exception ex) + { + Log.Warn($"Cannot watch '{folder}': {ex.Message}"); + } + } + } + + private void Trigger() + { + _debounce.Stop(); + _debounce.Start(); + } + + public List Load() + { + var items = new List(); + + foreach (string folder in Folders) + { + try + { + foreach (string path in Directory.EnumerateFileSystemEntries(folder)) + { + try + { + // Skip hidden/system entries (desktop.ini, thumbnails, …) + FileAttributes attributes = File.GetAttributes(path); + if ((attributes & (FileAttributes.Hidden | FileAttributes.System)) != 0) continue; + + bool isFolder = (attributes & FileAttributes.Directory) != 0; + items.Add(new DesktopItem + { + Name = PrettyName(path), + Path = path, + IsFolder = isFolder, + Icon = LoadIcon(path, isFolder) + }); + } + catch (Exception ex) + { + Log.Debug($"Skipping '{path}': {ex.Message}"); + } + } + } + catch (Exception ex) + { + Log.Warn($"Cannot enumerate '{folder}': {ex.Message}"); + } + } + + // Same ordering Explorer uses: folders first, then alphabetical. + return items + .OrderByDescending(i => i.IsFolder) + .ThenBy(i => i.Name, StringComparer.CurrentCultureIgnoreCase) + .ToList(); + } + + private static string PrettyName(string path) + { + string name = Path.GetFileName(path); + // Shortcuts are shown without their ".lnk" extension. + if (name.EndsWith(".lnk", StringComparison.OrdinalIgnoreCase)) + return Path.GetFileNameWithoutExtension(name); + return name; + } + + private static ImageSource? LoadIcon(string path, bool isFolder) + { + var info = new ShFileInfo(); + uint flags = ShgfiIcon | ShgfiLargeIcon; + uint attributes = 0; + + if (isFolder) + { + // Ask for the generic folder icon instead of touching the disk entry. + flags |= ShgfiUseFileAttributes; + attributes = FileAttributeDirectory; + path = "folder"; + } + + try + { + IntPtr result = SHGetFileInfo(path, attributes, ref info, + (uint)Marshal.SizeOf(), flags); + + if (result == IntPtr.Zero || info.hIcon == IntPtr.Zero) + return null; + + try + { + var source = Imaging.CreateBitmapSourceFromHIcon(info.hIcon, Int32Rect.Empty, + BitmapSizeOptions.FromEmptyOptions()); + source.Freeze(); + return source; + } + finally + { + DestroyIcon(info.hIcon); + } + } + catch (Exception ex) + { + Log.Debug($"Icon for '{path}' failed: {ex.Message}"); + return null; + } + } + + public void Dispose() + { + _debounce.Stop(); + foreach (var watcher in _watchers) + { + try { watcher.EnableRaisingEvents = false; watcher.Dispose(); } catch { } + } + _watchers.Clear(); + } +} diff --git a/LiveWall/Desktop/DesktopIconWindow.cs b/LiveWall/Desktop/DesktopIconWindow.cs new file mode 100644 index 0000000..c3f05fd --- /dev/null +++ b/LiveWall/Desktop/DesktopIconWindow.cs @@ -0,0 +1,468 @@ +using System.Windows; +using System.Windows.Controls; +using System.Windows.Interop; +using System.Windows.Media; +using System.Windows.Threading; +using LiveWall.Interop; +using LiveWall.Models; +using Drawing = System.Drawing; + +namespace LiveWall.Desktop; + +/// +/// Hosts the desktop icon layer in a window of its own, kept one slot above the wallpaper window. +/// +/// The icons cannot live inside the wallpaper window: WebView2 (YouTube / web pages) and hardware +/// video surfaces render into a child HWND that is always composited above every WPF element of +/// that window, so the icons disappeared as soon as the wallpaper was anything but a bitmap. +/// A second, per-pixel transparent, non activating window solves it for every source type. +/// Only the icons themselves are opaque, so clicks anywhere else fall through to the desktop. +/// +public sealed class DesktopIconWindow : IDisposable +{ + private readonly Window _window; + private DispatcherTimer? _watchdog; + private bool _ownerApplied; + private int _coveredStrikes; + private DateTime _lastRepair = DateTime.MinValue; + private bool _disposed; + + /// The icon layer, or null when this window only carries plugin overlays. + public DesktopIconLayer? Layer { get; } + + /// Where plugin overlays are placed (above the wallpaper and the icons). + public Canvas OverlayLayer { get; } = new() { IsHitTestVisible = false, ClipToBounds = true }; + + public Drawing.Rectangle Bounds { get; private set; } + public IntPtr Handle { get; private set; } + + /// The wallpaper window this icon window belongs to (may be null for spanned setups). + public Wallpaper.WallpaperWindow? Host { get; } + + public event EventHandler? SettingsRequested; + public event EventHandler? DisableRequested; + + public DesktopIconWindow(Drawing.Rectangle bounds, DesktopIconsSettings? settings, Wallpaper.WallpaperWindow? host) + { + Bounds = bounds; + Host = host; + + var root = new Grid(); + + if (settings != null) + { + Layer = new DesktopIconLayer(settings); + Layer.SettingsRequested += (_, e) => SettingsRequested?.Invoke(this, e); + Layer.DisableRequested += (_, e) => DisableRequested?.Invoke(this, e); + root.Children.Add(Layer); + } + + root.Children.Add(OverlayLayer); + + _window = new Window + { + WindowStyle = WindowStyle.None, + AllowsTransparency = true, + Background = Brushes.Transparent, + ShowInTaskbar = false, + ShowActivated = false, + Topmost = false, + Focusable = false, + ResizeMode = ResizeMode.NoResize, + WindowStartupLocation = WindowStartupLocation.Manual, + SizeToContent = SizeToContent.Manual, + UseLayoutRounding = true, + SnapsToDevicePixels = true, + Title = "LiveWall desktop overlay", + Content = root + }; + + try + { + var helper = new WindowInteropHelper(_window); + Handle = helper.EnsureHandle(); + + // Post-pixel alpha needs WS_EX_LAYERED, which AllowsTransparency provides; on top of + // that the window must never take focus or show up in Alt+Tab. + long ex = Native.GetWindowLongPtr(Handle, Native.GWL_EXSTYLE).ToInt64(); + ex |= Native.WS_EX_NOACTIVATE | Native.WS_EX_TOOLWINDOW; + Native.SetWindowLongPtr(Handle, Native.GWL_EXSTYLE, new IntPtr(ex)); + + ApplyBounds(bounds); + } + catch (Exception ex) + { + Log.Error("Could not create the desktop icon window", ex); + } + } + + public bool IsShown { get; private set; } + + public void Start() + { + if (_disposed) return; + if (Layer != null) + { + try { Layer.Initialize(); } + catch (Exception ex) { Log.Error("Desktop icon layer failed to initialise", ex); } + } + Show(); + + // A moment later everything (window rect, WPF layout, tile count) is settled: check that the + // icons really are where and how big they should be, fix it if not, and leave a breadcrumb. + var verify = new DispatcherTimer(DispatcherPriority.Background) { Interval = TimeSpan.FromSeconds(1.5) }; + verify.Tick += (_, _) => + { + verify.Stop(); + Verify(); + }; + verify.Start(); + + // Ground truth watchdog: ask Windows which window is really on top of an icon. Nothing we + // compute ourselves can be as trustworthy as that, and it repairs itself when it fails. + _watchdog = new DispatcherTimer(DispatcherPriority.Background) { Interval = TimeSpan.FromSeconds(2) }; + _watchdog.Tick += (_, _) => CheckOnTop(); + _watchdog.Start(); + } + + private void ApplyBounds(Drawing.Rectangle bounds, bool force = false) + { + Bounds = bounds; + if (Handle == IntPtr.Zero) return; + + // WPF works in DIPs: keep Left/Top/Width/Height in sync so no later layout pass shrinks the + // window to the size of its (absolutely positioned) content, which would leave the icons + // drawn into a window of no size and therefore invisible. + double scale = 1.0; + try + { + uint dpi = Native.GetDpiForWindow(Handle); + if (dpi >= 48) scale = dpi / 96.0; + } + catch { /* older Windows: assume 100 % */ } + + double dipWidth = Math.Max(1, bounds.Width) / scale; + double dipHeight = Math.Max(1, bounds.Height) / scale; + + if (!_window.IsVisible || Math.Abs(_window.Width - dipWidth) > 0.5 || Math.Abs(_window.Height - dipHeight) > 0.5) + { + _window.Left = bounds.X / scale; + _window.Top = bounds.Y / scale; + _window.Width = dipWidth; + _window.Height = dipHeight; + } + + // The canvases get an explicit size as well, so laying things out never depends on what WPF + // believes the client area is. + if (Layer != null && + (Math.Abs(Layer.Width - dipWidth) > 0.5 || Math.Abs(Layer.Height - dipHeight) > 0.5)) + { + Layer.Width = dipWidth; + Layer.Height = dipHeight; + } + + if (Math.Abs(OverlayLayer.Width - dipWidth) > 0.5 || Math.Abs(OverlayLayer.Height - dipHeight) > 0.5) + { + OverlayLayer.Width = dipWidth; + OverlayLayer.Height = dipHeight; + } + + if (!force && Native.GetWindowRect(Handle, out RECT current) && + current.Left == bounds.X && current.Top == bounds.Y && + current.Width == Math.Max(1, bounds.Width) && current.Height == Math.Max(1, bounds.Height)) + return; // already there - every SetWindowPos would repaint the layered window + + Native.SetWindowPos(Handle, IntPtr.Zero, bounds.X, bounds.Y, + Math.Max(1, bounds.Width), Math.Max(1, bounds.Height), + Native.SWP_NOZORDER | Native.SWP_NOACTIVATE | Native.SWP_NOOWNERZORDER); + } + + public void Show() + { + if (_disposed) return; + + try + { + if (!_window.IsVisible) _window.Show(); + IsShown = true; + ApplyBounds(Bounds); + ClaimOwnership(); + Pin(); + } + catch (Exception ex) { Log.Warn($"Showing desktop icon window: {ex.Message}"); } + } + + public void Hide() + { + if (_disposed) return; + if (!IsShown && !_window.IsVisible) return; + + try + { + if (_window.IsVisible) _window.Hide(); + IsShown = false; + } + catch (Exception ex) { Log.Debug($"Hiding desktop icon window: {ex.Message}"); } + } + + public void Resize(Drawing.Rectangle bounds) => ApplyBounds(bounds); + + /// + /// Makes the wallpaper window the *owner* of this window. Windows then guarantees that an owned + /// window stays above its owner - permanently, without any timer re-raising anything, and + /// therefore without the repaint storm that made the icons flicker. + /// + private void ClaimOwnership() + { + if (_ownerApplied || Handle == IntPtr.Zero) return; + if (Host is not { IsOverlay: true } || Host.Handle == IntPtr.Zero) return; + + try + { + Native.SetWindowLongPtr(Handle, Native.GWLP_HWNDPARENT, Host.Handle); + Native.SetWindowPos(Handle, Host.Handle, 0, 0, 0, 0, + Native.SWP_NOMOVE | Native.SWP_NOSIZE | Native.SWP_NOACTIVATE); + _ownerApplied = true; + Log.Info($"Icon window 0x{Handle.ToInt64():X} is now owned by wallpaper window 0x{Host.Handle.ToInt64():X}"); + } + catch (Exception ex) + { + Log.Warn($"Could not set the icon window owner: {ex.Message}"); + } + } + + /// + /// Asks Windows which window is on top of the first icon. If it is not ours, something has + /// covered or buried the icons - say so in the log and repair it. + /// + private void CheckOnTop() + { + if (_disposed || !IsShown) return; + + try + { + if (!Native.IsWindowVisible(Handle)) + { + Log.Warn("Icon watchdog: the window is not visible – showing it again"); + Repair("window was hidden"); + return; + } + + if (Layer == null) return; // nothing to verify without icons + var points = Layer.ProbePoints(); + if (points.Count == 0) return; + + int shellHits = 0; + foreach (var (x, y) in points) + { + System.Windows.Point screen; + try { screen = Layer.PointToScreen(new System.Windows.Point(x, y)); } + catch { continue; } + + IntPtr at = Native.WindowFromPoint(new POINT { X = (int)screen.X, Y = (int)screen.Y }); + if (at == IntPtr.Zero || IsMine(at)) continue; // ours (or nothing) - fine + if (!IsDesktopShell(at)) continue; // a normal app - fine + shellHits++; + } + + if (shellHits == 0) + { + _coveredStrikes = 0; + return; + } + + _coveredStrikes++; + Log.Debug($"Icon watchdog: the desktop shell is above the icons at {shellHits}/{points.Count} points " + + $"(strike {_coveredStrikes})"); + + if (_coveredStrikes < 2) return; + if (DateTime.UtcNow - _lastRepair < TimeSpan.FromSeconds(10)) return; + + _coveredStrikes = 0; + Log.Warn($"Icon watchdog: the desktop shell is drawn above the icons ({shellHits}/{points.Count} points) – repairing"); + Repair("the desktop shell was drawn above the icons"); + } + catch (Exception ex) + { + Log.Debug($"Icon watchdog: {ex.Message}"); + } + } + + private static bool IsDesktopShell(IntPtr hwnd) + { + string name = ClassNameOf(hwnd); + return name is "Progman" or "WorkerW" or "SHELLDLL_DefView" or "SysListView32" or "SysTreeView32" + || name.StartsWith("Shell_TrayWnd", StringComparison.OrdinalIgnoreCase); + } + + private static string ClassNameOf(IntPtr hwnd) + { + try + { + var buffer = new System.Text.StringBuilder(256); + return Native.GetClassName(hwnd, buffer, buffer.Capacity) > 0 ? buffer.ToString() : "?"; + } + catch { return "?"; } + } + + private bool IsMine(IntPtr hwnd) + { + IntPtr current = hwnd; + for (int depth = 0; depth < 6 && current != IntPtr.Zero; depth++) + { + if (current == Handle) return true; + current = Native.GetParent(current); + } + + Native.GetWindowThreadProcessId(hwnd, out uint pid); + return pid == (uint)Environment.ProcessId; + } + + /// Rebuilds the visible state: re-shows, re-raises and re-applies the geometry. + public void Repair(string why) + { + if (_disposed) return; + + Log.Info($"Repairing the desktop icon layer ({why})"); + + try + { + if (!_window.IsVisible) _window.Show(); + IsShown = true; + ApplyBounds(Bounds, force: true); + ClaimOwnership(); + + // Owner semantics keep us above the wallpaper; this is the belt to that brace. + IntPtr after = Host?.Handle ?? IntPtr.Zero; + if (after != IntPtr.Zero) + Native.SetWindowPos(Handle, after, 0, 0, 0, 0, + Native.SWP_NOMOVE | Native.SWP_NOSIZE | Native.SWP_NOACTIVATE); + + _lastRepair = DateTime.UtcNow; + Layer?.Reload(); + Log.Info("Icon window after repair: " + Describe()); + } + catch (Exception ex) + { + Log.Error("Could not repair the desktop icon layer", ex); + } + } + + /// + /// Places the icon window directly above its wallpaper window. Called from the pin timer, so it + /// survives the desktop stealing the z-order back. + /// + public void Pin() + { + if (_disposed || Handle == IntPtr.Zero || !IsShown) return; + + // An owned window is kept above its owner by Windows itself - no timer needed. + if (_ownerApplied) return; + + try + { + IntPtr after = Host?.Handle ?? IntPtr.Zero; + + if (after == IntPtr.Zero || (Host != null && !Host.IsOverlay)) + { + // The wallpaper lives inside Progman/WorkerW; sit just above that band instead. + IntPtr progman = DesktopAttacher.Progman; + if (progman == IntPtr.Zero || !Native.IsWindow(progman)) + after = Native.HWND_TOP; + else + { + IntPtr above = Native.GetWindow(progman, Native.GW_HWNDPREV); + after = above == IntPtr.Zero ? Native.HWND_TOP : above; + } + } + + if (after == Handle) return; // degenerate: we would be placing us after ourselves + + // SetWindowPos on a layered window repaints it, so never call it "just in case": + // if the window directly below us is already the anchor, the order is correct. + IntPtr below = Native.GetWindow(Handle, Native.GW_HWNDNEXT); + bool inPlace = after == Native.HWND_TOP + ? Native.GetWindow(Handle, Native.GW_HWNDPREV) == IntPtr.Zero + : below == after; + if (inPlace) return; + + Native.SetWindowPos(Handle, after, 0, 0, 0, 0, + Native.SWP_NOMOVE | Native.SWP_NOSIZE | Native.SWP_NOACTIVATE | Native.SWP_NOOWNERZORDER); + } + catch (Exception ex) + { + Log.Debug($"Pinning desktop icons: {ex.Message}"); + } + } + + /// Checks the icon window against what it should look like and repairs it if needed. + public void Verify() + { + if (_disposed || Handle == IntPtr.Zero) return; + + try + { + if (Native.GetWindowRect(Handle, out RECT rect)) + { + bool wrongSize = rect.Width != Math.Max(1, Bounds.Width) || rect.Height != Math.Max(1, Bounds.Height); + bool wrongPlace = rect.Left != Bounds.X || rect.Top != Bounds.Y; + + if (wrongSize || wrongPlace) + { + Log.Warn($"Icon window is at {rect.Left},{rect.Top} {rect.Width}x{rect.Height} but should be " + + $"{Bounds.X},{Bounds.Y} {Bounds.Width}x{Bounds.Height} – re-applying"); + ApplyBounds(Bounds, force: true); + } + } + + Pin(); + Log.Info("Icon window: " + Describe()); + } + catch (Exception ex) + { + Log.Warn($"Could not verify the icon window: {ex.Message}"); + } + } + + public string Describe() + { + string zorder; + try + { + IntPtr below = Native.GetWindow(Handle, Native.GW_HWNDNEXT); + IntPtr host = Host?.Handle ?? IntPtr.Zero; + zorder = below == host ? "directly above wallpaper" : $"next below = 0x{below.ToInt64():X}"; + } + catch { zorder = "unknown"; } + + string rect = "?"; + try + { + if (Native.GetWindowRect(Handle, out RECT r)) + rect = $"{r.Left},{r.Top} {r.Width}x{r.Height}"; + } + catch { } + + bool windowVisible = false; + try { windowVisible = Native.IsWindowVisible(Handle); } catch { } + + return $"icons hwnd=0x{Handle.ToInt64():X} shown={IsShown} windowVisible={windowVisible} " + + $"rect={rect} expected={Bounds.X},{Bounds.Y} {Bounds.Width}x{Bounds.Height} " + + $"layer={(Layer == null ? "none" : $"{Layer.ActualWidth:0}x{Layer.ActualHeight:0}")} " + + $"tiles={(Layer?.Tiles ?? 0)} overlays={OverlayLayer.Children.Count} ({zorder})"; + } + + public void Dispose() + { + if (_disposed) return; + _disposed = true; + + try { _watchdog?.Stop(); _watchdog = null; } catch { } + try { Layer?.Dispose(); } catch { } + try { OverlayLayer.Children.Clear(); } catch { } + try { _window.Content = null; _window.Close(); } catch (Exception ex) { Log.Debug($"Closing icon window: {ex.Message}"); } + + Handle = IntPtr.Zero; + IsShown = false; + } +} diff --git a/LiveWall/Interop/DesktopAttacher.cs b/LiveWall/Interop/DesktopAttacher.cs new file mode 100644 index 0000000..7835849 --- /dev/null +++ b/LiveWall/Interop/DesktopAttacher.cs @@ -0,0 +1,316 @@ +using System.Drawing; +using System.Text; +using static LiveWall.Interop.Native; + +namespace LiveWall.Interop; + +/// One way of hosting our window inside the shell's desktop layer. +public sealed class AttachCandidate +{ + public string Name { get; init; } = ""; + public IntPtr Parent { get; init; } + public bool TopOfZOrder { get; init; } + public string Describe() => $"{Name} (parent=0x{Parent.ToInt64():X}, z={(TopOfZOrder ? "top" : "bottom")})"; +} + +/// +/// Finds the shell windows that make up the desktop and reparents our host window into them. +/// +/// The layout of the desktop layer is NOT stable across Windows builds: +/// Win10 / early Win11 : Progman + WorkerW … icons live in a separate WorkerW, the wallpaper +/// is painted by a sibling WorkerW behind it. +/// Win11 24H2+ : the icon host and the background layer are arranged differently, and +/// sometimes the second WorkerW never appears at all. +/// So instead of betting on one layout we build a list of candidates, try them in order and let +/// prove which one actually shows up on screen. +/// +internal static class DesktopAttacher +{ + private static IntPtr _progman; + private static IntPtr _iconHost; // window that hosts SHELLDLL_DefView (the icons) + private static IntPtr _bgWorker; // WorkerW behind the icon host (classic wallpaper layer) + private static string _rememberedStrategy = ""; + private static string _rememberedMode = ""; + private static bool _strategyConfirmed; + + public static IntPtr Progman { get { DiscoverIfNeeded(); return _progman; } } + public static IntPtr IconHost { get { DiscoverIfNeeded(); return _iconHost; } } + public static IntPtr BackgroundWorker { get { DiscoverIfNeeded(); return _bgWorker; } } + + public static string RememberedStrategy + { + get => _rememberedStrategy; + set => _rememberedStrategy = value; + } + + /// Hosting technique (parent at creation / adopt / overlay) that worked last time. + public static string RememberedMode + { + get => _rememberedMode; + set => _rememberedMode = value; + } + + /// True once a strategy has been proven visible in this session (skips re-probing). + public static bool StrategyConfirmed + { + get => _strategyConfirmed; + set => _strategyConfirmed = value; + } + + /// Forgets the cached strategy so the next attach re-detects the shell layout. + public static void ForgetStrategy() + { + _rememberedStrategy = ""; + _rememberedMode = ""; + _strategyConfirmed = false; + _progman = IntPtr.Zero; + _iconHost = IntPtr.Zero; + _bgWorker = IntPtr.Zero; + } + + private static bool DiscoverIfNeeded() + { + if (_progman != IntPtr.Zero && IsWindow(_progman) && (_iconHost == IntPtr.Zero || IsWindow(_iconHost))) + return true; + + Discover(); + return _progman != IntPtr.Zero; + } + + /// Asks the shell to create the WorkerW layer and re-reads the desktop window layout. + public static void Discover() + { + _progman = FindWindow("Progman", null); + _iconHost = IntPtr.Zero; + _bgWorker = IntPtr.Zero; + + if (_progman == IntPtr.Zero) + { + Log.Warn("Progman was not found – the shell may not be running."); + return; + } + + // Classic kick: makes Explorer spawn the WorkerW that lives behind the icons. + SendMessageTimeout(_progman, WM_SPAWN_WORKER, new IntPtr(0xD), new IntPtr(0x1), SMTO_NORMAL, 1000, out _); + SendMessageTimeout(_progman, WM_SPAWN_WORKER, new IntPtr(0xD), new IntPtr(0x0), SMTO_NORMAL, 1000, out _); + SendMessageTimeout(_progman, WM_SPAWN_WORKER, IntPtr.Zero, IntPtr.Zero, SMTO_NORMAL, 1000, out _); + + // 1) Top-level window that contains SHELLDLL_DefView = the icon host. + EnumWindows((hwnd, _) => + { + if (FindWindowEx(hwnd, IntPtr.Zero, "SHELLDLL_DefView", null) != IntPtr.Zero) + { + _iconHost = hwnd; + + // 2) The classic wallpaper layer: the WorkerW that follows the icon host in z-order. + IntPtr behind = FindWindowEx(IntPtr.Zero, hwnd, "WorkerW", null); + if (behind != IntPtr.Zero) + _bgWorker = behind; + return false; + } + return true; + }, IntPtr.Zero); + + // 3) Newer builds: the background WorkerW is a *child* of Progman, next to the icon host. + if (_bgWorker == IntPtr.Zero) + { + EnumChildWindows(_progman, (hwnd, _) => + { + string cls = ClassOf(hwnd); + if (!cls.Equals("WorkerW", StringComparison.OrdinalIgnoreCase)) + return true; + if (FindWindowEx(hwnd, IntPtr.Zero, "SHELLDLL_DefView", null) != IntPtr.Zero) + return true; // that one holds the icons + + _bgWorker = hwnd; + return false; + }, IntPtr.Zero); + } + + Log.Info($"Shell layout: Progman=0x{_progman.ToInt64():X}, icons=0x{_iconHost.ToInt64():X} " + + $"({ClassOf(_iconHost)}), background WorkerW=0x{_bgWorker.ToInt64():X} ({ClassOf(_bgWorker)})"); + } + + /// Candidate parents, most likely to work first – ordered by how the shell is built. + public static List GetCandidates() + { + if (!DiscoverIfNeeded()) + return new List(); + + var list = new List(); + bool iconsInsideProgman = _iconHost == _progman || _iconHost == IntPtr.Zero; + bool hasBackgroundWorker = _bgWorker != IntPtr.Zero && IsWindow(_bgWorker); + bool hasProgman = IsWindow(_progman); + + if (iconsInsideProgman) + { + // Icons are drawn by Progman itself: the wallpaper belongs *inside* Progman, below the + // icon view. The sibling WorkerW (if any) sits in front of Progman's background, so it + // would cover the icons – only used if the preferred slot proves to be invisible. + if (hasProgman) + list.Add(new AttachCandidate { Name = "inside Progman, below the icons", Parent = _progman, TopOfZOrder = false }); + + if (hasBackgroundWorker) + { + list.Add(new AttachCandidate { Name = "WorkerW behind the desktop (classic wallpaper layer)", Parent = _bgWorker, TopOfZOrder = true }); + list.Add(new AttachCandidate { Name = "WorkerW behind the desktop, bottom", Parent = _bgWorker, TopOfZOrder = false }); + } + + if (hasProgman) + list.Add(new AttachCandidate { Name = "inside Progman, above the icons", Parent = _progman, TopOfZOrder = true }); + } + else + { + // Classic layout: icons live in their own WorkerW, the wallpaper layer is behind it. + if (hasBackgroundWorker) + { + list.Add(new AttachCandidate { Name = "WorkerW behind the icons, top of its layer", Parent = _bgWorker, TopOfZOrder = true }); + list.Add(new AttachCandidate { Name = "WorkerW behind the icons, bottom of its layer", Parent = _bgWorker, TopOfZOrder = false }); + } + + if (_iconHost != IntPtr.Zero && IsWindow(_iconHost)) + { + list.Add(new AttachCandidate { Name = "icon host window, below the icons", Parent = _iconHost, TopOfZOrder = false }); + list.Add(new AttachCandidate { Name = "icon host window, above the icons", Parent = _iconHost, TopOfZOrder = true }); + } + + if (hasProgman) + { + list.Add(new AttachCandidate { Name = "inside Progman, below the icons", Parent = _progman, TopOfZOrder = false }); + list.Add(new AttachCandidate { Name = "inside Progman, above the icons", Parent = _progman, TopOfZOrder = true }); + } + } + + // Put the strategy that worked before first. + if (!string.IsNullOrEmpty(_rememberedStrategy)) + { + int index = list.FindIndex(c => c.Name == _rememberedStrategy); + if (index > 0) + { + var preferred = list[index]; + list.RemoveAt(index); + list.Insert(0, preferred); + } + } + + return list; + } + + /// True when the icons live in their own window (so hiding it is safe in interactive mode). + public static bool IconLayerIsSeparate => _iconHost != IntPtr.Zero && _iconHost != _progman && IsWindow(_iconHost); + + /// Reparents the window and turns it into a real child window at the given z-order. + public static bool Attach(IntPtr child, AttachCandidate candidate, Rectangle screenBounds, out string error) + { + error = ""; + + if (!IsWindow(child)) + { + error = "The wallpaper window no longer exists."; + return false; + } + if (!IsWindow(candidate.Parent)) + { + error = $"Parent window 0x{candidate.Parent.ToInt64():X} is gone."; + return false; + } + + SetParent(child, candidate.Parent); + + // Convert it into a genuine child window: no Alt+Tab entry, clipped by the desktop layer. + // NOTE: this must happen before the parent is verified – GetParent() reports the *owner* + // for a window that is still WS_POPUP, so checking earlier always looked like a failure. + uint style = unchecked((uint)GetWindowLongPtr(child, GWL_STYLE).ToInt64()); + style &= ~WS_POPUP; + style |= WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS; + SetWindowLongPtr(child, GWL_STYLE, new IntPtr(style)); + + uint ex = unchecked((uint)GetWindowLongPtr(child, GWL_EXSTYLE).ToInt64()); + ex |= WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE; + ex &= ~WS_EX_TRANSPARENT; + SetWindowLongPtr(child, GWL_EXSTYLE, new IntPtr(ex)); + + if (GetParent(child) != candidate.Parent && GetAncestor(child, GA_PARENT) != candidate.Parent) + { + error = $"SetParent to {candidate.Name} was refused by Windows."; + return false; + } + + Position(child, screenBounds, candidate.TopOfZOrder); + return true; + } + + /// Moves/resizes a child window inside the desktop layer (coordinates are parent relative). + public static void Position(IntPtr child, Rectangle screenBounds, bool topOfZOrder = true) + { + IntPtr parent = GetParent(child); + if (parent == IntPtr.Zero) + return; + + POINT origin = new() { X = 0, Y = 0 }; + ClientToScreen(parent, ref origin); + + if (screenBounds == Rectangle.Empty) + screenBounds = ScreenBounds(); + + SetWindowPos(child, topOfZOrder ? HWND_TOP : HWND_BOTTOM, + screenBounds.X - origin.X, + screenBounds.Y - origin.Y, + Math.Max(1, screenBounds.Width), + Math.Max(1, screenBounds.Height), + SWP_NOACTIVATE | SWP_NOOWNERZORDER); + } + + public static Rectangle ScreenBounds() + => new(GetSystemMetrics(SM_XVIRTUALSCREEN), + GetSystemMetrics(SM_YVIRTUALSCREEN), + Math.Max(1, GetSystemMetrics(SM_CXVIRTUALSCREEN)), + Math.Max(1, GetSystemMetrics(SM_CYVIRTUALSCREEN))); + + /// + /// Interactive mode: the icons live in a separate shell window above the wallpaper, so we hide + /// that layer while interactive mode is on. Input then reaches the wallpaper and you can click + /// YouTube controls / web pages. Desktop icons are hidden while it's active. + /// + public static void SetInteractive(bool interactive) + { + if (!DiscoverIfNeeded() || _iconHost == IntPtr.Zero || !IsWindow(_iconHost)) + return; + + try + { + ShowWindow(_iconHost, interactive ? SW_HIDE : SW_SHOWNOACTIVATE); + Log.Info($"Interactive mode {(interactive ? "on (desktop icons hidden)" : "off")}"); + } + catch (Exception ex) + { + Log.Warn($"Could not toggle interactive mode: {ex.Message}"); + } + } + + public static string ClassOf(IntPtr hwnd) + { + if (hwnd == IntPtr.Zero) return "-"; + var sb = new StringBuilder(256); + try { GetClassName(hwnd, sb, sb.Capacity); } catch { } + return sb.Length == 0 ? "-" : sb.ToString(); + } + + /// Human readable snapshot of the shell layer, used by the diagnostics panel. + public static string DescribeLayout() + { + DiscoverIfNeeded(); + var sb = new StringBuilder(); + sb.AppendLine($"Progman: 0x{_progman.ToInt64():X}"); + sb.AppendLine($"Icon host: 0x{_iconHost.ToInt64():X} ({ClassOf(_iconHost)})"); + sb.AppendLine($"Background WorkerW: 0x{_bgWorker.ToInt64():X} ({ClassOf(_bgWorker)})"); + sb.AppendLine($"Last good strategy: {(string.IsNullOrEmpty(_rememberedStrategy) ? "(not verified yet)" : _rememberedStrategy)}"); + + int index = 0; + foreach (var candidate in GetCandidates()) + { + sb.AppendLine($" {++index}. {candidate.Describe()}"); + } + return sb.ToString(); + } +} diff --git a/LiveWall/Interop/DpiContextScope.cs b/LiveWall/Interop/DpiContextScope.cs new file mode 100644 index 0000000..42c2199 --- /dev/null +++ b/LiveWall/Interop/DpiContextScope.cs @@ -0,0 +1,53 @@ +using static LiveWall.Interop.Native; + +namespace LiveWall.Interop; + +/// +/// Temporarily switches the calling thread to the DPI awareness context of another window. +/// +/// Cross-process parenting (SetParent into Explorer's desktop window) is sensitive to DPI +/// awareness mismatches: when the child and parent threads disagree, Windows can accept the +/// parenting yet never composite the child. Matching the shell's context while the window is +/// created and adopted avoids that class of failure. +/// +internal readonly struct DpiContextScope : IDisposable +{ + private readonly IntPtr _previous; + private readonly bool _changed; + + private DpiContextScope(IntPtr previous, bool changed) + { + _previous = previous; + _changed = changed; + } + + public static DpiContextScope MatchWindow(IntPtr reference) + { + try + { + if (reference == IntPtr.Zero) return default; + + IntPtr target = GetWindowDpiAwarenessContext(reference); + if (target == IntPtr.Zero) return default; + + IntPtr current = GetWindowDpiAwarenessContext(IntPtr.Zero); + if (current != IntPtr.Zero && AreDpiAwarenessContextsEqual(current, target)) + return default; // already matching – nothing to do + + IntPtr previous = SetThreadDpiAwarenessContext(target); + Log.Debug($"DPI context switched to match shell window 0x{reference.ToInt64():X}"); + return new DpiContextScope(previous, true); + } + catch (Exception ex) + { + Log.Debug($"DPI context switch failed: {ex.Message}"); + return default; + } + } + + public void Dispose() + { + if (!_changed) return; + try { SetThreadDpiAwarenessContext(_previous); } catch { } + } +} diff --git a/LiveWall/Interop/Native.cs b/LiveWall/Interop/Native.cs new file mode 100644 index 0000000..f2cf2ef --- /dev/null +++ b/LiveWall/Interop/Native.cs @@ -0,0 +1,305 @@ +using System.Runtime.InteropServices; +using System.Text; + +namespace LiveWall.Interop; + +[StructLayout(LayoutKind.Sequential)] +internal struct RECT +{ + public int Left, Top, Right, Bottom; + public int Width => Right - Left; + public int Height => Bottom - Top; +} + +[StructLayout(LayoutKind.Sequential)] +internal struct POINT +{ + public int X, Y; +} + +[StructLayout(LayoutKind.Sequential)] +internal struct MONITORINFO +{ + public int cbSize; + public RECT rcMonitor; + public RECT rcWork; + public uint dwFlags; +} + +internal static class Native +{ + // ---- window styles ------------------------------------------------- + public const int GWL_STYLE = -16; + public const int GWL_EXSTYLE = -20; + public const int GWLP_HWNDPARENT = -8; // sets the OWNER of a top-level window + + public const uint WS_CHILD = 0x40000000; + public const uint WS_POPUP = 0x80000000; + public const uint WS_VISIBLE = 0x10000000; + public const uint WS_CLIPCHILDREN = 0x02000000; + public const uint WS_CLIPSIBLINGS = 0x04000000; + public const uint WS_DISABLED = 0x08000000; + + public const uint WS_EX_TOOLWINDOW = 0x00000080; + public const uint WS_EX_NOACTIVATE = 0x08000000; + public const uint WS_EX_TRANSPARENT = 0x00000020; + + // ---- SetWindowPos -------------------------------------------------- + public static readonly IntPtr HWND_TOP = IntPtr.Zero; + public static readonly IntPtr HWND_BOTTOM = new(1); + public static readonly IntPtr HWND_TOPMOST = new(-1); + + public const uint SWP_NOSIZE = 0x0001; + public const uint SWP_NOMOVE = 0x0002; + public const uint SWP_NOZORDER = 0x0004; + public const uint SWP_NOREDRAW = 0x0008; + public const uint SWP_NOACTIVATE = 0x0010; + public const uint SWP_SHOWWINDOW = 0x0040; + public const uint SWP_HIDEWINDOW = 0x0080; + public const uint SWP_NOOWNERZORDER = 0x0200; + + public const uint WM_SPAWN_WORKER = 0x052C; + public const uint SMTO_NORMAL = 0x0000; + + public const int SW_HIDE = 0; + public const int SW_SHOWNOACTIVATE = 4; + + public const int SM_REMOTESESSION = 0x1000; + public const int SM_XVIRTUALSCREEN = 76; + public const int SM_YVIRTUALSCREEN = 77; + public const int SM_CXVIRTUALSCREEN = 78; + public const int SM_CYVIRTUALSCREEN = 79; + + public delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam); + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)] + public static extern IntPtr FindWindow(string? lpClassName, string? lpWindowName); + + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)] + public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string? lpszClass, string? lpszWindow); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, IntPtr lParam); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool EnumChildWindows(IntPtr hWndParent, EnumWindowsProc lpEnumFunc, IntPtr lParam); + + /// Waits for the desktop compositor to finish the next frame (makes screen captures reliable). + [DllImport("dwmapi.dll")] + public static extern int DwmFlush(); + + [DllImport("user32.dll", SetLastError = true)] + public static extern IntPtr SendMessageTimeout(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam, + uint fuFlags, uint uTimeout, out IntPtr lpdwResult); + + [DllImport("user32.dll", SetLastError = true)] + public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); + + [DllImport("user32.dll", SetLastError = true)] + public static extern IntPtr GetParent(IntPtr hWnd); + + public const uint GA_PARENT = 1; + + [DllImport("user32.dll", SetLastError = true)] + public static extern IntPtr GetAncestor(IntPtr hWnd, uint gaFlags); + + [DllImport("user32.dll", SetLastError = true)] + public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, uint flags); + + [DllImport("user32.dll")] + public static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect); + + [DllImport("user32.dll")] + public static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect); + + [DllImport("user32.dll")] + public static extern bool ClientToScreen(IntPtr hWnd, ref POINT lpPoint); + + [DllImport("user32.dll")] + public static extern bool IsWindow(IntPtr hWnd); + + [DllImport("user32.dll")] + public static extern bool IsWindowVisible(IntPtr hWnd); + + [DllImport("user32.dll")] + public static extern bool IsZoomed(IntPtr hWnd); + + [DllImport("user32.dll", SetLastError = true)] + public static extern IntPtr GetForegroundWindow(); + + [DllImport("user32.dll", SetLastError = true)] + public static extern IntPtr WindowFromPoint(POINT point); + + public const uint GW_HWNDPREV = 3; + public const uint GW_HWNDNEXT = 2; + + [DllImport("user32.dll", SetLastError = true)] + public static extern IntPtr GetWindow(IntPtr hWnd, uint uCmd); + + // DPI awareness contexts (Windows 10 1607+) + [DllImport("user32.dll")] + public static extern IntPtr GetWindowDpiAwarenessContext(IntPtr hwnd); + + /// Effective DPI of a window (Windows 10 1607+). 96 = 100 % scaling. + [DllImport("user32.dll")] + public static extern uint GetDpiForWindow(IntPtr hwnd); + + [DllImport("user32.dll")] + public static extern IntPtr SetThreadDpiAwarenessContext(IntPtr dpiContext); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool AreDpiAwarenessContextsEqual(IntPtr a, IntPtr b); + + [DllImport("user32.dll", SetLastError = true)] + public static extern IntPtr GetShellWindow(); + + [DllImport("user32.dll", SetLastError = true)] + public static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId); + + [DllImport("user32.dll", CharSet = CharSet.Unicode)] + public static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount); + + [DllImport("user32.dll")] + public static extern int GetSystemMetrics(int nIndex); + + [DllImport("user32.dll")] + public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); + + [DllImport("user32.dll")] + public static extern IntPtr MonitorFromWindow(IntPtr hwnd, uint dwFlags); + + [DllImport("user32.dll")] + public static extern bool GetMonitorInfo(IntPtr hMonitor, ref MONITORINFO lpmi); + + [DllImport("user32.dll", EntryPoint = "GetWindowLongPtrW", SetLastError = true)] + private static extern IntPtr GetWindowLongPtr64(IntPtr hWnd, int nIndex); + + [DllImport("user32.dll", EntryPoint = "GetWindowLongW", SetLastError = true)] + private static extern IntPtr GetWindowLong32(IntPtr hWnd, int nIndex); + + [DllImport("user32.dll", EntryPoint = "SetWindowLongPtrW", SetLastError = true)] + private static extern IntPtr SetWindowLongPtr64(IntPtr hWnd, int nIndex, IntPtr dwNewLong); + + [DllImport("user32.dll", EntryPoint = "SetWindowLongW", SetLastError = true)] + private static extern IntPtr SetWindowLong32(IntPtr hWnd, int nIndex, IntPtr dwNewLong); + + public static IntPtr GetWindowLongPtr(IntPtr hWnd, int nIndex) + => IntPtr.Size == 8 ? GetWindowLongPtr64(hWnd, nIndex) : GetWindowLong32(hWnd, nIndex); + + public static IntPtr SetWindowLongPtr(IntPtr hWnd, int nIndex, IntPtr dwNewLong) + => IntPtr.Size == 8 ? SetWindowLongPtr64(hWnd, nIndex, dwNewLong) : SetWindowLong32(hWnd, nIndex, dwNewLong); + + public static bool IsRemoteSession() => GetSystemMetrics(SM_REMOTESESSION) != 0; + + // ---- global hotkeys ------------------------------------------------ + public const int WM_HOTKEY = 0x0312; + + [DllImport("user32.dll", SetLastError = true)] + public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk); + + [DllImport("user32.dll", SetLastError = true)] + public static extern bool UnregisterHotKey(IntPtr hWnd, int id); + + // ---- window input: hit-testing, subclassing, message constants ----------------------------- + + /// Window-long index of the window procedure (used for chaining subclassing). + public const int GWLP_WNDPROC = -4; + + public const int WM_NCHITTEST = 0x0084; + public const int WM_SETCURSOR = 0x0020; + public const int WM_MOUSEACTIVATE = 0x0021; + public const int WM_NCDESTROY = 0x0082; + public const int WM_NCMOUSEMOVE = 0x00A0; + public const int WM_MOUSEMOVE = 0x0200; + public const int WM_LBUTTONDOWN = 0x0201; + public const int WM_LBUTTONUP = 0x0202; + public const int WM_LBUTTONDBLCLK = 0x0203; + public const int WM_RBUTTONDOWN = 0x0204; + public const int WM_RBUTTONUP = 0x0205; + public const int WM_RBUTTONDBLCLK = 0x0206; + public const int WM_MBUTTONDOWN = 0x0207; + public const int WM_MBUTTONUP = 0x0208; + public const int WM_MBUTTONDBLCLK = 0x0209; + public const int WM_MOUSEWHEEL = 0x020A; + public const int WM_XBUTTONDOWN = 0x020B; + public const int WM_XBUTTONUP = 0x020C; + public const int WM_XBUTTONDBLCLK = 0x020D; + public const int WM_MOUSEHWHEEL = 0x020E; + public const int WM_MOUSELEAVE = 0x02A3; + public const int WM_NCMOUSELEAVE = 0x02A2; + + // WM_POINTER* — Chromium on Windows 11 reads pointer input as well as mouse messages. + public const int WM_POINTERUPDATE = 0x0245; + public const int WM_POINTERDOWN = 0x0246; + public const int WM_POINTERUP = 0x0247; + public const int WM_POINTERENTER = 0x0249; + public const int WM_POINTERLEAVE = 0x024A; + public const int WM_POINTERWHEEL = 0x024E; + public const int WM_POINTERHWHEEL = 0x024F; + public const int WM_TOUCH = 0x0240; + public const int WM_GESTURE = 0x0119; + + /// WM_NCHITTEST result: "let the mouse go to the window below me". + public const int HTTRANSPARENT = -1; + + /// WM_MOUSEACTIVATE result: activate nothing, do not disturb the foreground window. + public const int MA_NOACTIVATE = 3; + + [DllImport("user32.dll", EntryPoint = "DefWindowProcW")] + public static extern IntPtr DefWindowProc(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam); + + [DllImport("user32.dll", EntryPoint = "CallWindowProcW")] + public static extern IntPtr CallWindowProc(IntPtr lpPrevWndFunc, IntPtr hWnd, int msg, + IntPtr wParam, IntPtr lParam); + + [DllImport("kernel32.dll")] + public static extern uint GetCurrentProcessId(); + + // ---- cursor ------------------------------------------------------------------------------- + + public const int IDC_ARROW = 32512; + + [DllImport("user32.dll", EntryPoint = "LoadCursorW", SetLastError = true)] + public static extern IntPtr LoadCursor(IntPtr hInstance, IntPtr lpCursorName); + + [DllImport("user32.dll", SetLastError = true)] + public static extern IntPtr SetCursor(IntPtr hCursor); + + /// + /// Restores the standard arrow for this thread's windows. + /// + /// Needed because a web surface that believes the pointer is inside it can leave a *null* cursor + /// installed (that is how `cursor: none` and its own hover handling are implemented). A window + /// that then answers WM_SETCURSOR with "handled" without setting anything of its own leaves that + /// null cursor in place, and the pointer becomes invisible over the desktop. + /// + public static void RestoreArrowCursor() + { + try { SetCursor(LoadCursor(IntPtr.Zero, new IntPtr(IDC_ARROW))); } + catch { } + } + + /// True when the window belongs to this process (only those can be subclassed). + public static bool IsOwnWindow(IntPtr hWnd) + { + try + { + GetWindowThreadProcessId(hWnd, out uint pid); + return pid == GetCurrentProcessId(); + } + catch + { + return false; + } + } + + public static string ClassNameOf(IntPtr hWnd) + { + var buffer = new StringBuilder(256); + try { GetClassName(hWnd, buffer, buffer.Capacity); } catch { } + return buffer.ToString(); + } +} diff --git a/LiveWall/LiveWall.csproj b/LiveWall/LiveWall.csproj new file mode 100644 index 0000000..a450387 --- /dev/null +++ b/LiveWall/LiveWall.csproj @@ -0,0 +1,54 @@ + + + + WinExe + net8.0-windows + true + true + enable + enable + latest + LiveWall + LiveWall + app.manifest + Assets\app.ico + true + en + 1.8.4 + + LatestMajor + LiveWall + LiveWall + Animated GIF, video and YouTube live wallpapers for Windows 11. + embedded + $(NoWarn);CA1416;WFAC010 + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LiveWall/MainWindow.xaml b/LiveWall/MainWindow.xaml new file mode 100644 index 0000000..349a87f --- /dev/null +++ b/LiveWall/MainWindow.xaml @@ -0,0 +1,842 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +