From e5ec95a5fb795748fc74a39e13e00e11ceae0604 Mon Sep 17 00:00:00 2001 From: Florian Egger Date: Mon, 7 Sep 2026 11:09:00 +0200 Subject: [PATCH] Add app icon (mic + waveform) and fix desktop categories - share/icons/hicolor/: SVG source + PNG fallbacks (48-256 px); the desktop entry now uses Icon=meetrec instead of a stock theme icon - install.sh installs the icon into the hicolor tree, refreshes the GTK icon cache, and cleans up on uninstall - Categories fixed to AudioVideo;Audio per the menu spec (bare Audio is a subcategory requiring its main category); desktop-file-validate is clean now --- README.md | 3 +- install.sh | 11 +++++++- share/applications/meetrec.desktop | 4 +-- share/icons/hicolor/128x128/apps/meetrec.png | Bin 0 -> 4603 bytes share/icons/hicolor/256x256/apps/meetrec.png | Bin 0 -> 9168 bytes share/icons/hicolor/48x48/apps/meetrec.png | Bin 0 -> 1977 bytes share/icons/hicolor/64x64/apps/meetrec.png | Bin 0 -> 2280 bytes share/icons/hicolor/scalable/apps/meetrec.svg | 26 ++++++++++++++++++ 8 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 share/icons/hicolor/128x128/apps/meetrec.png create mode 100644 share/icons/hicolor/256x256/apps/meetrec.png create mode 100644 share/icons/hicolor/48x48/apps/meetrec.png create mode 100644 share/icons/hicolor/64x64/apps/meetrec.png create mode 100644 share/icons/hicolor/scalable/apps/meetrec.svg diff --git a/README.md b/README.md index 6b4a1cb..e11ad37 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ This: 1. copies the app to `~/.local/share/meetrec`, 2. creates a venv and installs all dependencies, 3. installs the `meetrec` (GUI) and `meetrec-cli` launchers into `~/.local/bin`, -4. installs the XDG desktop entry (`~/.local/share/applications/meetrec.desktop`), +4. installs the XDG desktop entry and icon (app menu shows **MeetRec** with its own red mic icon), 5. pre-downloads the `small` Whisper model (first run is otherwise slow). Options: @@ -139,6 +139,7 @@ install.sh install / uninstall into a local prefix bin/meetrec GUI launcher (installed into ~/.local/bin) bin/meetrec-cli CLI launcher (installed into ~/.local/bin) share/applications/meetrec.desktop XDG desktop entry +share/icons/hicolor/ app icon (SVG + PNG fallbacks) android/ native Android app (Kotlin + whisper.cpp JNI) ``` diff --git a/install.sh b/install.sh index 69169b8..eef5b5a 100755 --- a/install.sh +++ b/install.sh @@ -58,6 +58,7 @@ if [ "$UNINSTALL" = 1 ]; then rm -rf "$APP_DIR" rm -f "$BIN_DIR/meetrec" "$BIN_DIR/meetrec-cli" rm -f "$DESKTOP_DIR/meetrec.desktop" + find "$PREFIX/share/icons/hicolor" -name 'meetrec.*' -type f -delete 2>/dev/null || true if command -v update-desktop-database >/dev/null 2>&1; then update-desktop-database "$DESKTOP_DIR" 2>/dev/null || true fi @@ -150,12 +151,20 @@ if [ -x "$PREFIX/share/meetrec/whisper-cpp/bin/whisper-cli" ]; then echo " (whisper.cpp engine installed — select 'whisper-cpp' to use the GPU)" fi -echo "==> Installing XDG desktop entry" +echo "==> Installing XDG desktop entry and icon" install -m 0644 "$SCRIPT_DIR/share/applications/meetrec.desktop" \ "$DESKTOP_DIR/meetrec.desktop" +for f in "$SCRIPT_DIR"/share/icons/hicolor/*/apps/meetrec.* \ + "$SCRIPT_DIR"/share/icons/hicolor/scalable/apps/meetrec.svg; do + rel="${f#"$SCRIPT_DIR"/share/icons/}" + install -Dm 0644 "$f" "$PREFIX/share/icons/$rel" +done if command -v update-desktop-database >/dev/null 2>&1; then update-desktop-database "$DESKTOP_DIR" 2>/dev/null || true fi +if command -v gtk-update-icon-cache >/dev/null 2>&1; then + gtk-update-icon-cache -q -t -f "$PREFIX/share/icons/hicolor" 2>/dev/null || true +fi if [ "$DOWNLOAD_MODEL" = 1 ]; then echo "==> Pre-downloading Whisper model '$MODEL' (first run only, can take a while)" diff --git a/share/applications/meetrec.desktop b/share/applications/meetrec.desktop index bba3f05..1e875c8 100644 --- a/share/applications/meetrec.desktop +++ b/share/applications/meetrec.desktop @@ -5,8 +5,8 @@ Name=MeetRec GenericName=Meeting Recorder Comment=Record in-person meetings and transcribe them with Whisper Exec=meetrec -Icon=audio-microphone +Icon=meetrec Terminal=false -Categories=Audio; +Categories=AudioVideo;Audio; Keywords=meeting;recording;recorder;transcription;transcript;whisper;audio;microphone; StartupNotify=true diff --git a/share/icons/hicolor/128x128/apps/meetrec.png b/share/icons/hicolor/128x128/apps/meetrec.png new file mode 100644 index 0000000000000000000000000000000000000000..b97e34d02909a65fd29243a6d328cb43d1ee684a GIT binary patch literal 4603 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 literal 0 HcmV?d00001 diff --git a/share/icons/hicolor/256x256/apps/meetrec.png b/share/icons/hicolor/256x256/apps/meetrec.png new file mode 100644 index 0000000000000000000000000000000000000000..9fc962b0f127fe15511fea743a94cfa47b3ad358 GIT binary patch literal 9168 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 + + MeetRec + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file