diff options
author | Gregory Anders <greg@gpanders.com> | 2025-03-05 21:28:05 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-05 21:28:05 -0600 |
commit | 0c0352783fca7e9c56cd5ca8253834fee77c9d59 (patch) | |
tree | fc8da7fc6e0609ad9eea96e24ccfa54fcec4aea1 | |
parent | 9c4f2cde7bef5decb2de98edfae7b5a2e5146cf4 (diff) | |
download | rneovim-0c0352783fca7e9c56cd5ca8253834fee77c9d59.tar.gz rneovim-0c0352783fca7e9c56cd5ca8253834fee77c9d59.tar.bz2 rneovim-0c0352783fca7e9c56cd5ca8253834fee77c9d59.zip |
fix(tui): remove DCS escaping in tmux (#32723)
Per https://github.com/tmux/tmux/issues/4386, tmux does not support DCS
responses, even if the initial request was escaped.
-rw-r--r-- | runtime/doc/provider.txt | 3 | ||||
-rw-r--r-- | runtime/lua/vim/_defaults.lua | 4 | ||||
-rw-r--r-- | runtime/lua/vim/termcap.lua | 5 |
3 files changed, 3 insertions, 9 deletions
diff --git a/runtime/doc/provider.txt b/runtime/doc/provider.txt index 69ae0f20d1..24ec170319 100644 --- a/runtime/doc/provider.txt +++ b/runtime/doc/provider.txt @@ -264,7 +264,8 @@ causes the terminal emulator to write to or read from the system clipboard. When Nvim is running in the |TUI|, it will automatically attempt to determine if the host terminal emulator supports OSC 52. If it does, then Nvim will use OSC 52 for copying and pasting if no other |clipboard-tool| is found and when -'clipboard' is unset. +'clipboard' is unset. NOTE: Using a terminal multiplexer (e.g. tmux) may +inhibit automatic OSC 52 support detection. *g:termfeatures* To disable the automatic detection, set the "osc52" key of |g:termfeatures| to diff --git a/runtime/lua/vim/_defaults.lua b/runtime/lua/vim/_defaults.lua index 544b0acbcc..17a8a3f3cc 100644 --- a/runtime/lua/vim/_defaults.lua +++ b/runtime/lua/vim/_defaults.lua @@ -834,9 +834,7 @@ do -- terminal responds to the DECRQSS with the same SGR sequence that we -- sent then the terminal supports truecolor. local decrqss = '\027P$qm\027\\' - if os.getenv('TMUX') then - decrqss = string.format('\027Ptmux;%s\027\\', decrqss:gsub('\027', '\027\027')) - end + -- Reset attributes first, as other code may have set attributes. io.stdout:write(string.format('\027[0m\027[48;2;%d;%d;%dm%s', r, g, b, decrqss)) diff --git a/runtime/lua/vim/termcap.lua b/runtime/lua/vim/termcap.lua index 23666a337a..2789aacb90 100644 --- a/runtime/lua/vim/termcap.lua +++ b/runtime/lua/vim/termcap.lua @@ -71,11 +71,6 @@ function M.query(caps, cb) local query = string.format('\027P+q%s\027\\', table.concat(encoded, ';')) - -- If running in tmux, wrap with the passthrough sequence - if os.getenv('TMUX') then - query = string.format('\027Ptmux;%s\027\\', query:gsub('\027', '\027\027')) - end - io.stdout:write(query) timer:start(1000, 0, function() |