Right. How about I get rid of tab-bar-mode--tab-key-bind and just bind normally? I'll submit a revised patch shortly, if so. On Wed, Jan 29, 2025 at 12:35 PM Juri Linkov wrote: > >>> This is useful to avoid key binding conflicts, such as when folding in > >>> outline mode using TAB keys, or when a user wants to define her own > >>> tab-bar keys without first having to remove the defaults. > >> > >> The current implementation was intended to allow removing the default > keys > >> easily from 'tab-bar-mode-map'. Here is the NEWS from bug#69578: > >> > >> *** New keymap 'tab-bar-mode-map'. > >> By default it contains a keybinding 'C-TAB' to switch tabs, but only > >> when 'C-TAB' is not bound globally. You can unbind it if it conflicts > >> with 'C-TAB' in other modes. > > > > This strategy doesn't account for the key definition race condition, and > > relies on the user to have first defined global TAB keys before > > tab-bar-mode is enabled. > > It checks for global-key-binding every time when the user types C-TAB. > So it could also check with local-key-binding and > minor-mode-key-binding in e.g. outline mode, etc. > > But since you want to move the C-TAB keybinding from tab-bar-mode-map > back to tab-bar--define-keys, then :filter is not needed anymore, > so you can check for global-key-binding only once in tab-bar--define-keys. >