diff --git a/launcher-bootstrap/src/main/java/com/skcraft/launcher/Bootstrap.java b/launcher-bootstrap/src/main/java/com/skcraft/launcher/Bootstrap.java index 463245e..7f18905 100644 --- a/launcher-bootstrap/src/main/java/com/skcraft/launcher/Bootstrap.java +++ b/launcher-bootstrap/src/main/java/com/skcraft/launcher/Bootstrap.java @@ -194,9 +194,21 @@ String osName = System.getProperty("os.name").toLowerCase(); if (osName.contains("win")) { return new File(getFileChooseDefaultDir(), getProperties().getProperty("homeFolderWindows")); - } else { - return new File(System.getProperty("user.home"), getProperties().getProperty("homeFolder")); } + + File dotFolder = new File(System.getProperty("user.home"), getProperties().getProperty("homeFolder")); + String xdgFolderName = getProperties().getProperty("homeFolderLinux"); + + if (osName.contains("linux") && !dotFolder.exists() && !xdgFolderName.isEmpty()) { + String xdgDataHome = System.getenv("XDG_DATA_HOME"); + if (xdgDataHome.isEmpty()) { + xdgDataHome = System.getProperty("user.home") + "/.local/share"; + } + + return new File(xdgDataHome, xdgFolderName); + } + + return dotFolder; } private static boolean isPortableMode() { diff --git a/launcher-bootstrap/src/main/resources/com/skcraft/launcher/bootstrap.properties b/launcher-bootstrap/src/main/resources/com/skcraft/launcher/bootstrap.properties index 8609369..678f616 100644 --- a/launcher-bootstrap/src/main/resources/com/skcraft/launcher/bootstrap.properties +++ b/launcher-bootstrap/src/main/resources/com/skcraft/launcher/bootstrap.properties @@ -5,6 +5,7 @@ # homeFolderWindows=Example Launcher +homeFolderLinux=example_launcher homeFolder=.examplelauncher launcherClass=com.skcraft.launcher.Launcher -latestUrl=http://update.skcraft.com/quark/launcher/latest.json \ No newline at end of file +latestUrl=http://update.skcraft.com/quark/launcher/latest.json