From 8559afb99023b5e376bc8006fba932d4afb9ee1f Mon Sep 17 00:00:00 2001 From: Ben Conner <19318632+BenStein1@users.noreply.github.com> Date: Sun, 25 Oct 2026 06:21:18 -0700 Subject: [PATCH 1/3] Add AppStream catalog metadata and connected-headset screenshot --- ....github.BenStein1.OpenAstroCC.metainfo.xml | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 packaging/io.github.BenStein1.OpenAstroCC.metainfo.xml diff --git a/packaging/io.github.BenStein1.OpenAstroCC.metainfo.xml b/packaging/io.github.BenStein1.OpenAstroCC.metainfo.xml new file mode 100644 index 0000000..c907d17 --- /dev/null +++ b/packaging/io.github.BenStein1.OpenAstroCC.metainfo.xml @@ -0,0 +1,33 @@ + + + + io.github.BenStein1.OpenAstroCC + OpenAstroCC + Configure Astro A50 Gen 3 headsets on Linux + CC0-1.0 + GPL-3.0-only + +

OpenAstroCC is an open-source native Linux control panel for the Astro A50 + Gen 3 headset and base station. It replaces the Windows-only command center + for supported headset settings without requiring proprietary software.

+

Edit five-band equalizer profiles visually, choose or save EQ presets, + adjust microphone and sidetone options, inspect battery and charging + status, and back up or restore headset settings. Linux audio setup helps + configure separate Game and Voice streams.

+
+ astro-a50-linux.desktop + astro-a50-linux + https://github.com/BenStein1/OpenAstroCC + https://github.com/BenStein1/OpenAstroCC/issues + https://github.com/BenStein1/OpenAstroCC/blob/main/docs/NATIVE-APP.md + + + OpenAstroCC equalizer and headset controls with an Astro A50 Gen 3 connected + https://raw.githubusercontent.com/BenStein1/OpenAstroCC/main/docs/assets/openastrocc-main.png + + +
From 16ac3be86f6943b2f727fcf19b006f6a706af5a4 Mon Sep 17 00:00:00 2001 From: Ben Conner <19318632+BenStein1@users.noreply.github.com> Date: Sun, 25 Oct 2026 06:21:45 -0700 Subject: [PATCH 2/3] Embed AppStream metadata alongside existing packaged icon and desktop entry --- scripts/build_appimage.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/build_appimage.sh b/scripts/build_appimage.sh index c9f4a82..215546d 100644 --- a/scripts/build_appimage.sh +++ b/scripts/build_appimage.sh @@ -35,7 +35,8 @@ python3 scripts/bundle_qt_xcb.py "$root/dist/pyinstaller/astro-a50-linux/_intern rm -rf "$appdir" mkdir -p "$appdir/usr/lib" "$appdir/usr/share/doc/astro-a50-linux" \ - "$appdir/usr/share/icons/hicolor/256x256/apps" + "$appdir/usr/share/icons/hicolor/256x256/apps" \ + "$appdir/usr/share/metainfo" "$appdir/usr/share/applications" cp -a dist/pyinstaller/astro-a50-linux "$appdir/usr/lib/" cp LICENSE "$appdir/usr/share/doc/astro-a50-linux/LICENSE" cp docs/THIRD_PARTY_NOTICES.md "$appdir/usr/share/doc/astro-a50-linux/" @@ -70,6 +71,10 @@ if not make_icon().pixmap(256, 256).save("dist/AppDir/usr/share/icons/hicolor/25 PY cp packaging/astro-a50-linux.desktop "$appdir/astro-a50-linux.desktop" +# AppStream metadata carries the actual application screenshot for app catalogs; +# keep the desktop ID and icon consistent with the existing application. +cp packaging/astro-a50-linux.desktop "$appdir/usr/share/applications/astro-a50-linux.desktop" +cp packaging/io.github.BenStein1.OpenAstroCC.metainfo.xml "$appdir/usr/share/metainfo/" ln -s usr/share/icons/hicolor/256x256/apps/astro-a50-linux.png "$appdir/astro-a50-linux.png" ln -s astro-a50-linux.png "$appdir/.DirIcon" From db7210548c5503adf0578597aa60c45a599dbc1e Mon Sep 17 00:00:00 2001 From: Ben Conner <19318632+BenStein1@users.noreply.github.com> Date: Sun, 25 Oct 2026 06:21:58 -0700 Subject: [PATCH 3/3] Validate AppStream metadata and packaged icon in release CI --- .github/workflows/appimage.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index bd8c15f..0efee50 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -26,7 +26,7 @@ jobs: - name: Install build and Qt runtime dependencies run: | sudo apt-get update - sudo apt-get install -y libgl1 libegl1 libopengl0 xvfb xauth curl \ + sudo apt-get install -y libgl1 libegl1 libopengl0 xvfb xauth curl appstream desktop-file-utils \ libxkbcommon-x11-0 libxcb-cursor0 libxcb-icccm4 libxcb-image0 \ libxcb-keysyms1 libxcb-render-util0 libxcb-util1 libxcb-xkb1 \ libxcb-xinput0 libxcb-xinerama0 libxcb-shape0 libxcb-shm0 \ @@ -41,6 +41,13 @@ jobs: timeout 120s python tools/check_gui.py - name: Build executable AppImage (with license files) run: bash scripts/build_appimage.sh + - name: Validate AppStream desktop integration and screenshot metadata + run: | + desktop-file-validate packaging/astro-a50-linux.desktop + appstreamcli validate --no-net packaging/io.github.BenStein1.OpenAstroCC.metainfo.xml + test -s dist/AppDir/usr/share/metainfo/io.github.BenStein1.OpenAstroCC.metainfo.xml + test -s dist/AppDir/usr/share/applications/astro-a50-linux.desktop + test -s dist/AppDir/usr/share/icons/hicolor/256x256/apps/astro-a50-linux.png - name: Smoke-test bundled AppImage (offline; no headset writes) env: APPIMAGE_EXTRACT_AND_RUN: '1'