github linx-systems/clamui v0.1.4
v0.1.4 - Internationalization Support

latest releases: v0.1.5b, v0.1.5
one month ago

Highlights

This release adds internationalization support, automatic device scanning, and multi-distribution ClamAV detection — making ClamUI usable in more languages, on more distros, and with less manual setup.

A Big Thanks to Marksonthegamer for adding Chinese (simplified) translation and of course anyone who reported issues ( i know, a perfect software should have 0 issues :) but this is a hobby project )


New Features

  • Internationalization (i18n) — Full gettext infrastructure with 941 translatable strings across 44 source files. German translation included. Translation validation CI workflow and contributing guide added.
    (docs/TRANSLATING.md)
  • Automatic device scanning — New DeviceMonitor watches for USB drives, external disks, and network mounts, triggering background ClamAV scans automatically. Configurable device type filters, max size limits, scan
    delay, battery-skip mode, and auto-quarantine. New "Device Scan" preferences page.
  • Multi-distro ClamAV config detection — Auto-detects ClamAV configuration paths for Debian/Ubuntu, Fedora/RHEL, and generic installations. Manual override via Detect/Browse buttons in Preferences. Detected paths
    persist to settings.
  • Clean subprocess environmentget_clean_env() isolates ClamAV subprocess calls from the Python virtual environment, preventing path pollution.
  • GPG signing — Optional GPG signing for CI build workflows.

Performance

  • Non-blocking startup — Moved clamscan --version, clamd socket checks, freshclam status, and matplotlib imports off the main thread. UI no longer freezes during initialization.
  • Quarantine pre-initialization — Pre-initializes quarantine database and resources at startup, eliminating the lag when first switching to the quarantine view.

Bug Fixes

  • Fixed file manager integration: added missing scan scripts, tri-state detection (installed/partial/none), and proper removal support.
  • Fixed packaging: added missing filesystem integrations to Debian and install.sh packages.
  • Fixed German translations for database_page and updater modules.
  • Fixed test locale handling: force C locale to prevent translated strings from breaking assertions.

Architecture & Refactoring

  • App decomposition — Extracted ClamUIApp's 1400+ line monolith into focused collaborator modules: AppLifecycleManager, NotificationDispatcher, TrayIntegration, and ViewCoordinator.
  • Modular scan view — Decomposed monolithic scan_view.py into src/ui/scan/ package with dedicated coordinator, controller, progress widget, results widget, profile selector, and target selector.
  • Dependency injection — QuarantineManager now passed via DI rather than created inline, improving testability.
  • AppContext — New shared application state container for cross-module coordination.

Testing

  • Test coverage improved from 69% to 77%
  • Added comprehensive tests for: components view, scan results dialog, statistics view, tray service, window, virustotal results dialog, notification manager, device monitor, ClamAV detection, preferences pages

CI/CD

  • Added POTFILES.in consistency check to lint workflow
  • Added translation validation CI workflow
  • Replaced dpkg-sig verification with ar-based method in Debian build
  • Updated dependencies: packaging 26.0, pathspec 1.0.4, numpy 2.4.2, coverage 7.13.4

Full Changelog: v0.1.3...v0.1.4

Don't miss a new clamui release

NewReleases is sending notifications on new releases.