Skip to content

repo: Add Meshtastic Desktop icon SVGs#5623

Merged
jamesarich merged 3 commits into
mainfrom
add-icon-svgs
May 28, 2026
Merged

repo: Add Meshtastic Desktop icon SVGs#5623
jamesarich merged 3 commits into
mainfrom
add-icon-svgs

Conversation

@vidplace7

Copy link
Copy Markdown
Member

These are consumed by the FlatPak packaging and should live in-repo somewhere.

@codecov

codecov Bot commented May 27, 2026

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
2500 1 2499 0
View the top 1 failed test(s) by shortest run time
org.meshtastic.core.database.DatabaseManagerWithDbRetryTest::withDb retries against current database when previous pool closes during switch
Stack Traces | 23.6s run time
java.lang.AssertionError: expected:<42424242> but was:<null>
	at org.junit.Assert.fail(Assert.java:89)
	at org.junit.Assert.failNotEquals(Assert.java:835)
	at org.junit.Assert.assertEquals(Assert.java:120)
	at kotlin.test.junit.JUnitAsserter.assertEquals(JUnitSupport.kt:32)
	at kotlin.test.AssertionsKt__AssertionsKt.assertEquals(Assertions.kt:63)
	at kotlin.test.AssertionsKt.assertEquals(Unknown Source)
	at kotlin.test.AssertionsKt__AssertionsKt.assertEquals$default(Assertions.kt:62)
	at kotlin.test.AssertionsKt.assertEquals$default(Unknown Source)
	at org.meshtastic.core.database.DatabaseManagerWithDbRetryTest$withDb retries against current database when previous pool closes during switch$1.invokeSuspend(DatabaseManagerWithDbRetryTest.kt:104)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at kotlinx.coroutines.test.TestDispatcher.processEvent$kotlinx_coroutines_test(TestDispatcher.kt:24)
	at kotlinx.coroutines.test.TestCoroutineScheduler.tryRunNextTaskUnless$kotlinx_coroutines_test(TestCoroutineScheduler.kt:98)
	at kotlinx.coroutines.test.TestBuildersKt__TestBuildersKt$runTest$2$1$workRunner$1.invokeSuspend(TestBuilders.kt:326)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:256)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:54)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlockingImpl(Builders.kt:30)
	at kotlinx.coroutines.BuildersKt.runBlockingImpl(Unknown Source)
	at kotlinx.coroutines.BuildersKt__Builders_concurrentKt.runBlockingK(Builders.concurrent.kt:172)
	at kotlinx.coroutines.BuildersKt.runBlockingK(Unknown Source)
	at kotlinx.coroutines.BuildersKt__Builders_concurrentKt.runBlockingK$default(Builders.concurrent.kt:157)
	at kotlinx.coroutines.BuildersKt.runBlockingK$default(Unknown Source)
	at kotlinx.coroutines.test.TestBuildersJvmKt.createTestResult(TestBuildersJvm.kt:10)
	at kotlinx.coroutines.test.TestBuildersKt__TestBuildersKt.runTest-8Mi8wO0(TestBuilders.kt:309)
	at kotlinx.coroutines.test.TestBuildersKt.runTest-8Mi8wO0(TestBuilders.kt:1)
	at kotlinx.coroutines.test.TestBuildersKt__TestBuildersKt.runTest-8Mi8wO0(TestBuilders.kt:167)
	at kotlinx.coroutines.test.TestBuildersKt.runTest-8Mi8wO0(TestBuilders.kt:1)
	at kotlinx.coroutines.test.TestBuildersKt__TestBuildersKt.runTest-8Mi8wO0$default(TestBuilders.kt:159)
	at kotlinx.coroutines.test.TestBuildersKt.runTest-8Mi8wO0$default(TestBuilders.kt:1)
	at org.meshtastic.core.database.DatabaseManagerWithDbRetryTest.withDb retries against current database when previous pool closes during switch(DatabaseManagerWithDbRetryTest.kt:69)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.robolectric.RobolectricTestRunner$HelperTestRunner$1.evaluate(RobolectricTestRunner.java:524)
	at org.robolectric.internal.SandboxTestRunner.executeInSandbox(SandboxTestRunner.java:494)
	at org.robolectric.internal.SandboxTestRunner.access$900(SandboxTestRunner.java:67)
	at org.robolectric.internal.SandboxTestRunner$7.evaluate(SandboxTestRunner.java:442)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.robolectric.internal.SandboxTestRunner.access$600(SandboxTestRunner.java:67)
	at org.robolectric.internal.SandboxTestRunner$6.evaluate(SandboxTestRunner.java:333)
	at org.robolectric.internal.SandboxTestRunner$3.evaluate(SandboxTestRunner.java:233)
	at org.robolectric.internal.SandboxTestRunner$5.lambda$evaluate$0(SandboxTestRunner.java:317)
	at org.robolectric.internal.bytecode.Sandbox.lambda$runOnMainThread$0(Sandbox.java:101)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

