Skip to content

Releases: ruizhi-lab/latte-dock-ng

Latte Dock NG v1.2.41

Choose a tag to compare

@github-actions github-actions released this 23 Aug 07:00
809f53c

Fixed

  • Guard lazy preview delegate initialization when window previews are disabled, eliminating the startup main.qml:480 null-object warning.

Performance

  • Reduce idle task hover work when window previews and window highlighting are disabled, while preserving tooltip and task auto-scroll behavior.
  • Reduce repeated task, PulseAudio, layout-import, and headless desktop integration work across the dock's active and startup paths.

Tests

  • GCC and Clang autotest suites pass all 39 registered tests.

Gentoo

  • The latte-dock-ng-1.2.41.ebuild package is included as a release asset and has been added to the Gentoo overlay.

v1.2.40

Choose a tag to compare

@github-actions github-actions released this 21 Aug 06:58
5162592

Latte Dock NG v1.2.40

Fixed

  • Separator boundary jitter: the separator at the tasks/widgets boundary no
    longer oscillates when the pointer rests or moves across it (macOS-style
    fixed divider). At the boundary the top-most neighbour (e.g. an external
    widget drawing above the tasks) can briefly own the junction, zoom the
    adjacent task and then be pushed away by the resulting layout growth; its
    onExited nullifies the current item immediately, so the parabolic restore
    timer now keeps a 150 ms grace period that lets the task now covering the
    cursor re-enter and cancel the zoom clear instead of producing a visible
    blip.

  • Separator line rendering: the separator line renders tight at its
    boundary slot — the content container now uses the separator's preferred
    length (falling back to separatorLength when the applet has not resolved
    Layout.preferredWidth, which is always the case for freshly added
    separators) instead of overflowing a full icon-sized slot into the
    neighbouring applets. This also fixes a freshly added separator being
    invisible.

  • Trash widget default: the Trash widget now keeps its original full-color
    icon by default in every dock configuration. Newly added trash applets are
    automatically added to userBlocksColorizingApplets, and older layouts get
    a one-time migration (trashKeepOriginalColorsDefaulted) that marks every
    present trash widget, after which explicit user toggles are never
    overwritten again.

Tests

  • New source-contract tests lock the separator content-container fallback
    (separatorContentContainerStaysTightWithFallback), the restore-timer grace
    period that prevents the boundary zoom blip
    (restoreZoomTimerGracePeriodPreventsBoundaryBlip), and the Trash
    keep-original-colors default + migration
    (trashKeepOriginalColorsDefaultsToCheckedForAllConfigs).

Full changelog: https://github.com/ruizhi-lab/latte-dock-ng/blob/main/CHANGELOG.md

Changes since v1.2.39: v1.2.39...v1.2.40

v1.2.39

Choose a tag to compare

@github-actions github-actions released this 20 Aug 18:12
5dc478f

Latte Dock NG v1.2.39

Changes since v1.2.38

