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;
> 			}
>