Files
omarchy-pkgs/pkgbuilds/voxtype-bin/PKGBUILD
T
2026-05-08 01:04:52 -04:00

122 lines
6.7 KiB
Bash

# Maintainer: Peter Jackson <pete@peteonrails.com>
pkgname=voxtype-bin
pkgver=0.6.6
pkgrel=2
pkgdesc="Push-to-talk voice-to-text for Linux (pre-built binaries)"
arch=('x86_64')
url="https://voxtype.io"
license=('MIT')
depends=(
'alsa-lib'
'curl'
'gcc-libs'
'glibc'
)
optdepends=(
'wtype: keyboard simulation for Wayland (recommended, best CJK support)'
'dotool: keyboard simulation with layout support (KDE/GNOME compatible)'
'ydotool: keyboard simulation fallback (X11/TTY support)'
'wl-clipboard: clipboard support'
'libnotify: desktop notifications'
'pipewire: audio server (recommended)'
'pipewire-alsa: ALSA compatibility for PipeWire (required if using PipeWire)'
'pulseaudio: audio server (alternative to PipeWire)'
'vulkan-icd-loader: GPU acceleration via Vulkan for Whisper (enable with: voxtype setup gpu --enable)'
'cuda: GPU acceleration via CUDA for ONNX engines (NVIDIA GPUs)'
'rocm-hip-runtime: GPU acceleration via ROCm for ONNX engines (AMD GPUs)'
'ollama: local AI summarization for meeting mode'
)
provides=('voxtype')
conflicts=('voxtype')
backup=('etc/voxtype/config.toml')
install=voxtype-bin.install
validpgpkeys=('E79F5BAF8CD51A806AA27DBB7DA2709247D75BC6') # Peter Jackson <pete@peteonrails.com>
_github="https://github.com/peteonrails/voxtype/releases/download/v$pkgver"
source=(
# Whisper binaries
"voxtype-$pkgver-avx2::$_github/voxtype-$pkgver-linux-x86_64-avx2"
"voxtype-$pkgver-avx2.asc::$_github/voxtype-$pkgver-linux-x86_64-avx2.asc"
"voxtype-$pkgver-avx512::$_github/voxtype-$pkgver-linux-x86_64-avx512"
"voxtype-$pkgver-avx512.asc::$_github/voxtype-$pkgver-linux-x86_64-avx512.asc"
"voxtype-$pkgver-vulkan::$_github/voxtype-$pkgver-linux-x86_64-vulkan"
"voxtype-$pkgver-vulkan.asc::$_github/voxtype-$pkgver-linux-x86_64-vulkan.asc"
# ONNX binaries (all ONNX engines: Parakeet, Moonshine, SenseVoice, Paraformer, Dolphin, Omnilingual)
"voxtype-$pkgver-onnx-avx2::$_github/voxtype-$pkgver-linux-x86_64-onnx-avx2"
"voxtype-$pkgver-onnx-avx2.asc::$_github/voxtype-$pkgver-linux-x86_64-onnx-avx2.asc"
"voxtype-$pkgver-onnx-avx512::$_github/voxtype-$pkgver-linux-x86_64-onnx-avx512"
"voxtype-$pkgver-onnx-avx512.asc::$_github/voxtype-$pkgver-linux-x86_64-onnx-avx512.asc"
"voxtype-$pkgver-onnx-cuda::$_github/voxtype-$pkgver-linux-x86_64-onnx-cuda"
"voxtype-$pkgver-onnx-cuda.asc::$_github/voxtype-$pkgver-linux-x86_64-onnx-cuda.asc"
"voxtype-$pkgver-onnx-rocm::$_github/voxtype-$pkgver-linux-x86_64-onnx-rocm"
"voxtype-$pkgver-onnx-rocm.asc::$_github/voxtype-$pkgver-linux-x86_64-onnx-rocm.asc"
# Config and support files
"config-$pkgver.toml::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/config/default.toml"
"voxtype-$pkgver.service::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/packaging/systemd/voxtype.service"
"voxtype-$pkgver.bash::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/packaging/completions/voxtype.bash"
"voxtype-$pkgver.zsh::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/packaging/completions/voxtype.zsh"
"voxtype-$pkgver.fish::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/packaging/completions/voxtype.fish"
"LICENSE-$pkgver::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/LICENSE"
"README-$pkgver.md::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/README.md"
)
sha256sums=(
# Whisper binaries
'505933791bb9389ef851813c404eefe63b186eba3aa842b2b321a164ecb8a6db' # voxtype-avx2
'SKIP' # voxtype-avx2.asc
'ad9631c1fa810cab0749d66b73a549b6634047bbe36f004ad52d24acf969a467' # voxtype-avx512
'SKIP' # voxtype-avx512.asc
'2f7cf1bb199c2d25cae6566c2df0bbe62d39e712f9abea329cb2d563a3b548fe' # voxtype-vulkan
'SKIP' # voxtype-vulkan.asc
# ONNX binaries
'300d040d682e39fdb3a5beca4814cdd1bc127d61efaea917ea43031193aba92f' # voxtype-onnx-avx2
'SKIP' # voxtype-onnx-avx2.asc
'3799fb9a6d5d59e132286b8c5f7166d849a746dcd255d2b24b77c87a3bd9fbb6' # voxtype-onnx-avx512
'SKIP' # voxtype-onnx-avx512.asc
'ce130d9190274b84c61c974dbeeb3d92c308285f40d4d0befaa135be49af1a09' # voxtype-onnx-cuda
'SKIP' # voxtype-onnx-cuda.asc
'456026cc5b0122b3f99a52691c82579bda16d1c36bd739a378b7b1ea24f1294f' # voxtype-onnx-rocm
'SKIP' # voxtype-onnx-rocm.asc
# Config and support files
'SKIP' # config.toml
'SKIP' # voxtype.service
'SKIP' # voxtype.bash
'SKIP' # voxtype.zsh
'SKIP' # voxtype.fish
'SKIP' # LICENSE
'SKIP' # README.md
)
package() {
# Install Whisper CPU binaries to /usr/lib/voxtype/
install -Dm755 "$srcdir/voxtype-$pkgver-avx2" "$pkgdir/usr/lib/voxtype/voxtype-avx2"
install -Dm755 "$srcdir/voxtype-$pkgver-avx512" "$pkgdir/usr/lib/voxtype/voxtype-avx512"
# Install Whisper Vulkan GPU binary
install -Dm755 "$srcdir/voxtype-$pkgver-vulkan" "$pkgdir/usr/lib/voxtype/voxtype-vulkan"
# Install ONNX binaries (all ONNX engines)
install -Dm755 "$srcdir/voxtype-$pkgver-onnx-avx2" "$pkgdir/usr/lib/voxtype/voxtype-onnx-avx2"
install -Dm755 "$srcdir/voxtype-$pkgver-onnx-avx512" "$pkgdir/usr/lib/voxtype/voxtype-onnx-avx512"
install -Dm755 "$srcdir/voxtype-$pkgver-onnx-cuda" "$pkgdir/usr/lib/voxtype/voxtype-onnx-cuda"
install -Dm755 "$srcdir/voxtype-$pkgver-onnx-rocm" "$pkgdir/usr/lib/voxtype/voxtype-onnx-rocm"
# /usr/bin/voxtype symlink is managed by the .install script
# to preserve user-configured backends across upgrades
# Install default configuration
install -Dm644 "$srcdir/config-$pkgver.toml" "$pkgdir/etc/voxtype/config.toml"
# Install systemd user service
install -Dm644 "$srcdir/voxtype-$pkgver.service" "$pkgdir/usr/lib/systemd/user/voxtype.service"
# Install documentation
install -Dm644 "$srcdir/README-$pkgver.md" "$pkgdir/usr/share/doc/$pkgname/README.md"
# Install license
install -Dm644 "$srcdir/LICENSE-$pkgver" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
# Install shell completions
install -Dm644 "$srcdir/voxtype-$pkgver.bash" "$pkgdir/usr/share/bash-completion/completions/voxtype"
install -Dm644 "$srcdir/voxtype-$pkgver.zsh" "$pkgdir/usr/share/zsh/site-functions/_voxtype"
install -Dm644 "$srcdir/voxtype-$pkgver.fish" "$pkgdir/usr/share/fish/vendor_completions.d/voxtype.fish"
}