Fixes

  • Parabolic zoom during launcher bounce (issue #42): a delegate kept alive
    by ListView.delayRemove during a launcher→window conversion (index -1) is
    now addressed through effectiveIndex (index >= 0 ? index : taskItem.lastValidIndex), so it keeps tracking the pointer instead of being
    frozen at its old zoom or snapped to zoom level 1 by the clear broadcast.
  • Icon scaling when entering the dock (issue #40): the zoom gate in
    ParabolicEventsArea.onParabolicMove was removed, so the parabolic effect
    keeps updating during the zoom-in animation and no longer glitches from 1x.
  • Smoother zoom restore: zoom restore is delegated to the Behavior on zoom, avoiding jarring jumps when previous animations have not finished.
  • Phantom separators: a window without launcher identity no longer renders
    as a thin separator placeholder; the placeholder is only used for
    launcher-type entries whose URL is still resolving asynchronously.

Features

  • "Keep Original Icon Colors" for the Trash widget (issue #44): a new
    context-menu option strips the -symbolic suffix from the Trash icon so the
    full-color icon from the icon theme shows, while the empty/full icon keeps
    switching; disabling the toggle restores the original icon immediately.

Translations

  • Translations are synced after the Dock/Panel → Dock migration: ~25 strings
    in latte-dock and the containment-actions context menu silently fell back
    to English in every language; msgids are realigned and several strings
    wrongly marked notr="true" in the Qt Designer dialogs are translatable
    again.

Tests

  • New source-contract tests cover the parabolic effectiveIndex fallback, the
    zoom restore path, the separator empty-URL guard, the Trash icon toggle, the
    Qt Designer notr fixes, and the po translation sync.

Links

v1.2.38

Choose a tag to compare

@github-actions github-actions released this 10 Aug 13:50

Latte Dock NG v1.2.38

What's changed

Application Menu & cascading submenus

  • Menu bar submenus no longer close when the pointer reaches them. The
    dock previously reconfigured its window flags / plasma shell surface while
    the Application Menu widget reported NeedsAttentionStatus; on Wayland
    that invalidated the QMenu's child popup surfaces, closing the menu as soon
    as the pointer entered a submenu.
  • Cascading submenus (kicker, etc.) no longer stay stuck open after the
    pointer leaves them. The submenu windows steal the keyboard focus when they
    open, which breaks the widget's own mouse-leave close timer, so the dock
    now closes the submenu tree event-driven when the pointer leaves the menu
    windows (tracked via Enter/Leave events — QCursor::pos() is stale on
    Wayland once the pointer leaves the dock's surfaces).
  • The first-level menu stays open on pointer-leave (matching the official
    panel behaviour) and closes on click-outside (hideOnWindowDeactivate
    restored to its default).
  • Fixed a segfault while interacting with a cascading menu: destroyed
    popup/menu windows are now removed from the pointer tracker so the deferred
    close check never dereferences a dangling pointer.

Tests

  • New source-contract tests lock the NeedsAttentionStatus window handling,
    the hideOnWindowDeactivate default, the event-driven submenu close, and
    the dangling-pointer guard.

Full changelog: https://github.com/ruizhi-lab/latte-dock-ng/blob/main/CHANGELOG.md
Diff: v1.2.37...v1.2.38

Latte Dock NG v1.2.37

Choose a tag to compare

@ruizhi-lab ruizhi-lab released this 05 Aug 14:15
f69f0ec

Fixed

  • The animation speed setting (Effects > Animations, x1/x2/x3) is now actually perceptible: the containment maps x1/x2/x3 to 1x/2x/3x animation durations matching the plasmoid's standalone semantics, and the inverted EffectsConfig buttons were corrected (issue #39).
  • Transparent icons (e.g. the Colloid theme) no longer show a ghost of the original-size icon while a widget zooms: the applet drop shadow now fades out smoothly during the zoom instead of rendering a duplicated copy behind the scaled applet (issue #38).
  • Widgets whose zoom is disabled no longer participate in the parabolic wave, so the task icon at the widget boundary restores its size immediately when the mouse leaves.
  • Release builds no longer emit an unused-variable warning in the debug message filter.

Added

  • New "Zoom widgets on hovering" option (Behavior > Items): when disabled, external widgets keep their original size on hover so their icons stay sharp, while task icons and launchers still zoom.
  • The default layout templates no longer include the mail (Thunderbird) launcher.

Changed

  • The durationTime config default is now x1 (normal) instead of x2.

Tests

  • New source-contract tests cover the animation speed mapping, the EffectsConfig button values, the applet shadow fade, the widget-zoom option scope, and the default template launchers.

Full Changelog: v1.2.36...v1.2.37

v1.2.36

Choose a tag to compare

@github-actions github-actions released this 02 Aug 07:24
2bc1195

Latte Dock NG 1.2.36

Fixed

  • Autostart no longer breaks silently when the XDG autostart desktop file disappears (e.g. removed by a package uninstall, emerge --depclean or a failed update): startup now restores it and logs a warning instead of leaving the dock unlaunched on every login.
  • Autostart updates are staged: the replacement file is copied next to the working entry and swapped in only after a successful copy, so a failed copy can never delete the existing entry.
  • Autostart failures (missing system desktop file, failed copy) now log warnings instead of failing silently.

Tests

  • New importer-logic and source-contract tests cover the autostart self-heal and staged-update behavior.
  • The autostart copy-failure test is permission-independent so it behaves identically on user runs and root CI containers.

Packages

  • Debian 13 (trixie): latte-dock-ng_1.2.36-1+deb13u1_amd64.deb
  • Debian testing/sid: latte-dock-ng_1.2.36-1_amd64.deb
  • Fedora: latte-dock-ng-1.2.36-1.x86_64.rpm
  • Arch: latte-dock-ng-1.2.36-1-x86_64.pkg.tar.zst

Full changelog: compare/v1.2.35...v1.2.36

v1.2.35

Choose a tag to compare

@github-actions github-actions released this 01 Aug 16:35
bfb0507

Fixed

  • Fixed logout, reboot and shutdown hanging on Plasma 6.7: KWin's session shutdown waits for every xdg_toplevel window to close, and the dock views ignored the compositor close request until the session-ending flag was set. The views are now unmapped as soon as the logout is announced and restored if the user cancels.
  • Filtered cosmetic Plasma theme SVG warnings from the debug log.
  • Mirrored system Kirigami template qmldir files in the KNS compat overrides.

Build

  • CI now builds and runs the full autotest suite (ctest) on every push, pull request and release tag.
  • The Debian 13 (trixie) deb now carries the +deb13u1 revision marker, per the Debian convention for stable-specific builds; the testing/sid build keeps the plain -1 name.
  • Documented the two deb variants in the README and installation docs.

Full changelog: v1.2.34...v1.2.35

Latte Dock NG v1.2.34

Choose a tag to compare

@github-actions github-actions released this 01 Aug 09:26
bd93819

Fixes

  • Plasma 6.3 support: Lowered the minimum Plasma version to 6.3.0 (Debian 13 trixie is now verified as the minimum supported version; development happens on Plasma 6.5+ / Qt 6.11).

  • Dock indicators missing on Plasma 6.3: The org.kde.plasma.plasmoid QML module is only registered lazily by PlasmaQuick on that version, so indicator components are now created on first access instead of at View construction.

  • Icon stuck magnified after clicking a launcher (issue #35): The launcher bounce keeps the click-time zoom while direct rendering is disabled; leaving the item during the bounce left the icon magnified until the animation ended. The zoom now restores immediately when the pointer leaves the item.

  • Latte/Indicator package structure unresolvable on Qt 6.8: The latte_indicator plugin shipped without embedded metadata (moc macro expansion through the compat forwarding header); KPluginFactory is now included explicitly.

  • KNS dialog overrides never created on Kirigami 6.12+: org.kde.kirigami.controls was merged into the main module; the system QML root check accepts both layouts.

  • Infinite recursion in layouts settings (a -> typo in modeIsChanged()) and a batch of warnings exposed by full GCC 15 / Clang rebuilds (initializer order, range-loop copies, unused captures and variables) — both compilers build warning-free.

Changed

  • Concurrent parabolic zoom and launcher bounce animation (bounce replaced with a parabolic bounce).

Packages

Two .deb variants because the libplasma soname changed from 6 to 7 between Plasma 6.5 and 6.6 (libplasma6libplasma7), splitting the range into two binary-incompatible camps:

  • latte-dock-ng_1.2.34-1_amd64.deb (plain name) — built on Debian sid/forky, links libplasma7; for Debian testing / sid and Ubuntu 26.04+.
  • latte-dock-ng_1.2.34-1_debian_amd64.deb — built on Debian 13 (trixie), links libplasma6; for Debian 13 (stable).
  • latte-dock-ng-1.2.34-1.x86_64.rpm — Fedora / openSUSE / Mageia.
  • latte-dock-ng-1.2.34-1-x86_64.pkg.tar.zst — Arch Linux.

Every package format is install-checked automatically before release: source install, package-manager install (apt / dnf / pacman) and a headless launch on each supported distro (Debian 13, Debian sid, Fedora 44, Arch).

What's Changed

  • fix: create indicator QML components lazily for Plasma 6.3
  • fix: include KPluginFactory in indicator package plugin
  • fix: accept merged kirigami controls layout in KNS compat
  • fix: restore zoom when pointer leaves item during launcher bounce
  • fix: build latteLogging with position independent code
  • fix: clear warnings exposed by GCC 15 and full Clang builds
  • build: build deb on Debian 13 trixie with shlibdeps
  • build: ship separate deb for the libplasma7 camp
  • ci: verify install on every supported distro before release
  • ci: plain deb name for testing/sid, debian suffix for trixie
  • release: bump version to 1.2.34

Full Changelog: v1.2.33...v1.2.34

Latte Dock NG v1.2.32

Choose a tag to compare

@ruizhi-lab ruizhi-lab released this 29 Jul 12:52
5eb1ea9

Fixes

  • AutoSize infinite loop: Fixed a long-standing bug where icon sizes below 32px (that aren't multiples of 8 offset from 16) caused an infinite loop at ~100% CPU, making the dock invisible. The shrink/grow do-while loops now use inequality guards instead of strict equality.

  • Debian 13 LayerShellQt compatibility: Added setDesiredSize compatibility workaround for older LayerShellQt versions shipped by Debian 13. May work on Debian 13 but is not guaranteed — Debian's packaging lags behind upstream and full support depends on system library versions.

What's Changed

  • fix: infinite loop in AutoSize when icon size is not aligned to step 8
  • fix: add LayerShellQt setDesiredSize compatibility for Debian 13
  • test: add contract test for AutoSize loop inequality guards

Full Changelog: v1.2.31...v1.2.32

Latte Dock NG v1.2.31

Choose a tag to compare

@ruizhi-lab ruizhi-lab released this 28 Jul 12:51
b72f1dc

Changes

🔧 Autostart Reliability Fix

The autostart mechanism now reliably starts latte-dock on session startup:

  • Desktop file: X-KDE-autostart-phase=2 delays startup until session restore is complete, avoiding Wayland compositor / DBus readiness races on cold boot
  • Runtime retry: retries 10 times at 500ms intervals if Wayland platform check sees transient failure
  • Upgrade propagation: enableAutostart() compares modification times and auto-replaces stale user autostart files so existing users get the fix without manual re-toggle

📦 Debian 13 Support

  • Lower Plasma minimum version from 6.5.0 to 6.3.0 — Debian 13 (Trixie) ships Plasma 6.3.6, previously below the build requirement. No Plasma 6.4+ APIs are used — the codebase relies solely on core Plasma 6.0+ interfaces.