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
+
+
+