Skip to content

Installation

Requirements

From a distribution package

Every release is built on the openSUSE Build Service for the distributions below. Add the repository once; after that, new releases arrive with your normal system updates. Each repository is signed, and the commands import its key.

Packages are built for x86-64 on every distribution listed; Fedora 44 and openSUSE Leap 16.0 also get 64-bit ARM packages.

sudo zypper addrepo https://download.opensuse.org/repositories/home:/blago:/dragomand/openSUSE_Tumbleweed/home:blago:dragomand.repo
sudo zypper refresh
sudo zypper install dragomand
sudo zypper install dragomand-model-bg   # optional: Bulgarian models, see below

zypper refresh asks whether to trust the repository key; answer a to trust it always.

sudo zypper addrepo https://download.opensuse.org/repositories/home:/blago:/dragomand/openSUSE_Slowroll/home:blago:dragomand.repo
sudo zypper refresh
sudo zypper install dragomand
sudo zypper install dragomand-model-bg   # optional: Bulgarian models, see below

zypper refresh asks whether to trust the repository key; answer a to trust it always.

sudo zypper addrepo https://download.opensuse.org/repositories/home:/blago:/dragomand/16.0/home:blago:dragomand.repo
sudo zypper refresh
sudo zypper install dragomand
sudo zypper install dragomand-model-bg   # optional: Bulgarian models, see below

zypper refresh asks whether to trust the repository key; answer a to trust it always.

sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:/blago:/dragomand/Fedora_44/home:blago:dragomand.repo
sudo dnf install dragomand
sudo dnf install dragomand-model-bg      # optional: Bulgarian models, see below

dnf shows the repository key's fingerprint on first use and asks you to confirm it.

For Debian 13 (trixie):

If curl is missing, install it first with sudo apt install curl.

curl -fsSL https://download.opensuse.org/repositories/home:/blago:/dragomand/Debian_13/Release.key \
  | sudo tee /etc/apt/keyrings/dragomand.asc > /dev/null
echo 'deb [signed-by=/etc/apt/keyrings/dragomand.asc] https://download.opensuse.org/repositories/home:/blago:/dragomand/Debian_13/ /' \
  | sudo tee /etc/apt/sources.list.d/dragomand.list
sudo apt update
sudo apt install dragomand
sudo apt install dragomand-model-bg      # optional: Bulgarian models, see below

On Debian testing or unstable, replace Debian_13 in both URLs with Debian_Testing or Debian_Unstable.

If curl is missing, install it first with sudo apt install curl.

curl -fsSL https://download.opensuse.org/repositories/home:/blago:/dragomand/xUbuntu_26.04/Release.key \
  | sudo tee /etc/apt/keyrings/dragomand.asc > /dev/null
echo 'deb [signed-by=/etc/apt/keyrings/dragomand.asc] https://download.opensuse.org/repositories/home:/blago:/dragomand/xUbuntu_26.04/ /' \
  | sudo tee /etc/apt/sources.list.d/dragomand.list
sudo apt update
sudo apt install dragomand
sudo apt install dragomand-model-bg      # optional: Bulgarian models, see below

Import and locally sign the repository key, add the repository to /etc/pacman.conf, then install:

key=$(curl -fsSL https://download.opensuse.org/repositories/home:/blago:/dragomand/Arch/x86_64/home_blago_dragomand_Arch.key)
fingerprint=$(gpg --quiet --with-colons --import-options show-only --import --fingerprint <<< "$key" \
  | awk -F: '$1 == "fpr" { print $10; exit }')
sudo pacman-key --add - <<< "$key"
sudo pacman-key --lsign-key "$fingerprint"

printf '\n[home_blago_dragomand_Arch]\nServer = https://download.opensuse.org/repositories/home:/blago:/dragomand/Arch/$arch\n' \
  | sudo tee -a /etc/pacman.conf
sudo pacman -Syu dragomand
sudo pacman -S dragomand-model-bg        # optional: Bulgarian models, see below

The $arch in the Server line is literal: pacman fills it in.

Language models

The dragomand package holds no models: by default each language pair downloads from Mozilla the first time you use it, into your home directory. For machines without network access, or to skip that first download, install model packages instead. There is one per language, named dragomand-model- plus the language code, holding every direction between that language and English: dragomand-model-bg, dragomand-model-de, dragomand-model-zh-hans and so on. Translating between two non-English languages works through English when both are installed. Packaged models live in the read-only system store /usr/share/dragomand/models and update with your system.

To install every language at once, install dragomand-models-all, a meta package that depends on all of them (roughly 3 GB), with the same package manager command as above.

To try the first translation, see the Quick start.

On Debian and Ubuntu the BLAS implementation is chosen through the libblas.so.3 alternatives system; on Fedora, FlexiBLAS is picked up directly. OpenBLAS is the recommended implementation everywhere.

A package installs:

File Path
Daemon (not in PATH) /usr/lib/dragomand/dragomand
Command line client /usr/bin/dragomanctl
systemd user unit /usr/lib/systemd/user/dragomand.service
Update timer (opt-in) /usr/lib/systemd/user/dragomand-update.{service,timer}
D-Bus activation /usr/share/dbus-1/services/dev.l10n_bg.dragomand.Translator1.service
D-Bus interface description /usr/share/dbus-1/interfaces/dev.l10n_bg.dragomand.Translator1.xml
Icon /usr/share/icons/hicolor/scalable/apps/dev.l10n_bg.dragomand.svg
Licenses /usr/share/licenses/dragomand/

Nothing to enable

There is no service to enable or start. The daemon is D-Bus activated: the first call to its bus name starts it, and it exits on its own after a short idle period. systemctl --user status dragomand.service shows it only while it is actually running.

The weekly model update timer is the one opt-in piece:

systemctl --user enable --now dragomand-update.timer

Without the timer, models are only updated when you run dragomanctl update yourself.

From source

The source lives at github.com/VuteTech/dragomand. The build has two stages: the C++ engine first, then the Rust workspace.

git clone https://github.com/VuteTech/dragomand.git
cd dragomand

# 1. The engine (slow the first time; ccache helps on rebuilds)
cmake -S engine -B engine/build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build engine/build -j 4

# 2. The daemon and the client
export DRAGOMAN_ENGINE_LIB_DIR=$PWD/engine/build
cargo build --release --locked --workspace

Notes:

Models for offline machines

Models normally download on first use. For machines without network access, either copy a filled user store from another machine, or build a model package that installs into the read-only system store:

dragomanctl store install --root "$pkgdir/usr/share/dragomand/models" bg-en en-bg

packaging/examples/dragomand-model-bg-en/PKGBUILD is a complete example. See Managing models for how the stores fit together.

Desktop applications

The graphical clients are separate packages in the same repository as Dragomand, so the daemon never pulls in KDE dependencies:

Package What it is
krakoman Krakoman, the graphical translator
dragoman-kcm The KDE System Settings module
dragoman-plasmoid The Plasma widget
dragoman-ktexteditor The KTextEditor plugin for Kate, KWrite and KDevelop