Skip to content

v1.3.3 — Cross-distro packaging consistency

Choose a tag to compare

@rcspam rcspam released this 07 May 18:53
· 586 commits to master since this release

Patch release fixing silent breakage on fresh installs across distros — particularly Arch — and closing two ClarkBoggle issues.

🔧 Cross-distro packaging consistency

Several fixes were already shipping on .deb and .rpm for months but had silently regressed on Arch. Same code, same dictee, same wizard — but Arch fresh installs ended up with broken PTT, broken LibreTranslate, and a runtime falsely claiming an NVIDIA GPU on AMD machines. v1.3.3 reaches feature parity:

  • Arch .install hooks now add input / docker groups at install time — postinst .deb / %post .rpm already did this; Arch was the odd one out, leaving fresh users with a silently broken dictee-ptt shortcut and a "permission denied" LibreTranslate even after a successful wizard run. (ee3807f)
  • python-evdev promoted to hard depends on Arch — was an optdepends, so pacman never installed it. Without it, dictee-ptt fell back to a "raw" mode that leaked the PTT key to focused apps. (15ccb58)
  • udev rule shipped in mode 0660 directly0620 (write-only group) breaks python-evdev UInput's O_RDWR open. Used to be sed'd to 0660 only at postinst, missing the tarball install path entirely. Drop-in 81-dictee-uinput.rules added on Arch as well, where the AUR dotool package's 0620 rule kept being restored on its upgrades. (d9c8eaa, 2b7cba8)
  • Postprocess venv (text2num) created in tarball install too — the .deb / .rpm postinst already did this; tarball users on Slackware / Gentoo / etc. would get crashes on number conversions. (b8b9fb0)
  • build-rpm.sh no longer ships a stale dictee.plasmoid — it used to copy a pre-existing artefact while only build-deb.sh regenerated it. Run rpm before deb and you'd ship an outdated widget. Plasmoid generation now factored into dict_prepare_pkg_dir (build-common.sh) — every builder regenerates from source on every run. (7447845)
  • install.sh prompts to install Docker on Arch when LibreTranslate is selectedoptdepends 'docker: …' never installed automatically; users picking LT through the wizard then hit a wall. Prompt is interactive, default no. (c32de31)

🐛 Bug fixes

  • Issue #5 — NVIDIA false positive on AMD machines. The pre-2293609 check_cuda_gpu_ready() used /sys/class/drm/card*/device/mem_info_vram_total which returns AMD VRAM > 0, mis-detecting it as NVIDIA. Fix shipped post-tag in v1.3.2 → only landed in v1.3.3. The check now uses nvidia-smi --query-gpu directly with FileNotFoundError caught.
  • Issue #6 — toggle "Enable PP for translation" doesn't persist. The toggle saved DICTEE_PP_TRANSLATE correctly, but reload derived _pp_master_translate from _pipeline_mode == "full_chain", which depends on DICTEE_TRANSLATE — runtime-only, never written as true. Result: every reopen reset the toggle to OFF. Now reads DICTEE_PP_TRANSLATE directly. (95e742b)
  • Issue #6 — plasmoid LibreTranslate language combo empty at startup. dictee-translate-langs libretranslate returned nothing when DICTEE_LIBRETRANSLATE_LANGS was unset (e.g. user installed LT manually outside the wizard). Now falls back to querying the running container's /languages API at localhost:5000. (a8a8512)
  • dictee-debug orphan package on Arch — makepkg's default debug option produced an empty sibling package that pacman -Rns dictee never removed. options=('!debug') added to both PKGBUILDs. (e1e16e4)
  • restart_daemons dead-code warning during cargo build. transcribe_diarize_batch.rs's function was gated on sortformer but its only caller was gated on cuda — building with sortformer-without-cuda compiled the function, elided the call, generated a warning at every makepkg. Now aligned on all(sortformer, cuda). (a7d7c5f)

🎨 UX

  • Plasmoid docker inspect wrapped in sg docker — when plasmashell's group set hasn't refreshed yet (typical right after first install: the user was added to docker after the graphical login already started), the LT indicator stayed red even when the container was running fine. sg docker -c "…" re-runs initgroups() against /etc/group and fixes the call without needing a logout. (2d264f3)
  • dictee-setup auto-detects _docker_use_sg at startup — was previously only flipped after the user clicked "Setup Docker" in the wizard. install.sh / postinst already added the docker group → wizard launched → still couldn't reach docker. Now detected from /etc/group membership vs. os.getgroups() discrepancy. (9b73134)
  • dictee script wraps dotool in sg input when needed — when the binary is invoked from a stale-group parent shell (plasmoid Dictate button, tray click), dotool couldn't write to /dev/uinput despite the user being in the input group. The dictee-ptt.service had sg input -c … already, but standalone invocations didn't. (d14cad1)
  • install.sh tarball install: REQUIRED SYSTEM DEPENDENCIES prominently displayed — yellow box at the start with package lists per Debian-likes, names varying by distro. Tarball is for distros without an official package; users now know what to apt install / dnf install / etc. before running install.sh. The README "Other distros (tarball)" section has the same listing. (6c509c7)
  • install.sh no longer says "reboot required" for the input group — the group is effective immediately for dictee thanks to dictee-ptt.service's sg input wrapper. The message was scaring users into pointless logouts. (6c509c7)

🛠 Internals

  • build-common.sh: dict_prepare_pkg_dir now regenerates the plasmoid — single source of truth for dictee.plasmoid across .deb / .rpm / tarball builders. PKGBUILD already inlined its own zip -r so it stays consistent. (7447845)
  • Tarball mode_tarball: postprocess venv created — pip installs text2num into /usr/share/dictee/postprocess-env, mirroring .deb/.rpm. (b8b9fb0)

📦 Assets

File Distro Variant
dictee-cpu_1.3.3_amd64.deb Debian / Ubuntu CPU only
dictee-cuda_1.3.3_amd64.deb Debian / Ubuntu NVIDIA CUDA + CPU fallback
dictee-plasmoid_1.3.3_all.deb Debian / Ubuntu KDE widget standalone
dictee-cpu-1.3.3-1.x86_64.rpm Fedora / openSUSE CPU only
dictee-cuda-1.3.3-1.x86_64.rpm Fedora / openSUSE NVIDIA CUDA + CPU fallback
dictee-plasmoid-1.3.3-1.noarch.rpm Fedora / openSUSE KDE widget standalone
dictee-1.3.3_amd64.tar.gz Other distros Universal CUDA tarball
dictee-1.3.3-source.tar.gz All Source archive
dictee.plasmoid All Widget alone (kpackagetool6)

Arch users: curl -fsSL https://raw.githubusercontent.com/rcspam/dictee/master/install.sh \| bash (PKGBUILD pulls the v1.3.3 tarball automatically).

⚠ Notes for upgraders

  • Plasmoid widget on KDE: the running widget instance keeps the old QML in memory after a package upgrade. Run kquitapp6 plasmashell && kstart plasmashell (or log out and back in) for the LT-status fix to take effect on already-pinned widgets.
  • Group runtime: any session opened before the install will keep its old supplementary groups until next login. dictee handles this internally (sg wrappers), but the change won't show up in groups runtime until logout/login.