Releases: neovide/neovide
0.13.0
What's Changed
The main highlights are:
- Improved and more configurable font rendering, see
neovide_text_contrast
andneovide_text_gamma
- D3D for smoother rendering on Windows
- Fully working smooth scrolling in Windows with borders and highlights
- Better stability compared to 0.12.x
Breaking changes
- Neovim 0.10.0 is now required
- The font size in
config.toml
is now specified in points instead of pixels, to match the behaviour of guifont and most other software - The macOS option
neovide_input_macos_alt_is_meta
has been renamed to neovide_input_macos_option_key_is_meta and instead oftrue/false
it can now be set toonly_left
,only_right
,both
ornone
- The font sizes are now slightly different and matches that set in most other programs due to the fractional font support.
- The
--fork
option has been reversed, and--no-fork
is now the default. If the old behaviour is desired, you can set the environment variableNEOVIDE_FORK=1
- Closing the Window when using remote connections now also exits Neovim. If you want to keep the remote instance running, you can detach using
:call chanclose(g:neovide_channel_id)
Known issues
- Neovide will hang on some Windows systems. This has turned out to be a very tricky bug to track down, since it only occurs on a few systems. See #2463 for more information. Any help debugging this is highly appreciated.
Features
- fix: font width can't be configured with config file by @gmr458 in #2331
- feat: add support for hiding window title from config file by @falcucci in #2344
- doc: instructions of profiling with tracy. by @crupest in #2356
- feat(macos): display border for opaque backgrounds by @emonadeo in #2351
- feat: add window menu on mac by @polachok in #2323
- feat(macos): drop multiple files and folders on macOS by @falcucci in #2396
- feat: Smooth cursor blink animation option by @agraven in #2421
- feat: tabs option as ENV variable and config file position + prefix cleanup for CLI argument by @nazriel in #2441
- feat: Apply winit window blur setting on all platforms by @agraven in #2440
- feat(windows): Direct3D Rendering on Windows by @fredizzimo in #2215
- feat: add ability to open files from Finder in macOS by @polachok in #2395
- feat: render same z-index together by @Kethku in #2467
- feat!: Option key as meta configuration by @9mm in #2486
- feat!: Support fractional grid and font sizes by @fredizzimo in #2485, #2500
- feat: Configurable contrast and gamma by @fredizzimo in #2510
- fix: relative WSL paths and paths with spaces by @fredizzimo in #2507
Bug fixes
- fix: Handle some more numpad keys by @hhirtz in #2334
- Update commands.md missing link by @dineshKumar777 in #2341
- fix(macos): bug of restoring window position on macos. by @crupest in #2345
- fix: loading of fonts with OpenType font variations by @fredizzimo in #2354
- fix(wsl): #2049 ignore lines matching wsl screen size error by @DZappala in #2374
- docs: fix show_border cutting into transparent by @emonadeo in #2380
- fix(macos): execute login before starting login shell by @falcucci in #2405
- fix: Handle new viewport margins event (fixes smooth scrolling with borders and winbars) by @Kethku in #2455
- fix: Prevent intro message hack from showing when the intro message is fixed upstream by @Kethku in #2460
- fix: Convert Windows paths to WSL when launching in WSL mode by @Holzhaus in #2256
- fix: Determine the window under the mouse on the fly by @fredizzimo in #2311
- fix: save grid size for maximized windows by @sid-6581 in #2528
- fix:! Don't fork by default by @fredizzimo in #2512
- fix!: Perform a clean exit again by @fredizzimo in #2463
- fix!: Use points instead of pixels for the config file by @fredizzimo in #2476
- fix(docs): fix reversed autocmds for setting input_ime by @cpmsmith in #2545
Other changes
(including fixes for bugs that were not part of the previous release)
- chore: update lru crate to fix building with the nightly toolchain by @fredizzimo in #2346
- Update nvim-rs, remove superflous arc-wrapping by @KillTheMule in #2336
- chore: remove legacy objc and cocoa by @polachok in #2390
- chore: Upgrade dependencies and remove unused by @agraven in #2443
- chore: remove swash's scale and render features by @tim-harding in #2450
- chore: Support multiple render backends by @fredizzimo in #2359
- fix: set startup directory failed is not an error by @TwIStOy in #2457
- chore(CI): Enable full build on pull requests by @fredizzimo in #2473
- chore: Refactor the update loop by @fredizzimo in #2470
- fix: Temporary hang after sleep by @fredizzimo in #2472
- chore: Fix clippy warnings by @fredizzimo in #2483
- feat: draw block characters with background opacity (was reverted) by @Theaninova in #2478
- chore: Use typesafe pixel and grid units by @fredizzimo in #2484
- fix: address viewport margin regression by sorting DrawCommand batches by @Kethku in #2487
- chore: Refactor the registry-relevant functions. by @InfyniteHeap in #2490
- fix: clipping rect regression by @fredizzimo in #2494
- Revert "feat!: Support fractional grid and font sizes" by @Kethku in #2497
- chore: migrate dependency from
winapi
towindows
. by @InfyniteHeap in #2505 - fix: Cursor offset by @fredizzimo in #2511
- fix: respect floating shadow setting in layer rendering by @sid-6581 in #2526
- fix: fix the CI by @fredizzimo in #2534
- chore: yet another fix for the CI by @fredizzimo in #2535
- fix: don't group floating windows unless one is fully contained in the other by @sid-6581 in #2527
- fix: Use composition to fix window transparency when using D3D by @fredizzimo in #2529
- chore: add cfg to is_tty so that it isn't built on windows by @Kethku in #2537
- fix: dont resize the d3d buffers if the window size is zero by @Kethku in #2538
New Contributors
- @gmr458 made their first contribution in #2331
- @hhirtz made their first contribution in #2334
- @DZappala made their first contribution in #2374
- @emonadeo made their first contribution in #2351
- @polachok made their first contribution in #2323
- @nazriel made their first contribution in #2441
- @Theaninova made their first contribution in #2478
- @Holzhaus made their first contribution in #2256
- @InfyniteHeap made their first contribution in #2490
- @cpmsmith made their first contribution in #2545
Full Changelog: 0.12.2...0.13.0
0.12.2
What's Changed
Breaking changes
neovide_background_color
has been dreprecated, see #2168- On macOS, the title is not automatically hidden with
--frame buttonless
, enable it with--title-hidden
(macOS specific)
Features
- feat: support all font weights and slants by @TwIStOy in #2246
- feat: implement macOS window blur by @falcucci in #2273
- feat: Add colored output to
--help
by @last-partizan in #2316 - feat: implement dynamic window title visibility option by @falcucci in #2319
Bug fixes
- fix: #2233 by replacing echo command with api call by @genzj in #2241
- Fixes hangs when errors or messages are shown at startup
- fix: #2234 by adding !self.scrollback_lines.is_empty() check by @Mentalist in #2247
- Freeze when opening neo-tree
- fix: #2240 by swap item order in
FontDescriptionSettings
by @TwIStOy in #2244- Fallback fonts works in config.toml
- fix: shadow artifacts on macOS by @falcucci in #2272
- fix: When counting leading spaces for space skip optimization count codepoints by @ZyX-II in #2298
- Special spaces like NBSP were rendered wrong
- Fix issue with recursive floating window anchors by @Kethku in #2257
- Crash when dragging the mouse
- fix: Prevent the font from becoming zero sized by @fredizzimo in #2307
- Crash when the font becomes too small
- fix: Reset the cached font info after the fudge factor is updated by @fredizzimo in #2308
- The letter spacing of the font could be wrong
- fix: Error with guifont=* by @fredizzimo in #2309
- Update dependencies and Winit to 0.29.10 by @fredizzimo in #2310
- See https://github.com/rust-windowing/winit/releases for a full list of bugs fixed
- fix: Use rpc request instead of notify for quit requests by @fredizzimo in #2312
- Send options on startup as well as on changed except for columns and rows by @Kethku in #2315
- Some options like
mousemoveevent
set frominit.lua/vim
were not applied
- Some options like
- Fix shlex::join Deprecation Warning by @abhillman in #2314
- feat!: fix appearance of
--frame transparent
and deprecateneovide_background_color
. by @crupest in #2168 - fix: fix hang on neovim exit by @sid-6581 in #2265
New Contributors
- @genzj made their first contribution in #2241
- @Mentalist made their first contribution in #2247
- @falcucci made their first contribution in #2272
- @abhillman made their first contribution in #2314
Full Changelog: 0.12.1...0.12.2
0.12.1
essentially a slice of everything to round up 0.12.0 a bit
What's Changed
Features
- feat(config): watch config and font features by @TwIStOy in #2213
- Font features can be configured through the config file now!
Bug fixes
- fix: Don't split the neovim-bin with shlex on non-wsl windows by @fredizzimo in #2210
- fix(scrolling): don't reset the scrolling when the window position changes by @fredizzimo in #2208
- fix: ensure that the opengl buffers are resized after a resize or scale change by @fredizzimo in #2205
- fix: don't hide random text by @MultisampledNight in #2238
New Contributors
Full Changelog: 0.12.0...0.12.1
0.12.0
What's Changed
Breaking
- fix!: Improve render loop by @fredizzimo in #1977
- Command line options starting with
no
have been renamed and now start with--no-
- All options are kebab-case now
- Multigrid has been made default
- The transparency rendering on macOS has been changed, and a full fix is work in progress here #2168. Meanwhile, it's recommended to unset
neovide_background_color
and setneovide_transparency
according to your preference. Note that the the title bar will remain solid with the default OS colors. - The
--geometry
argument has been removed and replaced by--size
and--grid
https://neovide.dev/command-line-reference.html#window-size, https://neovide.dev/command-line-reference.html#grid-size - NOTE: This is a big change, and a lot of issues have been fixed, check #1977 for the full list.
- Command line options starting with
- feat!: Add underline scale factor config by @Kethku in #2116
underline_automatic_scaling
has been removed
- feat!: use display link api to implement vsync on macos. by @crupest in #2102
Features
- Added numpad support by @plague-spreader in #2032
- Tell neovim focus was gained/lost via 'ui_set_focus' by @9mm in #2033
- feat: minimize window on suspend by @SyedAhkam in #1971
- feat: Better reporting of unexpected output from neovim by @fredizzimo in #2083
- feat: add metadata to Cargo.toml in prep for crates.io publish by @Kethku in #2103
- Add drop shadow to floating windows by @Kethku in #2028
- feat: persist grid size along with window size by @sid-6581 in #2127
- Extra context if can't save to file by @dev-ardi in #2133
- fix!: Ignore window size when minimized by @fredizzimo in #2153
- feat: NEOVIDE_FORK environment variable by @9mm in #2189
- feat: X1 and X2 mouse button support by @agraven in #2161
- feat: Smoother render loop by @fredizzimo in #2188
Fixes
- fix: fix horizontal scroll by @yasen-pavlov in #2021
- fix: Fix some mappings involving shift by @fredizzimo in #2018
- Fix config change notification using remote neovim by @mopp in #2067
- set neovide_channel_id always by @mopp in #2070
- Tokenize command arguments in
$NEOVIM_BIN
(fix #2060) by @rhysd in #2063 - fix: run :edit command with nvim_cmd to escape special characters by @ZyX-II in #2056
- fix: Fix mouse dragging by @fredizzimo in #2082
- Report error when setting a wrong guifont value by @Tmpod in #2089
- fix: do not spawn particles when jumping to a location instantly by @Kethku in #2106
- Observe mousemoveevent option by @Kethku in #2111
- fix: Fix macOS startup issues by @fredizzimo in #2107
- use grid 0 to report mouse events when not using multigrid by @Kethku in #2115
- Fix stacked floating window shadows by @Kethku in #2114
- Fix remember window size by @Kethku in #2120
- fix: fix console window not hidden for Windows shell command by @sid-6581 in #2125
- fix: prevent empty window title by @raggi in #2126
- Wayland clipboard by @cshuaimin in #2123
- fix: event loop shouldn't join the render thread by @sid-6581 in #2129
- fix: Use own data directory instead of nvim's by @agraven in #2135
- fix: Update winit to 0.29.4 by @fredizzimo in #2146
- fix: Don't poll the event loop on Wayland to reduce the power usage by @fredizzimo in #2149
- fix: crash with zero height windows by @fredizzimo in #2150
- fix: Change the order of vsync wait and swap buffers to reduce latency by @fredizzimo in #2152
- fix: Ignore negative cursor positions by @fredizzimo in #2157
- Revert unintentional change to default ime setting by @Kethku in #2159
- fix: Completely event driven update loop by @fredizzimo in #2167
- fix: Scrolling of windows with winbar or native borders by @fredizzimo in #2165
Docs
- Update troubleshooting.md by @heartbeast42 in #2026
- Add faq about x11 dpi sizing by @Kethku in #2105
Work behind the scenes
- chore: Fix new clippy warnings from rust 1.72 by @fredizzimo in #2034
- chore!: Update the macOS CI to use macOS 12 instead of 11 by @fredizzimo in #2108
- Remove unused dependencies by @Kethku in #2110
- refactor: fix compilation warnings by @sid-6581 in #2119
- style: fix typos by @MultisampledNight in #2156
- chore: Improved profiling by @fredizzimo in #2186
New Contributors
Thank you all, and also all others who contributed! ❤️
- @heartbeast42 made their first contribution in #2026
- @yasen-pavlov made their first contribution in #2021
- @plague-spreader made their first contribution in #2032
- @9mm made their first contribution in #2033
- @mopp made their first contribution in #2067
- @rhysd made their first contribution in #2063
- @ZyX-II made their first contribution in #2056
- @SyedAhkam made their first contribution in #1971
- @Tmpod made their first contribution in #2089
- @sid-6581 made their first contribution in #2119
- @raggi made their first contribution in #2126
- @dev-ardi made their first contribution in #2133
- @agraven made their first contribution in #2135
- @crupest made their first contribution in #2102
Full Changelog: 0.11.2...0.12.0
0.11.2
This release adds support for Neovim 0.9.2.
Features
- Add width to guifont settings by @fritsstegmann in #1227
Bug Fixes
- Fix disappearing characters on Neovim 0.9.2 and greater by @fredizzimo in #2012
- Add missing Enter special key by @fredizzimo in #1997
- Improve nvim detection by @fredizzimo in #1946
- Show intro message when the UI command
msg_intro
is received by @fredizzimo in #1985- The
shortmess+=I
option now works. - The message now closes properly when using dashboard-nvim.
- The
Other changes
- Better logging of keyboard events by @fredizzimo in #1962
New Contributors
- @fritsstegmann made their first contribution in #1227
Full Changelog: 0.11.1...0.11.2
0.11.1
This release is essentially a tribute to the glorious work performed by Bram Moolenaar, who passed away on the 3rd of August 2023. One of the many insanely cool things he did was also supporting charity, additionally making Vim charityware, showing a message to help poor children in Uganda on startup if no file was opened. This intro screen was previously lost in Neovide due to architectural differences between the TUI and Neovide, but now in his spirit it is properly displayed in Neovide as well.
Features
- feat: Show intro message by @fredizzimo in #1980
Other changes
- chore: Update cargo dependencies by @fredizzimo in #1969
Full Changelog: 0.11.0...0.11.1
0.11.0
First of all, we'd like to formally and enthusiastically thank the winit team over at https://github.com/rust-windowing/winit for developing, providing and stabilizing a new, neat and nice keyboard API over the course of several years. Without them and their monstrous efforts, Neovide would have its Wayland support still broken and subject to even more input issues.
Breaking Changes
- The environment variable
WINIT_UNIX_BACKEND=x11
is no longer supported. It's preferred to run in native Wayland. But if you absolutely want to run in XWayland, you can runenv -u WAYLAND_DISPLAY neovide
instead. - The keyboard mappings can work slightly differently, and due to the issues on macOS, you might want to stay on an older release if those cause problems for you.
- CMD + SHIFT works as CMD only
- fails to interprets in Macos. I set neovide_input_macos_alt_is_meta
- Make sure that you map the actual character produced and don't include shift in your mappings. There are two exceptions to this:
- Mappings of special keys like
<Space>
,<Enter>
,<Tab>
,<F1>
and so on. You can use<S-Space>
to map shift combined with space. - Mappings involving CTRL and normal alphabetic characters, due to the way Neovim deals with them:
CTRL-{char} {char} typed as a control character; that is, typing {char}
while holding the CTRL key down. The case of {char} is
ignored; thus CTRL-A and CTRL-a are equivalent. But in
some terminals and environments, using the SHIFT key will
produce a distinct code (e.g. CTRL-SHIFT-a); in these
environments using the SHIFT key will not trigger commands
such as CTRL-A.
- Mappings of special keys like
Features
- Add profiling support through Tracy Profiler by @fredizzimo in #1787
- Config file by @LoipesMas in #1119
- Configuration option to set theme to light/dark/auto by @mgax in #1917
- Wayland support
- IME support without pre-edit
Bug Fixes
- Fix download for Windows` link by @ErichDonGubler in #1834
- Remember windows size via pixel by @chomosuke in #1706
- Fix opening from Finder in macOS by @AThePeanut4 in #1832
- Fixes window position not being remembered on multi-monitor by @chomosuke in #1837
- Prevent wsl console window shown by @nazo6 in #1850
- Update swash to fix crash at startup by @last-partizan in #1887
- Disable srgb on Linux and macOS by @fredizzimo in #1885
- Improve error reporting for invalid UI events by @fredizzimo in #1876
- Update to winit 0.29.0-beta.0 by @Kethku in #1789
- This fixes a lot of long outstanding issues, for example:
- Wayland is now fully supported
- Focusing issues and keys getting stuck, especially when using tiling Window managers
- Launching issues
- Theming issues on Gnome in Wayland
- This fixes a lot of long outstanding issues, for example:
- Center the line by adding half of linespace to y_adjustment by @cshuaimin in #1915
- Simplify the use of the new winit keyboard API by @fredizzimo in #1899
- This fixes almost all keyboard related issues, but on macOS, there are a few critical issues remaining:
- Fix broken link - Change Arch repository to extra by @imNel in #1934
- Fix AppImage support and Dockerfile for testing by @fredizzimo in #1941
- Center the line by adding half of linespace to y_adjustment by @cshuaimin in #1915
Other changes
- Mutex is not needed; Unused THREAD_SENDERS by @juchiast in #1860
- Fix
no idle
behaviour by @LoipesMas in #1889 - fix(config): Don't show error when config is missing, instead just log it by @last-partizan in #1893
- Allows using
NEOVIDE_WSL
or config file to set wsl by @Ricky12Awesome in #1942 - chore: Extract window_wrapper and the update loop to their own modules by @fredizzimo in #1939
- fix: Fix deadkey sequences ending with space by @fredizzimo in #1930
New Contributors
- @ErichDonGubler made their first contribution in #1834
- @AThePeanut4 made their first contribution in #1832
- @juchiast made their first contribution in #1860
- @nazo6 made their first contribution in #1850
- @cshuaimin made their first contribution in #1915
- @imNel made their first contribution in #1934
- @Ricky12Awesome made their first contribution in #1942
Full Changelog: 0.10.4...0.11.0
0.10.4
Features
- Added AppImage builds by @ananthb in #1612
- Added an option to add padding around the window by in @seanstrom #1632
- Added logic to save the backtrace to a file in the event of a panic @Chloe-Woahie in #1681
- Added lua versions of commands in config and FAQ by @rkuklik in #1714
- Added common fixes for scroll stutters to the documentation by @fecet in #1652
- Added support for connecting to existing neovim servers via unix sockets and named pipes by @khjorth in #1828
- Added support for mouse hover events by @ryo33 in #1766
- Added linespace support by @tobealive in #1764
Bug Fixes
- Fix blank screen on startup for nvim 0.9 by @JakeHandsome in #1800
- Fix issue with unnecessary escaping of commandline arguments on non macos platforms @Jesse-Bakker in #1651
- Fix wording around .zshrc files in the FAQ by @Turmiht in #1734
- Allow use of fonts containing
_
in the name by @GuiAmPm in #1660 - Fix crashes when both x & y blur are set to 0 by @chomosuke in #1707
- Pass proper paste mode in case of wsl intergration by @saitonakamura in #1703
- Improved caching of automatic workflows by @tobealive in #1778
- Use nvim-rs release version by @tobealive in #1697
- Fix some documentation typos by @tobealive in #1717
- Fix missing icon on linux builds by @acco32 in #1743
- Add rustfmt.toml to improve automatic formatting by @tobealive in #1750
- Resolve clippy warnings by @tobealive in #1759
- Fixed an issue with the lua docs by @Miloas in #1760
- Fixed another issue with lua docs by @kika in #1772
- Refactor assignment of multiple default font options by @tobealive in #1762
- Preserve PATH when launching from terminal on MacOS by @akateiva in #1758
- Some more updates and fixes to the github workflows by @tobealive in #1755
- Fix Lua instructions in Background Colour by @clvnkhr in #1777
- Fix mac startup issues by @zmre in #1785
- Update the window float position when resized by @fredizzimo in #1786
- Fix MacOS bundle instructions by @parker-codes in #1802
- Encapsulate glutin by @fredizzimo in #1797
- Use new scroll delta field in viewport event for smooth scrolling by @Kethku in #1827
New Contributors
- @ananthb made their first contribution in #1612
- @Jesse-Bakker made their first contribution in #1633
- @seanstrom made their first contribution in #1632
- @Chloe-Woahie made their first contribution in #1681
- @GuiAmPm made their first contribution in #1660
- @chomosuke made their first contribution in #1707
- @saitonakamura made their first contribution in #1703
- @tobealive made their first contribution in #1697
- @acco32 made their first contribution in #1743
- @Turmiht made their first contribution in #1734
- @rkuklik made their first contribution in #1714
- @fecet made their first contribution in #1652
- @akateiva made their first contribution in #1758
- @kika made their first contribution in #1772
- @clvnkhr made their first contribution in #1777
- @zmre made their first contribution in #1785
- @parker-codes made their first contribution in #1802
- @JakeHandsome made their first contribution in #1800
- @ryo33 made their first contribution in #1766
Full Changelog: 0.10.3...0.10.4
0.10.3
Changes
Bugfixes
- Get full file paths on Windows working again
- Properly bump version so
cargo build --frozen
doesn't complain anymore
0.10.2
Changes
Breaking
pumblend
andwinblend
are respected now, see the FAQ for help on setting them. By default there's no transparency anymore due to the defaults of those being fully opaque. Added in #1199- (Linux) X11 and RPC clipboard mechanisms had another round of fixes again. If an older instance of Neovide has been attached to a NeoVim session and a new instance with this version connects, there be flames. Fix is to restart the NeoVim session. Added in #1540
- Parsing of environment variables is so strict that it only accepts the value
true
as true now. This was not intended and will be fixed in the next release (NOT 0.13).
Bug fixes
- Allow
<C-S-...>
combinations, but only for alphabetic keys - Fix some smooth scrolling glitches (unfortunately implies sometimes missed line draws)
- Cursor now immediately switches to outline only when unfocusing, without delay
- Fix unwanted resizing at startup when the window is remembered to be maximized
- Respect
<C-m>
as equivalent to<CR>
\r
is also interpreted as<CR>
- Resizes imply a redraw now
- Correctly remember the last window size + position again
Other
- There's a Windows MSI below now!
- VSync is configurable through a CLI switch now
- The new
g:neovide_scale_factor
allows control of the overall... scale factor - Font edging and hinting are configurable now
New Contributors
- @Daniel-Esteban made their first contribution in #1483
- @outfoxxed made their first contribution in #1485
- @Pangoraw made their first contribution in #1490
- @s-cerevisiae made their first contribution in #1525
- @daniprado made their first contribution in #1529
- @scottwillmoore made their first contribution in #1557
- @BHatGuy made their first contribution in #1589
- @mgax made their first contribution in #1593
- @DRuppFv made their first contribution in #1371
- @PhotonQuantum made their first contribution in #1598
- @Nawy made their first contribution in #1603
- @jdrouhard made their first contribution in #1616
- @jake-m-commits made their first contribution in #1622
- @tomshoo made their first contribution in #1618
Full Changelog: 0.10.1...0.10.2