diff --git a/gui/qml/main.qml b/gui/qml/main.qml
index dcffcdef13dc46768dcb4f86e01e8c844eeffb3f..04592a5a8525f30f7d3be20a41541c5891dfa6bf 100644
--- a/gui/qml/main.qml
+++ b/gui/qml/main.qml
@@ -89,20 +89,27 @@ ApplicationWindow {
     Component.onCompleted: {
         loginDone = false;
 
-        /* stupid as it sounds, windows doesn't like to have the systray icon
-         not being attached to an actual application window.
-         We can still use this quirk, and can use the AppWindow with deferred
-         Loaders as a placeholder for all the many dialogs, or to load
-         a nice splash screen etc...  */
-
         console.debug("DEBUG: Pre-seeded providers:");
         console.debug(providers.getJson());
 
         allowEmptyPass = shouldAllowEmptyPass()
 
-        app.visible = true;
-        //show();
-        //hide();
+        console.debug("DEBUG platform":, Qt.platform.os)
+
+        if ("osx" == Qt.platform.os || "linux" == Qt.platform.os ) {
+            app.visible = false;
+        }
+
+        if ("windows" == Qt.platform.os) {
+            /* FIXME stupid as it sounds, windows doesn't like to have the systray icon
+             not being attached to an actual application window??
+             We can still use this quirk, and can use the AppWindow with deferred
+             Loaders as a placeholder for all the many dialogs, or to load
+             a nice splash screen etc...  */
+            app.visible = true;
+            app.show();
+            app.hide();
+        }
     }
 
     function toHuman(st) {