[vim/vim] GUI: preserve blink cycle on CursorHold (PR #21115)

10 views
Skip to first unread message

dezza

unread,
Aug 21, 2026, 1:45:51 PM (7 days ago) Aug 21
to vim/vim, Subscribed
:set guicursor=a:blinkwait100-blinkon300-blinkoff300
:autocmd CursorHold * echo ''
:set updatetime=1000

press any key like "pgup" or "pgdn" after setting you will see the blinking stops, then resumes - right after it resumes the hiccup happens; exactly 1s (updatetime=1000) later.

The underlying problem seems that gui.c /^gui_wait_for_chars( stops and restarts blinking whenever the input loop returns, assuming that means actual user input occurred.

CursorHold is thus cause of the hiccup as it wakes the input loop. So the existing guards were not proper, the blink timer was still cancelled and restarted even though the user remained idle.

I looked briefly into if there was accidental "workarounds" in other gui's, these are my findings:

GTK4: Issue exists - verified.
Win32: uses native win32 API (SetTimer(), KillTimer()) , most likely unaffected
Motif/X11,Photon/Haiku: seems identical in function. Not verified.

Mailing-list: https://groups.google.com/g/vim_dev/c/lmGzT9gftvs/m/kzeEG77fDgAJ

Leaving so someone else can test potentially X11, Haiku, X11


You can view, comment on, or merge this pull request online at:

  https://github.com/vim/vim/pull/21115

Commit Summary

  • 3cb4b5b GUI: preserve blink cycle on CursorHold

File Changes

(1 file)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115@github.com>

dezza

unread,
Aug 26, 2026, 3:31:33 PM (2 days ago) Aug 26
to vim/vim, Subscribed
dezza left a comment (vim/vim#21115)

@habamax can you test win32 gvim if the cursor hiccup also happend exactly 1000ms after a key or on initial start of gvim.

This makes it simple:

:set guicursor=a:blinkwait100-blinkon300-blinkoff300
:autocmd CursorHold * echo ''
:set updatetime=1000


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5430112815@github.com>

Maxim Kim

unread,
Aug 27, 2026, 7:11:25 AM (yesterday) Aug 27
to vim/vim, Subscribed
habamax left a comment (vim/vim#21115)

@habamax can you test win32 gvim if the cursor hiccup also happens exactly 1000ms after a key or on initial start of gvim.

:set guicursor=a:blinkwait100-blinkon300-blinkoff300
:autocmd CursorHold * echo ''
:set updatetime=1000

I'll have a look tomorrow.


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5438130065@github.com>

dezza

unread,
Aug 27, 2026, 11:03:36 AM (yesterday) Aug 27
to vim/vim, Subscribed
dezza left a comment (vim/vim#21115)

@habamax can you test win32 gvim if the cursor hiccup also happens exactly 1000ms after a key or on initial start of gvim.

:set guicursor=a:blinkwait100-blinkon300-blinkoff300

:autocmd CursorHold * echo ''

:set updatetime=1000

I'll have a look tomorrow.

Thanks a lot dude, I'm building the other GUIs to test, only problem is win32!


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5441043639@github.com>

Maxim Kim

unread,
Aug 27, 2026, 9:27:18 PM (19 hours ago) Aug 27
to vim/vim, Subscribed
habamax left a comment (vim/vim#21115)

I can't find the build artifact for the windows in this PR


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5447232779@github.com>

dezza

unread,
Aug 27, 2026, 10:36:51 PM (18 hours ago) Aug 27
to vim/vim, Subscribed
dezza left a comment (vim/vim#21115)

@habamax https://github.com/dezza/vim/actions/runs/33135477112 verifying the issue on master was fine but now I managed to build the artifacts it seems!

Thanks a lot!


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5447691161@github.com>

Maxim Kim

unread,
Aug 27, 2026, 10:57:49 PM (17 hours ago) Aug 27
to vim/vim, Subscribed
habamax left a comment (vim/vim#21115)

@habamax https://github.com/dezza/vim/actions/runs/33135477112 verifying the issue on master was fine but now I managed to build the artifacts it seems!

Thanks a lot!

There is no gvim though, I can only find vim.exe in the zip archives.


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5447826897@github.com>

dezza

unread,
Aug 27, 2026, 11:12:29 PM (17 hours ago) Aug 27
to vim/vim, Subscribed
dezza left a comment (vim/vim#21115)

can vim.exe -g for gui work? Or is win32 unique like that.. I will have to figure it out, the artifacts workflow was uncommented and not functional- I think chris does the release manually let me look into it.


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5447925847@github.com>

Maxim Kim

unread,
Aug 27, 2026, 11:33:20 PM (17 hours ago) Aug 27
to vim/vim, Subscribed
habamax left a comment (vim/vim#21115)

can vim.exe -g for gui work? Or is win32 unique like that.. I will have to figure it out, the artifacts workflow was uncommented and not functional- I think chris does the release manually let me look into it.

Image: image (view on web)

let me try another download


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5448059060@github.com>

dezza

unread,
Aug 27, 2026, 11:45:49 PM (17 hours ago) Aug 27
to vim/vim, Subscribed
dezza left a comment (vim/vim#21115)

Image: image (view on web)

The largest vim-mingw 4.32MB has one.

https://github.com/dezza/vim/actions/runs/33135477112/artifacts/9672206353


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5448133926@github.com>

Maxim Kim

unread,
12:01 AM (16 hours ago) 12:01 AM
to vim/vim, Subscribed
habamax left a comment (vim/vim#21115)

doesn't work for me, can't find libgcc....dll


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5448230672@github.com>

dezza

unread,
12:04 AM (16 hours ago) 12:04 AM
to vim/vim, Subscribed
dezza left a comment (vim/vim#21115)

Probably the mingw runtime.

But hey! If you can just confirm whether the hiccup happens exactly 1000ms after a keypress with snippet above thats fine for me!

If not affected; It stays stable after releasing key and no blip/hiccup.


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5448245787@github.com>

Maxim Kim

unread,
12:12 AM (16 hours ago) 12:12 AM
to vim/vim, Subscribed
habamax left a comment (vim/vim#21115)

found it in normal x86 build.

I can't see too much of the difference though.


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5448298116@github.com>

dezza

unread,
12:14 AM (16 hours ago) 12:14 AM
to vim/vim, Subscribed
dezza left a comment (vim/vim#21115)

If it blinks consistently without any "blip", "restart" cycle then safe to assume not affected like motif.

Thanks!


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5448317403@github.com>

Maxim Kim

unread,
12:15 AM (16 hours ago) 12:15 AM
to vim/vim, Subscribed
habamax left a comment (vim/vim#21115)

If not affected; It stays stable after releasing key and no blip/hiccup.

Image: gvim-blink-dezza (view on web)


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5448319596@github.com>

dezza

unread,
12:24 AM (16 hours ago) 12:24 AM
to vim/vim, Subscribed
dezza left a comment (vim/vim#21115)

I'm marking this ready, because I am positive this has no measurable side-effects to other gui's.

I will add another comment explaining it, I simply believe the gtk3,4 frameclock redraw is so precise that it reveals the reset cycle;

  • Other gui's don't have enough time to show this it seems.


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5448408733@github.com>

Maxim Kim

unread,
12:38 AM (16 hours ago) 12:38 AM
to vim/vim, Subscribed
habamax left a comment (vim/vim#21115)

you probably need to rebase and remove non related changes (CI)


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5448497141@github.com>

dezza

unread,
12:39 AM (16 hours ago) 12:39 AM
to vim/vim, Subscribed
dezza left a comment (vim/vim#21115)

yes you're right! Thanks @habamax


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5448503922@github.com>

Christian Brabandt

unread,
1:19 PM (3 hours ago) 1:19 PM
to vim/vim, Subscribed
chrisbra left a comment (vim/vim#21115)

Thanks for fixing this. I imagine it wasn't easy to track this down.


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5455546574@github.com>

dezza

unread,
1:52 PM (2 hours ago) 1:52 PM
to vim/vim, Subscribed
dezza left a comment (vim/vim#21115)

@chrisbra definetily not straight-forward! As I know this brings assumptions and tests a bit on production given indie-nature of Haiku/QNX rest assured I will take responsibility, if anything happens.

However, I think the guard adds only consistency across all GUIs, I hope you agree if it passes..


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/21115/c5455878492@github.com>

Reply all
Reply to author
Forward
0 new messages