Skip to content

Commit 39028c3

Browse files
authored
Merge pull request #21 from purejava/release/1.3.0
Locate icons theme path in AppImage
2 parents 3821dcd + 4236179 commit 39028c3

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
<api.version>1.3.0-beta1</api.version>
4444
<secret-service.version>1.8.1-jdk17</secret-service.version>
4545
<kdewallet.version>1.3.0</kdewallet.version>
46-
<appindicator.version>1.3.0</appindicator.version>
46+
<appindicator.version>1.3.1</appindicator.version>
4747
<guava.version>31.1-jre</guava.version>
4848
<slf4j.version>1.7.36</slf4j.version>
4949
<commons-lang3.version>3.12.0</commons-lang3.version>

src/main/java/org/cryptomator/linux/tray/AppindicatorTrayMenuController.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.cryptomator.linux.tray;
22

3+
import org.apache.commons.lang3.StringUtils;
34
import org.cryptomator.integrations.common.CheckAvailability;
45
import org.cryptomator.integrations.common.OperatingSystem;
56
import org.cryptomator.integrations.common.Priority;
@@ -22,9 +23,9 @@
2223
import static org.purejava.appindicator.app_indicator_h.*;
2324

2425
@Priority(1000)
26+
@CheckAvailability
2527
@OperatingSystem(OperatingSystem.Value.LINUX)
2628
public class AppindicatorTrayMenuController implements TrayMenuController {
27-
2829
private static final String APP_INDICATOR_ID = "org.cryptomator.Cryptomator";
2930

3031
private static final SegmentScope SCOPE = SegmentScope.global();
@@ -46,9 +47,18 @@ public void showTrayIcon(Consumer<TrayIconLoader> iconLoader, Runnable runnable,
4647

4748
private void showTrayIconWithSVG(String s) {
4849
try (var arena = Arena.openConfined()) {
49-
indicator = app_indicator_new(arena.allocateUtf8String(APP_INDICATOR_ID),
50+
var appdir = System.getenv("APPDIR");
51+
if (null == appdir || appdir.isBlank()) {
52+
appdir = "";
53+
}
54+
if (appdir.endsWith("/")) {
55+
appdir = StringUtils.chop(appdir);
56+
}
57+
indicator = app_indicator_new_with_path(arena.allocateUtf8String(APP_INDICATOR_ID),
5058
arena.allocateUtf8String(s),
51-
APP_INDICATOR_CATEGORY_APPLICATION_STATUS());
59+
APP_INDICATOR_CATEGORY_APPLICATION_STATUS(),
60+
// find tray icons theme in mounted AppImage
61+
arena.allocateUtf8String(appdir + "/usr/share/icons/hicolor/symbolic/apps"));
5262
}
5363
}
5464

0 commit comments

Comments
 (0)