diff --git a/assets/App Icon/App Icon.png b/assets/App Icon/App Icon.png new file mode 100644 index 0000000..bd93018 Binary files /dev/null and b/assets/App Icon/App Icon.png differ diff --git a/assets/App Icon/App Icon.svg b/assets/App Icon/App Icon.svg new file mode 100644 index 0000000..45aa2c6 --- /dev/null +++ b/assets/App Icon/App Icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/App Icon/App Icon_2x.png b/assets/App Icon/App Icon_2x.png new file mode 100644 index 0000000..806d4ae Binary files /dev/null and b/assets/App Icon/App Icon_2x.png differ diff --git a/assets/App Icon/App Icon_4x.png b/assets/App Icon/App Icon_4x.png new file mode 100644 index 0000000..4958734 Binary files /dev/null and b/assets/App Icon/App Icon_4x.png differ diff --git a/assets/App Icon/App Icon_6x.png b/assets/App Icon/App Icon_6x.png new file mode 100644 index 0000000..1bba271 Binary files /dev/null and b/assets/App Icon/App Icon_6x.png differ diff --git a/build.ts b/build.ts index b851b08..b41e091 100644 --- a/build.ts +++ b/build.ts @@ -116,6 +116,21 @@ if (COMPILE) { const s = join("dist", lib); if (existsSync(s)) copyFileSync(s, join(tarRoot, lib)); } + + // App icon: bundled into every platform tarball; Linux also gets the + // desktop entry so the AUR package can install both system-wide + // (icon to hicolor, entry to applications/). + const iconSrc = join("assets", "App Icon", "App Icon.png"); + if (existsSync(iconSrc)) { + copyFileSync(iconSrc, join(tarRoot, "podtui.png")); + } + if (platform === "linux") { + const desktopSrc = join("packaging", "podtui.desktop"); + if (existsSync(desktopSrc)) { + copyFileSync(desktopSrc, join(tarRoot, "podtui.desktop")); + } + } + const tar = Bun.spawnSync([ "tar", "-czf", diff --git a/packaging/aur/PKGBUILD b/packaging/aur/PKGBUILD index adc24fe..a710ce2 100644 --- a/packaging/aur/PKGBUILD +++ b/packaging/aur/PKGBUILD @@ -51,5 +51,13 @@ package() { install -Dm644 "${srcdir}/${libdir}/libcavacore.so" "${pkgdir}/usr/lib/podtui/libcavacore.so" install -Dm644 "${srcdir}/${libdir}/libopentui.so" "${pkgdir}/usr/lib/podtui/libopentui.so" ln -s /usr/lib/podtui/podtui "${pkgdir}/usr/bin/podtui" + + # App icon + desktop entry ship inside the release tarball; Terminal=true + # makes launchers drop the TUI into a terminal window. + install -Dm644 "${srcdir}/${libdir}/podtui.png" \ + "${pkgdir}/usr/share/icons/hicolor/512x512/apps/podtui.png" + install -Dm644 "${srcdir}/${libdir}/podtui.desktop" \ + "${pkgdir}/usr/share/applications/podtui.desktop" + install -Dm644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" } \ No newline at end of file diff --git a/packaging/podtui.desktop b/packaging/podtui.desktop new file mode 100644 index 0000000..612fef1 --- /dev/null +++ b/packaging/podtui.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Application +Name=PodTui +GenericName=Podcast Player +Comment=Terminal podcast and audio player with waveform visualization +Exec=podtui +Icon=podtui +Terminal=true +Categories=Audio;AudioVideo;Player; +Keywords=podcast;audio;player;terminal; +StartupNotify=false