why does git set X in LESS env var?
- From
Christoph Anton Mitterer <calestyo@scientia.org>
- Date
- Oct 11, 2023, 22:19 UTC
- Message-ID
- <3a2c362c019338ca7408b7a3bc5715b535d15b8a.camel@scientia.org>
Hey.
I recently stumbled over the problem that mouse wheel scrolling doesn't work with (git-)delta[0], a problem[1][2], which apparently numerous people had before me.
Numerous solutions were given in [1] and [2], for example using --mouse as less option. I noticed however, that this causes a somewhat different mouse scrolling behaviour than my less usually gives me and dug a bit further, noticing that the problem was that `X` was set in the `LESS` env var for the less process, wrongly assuming[3] first that delta would set it.
After delta's upstream noticed that this must be wrong, I looked further and found that git set it since commit 0abc0260fa3419de649fcc1444e3d256a17ca6c7, which gives however no indication why it was added.
A somewhat later commit, b3275838d969b7ecb91aae584226fccbeb046aca, which removes `S` from being set, mentions:
> … The FRX flags actually make sense for Git (F and X because > sometimes the output Git pipes to less is short, and R because Git > pipes colored output).
But I still don't get from that why X would be needed?
My less manpage documents it as:
Show 5 quoted lines
> -X or --no‐init > Disables sending the termcap initialization and deinitialization > strings to the terminal. This is sometimes desirable if the > deinitialization string does something unnecessary, like clearing > the screen.
Is it to avoid clearing the screen?
Not sure whether git should really do something here... I mean it could add --mouse per default, but then users who don't want that would need to work around it (and there is no negative option for --mouse, it seems).
Oh, I should add that scrolling without `X` and without `--mouse` sees to only work on some terminals (e.g. VTE based ones, but not xterm).
Thanks, Chris.
[0] https://github.com/dandavison/delta/ [1] https://github.com/dandavison/delta/issues/58 [2] https://github.com/dandavison/delta/issues/630 [3] https://github.com/dandavison/delta/issues/58#issuecomment-1756542986