Ihor Radchenko writes: > "Christopher M. Miles" writes: > >>>> #+begin_src emacs-lisp >>>> (let ((bound-tags (seq-filter 'cdr temp-fulltable))) >>>> (if (length> bound-tags 0) >>>> bound-tags >>>> (seq-take temp-fulltable 26))) >>>> #+end_src >>> >>> This will unconditionally drop auto-labeled tags when user-bound tags >>> exist, even if the total number of tags in buffer does not exceed 26. >> >> I try to read the source code of `org-fast-tag-selection', but the code is hard to read. > > Yeah. I agree. But we have what we have. > >> I don't know how to keep auto-labeled tags. Do you have any suggestions? > > You are almost there. > Just run your code only when (lentgh> fulltable 26). > > Of course, 26 should be a defcustom rather than a hard-coded constant. > And do the same for `org-fast-todo-selection'. Ok, I added defcustom option, and add cl-case condition on custom option `org-use-fast-tag-selection'.