summary refs log tree commit diff
path: root/.vim/plugin/syncbg.lua
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2026-02-10 12:32:48 +0100
committerRobert Günzler <r@gnzler.io>2026-02-10 12:41:25 +0100
commit63feeb9f369fc6176e85c1c2d8fcc863caad1946 (patch)
tree41cd5d2d1ec36e74e464caab722cc9b460153f04 /.vim/plugin/syncbg.lua
parent5bd0a4aca65ecb9818ef1285982d160b6b6ff665 (diff)
start new
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '.vim/plugin/syncbg.lua')
-rw-r--r--.vim/plugin/syncbg.lua73
1 files changed, 0 insertions, 73 deletions
diff --git a/.vim/plugin/syncbg.lua b/.vim/plugin/syncbg.lua
deleted file mode 100644
index c11bef6..0000000
--- a/.vim/plugin/syncbg.lua
+++ /dev/null
@@ -1,73 +0,0 @@
--- this plugin registers two autocmds that trigger when openeing and closing the editor, setting the
--- background of the terminal to the color used by our colorscheme using CSI control codes.
-
-local state = { enabled = false }
-
-if not state.enabled then
-  return
-end
-
-local set_bg = function(clear)
-  if not (state.tty and state.normal) then
-    return
-  end
-  if clear then
-    -- emit CSI to unset custom background
-    os.execute('printf "\\033]111\\007" > ' .. state.tty)
-  else
-    -- emit CSI to change terminal background to Normal.bg
-    os.execute(
-      'printf "\\033]11;' .. string.format('#%06x', state.normal.bg) .. '\\007" > ' .. state.tty
-    )
-    -- set colorscheme Normal.bg to NONE, making it transparent
-    vim.cmd([[hi Normal ctermbg=NONE guibg=NONE]])
-  end
-end
-
-local discover = function()
-  if not state.tty then
-    -- get tty handle
-    local ok, tty_handle = pcall(io.popen, 'tty')
-    if (not ok) or tty_handle == nil then
-      return
-    end
-    local tty = tty_handle:read('*l')
-    tty_handle:close()
-    if tty:find('not a tty') then
-      return
-    end
-    state.tty = tty
-  end
-
-  if not state.normal then
-    -- get colorscheme Normal highlight
-    local normal = vim.api.nvim_get_hl(0, { name = 'Normal', create = false })
-    if normal.bg == nil then
-      return
-    end
-    -- cache old value for use with VimResume
-    state.normal = normal
-  end
-
-  -- vim.notify('syncbg: ' .. vim.inspect(state), vim.log.levels.DEBUG)
-end
-
--- setup autogroup
-local aug = vim.api.nvim_create_augroup('syncbg', { clear = true })
-
--- register update hook
-vim.api.nvim_create_autocmd({ 'ColorScheme', 'UIEnter', 'VimResume' }, {
-  group = aug,
-  callback = vim.schedule_wrap(function()
-    discover()
-    set_bg(false)
-  end),
-})
-
--- register reset hook
-vim.api.nvim_create_autocmd({ 'UILeave' }, {
-  group = aug,
-  callback = vim.schedule_wrap(function()
-    set_bg(true)
-  end),
-})