Neovim

ZenTerm has two Neovim plugins. One gives you a single set of keys across splits and panes. The other recolors your editor when you switch theme. Both are opt-in.

Cross splits and panes with one motion

Out of the box, moving around takes two sets of keys. moves between ZenTerm panes, and Neovim's own Ctrl-hjkl moves between Neovim splits. You switch sets depending on where focus is.

zen-navigator.nvim joins them. Press Ctrl-h at the left edge of your Neovim splits and focus crosses into the ZenTerm pane beside it. From a shell pane, Ctrl-h walks back into Neovim and keeps going through its splits. It is the vim-tmux-navigator idea, without tmux.

It takes two steps, and both are required, because the plugin only diverts a chord ZenTerm already treats as pane navigation.

1. Install the plugin

With lazy.nvim:

lua
{ "praxis-labs-io/zen-navigator.nvim", event = "VeryLazy", opts = {} }

2. Hand ZenTerm the chord

Add these to ~/.config/zen-term/config, or set them in Settings under Shortcuts:

config
keybind = nav_left=ctrl+h
keybind = nav_down=ctrl+j
keybind = nav_up=ctrl+k
keybind = nav_right=ctrl+l

Ctrl-hjkl now belongs to pane navigation, so other TUIs in a shell pane, such as htop or less, lose those keys. This is the tradeoff tmux and kitty make too. The arrow nav, , keeps working regardless.

Outside ZenTerm the plugin falls back to a plain wincmd, so the same Neovim config works anywhere.

Follow the terminal's theme

ZenTerm writes the theme it resolved to ~/Library/Application Support/ZenTerm/theme.json at launch and on every theme change. zen-theme.nvim reads that file and applies a matching colorscheme, so picking a theme in Settings recolors your editor while it is running.

Install it the same way:

lua
{ "praxis-labs-io/zen-theme.nvim", event = "VeryLazy", opts = {} }

Every bundled theme names the colorscheme it wants. Your own theme file names one with a single line:

config
nvim-colorscheme = kanagawa-dragon

Add that to a theme file in ~/.config/zen-term/themes/ and the mapping travels with the theme. ZenTerm reads the color keys and drops the rest, so the line changes no color and the file stays a valid Ghostty theme. The example theme file shows where it sits.

A colorscheme you have not installed leaves the current one up. So does starting Neovim outside ZenTerm, where there is no theme file to read.