Skip to content

xifan2333/fcitx5-vinput

Repository files navigation

fcitx5-vinput

Voice input for Fcitx5 — local and cloud ASR, LLM rewriting, cross-distro packages

License CI Release AUR Downloads

English | 中文 | Documentation

demo.mp4

Features

  • Two trigger modes — tap to toggle recording, or hold to push-to-talk
  • Local & cloud ASR — offline sherpa-onnx models or cloud providers (Doubao, Aliyun Bailian, ElevenLabs, OpenAI-compatible), switchable at runtime with F8
  • LLM post-processing — error correction, formatting, translation via scenes
  • Command mode — select text, speak an instruction, release to apply
  • GUI & CLIvinput-gui for quick setup, vinput CLI for full control
  • Cross-distro — Arch, Fedora, Ubuntu/Debian, Nix, Flatpak

Installation

Arch Linux (AUR)

yay -S fcitx5-vinput-bin

Fedora (COPR)

sudo dnf copr enable xifan/fcitx5-vinput-bin
sudo dnf install fcitx5-vinput

Ubuntu 24.04 (PPA)

sudo add-apt-repository ppa:xifan233/ppa
sudo apt update
sudo apt install fcitx5-vinput

Ubuntu / Debian (manual)

# Download latest .deb from GitHub Releases
sudo dpkg -i fcitx5-vinput_*.deb
sudo apt-get install -f

Nix (flake)

Supports x86_64-linux and aarch64-linux.

inputs.fcitx5-vinput.url = "github:xifan2333/fcitx5-vinput";

Binary cache via Cachix:

nixConfig = {
  extra-substituters = [ "https://fcitx5-vinput.cachix.org" ];
  extra-trusted-public-keys = [ "fcitx5-vinput.cachix.org-1:XpX3AA6+dDIX4qJhb1QM7sbTwX6/qSlGvW8Z5NK6XdU=" ];
};

Full Home Manager example in the install docs.

Flatpak

flatpak remote-add --if-not-exists xifan https://xifan2333.github.io/flatpak-auto/xifan.flatpakrepo
flatpak install https://xifan2333.github.io/flatpak-auto/refs/org.fcitx.Fcitx5.Addon.Vinput.flatpakref

Other distributions

Download the package for your system from GitHub Releases:

  • Debian / Linux Mint / Ubuntu (other): .deb
  • openSUSE / Fedora (other): .rpm
  • Arch-based: .pkg.tar.zst
  • Flatpak: .flatpak
  • Generic Linux: _bundled.tar.gz

Build from source

Dependencies: cmake, fcitx5, pipewire, libcurl, nlohmann-json, CLI11, Qt6

sudo bash scripts/build-sherpa-onnx.sh
cmake --preset release-clang-mold
cmake --build --preset release-clang-mold
sudo cmake --install build

Quick start

systemctl --user enable --now vinput-daemon.service
fcitx5 -r

Open Vinput GUIResources → Models → download and activate a model. Then:

  • Tap Alt_R — start/stop recording
  • Hold Alt_R — push-to-talk

Key bindings

Key Default Function
Trigger Key Alt_R Tap to toggle recording; hold to push-to-talk
Command Key Control_R Hold after selecting text to modify with voice
ASR Menu Key F8 Open ASR provider / model switcher
Scene Menu Key Shift_R Open scene switcher

All keys can be customized in Fcitx5 configuration.

Documentation

For ASR configuration, scenes & LLM setup, CLI reference, and registry contribution guide, see the documentation site.

License

GPL-3.0

Sponsor

If this project has been helpful to you, feel free to support it.

Donate

About

Voice input for Fcitx5 — local and cloud ASR, LLM rewriting, cross-distro packages

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors