The fork takes its own name everywhere a user can see it: binaries (voculinux, voculinux-gui), desktop entry, autostart, tray, D-Bus namespace (com.voculinux.Voculinux, no alias for the old name), config/data/cache dirs, single-instance lock, IBus engine identity, tray icons, resource prefixes, VOCULINUX_* environment names, and the update-checker user agent. The internal Python module stays vocalinux and the distribution metadata keeps the upstream URLs as provenance. On first run a previous Vocalinux install's config.json, custom dictionary, and portal restore token are copied once into the new locations (new config always wins, no merge, no write-back); models re-resolve through the pinned-checksum download path. An offline naming-sweep test proves no old-name strings remain on user-visible surfaces outside the allowlist. Refs #18
140 lines
5.2 KiB
YAML
140 lines
5.2 KiB
YAML
app-id: com.voculinux.Voculinux
|
|
branch: stable
|
|
runtime: org.gnome.Platform
|
|
runtime-version: "50"
|
|
sdk: org.gnome.Sdk
|
|
command: voculinux
|
|
|
|
build-options:
|
|
env:
|
|
NO_REPAIR: "1"
|
|
PYWHISPERCPP_VERSION: "1.5.0"
|
|
|
|
finish-args:
|
|
# Download speech-recognition models on first run.
|
|
- --share=network
|
|
# Shared memory for X11 / XWayland.
|
|
- --share=ipc
|
|
# X11 for xdotool fallback; Wayland for wl-copy (instant paste into native apps).
|
|
# Injection prefers the RemoteDesktop portal (DBus, keysyms) and falls back
|
|
# to ydotool/uinput -- not the Wayland virtual-keyboard protocol.
|
|
- --socket=x11
|
|
- --socket=wayland
|
|
# Microphone capture (works against PulseAudio and PipeWire-pulse).
|
|
- --socket=pulseaudio
|
|
# GPU render node for the Vulkan-accelerated whisper.cpp build.
|
|
- --device=dri
|
|
# /dev/input for evdev hotkeys on Wayland/XWayland and /dev/uinput for ydotool
|
|
# injection fallback (Ctrl+V / type) when the RemoteDesktop portal is
|
|
# unavailable. Flatpak has no narrower flag than "all" for uinput.
|
|
- --device=all
|
|
# IBus Unicode injection backend.
|
|
- --talk-name=org.freedesktop.IBus
|
|
# Desktop notifications.
|
|
- --talk-name=org.freedesktop.Notifications
|
|
# System tray / status-notifier icon.
|
|
- --talk-name=org.kde.StatusNotifierWatcher
|
|
- --talk-name=org.gnome.Shell
|
|
# Find the bundled AppIndicator typelib under /app (searched before the runtime).
|
|
- --env=GI_TYPELIB_PATH=/app/lib/girepository-1.0
|
|
|
|
modules:
|
|
- name: portaudio
|
|
buildsystem: cmake-ninja
|
|
config-opts:
|
|
- -DCMAKE_BUILD_TYPE=Release
|
|
- -DCMAKE_INSTALL_PREFIX=/app
|
|
- -DCMAKE_POLICY_VERSION_MINIMUM=3.5
|
|
cleanup:
|
|
- /include
|
|
- /lib/cmake
|
|
- /lib/pkgconfig
|
|
- "*.a"
|
|
- "*.la"
|
|
sources:
|
|
- type: archive
|
|
url: https://github.com/PortAudio/portaudio/archive/refs/tags/v19.7.0.tar.gz
|
|
sha256: 5af29ba58bbdbb7bbcefaaecc77ec8fc413f0db6f4c4e286c40c3e1b83174fa0
|
|
|
|
- shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json
|
|
- name: xsel
|
|
buildsystem: simple
|
|
build-commands:
|
|
- autoreconf -fi
|
|
- ./configure --prefix=/app
|
|
- make
|
|
- make install
|
|
cleanup:
|
|
- /share/man
|
|
sources:
|
|
- type: archive
|
|
url: https://github.com/kfish/xsel/archive/refs/tags/1.2.1.tar.gz
|
|
sha256: 18487761f5ca626a036d65ef2db8ad9923bf61685e06e7533676c56d7d60eb14
|
|
|
|
- name: xdotool
|
|
buildsystem: simple
|
|
build-commands:
|
|
- make
|
|
- make install PREFIX=/app
|
|
sources:
|
|
- type: archive
|
|
url: https://github.com/jordansissel/xdotool/archive/refs/tags/v3.20211022.1.tar.gz
|
|
sha256: 82b15a944a5e82fee15e0f6116bd9f642bc3d0bb6989fc0ca5ad9dfe35de0847
|
|
|
|
# Wayland clipboard for bulk paste (wl-copy + ydotool Ctrl+V).
|
|
- name: wl-clipboard
|
|
buildsystem: meson
|
|
config-opts:
|
|
- -Dfishcompletiondir=no
|
|
- -Dzshcompletiondir=no
|
|
cleanup:
|
|
- /share/man
|
|
- /share/bash-completion
|
|
sources:
|
|
- type: archive
|
|
url: https://github.com/bugaevc/wl-clipboard/archive/refs/tags/v2.2.1.tar.gz
|
|
sha256: 6eb8081207fb5581d1d82c4bcd9587205a31a3d47bea3ebeb7f41aa1143783eb
|
|
|
|
# uinput-based typing / paste chords for native Wayland clients.
|
|
# Pinned to v1.0.4 (keycode:value key API). Distro 0.1.x uses "ctrl+v" instead;
|
|
# voculinux detects the installed CLI at runtime (see TextInjector).
|
|
- name: ydotool
|
|
buildsystem: cmake-ninja
|
|
config-opts:
|
|
- -DCMAKE_BUILD_TYPE=Release
|
|
# CMake 4.x in GNOME SDK rejects projects declaring min < 3.5.
|
|
- -DCMAKE_POLICY_VERSION_MINIMUM=3.5
|
|
cleanup:
|
|
- /share/man
|
|
sources:
|
|
- type: archive
|
|
url: https://github.com/ReimuNotMoe/ydotool/archive/refs/tags/v1.0.4.tar.gz
|
|
sha256: ba075a43aa6ead51940e892ecffa4d0b8b40c241e4e2bc4bd9bd26b61fde23bd
|
|
x-checker-data:
|
|
type: anitya
|
|
project-id: 138160
|
|
stable-only: true
|
|
url-template: https://github.com/ReimuNotMoe/ydotool/archive/refs/tags/v$version.tar.gz
|
|
- type: shell
|
|
commands:
|
|
# scdoc is not in the SDK; man pages are not needed in the sandbox.
|
|
- sed -i '/add_subdirectory(manpage)/d' CMakeLists.txt
|
|
- sed -i 's/project(ydotool C)/project(ydotool C)\nadd_definitions(-DVERSION=\\"1.0.4\\")/' CMakeLists.txt
|
|
|
|
- python3-build-dependencies.yaml
|
|
- python3-dependencies.yaml
|
|
|
|
- name: voculinux
|
|
buildsystem: simple
|
|
build-commands:
|
|
- pip3 install --no-deps --no-build-isolation --prefix=/app .
|
|
- install -Dm644 packaging/flatpak/com.voculinux.Voculinux.desktop -t /app/share/applications/
|
|
- install -Dm644 resources/icons/scalable/voculinux.svg /app/share/icons/hicolor/scalable/apps/com.voculinux.Voculinux.svg
|
|
- install -Dm644 resources/icons/scalable/voculinux-microphone-off.svg /app/share/icons/hicolor/scalable/apps/com.voculinux.Voculinux-microphone-off.svg
|
|
- install -Dm644 resources/icons/scalable/voculinux-microphone.svg /app/share/icons/hicolor/scalable/apps/com.voculinux.Voculinux-microphone.svg
|
|
- install -Dm644 resources/icons/scalable/voculinux-microphone-process.svg /app/share/icons/hicolor/scalable/apps/com.voculinux.Voculinux-microphone-process.svg
|
|
- install -Dm644 packaging/flatpak/com.voculinux.Voculinux.metainfo.xml -t /app/share/metainfo/
|
|
sources:
|
|
- type: dir
|
|
path: ../..
|