50dc8b5f10
My build broke because I was missing this |
5 years ago | |
---|---|---|
.github/workflows | 5 years ago | |
assets | 5 years ago | |
src | 5 years ago | |
.gitignore | 5 years ago | |
.ok | 5 years ago | |
Cargo.lock | 5 years ago | |
Cargo.toml | 5 years ago | |
LICENSE | 5 years ago | |
README.md | 5 years ago | |
build.rs | 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.
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 shaping.
Animated Cursor
Cursor animates into position with a smear effect to improve tracking of cursor position.
Emoji Support
Font fallback supports rendering of emoji not contained in the configured font.
More to Come
I've got more ideas for simple unobtrusive improvements. More to come.
Some Nonsense ;)
Cursor Trails and Attention Grabbers
These are configurable via the g:neovide_cursor_vfx_mode
global variable.
Railgun
let g:neovide_cursor_vfx_mode = "railgun"
Torpedo
let g:neovide_cursor_vfx_mode = "torpedo"
Pixiedust
let g:neovide_cursor_vfx_mode = "pixiedust"
Sonic Boom
let g:neovide_cursor_vfx_mode = "sonicboom"
Ripple
let g:neovide_cursor_vfx_mode = "ripple"
Wireframe
let g:neovide_cursor_vfx_mode = "wireframe"
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
with version 0.4 or greater 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.
Note: Neovide requires neovim version 0.4 or greater.
Windows
- Install the latest version of Rust. I recommend https://rustup.rs/
- Install CMake. I use chocolatey:
choco install cmake --installargs '"ADD_CMAKE_TO_PATH=System"' -y
- Install LLVM. I use chocolatey:
choco install llvm -y
- Ensure graphics libraries are up to date.
git clone https://github.com/Kethku/neovide
cd neovide
cargo build --release
- Copy
./target/release/neovide.exe
to a known location and enjoy.
Mac
- Install the latest version of Rust. I recommend https://rustup.rs/
- Install the Vulkan SDK. I'm told
brew cask install apenngrace/vulkan/vulkan-sdk
works, but I can't test locally to find out. git clone https://github.com/Kethku/neovide
cd neovide
cargo build --release
- Copy
./target/release/neovide
to a known location and enjoy.
Linux
Arch Linux
There is an AUR package for neovide.
git clone https://aur.archlinux.org/neovide.git
cd neovide
makepkg -si
Debian/Ubuntu
Note: Neovide has been successfully built on other distros but this reportedly works on Ubuntu.
-
Install necessary dependencies
sudo apt-get install -y curl \ gnupg ca-certificates git \ gcc-multilib g++-multilib cmake libssl-dev pkg-config \ libfreetype6-dev libasound2-dev libexpat1-dev libxcb-composite0-dev \ libbz2-dev libsndio-dev freeglut3-dev libxmu-dev libxi-dev
-
Install Vulkan SDK
curl -sL "http://packages.lunarg.com/lunarg-signing-key-pub.asc" | sudo apt-key add - sudo curl -sLo "/etc/apt/sources.list.d/lunarg-vulkan-1.2.131-bionic.list" "http://packages.lunarg.com/vulkan/1.2.131/lunarg-vulkan-1.2.131-bionic.list" sudo apt-get update -y sudo apt-get install -y vulkan-sdk
-
Install Rust
curl --proto '=https' --tlsv1.2 -sSf "https://sh.rustup.rs" | sh
-
Clone the repository
git clone "https://github.com/Kethku/neovide"
-
Build
~/.cargo/bin/cargo build --release
-
Copy
./target/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.