All Projects → Kethku → Neovide

Kethku / Neovide

Licence: mit
No Nonsense Neovim Client in Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Neovide

Vkquake2
id Software's Quake 2 v3.21 with mission packs and Vulkan support (Windows, Linux, MacOS, FreeBSD, Raspberry Pi 4)
Stars: ✭ 543 (-90.44%)
Mutual labels:  vulkan, gpu
Dain Ncnn Vulkan
DAIN, Depth-Aware Video Frame Interpolation implemented with ncnn library
Stars: ✭ 194 (-96.58%)
Mutual labels:  vulkan, gpu
Tvm
Open deep learning compiler stack for cpu, gpu and specialized accelerators
Stars: ✭ 7,494 (+31.98%)
Mutual labels:  vulkan, gpu
Agi
Android GPU Inspector
Stars: ✭ 327 (-94.24%)
Mutual labels:  vulkan, gpu
Rife Ncnn Vulkan
RIFE, Real-Time Intermediate Flow Estimation for Video Frame Interpolation implemented with ncnn library
Stars: ✭ 108 (-98.1%)
Mutual labels:  vulkan, gpu
Realsr Ncnn Vulkan
RealSR super resolution implemented with ncnn library
Stars: ✭ 357 (-93.71%)
Mutual labels:  vulkan, gpu
Vkquake
Vulkan Quake port based on QuakeSpasm
Stars: ✭ 955 (-83.18%)
Mutual labels:  vulkan, gpu
Acid
A high speed C++17 Vulkan game engine
Stars: ✭ 838 (-85.24%)
Mutual labels:  vulkan, gpu
Waifu2x Ncnn Vulkan
waifu2x converter ncnn version, runs fast on intel / amd / nvidia GPU with vulkan
Stars: ✭ 1,258 (-77.84%)
Mutual labels:  vulkan, gpu
Dain Vulkan Gui
AI-Powered video interpolater (eg. 30fps -> 60fps) for Vulkan devices. Based on dain-ncnn-vulkan and ffmpeg
Stars: ✭ 58 (-98.98%)
Mutual labels:  vulkan, gpu
Vuh
Vulkan compute for people
Stars: ✭ 264 (-95.35%)
Mutual labels:  vulkan, gpu
Vulkancore
Vulkan 1.0 graphics and compute API bindings for .NET Standard
Stars: ✭ 162 (-97.15%)
Mutual labels:  vulkan, gpu
Datoviz
⚡ High-performance GPU interactive scientific data visualization with Vulkan
Stars: ✭ 222 (-96.09%)
Mutual labels:  vulkan, gpu
Gfx
[maintenance mode] A low-overhead Vulkan-like GPU API for Rust.
Stars: ✭ 5,045 (-11.15%)
Mutual labels:  vulkan, gpu
Ncnn Android Styletransfer
The style transfer android example
Stars: ✭ 54 (-99.05%)
Mutual labels:  vulkan, gpu
Gapid
GAPID is a collection of tools that allows you to inspect, tweak and replay calls from an application to a graphics driver.
Stars: ✭ 1,975 (-65.22%)
Mutual labels:  vulkan, gpu
Srmd Ncnn Vulkan
SRMD super resolution implemented with ncnn library
Stars: ✭ 186 (-96.72%)
Mutual labels:  vulkan, gpu
Hdltex
HDLTex: Hierarchical Deep Learning for Text Classification
Stars: ✭ 191 (-96.64%)
Mutual labels:  gpu
Lwjgl3 Demos
Demo suite for LWJGL 3
Stars: ✭ 192 (-96.62%)
Mutual labels:  vulkan
Etl
Blazing-fast Expression Templates Library (ETL) with GPU support, in C++
Stars: ✭ 190 (-96.65%)
Mutual labels:  gpu

Neovide Discord Chat on Matrix Discussions

This is a simple graphical user interface for Neovim (an aggressively refactored and updated Vim editor). Where possible there are some graphical improvements, but functionally it should act 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 fully featured Neovim GUI. Beyond that there are some visual niceties:

Ligatures

Supports ligatures and font shaping.

Ligatures

Animated Cursor

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

Animated Cursor

Smooth Scrolling

Scroll operations on buffers in neovim will be animated smoothly pixel wise rather than line by line at a time. Note, multigrid must be enabled for this to work. https://github.com/Kethku/neovide/wiki/Configuration#multigrid

Smooth Scrolling

Animated Windows

Windows animate into position when they are moved making it easier to see how layout changes happen. Note, multigrid must be enabled for this to work. https://github.com/Kethku/neovide/wiki/Configuration#multigrid