Consumed by the FlatPak packaging.
@jamesarich

Copy link
Copy Markdown
Collaborator

Added: Flatpak packaging metadata

This PR now also includes the Linux desktop packaging structure at desktopApp/packaging/linux/:

  • org.meshtastic.desktop.metainfo.xml — AppStream metadata for Flathub/GNOME Software/KDE Discover (description, categories, branding, OARS content rating, release entry)
  • org.meshtastic.desktop.desktop — FreeDesktop launcher file
  • icons/hicolor/scalable/apps/org.meshtastic.desktop.svg — symlink to src/main/resources/icon.svg with the app-ID filename required by the hicolor theme spec and Flatpak icon export

Categories and metadata align with the firmware's org.meshtastic.meshtasticd.metainfo.xml.

Open questions for reviewer

  1. Release date (line 77): 2025-05-01 is a placeholder — should it use the firmware's 2.7.14 date (2025-11-03) or the actual first desktop Flatpak release date?
  2. Branding colors: Currently #47c66e/#2d7d46 (from icon SVG fills). Firmware uses #97be89/#206538. Preview both at https://docs.flathub.org/banner-preview to decide which looks best.

- desktopApp/packaging/linux/org.meshtastic.desktop.metainfo.xml
  AppStream/Flathub metadata: name, summary, description, OARS,
  categories, branding colours, and an initial release entry.

- desktopApp/packaging/linux/org.meshtastic.desktop.desktop
  FreeDesktop launcher file required by Flatpak export and app stores.

- desktopApp/packaging/linux/icons/hicolor/scalable/apps/org.meshtastic.desktop.svg
  Symlink to src/main/resources/icon.svg so the icon has the app-ID
  filename required by the hicolor theme spec and Flatpak icon export
  (only $FLATPAK_ID-named icons are exported to the host).

The files in src/main/resources/ remain unchanged; those serve the
Compose runtime (window/tray icon). The packaging/ tree is the source
for Flatpak build-commands that install to /app/share/{metainfo,
applications, icons/hicolor/scalable/apps}.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jamesarich jamesarich force-pushed the add-icon-svgs branch 2 times, most recently from d7df9a4 to 5f7732c Compare May 28, 2026 16:37
These SVGs are not loaded at runtime (only tray_icon_{black,white}.svg
are used by Compose) and are not referenced by build.gradle.kts native
distributions (which use icon.png/.icns/.ico). Moving them out of
src/main/resources avoids bundling unused artwork into the uber-JAR.

The Flatpak manifest can install them with whatever app-ID filename is
needed at build time.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jamesarich jamesarich changed the title Add Meshtastic Desktop icon SVGs repo: Add Meshtastic Desktop icon SVGs May 28, 2026
@jamesarich jamesarich merged commit 321b73e into main May 28, 2026
18 of 19 checks passed
@jamesarich jamesarich deleted the add-icon-svgs branch May 28, 2026 17:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants