No Nonsense Neovim Client in Rust
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Keith Simmons 9308d1d81f rework animation loop and add back animation buffer 5 years ago
assets initial pass on readme 5 years ago
src rework animation loop and add back animation buffer 5 years ago
.gitignore somewhat working with druid 5 years ago
.ok better cursor animation speed and clipping text to grid region 5 years ago
Cargo.lock Fix nvim-rs dependency 5 years ago
Cargo.toml Fix nvim-rs dependency 5 years ago
LICENSE Create LICENSE 5 years ago
README.md Fix a typo again 5 years ago
build.rs icons 5 years ago

README.md

Neovide

This is a simple graphical user interface for Neovim. Where possible there are some graphical improvements, but it should act functionally like the terminal UI.

Basic Screen Cap

I've been using this as my daily driver since November 2019. It should be relatively stable, but I'm still working out some kinks and ironing out some cross platform issues. In general it should be usable at this point, and if it isn't I consider that a bug and appreciate a report in the issues! Any help and ideas are also greatly appreciated.

I'm also very interested in suggestions code quality/style wise when it comes to Rust. I'm pretty new to the language and appreciate any critiques that you might have to offer. I won't take all of them, but I promise to consider anything you might have to offer.

Features

Should be a standard full features Neovim GUI. Beyond that there are some visual niceties:

Ligatures

Supports ligatures and full HarfBuzz backed font rendering.

Ligatures

Animated Cursor

Cursor animates into position with a smear effect to improve tracking of cursor position.

Animated Cursor

Emoji Support

Font fallback supports rendering of emoji not contained in the configured font.

Emoji

More to Come

I've got more ideas for simple unobtrusive improvements. More to come.

Install

Currently there is just a Windows binary under the project releases. I'm hoping to automate and produce Mac and Linux binaries as well, but I haven't gotten there yet.

Installing should be as simple as downloading the binary, making sure nvim.exe is on your path, and running it. Everything should be self contained.

Building

Building instructions are somewhat limited at the moment. All the libraries I use are cross platform and should have support for Windows, Mac, and Linux. The rendering however is Vulkan-based, so driver support for Vulkan will be necessary. On Windows this should be enabled by default if you have a relatively recent system.

Windows

  1. Install the latest version of Rust. I recommend https://rustup.rs/
  2. Ensure graphics libraries are up to date.
  3. git clone https://github.com/Kethku/neovide
  4. cd neovide
  5. cargo build --release
  6. Copy ./targets/release/neovide.exe to a known location and enjoy.

Mac

  1. Install the latest version of Rust. I recommend https://rustup.rs/
  2. Install the Vulkan SDK. I'm told brew cask install apenngrace/vulkan/vulkan-sdk works, but I can't test locally to find out.
  3. git clone https://github.com/Kethku/neovide
  4. cd neovide
  5. cargo build --release
  6. Copy ./targets/release/neovide to a known location and enjoy.

Linux (Probably Ubuntu, your millage may vary)

  1. Install the latest version of Rust. I recommend https://rustup.rs/
  2. Install Vulkan drivers. I'm not sure how on Linux. Id appreciate a PR if you know more :)
  3. Install libgtk: sudo apt install libgtk-3-dev
  4. git clone https://github.com/Kethku/neovide
  5. cd neovide
  6. cargo build --release
  7. Copy ./targets/release/neovide to a known location and enjoy.

If you see an error complaining about DRI3 settings, links in this issue may help: https://github.com/Kethku/neovide/issues/44#issuecomment-578618052.

Note: Currently there seems to be problems with Wayland: https://github.com/aclysma/skulpin/issues/36. Any help would be appreciated.