Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Neovim
  3. zen-mode.nvim

zen-mode.nvim

Apache-2.0Luav1.4.1

A Neovim plugin that creates a distraction-free full-screen floating window for focused coding.

GitHubGitHub
2.1k stars76 forks0 contributors

What is zen-mode.nvim?

Zen Mode is a Neovim plugin that creates a distraction‑free coding environment by opening the current buffer in a full‑screen floating window. It helps developers focus by hiding UI elements like the status line and integrating with terminal emulators to adjust font sizes, all while preserving existing window layouts.

Target Audience

Neovim users (version 0.5 or newer) who want a minimalist, focused interface for writing code without leaving their editor.

Value Proposition

Unlike basic full‑screen modes, Zen Mode uses Neovim's floating windows to isolate your buffer without disrupting splits or layouts, offers deep customization via Lua callbacks, and integrates with popular terminals and plugins for a seamless experience.

Overview

🧘 Distraction-free coding for Neovim

Use Cases

Best For

  • Writing long‑form code or documentation without distractions
  • Pair programming or screen sharing with a clean, focused view
  • Neovim users who want a VS Code‑like Zen Mode experience
  • Integrating with terminal emulators like Kitty, Alacritty, or Wezterm
  • Using alongside plugins like Telescope or LSP hover windows
  • Customizing UI visibility (e.g., hiding status line, number column) during focus sessions

Not Ideal For

  • Neovim users on versions older than 0.5 or builds prior to May 15, 2021, as it requires the z-index feature for floating windows.
  • Developers who need to maintain visibility of multiple split windows or buffers simultaneously during focused work sessions.
  • Teams using terminal emulators not explicitly supported (e.g., iTerm2, GNOME Terminal) where font scaling integrations are unavailable.

Pros & Cons

Pros

Non-Destructive Layout

Preserves existing window splits and layouts, allowing users to toggle Zen Mode without disrupting their workspace, as highlighted in the README's non-destructive philosophy.

Deep Customization

Offers Lua callbacks (on_open, on_close) and configurable UI options to hide elements like status line, number column, and fold column, providing tailored distraction-free environments.

Seamless Plugin Integration

Works correctly with other floating windows like LSP hover and Telescope, and can disable plugins such as gitsigns or adjust terminal font sizes for a cohesive experience.

Automatic Closure

Automatically closes the Zen window when a new non-floating window is opened, ensuring it doesn't interfere with workflow interruptions like opening files or plugins.

Cons

Complex Terminal Setup

Integrations with terminals like Wezterm and tmux require manual configuration, such as adding custom Lua functions and enabling passthrough options, which can be cumbersome and error-prone.

Limited Neovim Compatibility

Only supports Neovim builds newer than May 15, 2021, excluding users on older versions or stable distributions that lack the required z-index feature.

UI Element Trade-offs

Hiding UI elements like the status line by default might break workflows that rely on real-time information, and the backdrop shading could be visually jarring if not customized properly.

Open Source Alternative To

zen-mode.nvim is an open-source alternative to the following products:

Visual Studio Code Zen Mode
Visual Studio Code Zen Mode

A distraction-free mode in Visual Studio Code that hides all UI elements except the editor, allowing you to focus entirely on your code.

Frequently Asked Questions

Quick Stats

Stars2,149
Forks76
Contributors0
Open Issues0
Last commit8 months ago
CreatedSince 2021

Tags

#productivity#vim#neovim-plugin#focus-mode#ui-customization#editor-enhancement#floating-window#neovim

Built With

N
Neovim
L
Lua

Included in

Neovim20.6k
Auto-fetched 17 hours ago

Related Projects

nvim-autopairsnvim-autopairs

autopairs for neovim written in lua

Stars4,066
Forks141
Last commit2 months ago
nvim-treesitter-contextnvim-treesitter-context

Show code context

Stars3,215
Forks236
Last commit2 months ago
nvim-ts-autotagnvim-ts-autotag

Use treesitter to auto close and auto rename html tag

Stars2,104
Forks109
Last commit3 months ago
multicursor.nvimmulticursor.nvim

multiple cursors in neovim

Stars1,506
Forks14
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