Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Neovim
  3. ui.nvim

ui.nvim

MITLuav1.4.1

A customizable Lua plugin for modifying Neovim's UI components like the command-line, messages, and pop-up menu.

GitHubGitHub
158 stars4 forks0 contributors

What is ui.nvim?

ui.nvim is a Lua plugin and template for customizing Neovim's built-in UI components, including the command-line, messages, and pop-up menus. It solves the frustration of working with Neovim's experimental UI APIs by providing a ready-to-use, configurable foundation that handles events and boilerplate automatically.

Target Audience

Neovim users and plugin developers who want to deeply customize the editor's interface beyond standard theming, especially those comfortable with Lua configuration.

Value Proposition

It offers a structured, well-documented approach to UI customization that reduces manual effort, supports dynamic highlights for colorscheme compatibility, and includes practical utilities not easily available elsewhere.

Overview

A blueprint/template/guide to customize Neovim's UI using Lua.

Use Cases

Best For

  • Creating a fully custom command-line interface in Neovim
  • Replacing default message displays with styled, interactive windows
  • Designing personalized pop-up menus with icons and custom layouts
  • Learning how to handle Neovim's UI events and experimental features
  • Building Neovim plugins that require advanced UI modifications
  • Implementing dynamic UI themes that adapt to different colorschemes

Not Ideal For

  • Users who prefer out-of-the-box, minimal-configuration Neovim setups without Lua coding
  • Projects requiring compatibility with Neovim versions earlier than 0.10
  • Teams prioritizing absolute stability over customization, due to reliance on experimental Neovim features with known bugs

Pros & Cons

Pros

Comprehensive Event Handling

Provides a full blueprint for managing Neovim's UI events, eliminating the need to write boilerplate code and handle errors manually, as highlighted in the README's goal to demystify experimental APIs.

Dynamic Highlight Adaptation

Automatically generates highlight groups that work with most colorschemes, ensuring visual consistency without manual adjustment, as described in the utility functions for broad compatibility.

Extensive Customization Options

Offers detailed configuration for command-line, messages, and pop-up menus, including conditional styling, icons, and dynamic appearance based on state, allowing for highly personalized UI elements.

Practical Utility Functions

Includes unique helpers like converting virtual text to buffer text and managing statuscolumn content, which simplify advanced UI modifications not easily achievable elsewhere in the Neovim ecosystem.

Cons

Experimental API Reliance

Built on Neovim's still-evolving UI features, leading to known issues like incorrect pum menu positioning that can break other plugins such as mini.completion, as admitted in the README.

Complex Configuration Schema

The setup function requires a large, nested configuration table with many options, which can be overwhelming for users not deeply familiar with Lua and Neovim's UI specifics, despite the wiki.

Limited Out-of-the-Box Stability

Due to its experimental nature, the plugin may encounter bugs or incompatibilities, such as redraw event issues in Neovim 0.11, affecting reliability in production environments.

Frequently Asked Questions

Quick Stats

Stars158
Forks4
Contributors0
Open Issues2
Last commit6 months ago
CreatedSince 2025

Tags

#popup-menu#syntax-highlighting#neovim-plugin#ui#ui-framework#command-line#lua-configuration#editor-customization#vim-plugin#neovim-ui

Built With

N
Neovim
L
Lua

Included in

Neovim20.6k
Auto-fetched 9 hours ago

Related Projects

noice.nvimnoice.nvim

💥 Highly experimental plugin that completely replaces the UI for messages, cmdline and the popupmenu.

Stars5,816
Forks177
Last commit10 months ago
nvim-notifynvim-notify

A fancy, configurable, notification manager for NeoVim

Stars3,571
Forks100
Last commit1 year ago
visual-whitespace.nvimvisual-whitespace.nvim

Imitate VSCode's "Render Whitespace" feature in visual mode

Stars476
Forks8
Last commit3 months ago
cybu.nvimcybu.nvim

Neovim plugin that offers context when cycling buffers in the form of a customizable notification window.

Stars328
Forks10
Last commit4 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub