summaryrefslogtreecommitdiffstats
path: root/konsole/README.linux.console
blob: 25eed24c306f9fcbaefe7f52ed59e78a6180d8d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Konsole and the Linux console


From a technical point of view, the Linux console differes
so substantially from any other terminal, that it impossible
to fully emulate it. This is because the Linux console lives
in kernel space and interfaces by kernel means, which cannot
be simulated by any user space application.

Contrary to this fact, konsole can be configured to appear
and function console like to a degree that makes it virtually
undistinguishable from the original. To do so, switch off the
menubar, scrollbar and frame, select the Linux colors and font
and set the full screen mode. 

If you're running the console with the same resolution as
your X display (which you can, thanks to the frame buffer
console), you should get a pixel identical display then,
despite the fact that you're still running an X terminal.


* What make the Linux console so unique?

The central differences between the Linux console and xterm
like emulations are:

1) The Linux console uses some special devices (vcs,vcsa)
   and ioctls for some purposes, for which no correspondent
   escape codes exist.
2) The Linux console uses gpm for the mouse.
3) The Linux console does not have an application screen.
   Xterm like application switch from a primary screen to
   the application screen when running in full screen mode,
   keeping the shell session apart from the application.
   Application like MC emulation the application screen on
   the Linux console using the devices mentioned in 1).
4) The Linux console may use a character map different from
   the one used in X11.
5) The TERM environment variable is "linux"
6) A few key codes (F1-F5) differ.
7) The Linux console occupies the whole display.

Clearly, 1) and 2) make the Linux console so distinct that
an explicit Linux console simulation cannot exist.


* Running Konsole in true Linux console mode:

To some degree, one can run application with Linux console
emulation, too.

- export TERM=linux to trigger ncurses aware applications
  to expect a linux console.
- set the appropriate codec (this is cp437 on my installation)
  to get graphical and international characters properly.
[TODO: to control codec via menu settings is work in progress, meaning not available yet.]
- set the Linux keyboard to get the F1-F5 function keys right.

In general it is NOT advisable to ever modify the above
indicated settings unless you know what you're doing.

Note that applications then may not react properly on changing
the window size anymore. Often they ignore it completely or
behave strange in other ways. I even saw one application dying
from the shock of noticing that the linux console has simply
changed it's size (Debian's dselect). Since the Linux console
can be resized, this behavior is to be considered a bug in
these applications, i cannot help it.

Mouse-aware application will most probably not recognize
mouse events (especially mc) since they might try to get
these events from gpm instead.

MC will not be able to access the special console devices
then and cannot simulate a secondary screen, treating the
emulation as "dummy" with respect to it (^O).

Some application will also assume that the default background
is black, thereby producing random black background ranges.

The linux console can some funny quirks with special graphic
characters and i will not teach Konsole all of them. In rare
cases, they might display differently. Affected to my knowledge
are especially non-VT100 extensions taken from the AT&T 4410v1,
these are arrow symbols, a full block and a checker board. Most
other tricks that the linux console is able to do with character
sets are eventually not even used in a single instance, so you
will hardly be disturbed by it.