github ilius/ayandict v3.0.0

8 hours ago

Breaking changes

Default Git branch

  • The v3 branch has replaced v2 as the repository's default branch. New clones use
    v3 automatically, but existing clones remain on their currently checked-out
    branch. Existing Git users should fetch and switch to v3:

    git fetch origin
    git checkout v3
    git pull --ff-only

Desktop and source builds

  • The desktop application was ported from the old Qt 5 bindings to
    MiQt, Qt 6, and CGO. Building the GUI from source now
    requires CGO and the Qt 6 Base and Multimedia development files; Go 1.24 remains the
    minimum supported version.

  • The Go module path changed from github.com/ilius/ayandict/v2 to
    github.com/ilius/ayandict/v3. Install this release with:

    go install github.com/ilius/ayandict/v3@latest
  • The previous root build with go build -tags nogui is no longer supported. The
    non-GUI entry point moved to its own command; build it with:

    go build ./cmd/ayandict-nogui/

    The GUI binary's runtime --no-gui flag remains available. A standalone web-server
    entry point is also available at ./cmd/ayandict-web/.

Configuration and saved state

  • popup_style_str was renamed to loading_popup_style_str.

  • favorites_auto_save was removed; favorites are now always saved immediately.

  • max_results_total = 0 is no longer supported as an unlimited result count. Set a
    positive limit instead.

  • Window geometry, splitter positions, table state, and desktop-widget state are now
    stored as JSON in the platform state directory instead of Qt's QSettings. Qt 5-era
    window and layout state is not reused, so it may reset once after upgrading. The
    configuration, history, most-frequent queries, and favorites remain in the existing
    configuration directory.

    • Linux: $XDG_STATE_HOME/ayandict, or ~/.local/state/ayandict
    • macOS: ~/Library/Application Support/AyanDict
    • Windows: %APPDATA%\AyanDict\State
  • The new desktop_widget and scan_popup_api options default to true when they are
    absent from an existing configuration. Set either option to false if it is not
    wanted. The desktop widget is still used as a fallback when no system tray is
    available.

  • Users of development snapshots that used dektop_widget should rename it to
    desktop_widget.

See the configuration reference for the complete list of current
options and defaults.

What's Changed

AyanDict 3.0.0 is the first stable release of the Qt 6-based v3 line. It adds
selection and clipboard lookup, much deeper desktop integration, new search and result
views, expanded keyboard navigation, and macOS packaging without Homebrew runtime
dependencies.

Scan Popup and desktop integration

  • Added a configurable Scan Popup for looking up clipboard text, the X11 primary
    selection, local-socket requests, or terms selected from an article. Popups support
    result navigation, favorites, in-article search, movable frameless windows, and
    opening the result in the main window.
  • Added a system-tray menu and a desktop-widget companion. They can show or hide the
    main window, control scan sources, open About, and show a Random Favorite or Random
    Entry. The desktop widget remembers its position and can provide the same controls
    when no system tray is available. With a visible tray icon, start_hidden can launch
    the application without showing the main window.
  • Closing the main window now hides it instead of quitting while the system-tray icon
    is available.
  • Added a per-user local socket API to ping the running instance, open the main window
    or a Scan Popup with a query, and return search results as JSON. Linux and macOS
    helper scripts are included under cmd/.
  • Added --query=TERM to open or reuse AyanDict with a query.
  • Added --private mode, which does not write history, most-frequent queries, or
    favorite changes. Its window and application title clearly identify the private
    session.
  • Added optional periodic Random Favorite popups.

Search and results

  • Added an optional Soundex mode for finding sound-alike words. Set
    soundex_words_file to enable it.
  • Word Match, also available in AyanDict 2.2.4, can now be selected independently for
    Random Favorite with random_favorite_search_mode.
  • Improved fuzzy scoring, same-case ranking, and result pruning.
  • Added an optional hierarchical result tree with result_tree = true, including
    alternate terms and richer result metadata.
  • The result header now shows the total result count and the selected result number.
  • Regex search-on-type is disabled by default and can be enabled separately for the
    desktop and web interfaces.

Navigation, favorites, and interface

  • Added in-article search with Ctrl+F and Ctrl+G or Enter, next/previous result
    with Alt+Down and Alt+Up, and backward/forward history navigation with
    Alt/Ctrl+Left and Alt/Ctrl+Right.
  • Added shortcuts for toggling a favorite (F), opening Dictionaries (Ctrl+D),
    reloading configuration (Ctrl+R), fully reloading configuration, dictionaries, and
    styles (Ctrl+Shift+R), clearing history (Ctrl+Delete), quitting (Ctrl+Q), and
    opening About (F1).
  • Escape now closes in-article search before continuing with the existing sequence of
    leaving the query field and then clearing the query and results.
  • Expanded favorites with favorite markers in results, configurable colors, and a
    Favorite context menu for managing alternate terms.
  • Simplified the main toolbar. Ctrl-clicking Clear also clears history; Ctrl-clicking
    Reload reloads configuration, dictionaries, and styles; Shift-clicking Reload
    reloads configuration and styles without reloading dictionaries.
  • Improved Dictionary Manager with checkboxes for search-mode options, single-row
    selection, Reload and Close All toolbar actions, and per-dictionary audio autoplay
    controls.
  • Added an in-app Keyboard Shortcuts dialog, application icons, and a Website button to
    About. The activity label Recent was renamed to History.

Audio, articles, and reliability

  • Added playback support for SPX, WAV, OGG, OGA, and Opus audio, an autoplay minimum
    score, and more reliable manual and automatic playback. The minimum-score option is
    currently spelled audio_auto_play_min_score in the configuration file. The default
    wait between automatically played clips increased from 500 ms to 800 ms.
  • Improved article context menus and added automatic closing for malformed <link>
    tags that could otherwise hide an entire article.
  • Improved StarDict startup time and memory use, and fixed .ifo files that use Windows
    CRLF line endings.
  • Fixed macOS ARM startup failures, user stylesheet loading, error dialogs, result-tree
    crashes, favorite-toggle refreshes, article scroll/find preservation, and unwanted
    audio playback when toggling favorites. Window sizing on small screens was also
    improved.

Packaging

  • The macOS ARM64 release build now links Qt statically and has no Homebrew runtime
    dependencies.
  • Added separate platform artifact workflows and standalone web and non-GUI commands.

Full Changelog: https://github.com/ilius/ayandict/compare/v2.2.4..v3.0.0

I will try to build and upload Windows GUI binary (for now only non-GUI / web-only binary is available).

Don't miss a new ayandict release

NewReleases is sending notifications on new releases.