Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions io.github.TeamWheelWizard.WheelWizard.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ add-extensions:
autodelete: true

finish-args:
- --socket=wayland
# WheelWizard supports Wayland, but Dolphin currently does not
- --socket=x11
- --share=ipc
Expand Down Expand Up @@ -164,6 +165,7 @@ modules:
env:
RUNTIME: linux-x64
build-commands:
- git apply app-id.patch
- >-
DOTNET_CLI_TELEMETRY_OPTOUT=true dotnet
publish
Expand All @@ -190,6 +192,10 @@ modules:
# Install metadata files
- install -D -m0644 "Flatpak/${FLATPAK_ID}.desktop" "${FLATPAK_DEST}/share/applications/${FLATPAK_ID}.desktop"
- install -D -m0644 "Flatpak/${FLATPAK_ID}-url-handler.desktop" "${FLATPAK_DEST}/share/applications/${FLATPAK_ID}-url-handler.desktop"
- desktop-file-edit --set-key=Exec --set-value="${FLATPAK_DEST}/bin/wheelwizard-wrapper"
"${FLATPAK_DEST}/share/applications/${FLATPAK_ID}.desktop"
- desktop-file-edit --set-key=Exec --set-value="${FLATPAK_DEST}/bin/wheelwizard-wrapper %U"
"${FLATPAK_DEST}/share/applications/${FLATPAK_ID}-url-handler.desktop"
- install -D -m0644 "Flatpak/${FLATPAK_ID}.svg" "${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/${FLATPAK_ID}.svg"
- install -D -m0644 "Flatpak/${FLATPAK_ID}.png" "${FLATPAK_DEST}/share/icons/hicolor/512x512/apps/${FLATPAK_ID}.png"
- install -D -m0644 "Flatpak/${FLATPAK_ID}.metainfo.xml" "${FLATPAK_DEST}/share/metainfo/${FLATPAK_ID}.metainfo.xml"
Expand Down
85 changes: 85 additions & 0 deletions patches/WheelWizard/app-id.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
diff --git a/Flatpak/io.github.TeamWheelWizard.WheelWizard-url-handler.desktop b/Flatpak/io.github.TeamWheelWizard.WheelWizard-url-handler.desktop
index f2554785..cb5bd455 100644
--- a/Flatpak/io.github.TeamWheelWizard.WheelWizard-url-handler.desktop
+++ b/Flatpak/io.github.TeamWheelWizard.WheelWizard-url-handler.desktop
@@ -7,7 +7,7 @@ NoDisplay=true
StartupNotify=true
Type=Application
Categories=Game;
-StartupWMClass=WheelWizard
+StartupWMClass=io.github.TeamWheelWizard.WheelWizard
MimeType=x-scheme-handler/wheelwizard;
Name=Wheel Wizard – URL Handler
GenericName=Mario Kart Wii Mod Manager
diff --git a/Flatpak/io.github.TeamWheelWizard.WheelWizard.desktop b/Flatpak/io.github.TeamWheelWizard.WheelWizard.desktop
index df003b5f..3dcb071f 100644
--- a/Flatpak/io.github.TeamWheelWizard.WheelWizard.desktop
+++ b/Flatpak/io.github.TeamWheelWizard.WheelWizard.desktop
@@ -5,7 +5,7 @@ Exec=WheelWizard
Terminal=false
Type=Application
Categories=Game;
-StartupWMClass=WheelWizard
+StartupWMClass=io.github.TeamWheelWizard.WheelWizard
Name=Wheel Wizard
GenericName=Mario Kart Wii Mod Manager
Comment=Mario Kart Wii Mod Manager & Retro Rewind Auto Updater
diff --git a/WheelWizard/Program.cs b/WheelWizard/Program.cs
index b69a2212..4fd2ef69 100644
--- a/WheelWizard/Program.cs
+++ b/WheelWizard/Program.cs
@@ -133,22 +133,28 @@ public class Program : IDesignerEntryPoint
/// </summary>
private static AppBuilder CreateWheelWizardApp(Func<Task<IDesktopStartup>> createStartup)
{
+ var isFlatpak = new RuntimeEnvironment().IsFlatpakSandboxed(new RealFileSystem());
+ var flatpakAppId = isFlatpak ? Environment.GetEnvironmentVariable("FLATPAK_ID") : null;
#pragma warning disable AVALONIA_X11_CSD
+ var x11Options = new X11PlatformOptions { EnableDrawnDecorations = true };
+#pragma warning restore AVALONIA_X11_CSD
+ x11Options.WmClass = flatpakAppId ?? x11Options.WmClass;
var builder = AppBuilder
.Configure(() => new App(createStartup))
.UsePlatformDetect()
- .With(new X11PlatformOptions { EnableDrawnDecorations = true })
+ .With(x11Options)
.With(MacOptions)
.WithInterFont();
-#pragma warning restore AVALONIA_X11_CSD

// https://docs.avaloniaui.net/docs/platform-specific-guides/linux#enabling-the-wayland-backend
// NOTE: UseWayland() will prevent fallback to X11.
if (OperatingSystem.IsLinux() && Environment.GetEnvironmentVariable("WAYLAND_DISPLAY") is not null)
{
#pragma warning disable AVALONIA_WAYLAND_FORCE_CSD
- builder = builder.With(new WaylandPlatformOptions { ForceDrawnDecorations = true }).UseWayland();
+ var waylandOptions = new WaylandPlatformOptions { ForceDrawnDecorations = true };
#pragma warning restore AVALONIA_WAYLAND_FORCE_CSD
+ waylandOptions.AppId = flatpakAppId ?? waylandOptions.AppId;
+ builder = builder.With(waylandOptions).UseWayland();
}

return builder;
diff --git a/WheelWizard/WheelWizard.csproj b/WheelWizard/WheelWizard.csproj
index 9f0cbed9..6b88d7c4 100644
--- a/WheelWizard/WheelWizard.csproj
+++ b/WheelWizard/WheelWizard.csproj
@@ -34,13 +34,13 @@

<ItemGroup>
<!-- Everything specifically for Avalonia -->
- <PackageReference Include="Avalonia" Version="12.1.2" />
- <PackageReference Include="Avalonia.Desktop" Version="12.1.2" />
- <PackageReference Include="Avalonia.Themes.Fluent" Version="12.1.2" />
- <PackageReference Include="Avalonia.Fonts.Inter" Version="12.1.2" />
+ <PackageReference Include="Avalonia" Version="12.1.4" />
+ <PackageReference Include="Avalonia.Desktop" Version="12.1.4" />
+ <PackageReference Include="Avalonia.Themes.Fluent" Version="12.1.4" />
+ <PackageReference Include="Avalonia.Fonts.Inter" Version="12.1.4" />
<PackageReference Include="Avalonia.HtmlRenderer" Version="12.0.0" />
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.3.22" />
- <PackageReference Include="Avalonia.Wayland" Version="12.1.2" />
+ <PackageReference Include="Avalonia.Wayland" Version="12.1.4" />
<!-- Realtime (GPU) Mii rendering -->
<PackageReference Include="Silk.NET.OpenGL" Version="2.22.0" />
<!-- Draws the SVG particle images animations carry. 5.1.x is the last line built on Avalonia's SkiaSharp 3. -->
2 changes: 2 additions & 0 deletions sources/WheelWizard/WheelWizard.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
- type: git
url: https://github.com/TeamWheelWizard/WheelWizard.git
commit: 14c0c7cd34697980bc8f8cf2189920e64a2526cb
- type: file
path: patches/WheelWizard/app-id.patch
78 changes: 39 additions & 39 deletions sources/WheelWizard/nuget/wheelwizard-nuget-sources.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
[
{
"type": "file",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia/12.1.2/avalonia.12.1.2.nupkg",
"sha512": "3508a3e1e7a490b2f904e5389de064badb6aeca82c2d88ff8a9bbe418531849edd1eeafcc6c1a166ed4e54cf6e8af0288d03188f2d120d2eb5d0358533b27875",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia/12.1.4/avalonia.12.1.4.nupkg",
"sha512": "b0ec6f4eabc0a296cdcc3b7117c0f44a301e82d5c764d7c864d8bf9acfd98c6ac470576ad1b7c7a16fa01800395683d90133a587e51bad78ab7eba4045b5da1b",
"dest": "nuget-sources",
"dest-filename": "avalonia.12.1.2.nupkg"
"dest-filename": "avalonia.12.1.4.nupkg"
},
{
"type": "file",
Expand All @@ -29,10 +29,10 @@
},
{
"type": "file",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.desktop/12.1.2/avalonia.desktop.12.1.2.nupkg",
"sha512": "4e7aea7626e713250b5ea3152d8fab610f04bf60102142e116a8810db6202767ae84a867820fcbce9798105cf856e1a066dfb82932cf2ec5b403938084aeec72",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.desktop/12.1.4/avalonia.desktop.12.1.4.nupkg",
"sha512": "a63d841fcbd6b3b348d4dc3f168e66a815f015ce96e85bbb4991ed8faac481af1d03795a8314eb63e1daba786c8929abc03d405bd372a4607fac618ec1f4b7f7",
"dest": "nuget-sources",
"dest-filename": "avalonia.desktop.12.1.2.nupkg"
"dest-filename": "avalonia.desktop.12.1.4.nupkg"
},
{
"type": "file",
Expand All @@ -43,31 +43,31 @@
},
{
"type": "file",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.fonts.inter/12.1.2/avalonia.fonts.inter.12.1.2.nupkg",
"sha512": "2b9f5a0ead8f3b732a4f2c1ec7be32b89927f297b4dd038c63e0b50008d21f1d907f18c4bc98b0bf7733760ee82d820edc7cee0772e2a9f2cfdf4be8a3406e89",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.fonts.inter/12.1.4/avalonia.fonts.inter.12.1.4.nupkg",
"sha512": "9d95b448400c1a9450ddd9cf2be756ed6486b76dc200e22c69c3232dca092f228697334237ad89122403f19cef673c07ba9dada09b3879d0bf3b079caf5f5c0c",
"dest": "nuget-sources",
"dest-filename": "avalonia.fonts.inter.12.1.2.nupkg"
"dest-filename": "avalonia.fonts.inter.12.1.4.nupkg"
},
{
"type": "file",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.freedesktop/12.1.2/avalonia.freedesktop.12.1.2.nupkg",
"sha512": "aad4e7f5d823d6a23faddd31c4b6db8fa9c70bba47d78974cad78b10acca421338e9f6ffd8593dd01cfa3a7289edafdd7be7c0557e887ff86709cc08b575ec42",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.freedesktop/12.1.4/avalonia.freedesktop.12.1.4.nupkg",
"sha512": "0be82af4bc6a205e26da286c82954f0dbdf77c521d0910385a3e013da29a3800c2f3a0f3af425b7565d1104f8047df68012cea935a5edaecf35758bf1d250bf9",
"dest": "nuget-sources",
"dest-filename": "avalonia.freedesktop.12.1.2.nupkg"
"dest-filename": "avalonia.freedesktop.12.1.4.nupkg"
},
{
"type": "file",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.freedesktop.atspi/12.1.2/avalonia.freedesktop.atspi.12.1.2.nupkg",
"sha512": "1810c295aeb626de9684f981bf37f4cd4134c2cb4b366a1a584883e4dec93ad0b7ccc9f20f91ae1cf711634db70f63cdf6731049c1512517359b57fae57a2e1d",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.freedesktop.atspi/12.1.4/avalonia.freedesktop.atspi.12.1.4.nupkg",
"sha512": "8eb9fbae2dc9e70decdbfdef09df29d01255fd44a7406b15b7a3571392a6de370457ede7cff30776f34187495ef31e756174b2657f5e16df5cd526b07a4fe599",
"dest": "nuget-sources",
"dest-filename": "avalonia.freedesktop.atspi.12.1.2.nupkg"
"dest-filename": "avalonia.freedesktop.atspi.12.1.4.nupkg"
},
{
"type": "file",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.harfbuzz/12.1.2/avalonia.harfbuzz.12.1.2.nupkg",
"sha512": "94b8ab04f54e76faa6db4fb5095fb67e0adc065ea697ef7d9fb5d29e1d16eae4cfa359ea41cdf10a23ace9a5bae2833d559821a6e414cd059e15fcdbcfad7cce",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.harfbuzz/12.1.4/avalonia.harfbuzz.12.1.4.nupkg",
"sha512": "113f469eed1b048ca5f22d946e2724b1712d807508375a7ecab72ab7a2be1fe02ac90747e6af666566e0a47e61f7d7a0007e97a274f6583c6302dcb11f69ba71",
"dest": "nuget-sources",
"dest-filename": "avalonia.harfbuzz.12.1.2.nupkg"
"dest-filename": "avalonia.harfbuzz.12.1.4.nupkg"
},
{
"type": "file",
Expand All @@ -78,10 +78,10 @@
},
{
"type": "file",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.native/12.1.2/avalonia.native.12.1.2.nupkg",
"sha512": "8308a9abf7502426ec0851309d08d75ddb689078569cbbbc1a35e233cbd939bcde7f49236877efe4d9e9e53c58dbdcb5bad2f5106e96910f2fd988da38da96c4",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.native/12.1.4/avalonia.native.12.1.4.nupkg",
"sha512": "1bb9b8bcb0db31bd0b0dfe48ee1350fbba529d06e0ed190b42a60bd4059ef712e4ca565836251b1e1f6285fcf6b83ffb7b4ec06a3adc51b69294e969c9ad7c31",
"dest": "nuget-sources",
"dest-filename": "avalonia.native.12.1.2.nupkg"
"dest-filename": "avalonia.native.12.1.4.nupkg"
},
{
"type": "file",
Expand All @@ -92,24 +92,24 @@
},
{
"type": "file",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.remote.protocol/12.1.2/avalonia.remote.protocol.12.1.2.nupkg",
"sha512": "bab863a304e1cd32846d9f37d670a893429ec27092876b15ebe9e579a8b49384d2749499387b04bcda6c15739521398b010e5e23ad29a6f53942f301c605d2fb",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.remote.protocol/12.1.4/avalonia.remote.protocol.12.1.4.nupkg",
"sha512": "8d6e87d4b5b84f0471078bfb6cd6f39fc28318efb0d15dfe015eb4385a90449b3c9c73f4038c7a17742582555c97842cb6e428743e1bde3c9c00b0bb8b0fc0ee",
"dest": "nuget-sources",
"dest-filename": "avalonia.remote.protocol.12.1.2.nupkg"
"dest-filename": "avalonia.remote.protocol.12.1.4.nupkg"
},
{
"type": "file",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.skia/12.1.2/avalonia.skia.12.1.2.nupkg",
"sha512": "8ba9813cec50aea1ce1662fbc46265cc9f8ff9f2c1a84080462838cbfcda782001cfe170e572984708f5e51a1b44798cb4e99e3288dcf951d81e276d2a40a657",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.skia/12.1.4/avalonia.skia.12.1.4.nupkg",
"sha512": "10af376f826ec84510a2979093b27026da734ce8c00fa536645f2ddf99878143ecc399848dec56864f12898c784f933499a1a990d5b6f166c361177a5f00c88d",
"dest": "nuget-sources",
"dest-filename": "avalonia.skia.12.1.2.nupkg"
"dest-filename": "avalonia.skia.12.1.4.nupkg"
},
{
"type": "file",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.themes.fluent/12.1.2/avalonia.themes.fluent.12.1.2.nupkg",
"sha512": "bd972d77d62fe79fb0cadf5b15339a7660ea39c9b1028672804594cfd99103ad97d9c806c2d1af71b377fd1900373a64251897f14ed339e26389d7844fffe7c3",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.themes.fluent/12.1.4/avalonia.themes.fluent.12.1.4.nupkg",
"sha512": "2671c16b7efb2e1fa83de35be72c6ad4a148e7bce404098187ea0c8dcc84a6334435ff22ee423bb33c594ec263822a1df58e8e9230aea8bfda255aca1b2d7fa8",
"dest": "nuget-sources",
"dest-filename": "avalonia.themes.fluent.12.1.2.nupkg"
"dest-filename": "avalonia.themes.fluent.12.1.4.nupkg"
},
{
"type": "file",
Expand All @@ -120,24 +120,24 @@
},
{
"type": "file",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.wayland/12.1.2/avalonia.wayland.12.1.2.nupkg",
"sha512": "ce325d8dae75114b452c64ae831679b0b7cfaffdfe67e8b5559141692f4cd9d8a853589a2ad2b8af499b6ef1613c7ac62d63e2262e0bab716523613a42c04886",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.wayland/12.1.4/avalonia.wayland.12.1.4.nupkg",
"sha512": "a0bfbdcac9bdd83e633660e5aa21258eea762ffc0ef61a8b03414eb9a628a9ebfb2bda8322cc3a328c4e95dd9a34e488e801a703c5e67dc582fcec5d80febe06",
"dest": "nuget-sources",
"dest-filename": "avalonia.wayland.12.1.2.nupkg"
"dest-filename": "avalonia.wayland.12.1.4.nupkg"
},
{
"type": "file",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.win32/12.1.2/avalonia.win32.12.1.2.nupkg",
"sha512": "6208d464415d6690c6848c2ebb25e3ba74b9d87010b402333cd23f12c3ddda5ff6134aabe101d6a1ffc1d334d1e0346b0b385240e7614266ff4ea3567fd443fe",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.win32/12.1.4/avalonia.win32.12.1.4.nupkg",
"sha512": "83bc81efa79002ab02d63624aad83c70b2f2ddb640bd1f72580d0a38d7f25da18c221b66d1e6c1cdf9510ade982520abb2add881138a240a4903304abfad0cd4",
"dest": "nuget-sources",
"dest-filename": "avalonia.win32.12.1.2.nupkg"
"dest-filename": "avalonia.win32.12.1.4.nupkg"
},
{
"type": "file",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.x11/12.1.2/avalonia.x11.12.1.2.nupkg",
"sha512": "f6a7c6cc94c84ae8f025812c4b3172bd9f4346145cd31632acd2259b7667cf55c23c62eac22caba1f7dcb3f663df3d51366fb7cb7c1df0ec5fd60a0c06ed707e",
"url": "https://api.nuget.org/v3-flatcontainer/avalonia.x11/12.1.4/avalonia.x11.12.1.4.nupkg",
"sha512": "d445237619a817d8fc432ed44e846f1884ac81092680700b8b1dc54455adde267132dfb7ab5e620bf6b9d36204e42f6504d8832670972ccd912697281fd725ef",
"dest": "nuget-sources",
"dest-filename": "avalonia.x11.12.1.2.nupkg"
"dest-filename": "avalonia.x11.12.1.4.nupkg"
},
{
"type": "file",
Expand Down