folke / noice.nvim

💥 Highly experimental plugin that completely replaces the UI for messages, cmdline and the popupmenu.
Apache License 2.0
3.95k stars 88 forks source link

bug: When run within Zellij, when multiples message popups are displayed, cursor "glitches" into popup #867

Closed bhutch29 closed 2 weeks ago

bhutch29 commented 2 weeks ago

Did you check docs and existing issues?

Neovim version (nvim -v)

0.10.0

Operating system/version

Linux 6.9.4-arch1-1 x86_64

Describe the bug

This issue only occurs when running nvim within a Zellij pane. I could not reproduce it in tmux or without a terminal multiplexer running. I have Noice configured to use nvim-notify.

Whenever multiple message windows (popups? Not sure the appropriate term) are open the cursor will "glitch" into one of the popups and kind of flash/skip around. The movement is somewhat deterministic, it usually appears on the second popup, but will flash to other popups as well temporarily. Operation does not appear to be impaired: keybindings always affect the original location of the cursor never the contents of the popup.

I have also noticed the behavior when one large popup is opened, such as when running :NoiceConfig

I attempted to capture the issue in an image instead of a video. You can see here that a cursor is showing where one is not expected. This cursor flashes/skips/jumps around as long as multiple popups remain open.

image

Steps To Reproduce

  1. Launch nvim within a Zellij pane
  2. Run :NoiceConfig

Expected Behavior

The cursor remains where it is when "popups" are on screen, no visual "glitches".

Repro

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")

-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  {
    "folke/noice.nvim",
    dependencies = { "MunifTanjim/nui.nvim", "rcarriga/nvim-notify" },
    opts = {},
  },
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here
folke commented 2 weeks ago

This is not caused by noice. Either a Neovim, or zellij bug. Closing