A modern frontend for Neovim.

Related tags

CLI nvui
Overview

NVUI

first

Featuring

  • Custom Titlebar (toggleable, see :h nvui-titlebar)
  • External Command Line (nvui --ext_cmdline)
  • Configurable positions, sizes, colors, border width, border color, etc.
  • For more information see :h nvui-cmdline

ext_cmdline

  • External Popup Menu (nvui --ext_popupmenu)
  • Configurable colors, background colors, icon sizes, alignment, border width, border color, etc.
  • For more information see :h nvui-popup

ext_popupmenu

  • Cross-platform Qt, DirectWrite on Windows
  • Font Fallback (see guifont in the bottom left)
  • Configurable through "set guifont"

fallback

  • External Multigrid Support (:h nvui-multigrid)
  • nvui --ext_multigrid
  • Smooth Scrolling
  • smoothscroll.mp4
  • Animated Windows
  • windows.mp4
  • Animated Cursor (no VFX... yet)
  • Customizable cursor height (see :h NvuiCaretExtendTop and :h NvuiCaretExtendBottom)
    • Ex. :NvuiCaretExtendTop 200, :NvuiCaretExtendBottom 100 (see below)
caretextend.mp4

Documentation

:h nvui (vim/doc/nvui.txt)

Build Instructions

See the wiki

Configuration (Command Line Arguments / Vim Configuration)

See the wiki and :h nvui for Vim command documentation.

