vhakulinen / gnvim

GUI for neovim, without any web bloat
MIT License
1.86k stars 68 forks source link
gtk gui neovim neovim-guis nvim rust text-editor ui

GNvim Logo

GNvim - GTK4 Neovim GUI

Gnvim, opinionated Neovim GUI.

Screenshot of gnvim

For previous gtk3 version, checkout the legacy branch.

Install

NOTE: gnvim requires nvim version 0.10 or higher.

Flatpak

If you're using flatpak, you can build a GNvim flatpak locally:

$ # Install flatpak-builder
$ sudo apt install flatpak-builder
$ make install-flatpak-deps # Install required runtime and SDKs
$ make install-flatpak # Build and install the flatpak
$ # Optional: install gnvim runtime files (i.e. for `lua require('gnvim')`)
$ flatpak run com.github.vhakulinen.gnvim.Devel --install-runtime-files

System

Install system wide:

$ # Install cargo (e.g. the rust toolchain)
$ # Install gtk4 and libadwaita dev files, e.g. apt install libgtk-4-dev libadwaita-1-dev (see below)
$ make build
$ sudo make install

More detailed instructions regarding gtk4 requirements, see the gtk-rs book's instructions).

Documentation

See :h gnvim and/or runtime/doc/gnvim.txt.

Development

Gnvim comes with custom rpc client which uses code generation for generating bindings to the Neovim API. This is done by the scripts/generate-bindings.sh script and requires the moreutils package.