Bug 88880 - please document control characters for title bar and tab text
Summary: please document control characters for title bar and tab text
Status: CONFIRMED
Alias: None
Product: konsole
Classification: Applications
Component: emulation (show other bugs)
Version: unspecified
Platform: Debian testing Linux
: NOR wishlist
Target Milestone: ---
Assignee: Konsole Developer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-09-05 13:06 UTC by Marc Haber
Modified: 2012-04-29 15:12 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marc Haber 2004-09-05 13:06:37 UTC
Version:            (using KDE KDE 3.3.0)
Installed from:    Debian testing/unstable Packages
OS:                Linux

konsole, as most other X11 based terminal emulators, supports special control characters that allow at least setting of the window title from an application running inside the emulated terminal. While these control characters are almost public knowledge, it is extremely hard to find any docs on the Internet.

Please consider explicitly documenting the control characters that konsole supports, especially where it can do more than a standard xterm. I would, for example, like to programmatically control the session name listed in the session tab.

For control codes compatible with other terminals and terminal emulators, a pointer to external documentation would be sufficient.

Greetings
Marc
Comment 1 Stephan Binner 2004-09-09 23:00:04 UTC
A "Tip of the Day" exist for what you wants.
Comment 2 Slava 2006-10-20 19:21:43 UTC
What does this tip of the day say?
Comment 3 Slava 2006-10-20 19:40:00 UTC
Here it is:

...that you can let Konsole set the current directory as the session name? For Bash, put 'export PS1=$PS1"\[\e]30;\H:\w\a\]"' in your ~/.bashrc . 

...that if you let your shell pass the current directory to Konsole within the prompt variable, e.g. for Bash with 'export PS1=$PS1"\[\e]31;\w\a\]"' in your ~/.bashrc, then Konsole can bookmark it, and session management will remember your current working directory on non-Linux systems too? 
Comment 4 Robert Knight 2006-10-21 12:31:58 UTC
A tip of the day is not an obvious place to look for such documentation though.  I personally don't think "Tip of the Day" should be enabled by default in Konsole either - although I need to do some research on that.
Comment 5 Lars Doelle 2006-10-22 03:57:09 UTC
Part of the problem is, that what was supposed to be the technical
documentation is buried deep in a subdirectory of the sources.

See konsole/doc/VT100/techref.html

The technical reference was hooked into the "Help" menu, originally,
today it is not even distributed with the binaries (at least in debian).

It never got a final redaction, is not maintained, and slightly out of sync.
I originally planned to make a mechanism to keep the documentation of
the supported codes in sync with the ones actually recognised, which is
one of the reasons, why this particular subdirectory appears like a
complete mess.

To some degree such a reference is vital, partially, because there
is no real standard (beside perhaps ECMA), and some extensions
and modifications by various implementations. Terminal codes are
a misery in that each terminal is a bit different in respects of which
codes it accepts and the konsole is an exception here only in that
it did not add its own private codes.

The konsole merges material from VT100/VT220/Linux console and xterm
collected such that it is pretty compatible with all of them in many respects.
Parts of the documentation was an attempt to track the individual (sub)codes
back to its origin to allow a compatibility statement.

Now not having such a list is indeed anything but a good style especially
in the light of the compatibility problems inherent in this particular trade.

The codes, Slava asks for, originate from xterm and are documented there.
This documentation (of the xterm codes) is also not distributed with the
binaries but can be found with the xterm sources in a file named "ctlseqs.ms"
(which can be typeset e.g. to a postscript file using nroff/groff).
Comment 6 Robert Knight 2006-10-22 04:08:45 UTC
> The technical reference was hooked into the "Help" menu, originally,
> today it is not even distributed with the binaries (at least in debian). 

I suggest that we provide a small subset of that in the actual docbook help - covering the most useful features for end-users, and then provide a more comprehensive reference on konsole.kde.org
Comment 7 Lars Doelle 2006-10-22 14:43:26 UTC
> I suggest that we provide a small subset of that in the actual docbook help
> - covering the most useful features for end-users, and then provide a more
> comprehensive reference on konsole.kde.org 


