diff --git a/app/src/main/java/io/xpipe/app/util/DesktopShortcuts.java b/app/src/main/java/io/xpipe/app/util/DesktopShortcuts.java index c2fc1bef..592271f8 100644 --- a/app/src/main/java/io/xpipe/app/util/DesktopShortcuts.java +++ b/app/src/main/java/io/xpipe/app/util/DesktopShortcuts.java @@ -65,9 +65,21 @@ public class DesktopShortcuts { pc.executeSimpleCommand("chmod ugo+x \"" + executable + "\""); pc.getShellDialect() - .createScriptTextFileWriteCommand(pc, "APPL????", base + "/PkgInfo") + .createTextFileWriteCommand(pc, "APPL????", base + "/Contents/PkgInfo") .execute(); - pc.executeSimpleCommand("cp \"" + icon + "\" \"" + base + "/Contents/Resources/" + name + ".icns\""); + pc.getShellDialect() + .createTextFileWriteCommand(pc, """ + + + + + CFBundleIconFile + icon.icns + + + """, base + "/Contents/Info.plist") + .execute(); + pc.executeSimpleCommand("cp \"" + icon + "\" \"" + base + "/Contents/Resources/icon.icns\""); } } diff --git a/app/src/main/java/io/xpipe/app/util/ShellTemp.java b/app/src/main/java/io/xpipe/app/util/ShellTemp.java index e2a26ca1..7be0c9bc 100644 --- a/app/src/main/java/io/xpipe/app/util/ShellTemp.java +++ b/app/src/main/java/io/xpipe/app/util/ShellTemp.java @@ -85,9 +85,9 @@ public class ShellTemp { public static String getSubDirectory(ShellControl proc, String... sub) throws Exception { var base = proc.getSystemTemporaryDirectory(); - var arr = Stream.concat(Stream.of(base), Arrays.stream(sub)).toArray(String[]::new); + var arr = Stream.concat(Stream.of(base.toString()), Arrays.stream(sub)).toArray(String[]::new); var dir = FileNames.join(arr); - + // We assume that this directory does not exist yet and therefore don't perform any checks proc.getShellDialect().prepareUserTempDirectory(proc, dir).execute(); diff --git a/dist/logo/logo.icns b/dist/logo/logo.icns index 7d9ea367..9963150d 100644 Binary files a/dist/logo/logo.icns and b/dist/logo/logo.icns differ