⚠️ Important Changes & Notes
- Key input handling has changed significantly on terminals supporting tcell's CSI u.
- On CSI u compatible terminals, keys such as Ctrl+h, Backspace, and Enter are now strictly distinguished.
- You can now assign different actions to these keys.
- If you want the same action for multiple keys, please assign them explicitly in your config file.
- Some keys may be intercepted by your OS or editors like VS Code terminal, so we recommend assigning multiple keybindings or customizing as needed.
- Character width calculation has switched from runewidth to uniseg.
- As a result, ambiguous-width characters are now treated as width 1 by default.
- If you want ambiguous-width characters to be treated as width 2 (East Asian width), set the environment variable
RUNEWIDTH_EASTASIAN=1.
✨ Main Changes
⌨️ Keybindings & Input
- Removed all ctrl+shift keybindings and replaced them with alternatives like alt+arrow keys.
- Unified Alt+uppercase keybindings to Alt+lowercase.
- All key event matching is now case-insensitive and unified.
- Removed fallback logic that treated multiple keys as the same action.
- Updated config files (
ov.yaml,ov-less.yaml) to reflect new keybindings. - Improved cursor movement, deletion, and paste behavior in input fields.
🖥️ Display & UI
- Switched character width calculation from runewidth to uniseg, making display width match your terminal more accurately.
- If display width mismatches still occur, ov now uses Sync as needed to prevent screen corruption.
🖱️ Mouse, Selection & Clipboard
- Added anchor-and-extend selection with Alt+click.
- Right-click now copies the selected range.
- Clipboard operations now have a timeout to prevent UI freezes.
📦 Library Updates
- tcell v2.9.0 → v2.13.1
- cbind v0.1.6 → v0.1.7
- tcellansi v0.2.0 → v0.3.0
Full Changelog: v0.45.1...v0.50.0