I believe it would be enough to simply include the techref into the 'install' ending
in /usr/share/doc/konsole, together with a statement that the techref is out of date
and needs to be reorganised.

The original plan to bind the documentation to the code was to generate the
body of TEmuvt102::tau from the documentation or let the body of tau become
in a likely generated table. See konsole/doc/VT100/Table.Codes.

Another source is TEScreen, where (most of) the routines used in tau finally
end, often having a one-to-one relation to some esc code. Thus one could
use some scripting putting together the documentation distributed in the
various routines.

The tokenizer would need to be described separately.

At least this was the latest plan. Prior to that, the techref (and the related material
in doc/VT100) was to sort apart the codes from various emulations and to balance
them.

The central routine is "genDocument" which produces "techref.html" from everything
else in this directory. Clearly, all the material in doc/VT100 is a very bad hack and
absolutely unmaintainable because it uses a weird mixture of tools and models. Let's
say its a kind of laboratory structure.

Neverthenless, i hold the idea to intimately link the documentation of the escape
codes with its interpretation good. It was simply never fully implemented, though,
and bringing it as far as it right now is was quite some work. I estimate 2 weeks
of work at least to finalise it or to bring it at least to a maintainable and useful
state. I hesitate to offer to pick this part up again, since i have very few spared
time.

But clearly, this and a decent documentation of the konsole's core would definitely
improve the konsole quite a bit, making its maintainace and adaption more simple.
The work would best be done in a review of the konsole's core, straightening the
code and sorting apart stuff that went into wrong files. Some newer material became
badly layered over time, and is completely undocumented. In particular, the XIM
material badly needs to be sorted apart from the displaying operation. The marking
material needs a review.

Anyway, i can take the technical reference / program documentation onto my agenda.
I could work up from Screen/Emulation (which are referenced in the techref) and later
pave ways into the Widget. It will take some time and i cannot guarantee to actually
make it.

For now, best thing is perhaps to be clear, that this is an open issue and this could be
clearly stated with the work-around proposed above.

-lars
Comment 8 Robert Knight 2006-10-24 01:57:10 UTC
> I believe it would be enough to simply include the techref into 
> the 'install' ending in /usr/share/doc/konsole, together with a 
> statement that the techref is out of date and needs to be reorganised. 

There are two groups of users who I see as needing documentation on Konsole's terminal features:

- Power users, sysadmins and developers who write small scripts to help automate common tasks and customise their terminal environment
- Developers of terminal applications 

Including the techref doesn't help the first group - who are the subject of this bug report, because it will be hard for them to find the relevant parts (producing coloured output, setting window titles, setting icon titles etc.).  It may not be obvious where this documentation is either.
I personally fall into this first catagory of user, and would expect to find the documentation somewhere in the Help manual. 
This documentation can be quite short (no more than a few screens) and would ideally include a few example scripts which users can copy and paste into Konsole and observe the effects. 

Including the techref does help the second group, although since an application developer will probably want to write an application that works well in all terminals, it would probably be better to point them to http://vt100.net - which contains an 'official' definition of the terminal which Konsole is supposed to emulate, and then only document Konsole's specific extensions separately.


> The work would best be done in a review of the konsole's core, 
> straightening the code and sorting apart stuff that went into wrong files

At the moment I am trying to do this incrementally, by adding doxygen comments to the classes and using more descriptive variable names and helpful comments as I make changes in the backend.  

It is possible to spent a lot of time reorganising the code while not actually delivering improvements to the user.

> Anyway, i can take the technical reference / program documentation 
> onto my agenda. I could work up from Screen/Emulation (which are 
> referenced in the techref) and later pave ways into the Widget.

I think it would be best to do documentation updates nearer the release, when Konsole is feature-complete for KDE 4.
Comment 9 Mathieu Jobin 2009-10-07 20:17:03 UTC
hmm, i don't know if this feature has been documented, already.
but the feature itself is sure missing in Konsole from KDE4

please put this back

see bug #179142 for details