[Konsole-devel] [Bug 107487] Please add the xterm-256 colour support.

awendt at putergeek.com awendt at putergeek.com
Wed Jun 7 05:40:14 UTC 2006


------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
         
http://bugs.kde.org/show_bug.cgi?id=107487         




------- Additional Comments From awendt putergeek com  2006-06-07 07:40 -------
> So a parameter substring is 0-9 and the colon. The semicolon separates
> sub-parameters. Thus 48:5:<Color> would be one sub-parameter, and
> 48;5;<Color> many independent, each having an independent meaning in case
> of a selective parameter.


I think you may be onto something here with the colons... I was able to find 
ITU T.416 (which is the same as ISO 8613-6) and it says:

--- snip ---

The parameter values 38 and 48 are followed by a parameter substring used to 
select either the character foreground “colour value” or the character 
background “colour value”.

A parameter substring for values 38 or 48 may be divided by one or more 
separators (03/10) into parameter elements, denoted as Pe. The format of such 
a parameter sub-string is indicated as:

         Pe : P ...

Each parameter element consists of zero, one or more bit combinations from 
03/00 to 03/09, representing the digits 0 to 9. An empty parameter element 
represents a default value for this parameter element. Empty parameter 
elements at the end of the parameter substring need not be included.

The first parameter element indicates a choice between:

           0   implementation defined (only applicable for the character 
foreground colour)
           1   transparent;
           2   direct colour in RGB space;
           3   direct colour in CMY space;
           4   direct colour in CMYK space;
           5   indexed colour.

If the first parameter has the value 0 or 1, there are no additional parameter 
elements.

If the first parameter element has the value 5, then there is a second 
parameter element specifying the index into the colour table given by the 
attribute “content colour table” applying to the object with which the 
content is associated.

--- snip ---

The separator character 03/10 they use is a colon, not a semicolon... I wonder 
if the xterm implementation was based on an improper reading of the standard?

My reading actually makes me think that the correct format would be 38;5:x to 
set colour x. In other words, a semicolon, then a colon. Here is my thinking:

1. The first sentence starts with "The parameter values 38 and 48 are followed 
by a parameter substring used to [...]". And ECMA-48 section 5.4.2 tells us 
that a parameter string is a series of parameter substrings separated by 
03/11 (semicolon). So since 38 and 48 are followed by a parameter substring, 
it should have a semicolon after it.

(You may object to this first point by saying that the ITU standard and ECMA 
standard possibly define terms like "parameter substring" differently, but 
ITU T.416 doesn't define such things at all. Instead it says they 
are "defined in ISO 6429", and the ECMA-48 "brief history" section (page 5)  
seems to say that ECMA-48 and ISO 6429 are the same document.)

2. The quoted text above also calls the 5 in 38;5:x the "first parameter 
element" in the list separated by 03/10 (colon). If it's the first in a list 
of two "parameter elements", then the first colon should be after it to 
separate these two elements.

If my reading is correct, then the ISO/ITU standard has already broken 
the "associativity" of the SGR parameters when used with 38 and 48. In light 
of that, I think you might as well support setting colour the Xterm way as 
well as the ISO standard way, since both ways are non-associative and by now 
a lot of software expects things to work the Xterm way.

Xterm also supports redefining the colours in the 256-colour palette, with a 
command like this:
echo -e '\033]4;65;rgb:ff/00/00\033\\'

The 6x6x6 colour cube is just a convenient default. If Konsole gets 256-colour 
support, it might be good to support those kinds of palette-setting 
sequences, too.



More information about the konsole-devel mailing list