Issues
  • Can't trigger fcitx

    Can't trigger fcitx

    My system information

    Linux 5.13.12-arch1-1 x86_64 GNU/Linux
    

    Issue I met

    I am a Chinese user. And I used fcitx as the Chinese input method. However, I can't trigger the input panel like other neovim GUI or the TUI when I am using the nvui.

    • Normal behavior in terminal

    image

    • In nvui

      It just outputs English nor creates the fcitx input panel.

    My fcitx version:

    fcitx version: 4.2.9.7
    
    opened by Avimitin 15
  • Opening Chadtree results in an error

    Opening Chadtree results in an error

    Opening Chadtree causes this error for me

    terminate called after throwing an instance of 'msgpack::v1::insufficient_bytes'
      what():  insufficient bytes
    [1]    3544750 abort (core dumped)  
    
    opened by parascent 10
  • [feature request] built in workspace function

    [feature request] built in workspace function

    Is it possible to manage multiple nvim instances, each instance contains an individual session. This can help me jump between each project without closing or opening a new nvui window.

    I've tried mksession and some session managers. They can jump between session but I can't open a brand new workspace. I have to open file, clean up buffer and save session before I swich between those sessions. That's putting the cart before the horse.

    I've seen goneovim did it: https://github.com/akiyosi/goneovim#workspaces. Don't know if it is possible to add this feature in nvui because I really love it.

    Thanks for your contribution.

    opened by Avimitin 9
  • invisible messages

    invisible messages

    Hi, nvui should show an opening message because my vimrc contains an error. The message is invisible. To understand: this screenshot shows navi and nvim-qt side by side. https://pasteboard.co/LO3Wrz4TgOUT.png Thanks!

    opened by gattomarcomix 8
  • Rendering issues: command line renders below screen

    Rendering issues: command line renders below screen

    image

    Just off the bat, this is what nvui looks like when I open it.

    For starters, it's confused by my taskbar placement and hides the title bar behind it; this is remedied by using the Windows+Arrow keys of course.

    Secondly, the correct font is not used; it renders a non-monospaced font. I have a ginit.vim, but nvui hasn't read any of it. How do I get it to read my configuration? I know that the problem stems from not having a monospace font (#32), but I've set a monospace font in configuration.

    Speaking of setting, for some reason I can't see the status line no matter what. This means I can't see commands; they are below the window.

    https://user-images.githubusercontent.com/59306451/131559040-37f2f269-a1ae-4f9f-81fa-ef496258d0b0.mp4

    (Sorry about the recording; I just used the Powerpoint screen recorder. I captured the entirety of the nvui screen for sure.)

    Now, I can set guifont to some fallback like Consolas after I get into the gui. And I'm sure I could set the window to open to whatever position I want it (just need to figure out where to configure it, or use the terminal). However, I still wouldn't be able to see the command line. Do you have any idea why this occurs? It occurs even with init.vim and ginit.vim empty.

    I am on Windows 10, with neovim 0.5.0.

    opened by rabirabirara 8
  • Some rendering issues

    Some rendering issues

    I just tried the newest release on Windows 10. Here are some issues, I can't experiment further after that:

    • Font is broken
    • The status bar is lost
    • Is there any way I can speed up the animation? Otherwise, it's nice, looking for improvement image
    opened by finnng 8
  • frameless title bar leaves big white lines on the other screen when maximized (windows 11)

    frameless title bar leaves big white lines on the other screen when maximized (windows 11)

    snapping the app to maximize or clicking the maximize button leaves a white border on the other screen (dual monitor) when using a frameless title bar, no issues if it's disabled. white border doesn't appear if it's snapped on half the screen or quarter, only happens in maximize. also doesn't appear on nvuitogglefullscreen. hopefully could be fixed soon, this is the only customizable title bar nvim gui i could find, and i've been loving it, thank you so much for your hard work.

    opened by rakanzaidm 7
  • [WIP] Various Changes

    [WIP] Various Changes

    • Fix crash on getting completion list (#36)
    • Map Cmd key to C- key on Mac
    • Add support for Super (D-) key
    • Fix rendering issues on Mac (#70)
    • Link ext_cmdline to default colors by default
    • Fix alignment of popup menu info on ext_multigrid (workaround Neovim bug, can't be worked around without multigrid)
    • Notify user of font families that couldn't be found
    opened by rohit-px2 7
  • Stricter compiler warning policy

    Stricter compiler warning policy

    Make warnings errors in CMakeLists.txt, and then fix all the resulting errors.

    I was not able to fix the errors about unknown macros, but I'm not sure where they are coming from or what to do to fix it. Looks like it's related to cppcheck but you're not using cppcheck...

    opened by mattfbacon 7
  • crash after running an output-heavy process in the terminal

    crash after running an output-heavy process in the terminal

    When opening a terminal (using :term) and running an output-heavy application, after a while nvui crashes. The terminal where i started it from then says:

    terminate called after throwing an instance of 'msgpack::v1::insufficient_bytes'
      what():  insufficient bytes
    
    abort (core dumped)
    
    opened by Marenz 7
  • fix: blurry text on high-dpi display

    fix: blurry text on high-dpi display

    Hey I was trying out this app and found fonts were showing up blurry (I am using kde with scaling), I think the issue was the Qt auto scaling just scales the font pixels rather than the point size hence the edges don't look quite right.

    Anyway this just disables Qt's own scaling, I'm pretty sure the fonts are still scaled up according to my desktop scaling as the text size looks the same between this and main.

    I have not tested this on anything but my machine

    before: before_nvui-dpiscaling

    after: after_nvui-dpiscaling

    opened by 0x00002a 0
  • Mapping with numerical keys does not work

    Mapping with numerical keys does not work

    For example, try map vim standard key: vim.api.nvim_set_keymap('', '<c-6>', ':e #<CR>', {noremap = true, silent = true}) It does not work. If use '<c-;>' instead of '' there is no problem.

    opened by damanis 0
  • Japanese IME Problem. Don't Show Candidate Window.

    Japanese IME Problem. Don't Show Candidate Window.

    My System Information

    Windows 10 Pro 20H2 NVIM V0.6.1 NVUI 0.2.1(Download zip file)

    Issue

    I use Japanese IME. When I input Japanese, Don`t show candidate Window.

    First gif file, I use Japanese in neovim-qt. I input "nihongo" in keyboard (It means "Japanese Language") It shows "にほんご" in Japanese letters Then change to "日本語" in Chinese letters neovim-qt

    Second gi file I use Japanese in NVUI don't show "にほんご" and don't move cursor. Suddenly shows "日本語" nvui-ime

    Sorry for my poor English.

    opened by homaji 1
  • cannot close nvui if there is another program called from nvui is not closed

    cannot close nvui if there is another program called from nvui is not closed

    I write latex in nvim using VimTex. There is a function to call pdfviewer (SumatraPdf in my case) directlly from nvim, and do live compiling.

    For other nvim frontend, I can close nvim and leave the pdf viewer open. In nvui, closing the nvui window will freeze the ui, until I close the pdf viewer (after that nvui will close automatically).

    Ideally, this should not happen.

    opened by xarthurx 0
Releases(v0.2.1)
  • v0.2.1(Dec 2, 2021)

    • Added commands to enable/disable popup menu and command line (:NvuiPopupmenu/:NvuiCmdline)
    • Fixed cursor background on Windows
    • Fixed numpad keys being ignored
    • Pressing the close button now sends confirm qa, which lets you know if you have unsaved changes before you quit
    • Undercurl and underline now use your foreground color as the fallback so if you haven't defined a guisp for a highlight group, it will use guifg
    • Fixes for floating window ordering and flickering during scrolling
    Source code(tar.gz)
    Source code(zip)
    nvui-linux-x64.zip(24.85 MB)
    nvui-macos-x64.zip(19.52 MB)
    nvui-win64.zip(21.85 MB)
  • v0.2.0(Nov 2, 2021)

    • Fixed some bugs regarding alignment of CJK characters on Linux
    • Fixed clipping of Nerd Font icons
    • Switched to custom text decorations (undercurl now draws with a squiggly line - you can customize the color using guisp)
    • If you're using an IME, you can enable/disable/toggle it with :NvuiIMEEnable/:NvuiIMEDisable/:NvuiIMEToggle at runtime (e.g. turning off IME in command mode) - see the wiki for an example
    • File arguments are forwarded to Neovim automatically, so you can do nvui file.txt to open up a file
    Source code(tar.gz)
    Source code(zip)
    nvui-linux-x64.zip(24.84 MB)
    nvui-macos-x64.zip(19.51 MB)
    nvui-win64.zip(21.85 MB)
  • v0.1.4-v2(Oct 16, 2021)

    Changes:

    • Mouse improvements, support for double, triple, and quadruple-clicks
    • Some keyboard fixes (In particular, <S-Tab> should register now)
    • Fixed flicker on frameless window on Windows
    • :NvuiHideCursorWhileTyping v:true will hide the cursor when you type, and moving/clicking with the mouse will make it reappear
    • nvui --detached will detach the process from your terminal.

    (Last time the macos release didn't go through, this is the 2nd attempt)

    Source code(tar.gz)
    Source code(zip)
    nvui-linux-x64.zip(24.82 MB)
    nvui-macos-x64.zip(19.50 MB)
    nvui-win64.zip(21.84 MB)
  • v0.1.3(Sep 29, 2021)

    Improvements:

    • :NvuiCharspace now accepts floating-point numbers so you can change letter spacing by small margins
    • The command line will link with your color scheme by default, if you haven't set colors using :NvuiCmdBg/:NvuiCmdFg

    Changes:

    • nvui now uses the native title bar by default. You can get the custom titlebar by passing the --titlebar command-line flag (#67)

    Fixes:

    • Fixed broken rendering on Windows with non-default DPI displays (#46 #30)
    • Fixed some keys not being registered on Mac when modifiers are pressed. Note: Following Neovim-Qt, Ctrl maps to <C-, and Cmd maps to <D- (#69)
    Source code(tar.gz)
    Source code(zip)
    nvui-linux-x64.zip(24.82 MB)
    nvui-macos-x64.zip(19.47 MB)
    nvui-win64.zip(21.83 MB)
  • v0.1.2(Sep 7, 2021)

  • v0.1.1(Sep 1, 2021)

    What's new since v0.1.0

    New:

    • nvui now defaults to a monospace font when a font has not been set through set guifont (PR #33)

    Fixes:

    • Fixed a crash with error 'msgpack::v1;:insufficient_bytes' (PR #42) (Issues #41 #40 #23)
    • Fixed a crash on an assertion condition when built in Debug mode (#31)
    • Fixed compilation errors on some compilers due to a missing parameter in fmt::print (#27)
    • Fixed an error on Linux where nvui would not load the fontconfig file (#21)
    • nvui now processes the End key properly
    Source code(tar.gz)
    Source code(zip)
    nvui-linux-x64.zip(24.79 MB)
    nvui-win64.zip(21.82 MB)
Owner
Rohit Pradhan
CS 2025 @ University of Waterloo
Rohit Pradhan
Activity Indicators for Modern C++

Highlights Thread-safe progress bars and spinners Header-only library. Grab a copy of include/indicators. Single-header version in single_include/indi

Pranav 2k May 17, 2022
Table Maker for Modern C++

Source for the above image can be found here Table of Contents Quick Start Formatting Options Style Inheritance Model Word Wrapping Font Alignment Fon

Pranav 1.2k May 17, 2022
Contour - A modern C++ Terminal Emulator

contour is a modern terminal emulator, for everyday use. It is aiming for power users with a modern feature mindset.

Contour Terminal Emulator 805 May 10, 2022
ssheven - A modern SSH client for Mac OS 7/8/9.

ssheven - A modern SSH client for Mac OS 7/8/9.

null 434 May 11, 2022
Argument Parser for Modern C++

Highlights Single header file Requires C++17 MIT License Quick Start Simply include argparse.hpp and you're good to go. #include <argparse/argparse.hp

Pranav 1.1k May 14, 2022
easy to use, powerful & expressive command line argument parsing for modern C++ / single header / usage & doc generation

clipp - command line interfaces for modern C++ Easy to use, powerful and expressive command line argument handling for C++11/14/17 contained in a sing

André Müller 872 May 11, 2022
Free open-source modern C++17 / C++20 framework to create console, forms (GUI like WinForms) and unit test applications on Microsoft Windows, Apple macOS and Linux.

xtd Modern C++17/20 framework to create console (CLI), forms (GUI like WinForms) and tunit (unit tests like Microsoft Unit Testing Framework) applicat

Gammasoft 292 May 14, 2022
Modern C++ Undo / Redo framework

History Hello Developers! I present to you History, a modern C++ (C++17) Undo / Redo framework. My goal was to create a non-intrusive, compact and int

null 14 Jan 11, 2022
Nvui: A NeoVim GUI written in C++ and Qt

Nvui: A NeoVim GUI written in C++ and Qt

Rohit Pradhan 1.5k May 15, 2022
Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.

RetroArch RetroArch is the reference frontend for the libretro API. Popular examples of implementations for this API includes video game system emulat

null 6.6k May 10, 2022
Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.

RetroArch RetroArch is the reference frontend for the libretro API. Popular examples of implementations for this API includes video game system emulat

null 6.6k May 10, 2022
GUI frontend for moonlight-embedded, (currently) runs on webOS

Moonlight TV Moonlight TV is a GUI front end for Moonlight GameStream Client. With some components from moonlight-embedded. It was originally designed

Mariotaku 304 May 17, 2022
A Zig binding to the webview library. Make Zig applications with a nice HTML5 frontend a reality!

A Zig binding to the webview library. Make Zig applications with a nice HTML5 frontend a reality!

ZigLibs 26 Feb 25, 2022
Provenance - An iOS & tvOS Frontend for Multiple Emulators

iOS & tvOS multi-emulator frontend, supporting various Atari, Bandai, NEC, Nintendo, Sega, SNK and Sony console systems…

Provenance Emu 4.9k May 9, 2022
wwasm (Wgmlgz wasm) - is a c++ & reactjs liblary for connecting c++ backend and reactjs frontend.

WWASM (Wgmlgz wasm) - is a c++ & reactjs liblary for connecting c++ backend and reactjs frontend.

null 1 Nov 23, 2021
NaiveCC: a compiler frontend for a subset of C

NaiveCC: a compiler frontend for a subset of C This is a toy compiler frontend for a subset of the C programming language based on the LR(1) parsing t

Yuxiang Wei 1 Nov 15, 2021
Writing a basic compiler frontend following LLVM's tutorial, with complete added supports Hindi and UTF-8 in general

सारस | SARAS Started with following LLVM's tutorial In development, a hobby project only JIT is broken right now, 'jit' branch par code hai uska Compi

Aditya Gupta 4 May 1, 2022
Deluxe68 - A simple register allocator frontend for 68k assembly

Deluxe68 Deluxe68 is a simple (stupid) register allocator frontend for 68k assembly. It is a source to source translator, so you'll need your regular

Andreas Fredriksson 33 Nov 4, 2021
A single header C++ wasm frontend library leveraging Emscripten

Livid Livid is a single header C++ wasm frontend library leveraging Emscripten. Usage The code looks something like this: #include "livid/livid.hpp" #

Mohammed Alyousef 15 Apr 7, 2022
Frontend web application to control an arduino

Arduino Smart Blinds Frontend web application to control an arduino This project aims at created a frontent web page that communicates with an arduino

Corentin Royer 1 Jan 23, 2022
A modern day direct port of BOOM 2.02 for modern times. Aiming to tastefully continue the development of BOOM, in the style of TeamTNT.

ReBOOM ReBOOM is a continuation of the BOOM source port, version 2.02. what is it ReBOOM is a source port, directly ported from BOOM 2.02 with additio

Gibbon 10 Apr 2, 2022
C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library

Build Status Travis CI VM: Linux x64: Raspberry Pi 3: Jetson TX2: Backstory I set to build ccv with a minimalism inspiration. That was back in 2010, o

Liu Liu 6.8k May 6, 2022
Header-only, event based, tiny and easy to use libuv wrapper in modern C++ - now available as also shared/static library!

Do you have a question that doesn't require you to open an issue? Join the gitter channel. If you use uvw and you want to say thanks or support the pr

Michele Caini 1.4k May 11, 2022
A library for interactive command line interfaces in modern C++

cli A cross-platform header only C++14 library for interactive command line interfaces (Cisco style) Features Header only Cross-platform (linux and wi

Daniele Pallastrelli 782 May 9, 2022
Activity Indicators for Modern C++

Highlights Thread-safe progress bars and spinners Header-only library. Grab a copy of include/indicators. Single-header version in single_include/indi

Pranav 2k May 17, 2022
Table Maker for Modern C++

Source for the above image can be found here Table of Contents Quick Start Formatting Options Style Inheritance Model Word Wrapping Font Alignment Fon

Pranav 1.2k May 17, 2022
Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines to rule them all

concurrencpp, the C++ concurrency library concurrencpp is a tasking library for C++ allowing developers to write highly concurrent applications easily

David Haim 921 May 11, 2022
A modern, portable, easy to use crypto library.

Sodium is a new, easy-to-use software library for encryption, decryption, signatures, password hashing and more. It is a portable, cross-compilable, i

Frank Denis 10.1k May 15, 2022
Fast CSV parser and writer for Modern C++

Table of Contents CSV Reader Performance Benchmark Reader API CSV Writer Writer API Compiling Tests Generating Single Header Contributing License CSV

Pranav 270 May 15, 2022