Animated Windows

Blurred Floating Windows

The backgrounds of floating windows are blurred improving the visual separation between foreground and background from built in window transparency. Note, multigrid must be enabled for this to work. https://github.com/Kethku/neovide/wiki/Configuration#multigrid

Blurred Floating Windows

Emoji Support

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

Emoji

WSL Support

Neovide supports displaying a full gui window from inside wsl via the --wsl command argument. Communication is passed via standard io into the wsl copy of neovim providing identical experience similar to visual studio code's remote editing https://code.visualstudio.com/docs/remote/remote-overview.

Remote TCP Support

Neovide supports connecting to a remote instance of Neovim over a TCP socket via the --remote-tcp command argument. This would allow you to run Neovim on a remote machine and use the GUI on your local machine, connecting over the network.

Launch Neovim as a TCP server (on port 6666) by running:

nvim --headless --listen localhost:6666

And then connect to it using:

/path/to/neovide --remote-tcp=localhost:6666

By specifying to listen on localhost, you only allow connections from your local computer. If you are actually doing this over a network you will want to use SSH port forwarding for security, and then connect as before.

ssh -L 6666:localhost:6666 ip.of.other.machine nvim --headless --listen localhost:6666

Finally, if you would like to leave the neovim server running, close the neovide application window instead of issuing a :q command.

Some Nonsense ;)

let g:neovide_cursor_vfx_mode = "railgun"

Railgun

More to Come

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

Configuration

Configuration is done almost completely via global neovide variables in your vim config and can be manipulated live at runtime. Details can be found here.

Install

Note: 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. On Windows this should be enabled by default if you have a relatively recent system.

Note: Neovide requires neovim version 0.4 or greater.

From binary

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 is based on opengl, so a good gpu driver will be necessary. On Windows this should be enabled by default if you have a relatively recent system.

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.

Windows

Package manager

Scoop has Neovide in the extras bucket. Ensure you have the extras bucket, and install:

$ scoop bucket list
main
extras
$ scoop install neovide

From source

  1. Install the latest version of Rust. I recommend https://rustup.rs/

  2. Install CMake. I use chocolatey: choco install cmake --installargs '"ADD_CMAKE_TO_PATH=System"' -y

  3. Install LLVM. I use chocolatey: choco install llvm -y

  4. Ensure graphics libraries are up to date.

  5. Build and install Neovide:

    git clone https://github.com/Kethku/neovide
    cd neovide
    cargo build --release
  6. Copy ./target/release/neovide.exe to a known location and enjoy.

Mac (from source)

  1. Install the latest version of Rust. Using homebrew: brew install rustup-init
  2. Configure rust by running rustup-init
  3. Install CMake. Using homebrew: brew install cmake
  4. git clone https://github.com/Kethku/neovide
  5. cd neovide
  6. cargo build --release
  7. Copy ./target/release/neovide to a known location and enjoy.

Linux

Arch Linux

There is an AUR package for neovide.

With Paru (or your preferred AUR helper)
paru -S neovide-git
Without helper
git clone https://aur.archlinux.org/neovide-git.git
cd neovide-git
makepkg -si

To install a non-default branch:

git clone https://aur.archlinux.org/neovide-git.git
cd neovide-git
nvim PKGBUILD
:%s/l}/l}#branch=branch-name-here/
:wq
makepkg -si

Note: Neovide requires that a font be set in init.vim otherwise errors might be encountered. See #527

With non-default branch
git clone https://aur.archlinux.org/neovide-git.git
cd neovide-git
REGEX=$(printf 's/{url}/&\#branch=%s/g' '<YOUR-BRANCH-HERE>')
sed "$REGEX" PKGBUILD
makepkg -si

With Snap

Neovide is also available in the Snap Store. You can install it using the command below.

snap install neovide

Get it from the Snap Store

From source

  1. Install necessary dependencies (adjust for your preferred package manager)

    sudo apt 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 libfontconfig1-dev
  2. Install Rust

    curl --proto '=https' --tlsv1.2 -sSf "https://sh.rustup.rs" | sh
  3. Clone the repository

    git clone "https://github.com/Kethku/neovide"
  4. Build

    cd neovide && ~/.cargo/bin/cargo build --release
  5. Copy ./target/release/neovide to a known location and enjoy.

Troubleshooting

  • Neovide requires that a font be set in init.vim otherwise errors might be encountered. This can be fixed by adding set guifont=Your\ Font\ Name:h15 in init.vim file. Reference issue #527.

Linux-specific

  • If you recieve errors complaining about DRI3 settings, please reference issue #44.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].