From 8d406ed2acac032d2d7ff560ec26c07d5e284c27 Mon Sep 17 00:00:00 2001 From: Kyle <50718101+kylesower@users.noreply.github.com> Date: Mon, 10 Aug 2026 03:17:51 -0500 Subject: fix(defaults): emit events on automatic background change #41242 Problem: After #40270, events are no longer emitted from the automatic background detection. This applies not just during startup, but also if the user manually changes the background of their terminal. Solution: Set the background as normal, assuming that a normal terminal will respond within 100 ms. Change test to match expected behavior: - BG set during startup won't trigger user autocmds since it runs before any user config - If the terminal takes longer than 100 ms to respond to initial OSC 11, it does trigger the OptionSet, but it is triggered through the normal path to ensure values like v:option_new are set #38551 - BG change after startup still triggers autocmds #41146 --- runtime/lua/vim/_core/defaults.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'runtime/lua/vim') diff --git a/runtime/lua/vim/_core/defaults.lua b/runtime/lua/vim/_core/defaults.lua index 4414608cbf..20b21c3082 100644 --- a/runtime/lua/vim/_core/defaults.lua +++ b/runtime/lua/vim/_core/defaults.lua @@ -964,8 +964,7 @@ do if rr and gg and bb then local luminance = (0.299 * rr) + (0.587 * gg) + (0.114 * bb) local bg = luminance < 0.5 and 'dark' or 'light' - -- Use :noautocmd to suppress OptionSet event; OSC11 response may arrive after VimEnter. - vim.cmd('noautocmd set background=' .. bg) + vim.o.background = bg end end end -- cgit