Subject: bug#73443: Fwd: bug#73443: 29.4; ERC 5.6.1-git: erc-track mode line face color broken with left timestamps

From: "J.P." <[email-masked]>
Date: Tue, 24 Sep 2024 00:03:52 -0700

Trevor Arjeski <[email-masked]> writes:

> "J.P." <[email-masked]> writes:
>
>> Complicating things slightly is this bit from the subject line:
>>
>>   "29.4; ERC 5.6.1-git"
>>
> The version output with your snippet: 5.6.1snapshot0.20240813.11230

OK, that's what I get when I install straight.el from scratch. So at
least we're synced.

>
> Agreed. I don't even really want to begin debugging this. Perhaps we
> should consider the issue moot unless verifiable on Emacs 30+ or master.

You could start by "bisecting" the non-ERC parts of your config or the
non-ERC modes listed in the gathered facts from your initial report
(default stuff commented out):

  // erc-ring-mode: t
  // erc-nicks-mode: t                // config
  // erc-netsplit-mode: t
  // erc-menu-mode: t
  // erc-list-mode: t
  // erc-imenu-mode: t
  // erc-pcomplete-mode: t
  // erc-button--phantom-users-mode: t
  // erc-button-mode: t
  // erc-fill-mode: t
  // erc-stamp-mode: t
  // erc-autojoin-mode: t
  // erc-irccontrols-mode: t
  // erc-move-to-prompt-mode: t
  // erc-readonly-mode: t
  // erc-scrolltobottom-mode: t         // config
  // erc-spelling-mode: t               // config
  // flyspell-mode: t                   // config (spell module)
  // erc-track-mode: t
  // erc-track-minor-mode: t
  // erc-match-mode: t
  // erc-networks-mode: t
  diff-hl-flydiff-mode: t
  global-diff-hl-mode: t
  electric-pair-mode: t
  apheleia-global-mode: t
  global-treesit-auto-mode: t
  corfu-popupinfo-mode: t
  global-corfu-mode: t
  corfu-mode: t
  marginalia-mode: t
  vertico-mode: t
  which-key-mode: t
  global-ligature-mode: t
  ligature-mode: t
  global-auto-revert-mode: t
  global-display-line-numbers-mode: t
  desktop-save-mode: t
  recentf-mode: t
  save-place-mode: t
  // straight-use-package-mode: t       // config
  // straight-package-neutering-mode: t // config
  override-global-mode: t
  // global-eldoc-mode: t
  // show-paren-mode: t
  // electric-indent-mode: t
  // mouse-wheel-mode: t
  // file-name-shadow-mode: t
  // global-font-lock-mode: t
  // font-lock-mode: t
  // blink-cursor-mode: t
  column-number-mode: t
  // line-number-mode: t
  // transient-mark-mode: t
  // auto-composition-mode: t
  // auto-encryption-mode: t
  // auto-compression-mode: t

So, essentially, you'd just be adding like half of these to the base
config from my previous reply, e.g.,

  (use-package diff-hl ...) ; where "..." means "your config details"
  (use-package elec-pair :straight nil :init (electric-pair-mode +1))
  (use-package apheleia ...)
  ;; [...]
  (use-package vertico ...)

And if the bug is still present, remove half of those, and so on. But if
it's absent, switch to the other half and test again. Let me know if
that doesn't make sense. (And apologies if you're already familiar with
this method.)

>  
>> FWIW, using the above setup, I don't notice the behavior described nor
>> any difference in the mode line with `erc-insert-timestamp-function' set
>> to 'erc-insert-timestamp-right' or its default.
>
> I was not able to reproduce the issue either with your provided config
> using 'erc-insert-timestamp-left (also needed to turn on erc-track-mode).

FYI, you actually don't _need_ to explicitly activate any minor modes
for modules that appear in `erc-modules', which `track' (i.e.,
`erc-track-mode') does by default. I know the ";;; Commentary" front
matter atop ERC's libraries makes it seem otherwise, but that's because
they're ancient and were never updated. Sorry about that (good first
issue, though). So, yeah, rule of thumb: if `erc-modules' contains some
module `foo', you almost never need

  (erc-foo-mode +1)

in your config, at least not for built-in modules. That said, doing so
is superfluous and basically benign.

>
> Thanks for looking into this.

No problem!