Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rmichelsen/nvy
Nvy - A Neovim client in C++
https://github.com/rmichelsen/nvy
cpp directwrite neovim-guis nvim windows
Last synced: about 11 hours ago
JSON representation
Nvy - A Neovim client in C++
- Host: GitHub
- URL: https://github.com/rmichelsen/nvy
- Owner: RMichelsen
- License: mit
- Created: 2020-08-18T21:43:45.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-27T22:18:00.000Z (3 months ago)
- Last Synced: 2024-12-22T02:04:15.335Z (about 11 hours ago)
- Topics: cpp, directwrite, neovim-guis, nvim, windows
- Language: C++
- Homepage:
- Size: 569 KB
- Stars: 338
- Watchers: 9
- Forks: 28
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Nvy
Nvy is a minimal [Neovim](https://neovim.io/) client for Windows written in C++.
It uses DirectWrite to shape and render the grid cells and text.\
Since Nvy is just a front-end for Neovim, installing Neovim is required to use Nvy, preferably the
latest nightly version from [here](https://github.com/neovim/neovim/releases).![Showcase image](resources/client.png)
## Configuration
Nvy sets the global vim variable `g:nvy = 1` in case you want to specialize your init.vim while using Nvy.
Fonts can be changed by setting the guifont in `init.vim`, for example:
`set guifont=Fira\ Code:h24`.
Note: you have to specify the font size, e.g. `set guifont=Fira\ Code` won't work.
A fallback font can be specified by appending it, e.g. `set guifont=Fira\ Code:h24:Consolas` to set Consolas as the fallback font.Nvy can be started with the following flags:
- `--maximize` to start in maximized
- `--fullscreen` to start in fullscreen
- `--position=,` to start with a given position, e.g. `--position=500,200`
- `--geometry=x` to start with a given number of rows and columns, e.g. `--geometry=80x25`
- `--disable-ligatures` to disable font ligatures
- `--disable-fullscreen` to disable toggling fullscreen with Alt+Enter
- `--linespace-factor=` to scale the line spacing by a floating point factor, e.g. `--linespace-factor=1.2`
- `--cursor-timeout=` to hide the cursor after some time (in ms) of being idle, e.g. `--cursor-timeout=2000`
- `--neovim-bin=` to provide path to nvim.exe, e.g. `--neovim-bin="C:\neovim\nvim-win64\bin\nvim.exe"`## Extra Features
- You can use Alt+Enter to toggle fullscreen
- You can use Ctrl+Mousewheel to zoom
- You can drag files onto Nvy to open them (:e)
- Dragging files while holding Ctrl opens them in a new window (:new)## Releases
Releases can be found [here](https://github.com/RMichelsen/Nvy/releases)
## Build
### Requirements
- A compiler supporting `C++20`
- [The latest Windows SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/)Apart from the Windows SDK, the only dependency Nvy uses is the excellent [MPack](https://github.com/ludocode/mpack) library
which is compiled alongside the client itself.### Build example with [Ninja](https://ninja-build.org/)
```sh
git clone https://github.com/RMichelsen/Nvy.git
cd Nvy
mkdir build
cd build
cmake .. -GNinja
ninja
```