diff options
Diffstat (limited to '.vim/plugin/syncbg.lua')
| -rw-r--r-- | .vim/plugin/syncbg.lua | 73 |
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), -}) |