diff --git a/main/ui/src/main/java/org/cryptomator/ui/settings/SettingsProvider.java b/main/ui/src/main/java/org/cryptomator/ui/settings/SettingsProvider.java index 6f752512d..5617815d3 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/settings/SettingsProvider.java +++ b/main/ui/src/main/java/org/cryptomator/ui/settings/SettingsProvider.java @@ -65,7 +65,15 @@ public class SettingsProvider implements Provider { private Path getSettingsPath() throws IOException { final String settingsPathProperty = System.getProperty("cryptomator.settingsPath"); - return Optional.ofNullable(settingsPathProperty).filter(StringUtils::isNotBlank).map(FileSystems.getDefault()::getPath).orElse(DEFAULT_SETTINGS_PATH); + return Optional.ofNullable(settingsPathProperty).filter(StringUtils::isNotBlank).map(this::replaceHomeDir).map(FileSystems.getDefault()::getPath).orElse(DEFAULT_SETTINGS_PATH); + } + + private String replaceHomeDir(String path) { + if (path.startsWith("~/")) { + return SystemUtils.USER_HOME + path.substring(1); + } else { + return path; + } } @Override