diff --git a/Makefile b/Makefile index 43a033a547..31d499f81c 100644 --- a/Makefile +++ b/Makefile @@ -394,6 +394,7 @@ install-linux-mime: @$(INSTALL_DATA) packaging/linux/openra-mimeinfo.xml "$(DESTDIR)$(datadir)/mime/packages/openra.xml" @$(INSTALL_DIR) "$(DESTDIR)$(datadir)/applications" + @$(INSTALL_DATA) packaging/linux/openra-join-servers.desktop "$(DESTDIR)$(datadir)/applications" @$(INSTALL_DATA) packaging/linux/openra-replays.desktop "$(DESTDIR)$(datadir)/applications" install-linux-appdata: diff --git a/OpenRA.Mods.Common/LoadScreens/BlankLoadScreen.cs b/OpenRA.Mods.Common/LoadScreens/BlankLoadScreen.cs index 37722cd67a..ae01fb60e6 100644 --- a/OpenRA.Mods.Common/LoadScreens/BlankLoadScreen.cs +++ b/OpenRA.Mods.Common/LoadScreens/BlankLoadScreen.cs @@ -61,7 +61,23 @@ namespace OpenRA.Mods.Common.LoadScreens } // Join a server directly - var connect = args != null ? args.GetValue("Launch.Connect", null) : null; + var connect = string.Empty; + if (args != null) + { + if (args.Contains("Launch.Connect")) + connect = args.GetValue("Launch.Connect", null); + + if (args.Contains("Launch.URI")) + { + connect = args.GetValue("Launch.URI", null); + if (connect != null) + { + connect = connect.Replace("openra://", ""); + connect = connect.TrimEnd('/'); + } + } + } + if (!string.IsNullOrEmpty(connect)) { var parts = connect.Split(':'); diff --git a/launch-replay.sh b/launch-replay.sh deleted file mode 100755 index 2190b61bb6..0000000000 --- a/launch-replay.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -cd ${0%/*} -exec mono OpenRA.Game.exe Launch.Replay="$@" \ No newline at end of file diff --git a/packaging/linux/openra-join-servers.desktop b/packaging/linux/openra-join-servers.desktop new file mode 100755 index 0000000000..96b7bc06c5 --- /dev/null +++ b/packaging/linux/openra-join-servers.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Type=Application +Version=1.0 +Name=OpenRA +GenericName=Real Time Strategy Game +Comment=Reimagining of early Westwood Games +Icon=openra +Exec=openra Launch.URI=%U +Terminal=false +NoDisplay=true +Categories=Game;StrategyGame; +MimeType=x-scheme-handler/openra; \ No newline at end of file diff --git a/packaging/linux/openra-mimeinfo.xml b/packaging/linux/openra-mimeinfo.xml index 9a5fba69a1..3a0767e0ac 100644 --- a/packaging/linux/openra-mimeinfo.xml +++ b/packaging/linux/openra-mimeinfo.xml @@ -8,4 +8,11 @@ + + + + OpenRA connect to server scheme + + +