github noborus/ov v0.52.0

10 hours ago

v0.52.0

New Features

Word Wrap Mode

Word wrap has been added, and the --wrap / -w option now accepts a string instead of a boolean.

  • -w or -w=char (default): Wrap lines at screen width, breaking anywhere (character-based).
  • -w=word: Wrap lines at screen width, breaking at word boundaries.
  • -w=none: Disable line wrapping.

Toggle word wrap with the new default key alt+w.

⚠ Breaking change: The configuration key WrapMode: true must be updated to Wrap: "character".

View Mode Sidebar

When pressing p to enter view mode selection, the sidebar now opens automatically and displays the list of available view modes with index numbers. You can select a mode either by name or by its number (e.g., entering 1 selects the second mode in the list).

Notifications

ov now sends desktop notifications via Screen.ShowNotification() when execNotify is triggered. This is supported in terminals that implement the Kitty keyboard protocol notification feature.


Changes

  • tcell v2 → v3: Upgraded the underlying terminal library to tcell v3.
  • Go 1.25.0: Updated minimum Go version to 1.25.0.
  • Color name "grey" / "slategrey" unified to "gray" / "slategray" in config and defaults.
  • ClipboardMethod: Added "auto" (new default behavior — automatically selects "OSC52" or "system" based on terminal support). The old "default" value is replaced by "system".
  • Key binding display is now normalized (consistent casing for modifier keys).
  • New converter type wordwrap available via --converter wordwrap.
  • Sidebar restores its previous mode automatically after input is confirmed or canceled.
  • Screen.PollEvent() replaced with <-Screen.EventQ() (tcell v3 API).
  • sort.Strings / sort.Ints replaced with slices.Sorted + maps.Keys.

Bug Fixes

  • Text selection is now reset when calling goLine(), goLineNumber(), moveBeginLeft(), or moveEndRight().
  • Text selection is now reset when disabling mouse support.
  • Fixed boundary check in nextMark() and prevMark() to prevent out-of-range access.
  • store.GetChunkLine now uses RLock instead of Lock (read-only operation).
  • Fixed a bug where maxWidths was incorrectly overwritten for shrunk columns in align mode.
  • Fixed shrunk column widths not being applied before comparison in setAlignConverter.

Full Changelog: v0.51.1...v0.52.0

Don't miss a new ov release

NewReleases is sending notifications on new releases.