[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