Re: Adding kmscon to terminfo database.
Jocelyn Falempe <[email protected]> Fri, 12 Jun 2026 00:00:41 +0200
| Newsgroups | gmane.comp.lib.ncurses.bugs |
|---|---|
| Message-ID | <[email protected]> |
On 08/06/2026 20:54, Thomas Dickey wrote:
> On Mon, Jun 08, 2026 at 10:12:50AM +0200, Jocelyn Falempe wrote:
>> On 07/06/2026 16:30, Thomas Dickey wrote:
> ...
>>> (also, I saw flash working -- once -- and not later: a bug)
>>
>> flash and blink are not implemented, so I'm more surprised that it did work
>> once.
>
> infocmp kmscon:
> flash=\E[?5h$<200/>\E[?5l,
Ok, I mean libtsm has no timer, and only send the terminal states when
kmscon asks. But here it's the shell that is doing the sleep, so that
should work.
I tested this command:
$printf '\e[?5h' && sleep 0.2 && printf '\e[?5l'
And that works reliably on my test laptop.
>
> That's using DECSCNM, which is in the source code here:
>
> tsm-render.c:142: if (con->flags & TSM_SCREEN_INVERSE)
> tsm-screen.c:1029: if (!(old & TSM_SCREEN_INVERSE) && (flags & TSM_SCREEN_INVERSE))
> tsm-screen.c:1060: if ((old & TSM_SCREEN_INVERSE) && (flags & TSM_SCREEN_INVERSE))
> tsm-vte.c:1659: TSM_SCREEN_INVERSE);
> tsm-vte.c:1662: TSM_SCREEN_INVERSE);
>
> case 5: /* DECSCNM */
> set_reset_flag(vte, set, TSM_VTE_FLAG_INVERSE_SCREEN_MODE);
> if (set)
> tsm_screen_set_flags(vte->con,
> TSM_SCREEN_INVERSE);
> else
> tsm_screen_reset_flags(vte->con,
> TSM_SCREEN_INVERSE);
> continue;
>
>
> /* TODO: do some more sophisticated inverse here. When
> * INVERSE mode is set, we should instead just select
> * inverse colors instead of switching background and
> * foreground */
> if (con->flags & TSM_SCREEN_INVERSE)
> attr.inverse = !attr.inverse;
>
> if (in_sel || was_sel) {
> was_sel = false;
> attr.inverse = !attr.inverse;
> }
>