Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .github/workflows/appimage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -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'
Expand Down
33 changes: 33 additions & 0 deletions packaging/io.github.BenStein1.OpenAstroCC.metainfo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
AppStream metadata for OpenAstroCC and the AppImageHub directory.
The screenshot URL points to the actual connected-headset UI image
maintained in this repository, not AppImageHub's 800x600 no-device probe.
-->
<component type="desktop-application">
<id>io.github.BenStein1.OpenAstroCC</id>
<name>OpenAstroCC</name>
<summary>Configure Astro A50 Gen 3 headsets on Linux</summary>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-only</project_license>
<description>
<p>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.</p>
<p>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.</p>
</description>
<launchable type="desktop-id">astro-a50-linux.desktop</launchable>
<icon type="stock">astro-a50-linux</icon>
<url type="homepage">https://github.com/BenStein1/OpenAstroCC</url>
<url type="bugtracker">https://github.com/BenStein1/OpenAstroCC/issues</url>
<url type="help">https://github.com/BenStein1/OpenAstroCC/blob/main/docs/NATIVE-APP.md</url>
<screenshots>
<screenshot type="default">
<caption>OpenAstroCC equalizer and headset controls with an Astro A50 Gen 3 connected</caption>
<image type="source">https://raw.githubusercontent.com/BenStein1/OpenAstroCC/main/docs/assets/openastrocc-main.png</image>
</screenshot>
</screenshots>
</component>
7 changes: 6 additions & 1 deletion scripts/build_appimage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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/"
Expand Down Expand Up @@ -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"

Expand Down
Loading