Files
voculinux/packaging/flatpak/com.voculinux.Voculinux.yml
T
soubarnak ea7be5f111 feat(identity): rename user-visible identity to voculinux with one-time legacy import
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
2026-11-06 01:29:39 +05:30

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: ../..