Man page - console_codes(4)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr pt_BR es pl ko ja ru zh_TW zh_CN deManual
console_codes
NOMDESCRIPTION
Commandes de la console Linux
Ensembles de caractĂšres
Gestion de souris
Comparaison avec dâautres terminaux
NOTES
BOGUES
VOIR AUSSI
TRADUCTION
NOM
console_codes â SĂ©quence de contrĂŽle et dâĂ©chappement des consoles
DESCRIPTION
Sous Linux, le gestionnaire de console implĂ©mente un sous-ensemble important des sĂ©quences de contrĂŽle des terminaux VT102 et ECMA-48/ISO/IEC 6429/ANSI X3.64, ainsi que quelques sĂ©quences spĂ©cifiques pour le changement de palette de couleurs, de jeu de caractĂšres, etc. Dans la description ci-dessous, la seconde colonne de la table contient les mnĂ©moniques ECMA-48 ou DEC (ces derniers ayant le prĂ©fixe DEC) pour chaque fonction indiquĂ©e. Les sĂ©quences sans mnĂ©monique ne correspondent ni Ă lâECMA-48 ni au VT102.
Lorsque tout le prĂ©traitement nĂ©cessaire Ă une sortie est terminĂ©, et quâun flux de caractĂšres arrive au gestionnaire de console pour ĂȘtre effectivement affichĂ©, la traduction des codes utilisĂ©s pour le prĂ©traitement en codes utilisĂ©s pour lâaffichage a lieu avant tout.
Si la console est en mode UTF-8, les octets arrivant sont tout dâabord assemblĂ©s en codes sur 16 bits au standard Unicode. Sinon, chaque octet est transformĂ© en fonction de la table de correspondance en cours (qui convertit chaque octet en une valeur Unicode). Consultez la section Jeux de caractĂšres ci-aprĂšs pour plus de dĂ©tails.
Normalement, la valeur Unicode est convertie en un index dans la table de caractĂšres, qui est alors stockĂ© dans la mĂ©moire vidĂ©o, afin que le glyphe correspondant (comme ceux qui se trouvent dans la mĂ©moire morte vidĂ©o), apparaisse sur lâĂ©cran. Notez que lâutilisation de lâUnicode, et la conception des PC, permettent de disposer simultanĂ©ment de 512 symboles diffĂ©rents.
Si la valeur Unicode rencontrĂ©e est un caractĂšre de contrĂŽle ou si lâon est dĂ©jĂ dans le traitement dâune sĂ©quence dâĂ©chappement, la valeur sera traitĂ©e de maniĂšre particuliĂšre. PlutĂŽt que dâĂȘtre convertie en un index dans la table des caractĂšres et affichĂ©e comme un glyphe, elle peut provoquer un dĂ©placement du curseur ou toute autre fonction de contrĂŽle. Consultez le paragraphe ContrĂŽle de la console Linux ci-aprĂšs pour plus de dĂ©tails.
Il vaut mieux Ă©viter en gĂ©nĂ©ral de coder en dur les contrĂŽles de terminaux dans les programmes. Linux propose lâutilisation de la base de donnĂ©es terminfo (5) concernant les possibilitĂ©s des terminaux. PlutĂŽt que dâĂ©mettre des sĂ©quences dâĂ©chappement Ă la main, vous pourrez presque toujours utiliser des bibliothĂšques de gestion de terminaux utilisant terminfo ou des utilitaires comme ncurses (3), tput (1) ou reset (1).
Commandes de la console Linux
Ce paragraphe dĂ©crit tous les caractĂšres de commande et les sĂ©quences dâĂ©chappement qui dĂ©clenchent certaines fonctions spĂ©ciales (câest-Ă -dire nâaffichant pas un glyphe Ă la position actuelle du curseur) sur la console Linux.
CaractĂšres de contrĂŽle
Un caractĂšre est dit « de contrĂŽle » sâil correspond Ă lâun des 14 codes suivants (avant traduction par la table de correspondance en cours) : 00 (NUL), 07 (BEL), 08 (BS), 09 (HT), 0a (LF), 0b (VT), 0c (FF), 0d (CR), 0e (SO), 0f (SI), 18 (CAN), 1a (SUB), 1b (ESC), 7 (DEL). Un « mode dâaffichage des caractĂšres de contrĂŽle » (voir ci-aprĂšs), dans lequel les codes 07, 09, 0b, 18, 1a et 7f seront quand mĂȘme affichĂ©s sous forme de glyphes, peut ĂȘtre dĂ©fini. Inversement, en mode UTF-8, tous les codes de lâintervalle 00â1f sont considĂ©rĂ©s comme des caractĂšres de contrĂŽle quel que soit le « mode dâaffichage des caractĂšres de contrĂŽle ».
Lorsquâun
caractÚre de contrÎle est rencontré, il
agit immédiatement, puis est oublié
(mĂȘme au milieu dâune sĂ©quence
dâĂ©chappement), et la sĂ©quence
dâĂ©chappement continue avec le caractĂšre
suivant). Toutefois, ESC indique le dĂ©but dâune
nouvelle sĂ©quence dâĂ©chappement,
annulant alors une éventuelle séquence
dĂ©jĂ commencĂ©e. De mĂȘme, CAN et
SUB annulent toute séquence
dâĂ©chappement entamĂ©e. Les
caractĂšres de contrĂŽle reconnus sont BEL, BS,
HT, LF, VT, FF, CR, SO, SI, CAN, SUB, ESC, DEL, CSI. Ils
effectuent les actions suivantes :
BEL (0x07,
^G
)
émet un bip ;
BS (0x08, ^H )
provoque un retour en arriĂšre dâune colonne (mais ne remonte pas Ă la ligne prĂ©cĂ©dente quand il est invoquĂ© en dĂ©but de ligne) ;
HT (0x09, ^I )
provoque un saut au prochain taquet de tabulation ou Ă la fin de ligne sâil nây a pas de taquet dâici lĂ Â ;
LF (0x0A,
^J
)
VT (0x0B,
^K
)
FF (0x0C,
^L
)
provoquent tous les trois un saut de ligne pour et si LF/NL (mode new-line) est actif, un retour chariot ;
CR (0x0D, ^M )
provoque un retour chariot (« carriage return ») ;
SO (0x0E, ^N )
active le jeu de caractĂšres G1Â ;
SI (0x0F, ^O )
active le jeu de caractĂšres G0Â ;
CAN (0x18,
^X
)
SUB (0x1A,
^Z
)
interrompent des sĂ©quences dâĂ©chappement ;
ESC (0x1B, ^[ )
dĂ©bute une sĂ©quence dâĂ©chappement ;
DEL (0x7F)
est ignoré ;
CSI (0x9B)
est équivalent à ESC [.
|
SĂ©quences dâĂ©chappement ESC, non CSI |
||||||
|
|
||||||
|
|
||||||
|
|
SĂ©quences dâĂ©chappement ECMA-48 CSI
CSI (ou ESC [) est suivi dâune sĂ©rie de paramĂštres, au plus NPAR (16), reprĂ©sentĂ©s par des nombres dĂ©cimaux sĂ©parĂ©s par des points-virgules. Un paramĂštre vide ou absent est considĂ©rĂ© comme Ă©tant 0. La sĂ©rie de paramĂštres peut ĂȘtre prĂ©cĂ©dĂ©e par un seul point dâinterrogation.
Toutefois, aprĂšs CSI [ (ou ESC [ [) un seul caractĂšre est lu, et le reste de la sĂ©quence est ignorĂ©. LâidĂ©e est dâignorer les touches de fonctions rĂ©pĂ©tĂ©es.
|
Lâaction dĂ©clenchĂ©e par une sĂ©quence CSI est indiquĂ©e par le dernier caractĂšre. |
Sélection du rendu graphique ECMA-48
|
La sĂ©quence ECMA-48 SGR suivante ESC [ paramĂštres m dĂ©finit les paramĂštres dâaffichage. Plusieurs attributs peuvent ĂȘtre indiquĂ©s dans la mĂȘme sĂ©quence, sĂ©parĂ©s par des points-virgules. Un attribut vide (entre les points-virgules ou en dĂ©but ou fin de chaĂźne) est interprĂ©tĂ© comme valant zĂ©ro. |
||||
|
|
||||
|
|
||||
|
|
|
Les commandes 38 et 48 ont besoin dâautres arguments : |
Modes
ECMA-48
ESC [ 3 h
DECCRM (inactif par défaut) : afficher les caractÚres de contrÎle.
ESC [ 4 h
DECIM (inactif par défaut) : mode insertion.
ESC [ 20 h
LF/NL (inactif par défaut) : faire suivre les LF, VT ou FF par un CR.
Demandes de
rapport dâĂ©tat ECMA-48
ESC [ 5 n
Rapport dâĂ©tat du pĂ©riphĂ©rique (DSR) : la rĂ©ponse est ESC [ 0 n (Terminal OK).
ESC [ 6 n
Rapport de position du curseur (CPR) : la rĂ©ponse est ESC [ y ; x R, oĂč x,y est la position actuelle du curseur.
Modes privés DEC (DECSET/DECRST)
Ces modes ne
sont pas dĂ©crits dans lâECMA-48. La liste
ci-dessous présente les séquences
dâactivation des modes. Les sĂ©quences de
désactivation sont obtenues en remplaçant le
« h » final par un
« l ».
ESC [ ? 1 h
DECCKM (inactif par défaut) : les touches de déplacement du curseur émettent un préfixe ESC O plutÎt que ESC [.
ESC [ ? 3 h
DECCOLM (inactif par dĂ©faut = 80 colonnes) : bascule de 80 Ă 132 colonnes. Les sources du gestionnaire de console indiquent que ce code nâest pas suffisant Ă lui seul. Certains utilitaires comme resizecons (8) modifient Ă©galement les registres matĂ©riels de la carte vidĂ©o.
ESC [ ? 5 h
DECSCNM (inactif par dĂ©faut) : mode dâinversion vidĂ©o.
ESC [ ? 6 h
DECOM (inactif par défaut) : adressage du curseur relatif au coin haut gauche de la région de défilement.
ESC [ ? 7 h
DECAWM (actif par défaut) : saut de ligne automatique. Un caractÚre émis aprÚs la colonne 80 (ou 132 en mode DECCOLM), est affiché au début de la ligne suivante.
ESC [ ? 8 h
DECARM (actif par défaut) : répétition automatique des touches du clavier.
ESC [ ? 9 h
Ătat de souris X10 (inactif par dĂ©faut) : dĂ©finit le mode de rapport dâĂ©tat de la souris Ă 1 (ou le rĂ©initialise Ă 0) â voir ci-aprĂšs.
ESC [ ? 25 h
DECTECM (actif par défaut) : curseur visible.
ESC [ ? 1000 h
Ătat de souris X11 (inactif par dĂ©faut) : dĂ©finit le mode de rapport dâĂ©tat de la souris Ă 2 (ou le rĂ©initialise Ă 0) â voir ci-aprĂšs.
Séquences CSI privées de la console Linux
|
Les sĂ©quences suivantes ne sont ni ECMA-48 ni du VT102 originel. Elles sont spĂ©cifiques au gestionnaire de console de Linux. Les couleurs sont indiquĂ©es selon les paramĂštres SGR : 0 = noir, 1 = rouge, 2 = vert, 3 = marron, 4 = bleu, 5 = magenta, 6 = cyan, 7 = blanc, 8â15 = versions brillantes de 0â7. |
Ensembles de caractĂšres
Le noyau connaßt 4 types de traduction des octets en symboles graphiques pour la console. Les 4 tables sont a) Latin1 -> PC, b) graphismes VT100 -> PC, c) PC -> PC, d) spécifique utilisateur.
Il existe deux jeux de caractĂšres, appelĂ©s G0 et G1, et lâun dâentre eux est sĂ©lectionnĂ© comme jeu en cours (initialement G0). La frappe de ^N sĂ©lectionne le jeu G1 comme jeu en cours, la frappe de ^O sĂ©lectionne le jeu G0.
Ces variables G0 et G1 pointent vers des tables de traduction, qui peuvent ĂȘtre modifiĂ©es par lâutilisateur. Initialement elles pointent respectivement vers les tables a) et b). Les sĂ©quences ESC ( B , ESC ( 0 , ESC ( U et ESC ( K font pointer G0 respectivement vers les tables a), b), c) et d). Les sĂ©quences ESC ) B , ESC ) 0 , ESC ) U , ESC ) K font pointer G1 vers les tables a), b), c) et d) respectivement.
La sĂ©quence ESC c rĂ©initialise le terminal. Câest ce qui doit ĂȘtre effectuĂ© lorsque lâĂ©cran est rempli de codes incomprĂ©hensibles. La commande classique « echo ^V^O » sĂ©lectionne seulement le jeu G0, elle ne garantit pas que G0 pointe sur la table a). Dans certaines distributions, on trouve une commande reset (1) qui effectue simplement « echo ^[c ». Si lâentrĂ©e de la base terminfo pour la console est correcte, et dispose dâune entrĂ©e rs1=\Ec alors la commande « tput reset » fonctionnera aussi.
La table de correspondance dĂ©finie par lâutilisateur peut ĂȘtre construite en utilisant mapscrn (8). Cette correspondance agit ainsi : si le symbole c doit ĂȘtre imprimĂ©, alors le symbole s = map[c] est envoyĂ© Ă la mĂ©moire vidĂ©o. La reprĂ©sentation graphique correspondant Ă s est placĂ©e par dĂ©faut en mĂ©moire morte, et peut ĂȘtre modifiĂ©e en utilisant setfont (8).
Gestion de souris
Les possibilitĂ©s de gestion de souris sont prĂ©vues pour fournir un rapport dâĂ©tat de la souris compatible avec xterm (1). Comme le gestionnaire de console nâa aucun moyen de connaĂźtre le pĂ©riphĂ©rique, ni le type de souris, ces rapports sont envoyĂ©s dans le flux de saisie de la console uniquement quand une requĂȘte ioctl de mise Ă jour de la souris est reçue. Ces requĂȘtes doivent ĂȘtre dĂ©clenchĂ©es par une application utilisateur capable de gĂ©rer les souris, comme le dĂ©mon gpm (8).
Les sĂ©quences de suivi de souris engendrĂ©es par xterm (1) sont encodĂ©s dans un unique caractĂšre, de code valeur +040. Par exemple, « ! » correspond Ă 1. Le systĂšme de coordonnĂ©es dâĂ©cran commence Ă 1.
En mode de compatibilitĂ© X10, une sĂ©quence dâĂ©chappement est envoyĂ©e lors de lâappui sur un bouton, encodant la position et le numĂ©ro du bouton pressĂ©. Ce mode est activĂ© avec ESC [ ? 9 h et dĂ©sactivĂ© par ESC [ ? 9 l. Lors dâune pression sur un bouton, xterm (1) envoie ESC [ M bxy (6 caractĂšres). Dans ce message b correspond au numĂ©ro de bouton -1, x et y sont les coordonnĂ©es de lâemplacement oĂč le bouton a Ă©tĂ© pressĂ©. Ce sont les mĂȘmes codes que ceux produits par le noyau.
En mode de suivi normal (non implĂ©mentĂ© sous Linux 2.0.24), une sĂ©quence dâĂ©chappement est envoyĂ©e lors de lâappui sur un bouton, mais aussi lors du relĂąchement. Des informations sur les touches de modification (SHIFT, CTL...) sont Ă©galement envoyĂ©es. Le mode est activĂ© par ESC [ ? 1000 h et dĂ©sactivĂ© avec ESC [ ? 1000 l. Lors de lâappui ou du relĂąchement dâun bouton, xterm (1) envoie ESC [ M bxy . Les deux bits de poids faible de b correspondent Ă lâĂ©tat du bouton 0=MB1 pressĂ©, 1=MB2 pressĂ©, 2=MB3 pressĂ©, 3=relĂąchement. Les bits de poids fort codent lâĂ©ventuelle touche modificatrice enfoncĂ©e lors de lâappui sur le bouton 4=Shift, 8=Meta, 16=Control. Ă nouveau x et y sont les coordonnĂ©es de lâĂ©vĂšnement de souris. Le coin en haut Ă gauche de lâĂ©cran a pour coordonnĂ©es (1,1).
Comparaison avec dâautres terminaux
Beaucoup dâautres terminaux sont dits compatibles VT100, comme la console Linux. Nous allons voir ici les diffĂ©rences entre cette derniĂšre et les deux types principaux de terminaux : le DEC VT102 et xterm (1).
Gestion des caractĂšres de contrĂŽle
Le VT102
reconnaissait les caractĂšres de contrĂŽle
supplémentaires suivants :
NUL (0x00)
était ignoré ;
ENQ (0x05)
renvoyait un message de réponse ;
DC1 (0x11, ^Q , XON)
reprenait une transmission ;
DC3 (0x13, ^S , XOFF)
faisait que vt100 ignorait tous les codes saufs XOFF et XON (et arrĂȘtait Ă©galement la transmission).
Une gestion de DC1/DC3 compatible VT100 pouvait ĂȘtre activĂ©e par le pilote de terminal.
Le programme xterm (1) (en mode VT100) reconnaĂźt les caractĂšres de contrĂŽle BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC.
SĂ©quences dâĂ©chappement
|
Les sĂ©quences dâĂ©chappement VT100 non implĂ©mentĂ©es sur la console Linux : |
|||||
|
|
Le programme xterm (1) (en mode VT100) reconnaĂźt ESC c, ESC # 8, ESC >, ESC =, ESC D, ESC E, ESC H, ESC M, ESC N, ESC O, ESC P ... ESC \, ESC Z (il rĂ©pond ESC [ ? 1 ; 2 c, « Je suis un VT100 avec des options vidĂ©o avancĂ©es ») et ESC ^ ... ESC \ avec les mĂȘmes significations que celles indiquĂ©es plus haut. Il accepte ESC (, ESC ), ESC *, ESC + suivis de 0, A, B pour les caractĂšres spĂ©ciaux DEC, les tracĂ©s de lignes, lâASCII UK, et lâASCII US, respectivement.
Lâutilisateur peut configurer xterm (1) pour quâil rĂ©ponde aux sĂ©quences de contrĂŽle VT220, qui sâidentifiera comme VT52, VT100, et au-delĂ selon la maniĂšre dont il est configurĂ© et initialisĂ©.
|
Il accepte ESC ] (OSC) pour dĂ©finir certaines ressources. En plus de la fin de chaĂźne (ST) ECMA-48, xterm (1) accepte quâune chaĂźne OSC se termine par BEL. Il y a quelques sĂ©quences de contrĂŽle OSC reconnues par xterm (1) : |
|
Il reconnait les codes suivants avec une signification lĂ©gĂšrement diffĂ©rente des codes originaux (sauvant plus dâĂ©tats, avec un comportement plus proche de VT100/VT220) : |
|
Il reconnaßt également : |
Il reconnaĂźt Ă©galement ESC % et fournit une implĂ©mentation plus complĂšte dâUTF-8 que la console Linux.
Séquences CSI
Les anciennes versions de xterm (1), par exemple depuis X11R5, interprĂštent un SGR clignotant comme un SGR gras. Les versions suivantes implĂ©mentant les couleurs ANSI, par exemple XFree86 3.1.2A en 1995, ont amĂ©liorĂ© cela en autorisant lâattribut clignotant Ă ĂȘtre affichĂ© comme une couleur. Les versions modernes de xterm implĂ©mentent le SGR clignotant sous la forme de texte clignotant et autorisent encore le texte colorĂ© comme possibilitĂ© alternative de rendu des SGR. Les versions de base sous X11R6 ne reconnaissaient pas les SGR de choix de couleur avant la publication de X11R6.8, qui a incorporĂ© le xterm de XFree86. Toutes les sĂ©quences ECMA-48 CSI reconnues par Linux le sont aussi par xterm , bien que xterm (1) implĂ©mente plusieurs sĂ©quences de contrĂŽle ECMA-48 et DEC non reconnues par Linux.
Le programme xterm (1) reconnaĂźt Ă©galement toutes les sĂ©quences du mode privĂ© DEC citĂ©es plus haut, mais aucune sĂ©quence du mode privĂ© Linux. Pour plus de dĂ©tails sur les sĂ©quences privĂ©es dâ xterm (1) consultez le document Xterm Control Sequences dâEdward Moy, Stephen Gildea et Thomas E. Dickey disponible avec la distribution X. Ce document, quoique succinct, est plus complet que cette page de manuel. Pour une vue gĂ©nĂ©rale chronologique,
http://invisible-island.net/xterm/xterm.log.html
indique les changements apportés à xterm.
Le programme vttest
http://invisible-island.net/vttest/
montre le fonctionnement de beaucoup de ces sĂ©quences de contrĂŽle. La distribution source de xterm (1) contient Ă©galement des scripts dâexemple utilisant dâautres fonctionnalitĂ©s.
NOTES
ESC 8 (DECRC) nâest pas capable de revenir au jeu de caractĂšres prĂ©cĂ©dant le changement fait avec ESC %.
BOGUES
Dans Linux 2.0.23, CSI fonctionne mal, et les caractĂšres NUL ne sont pas ignorĂ©s dans les sĂ©quences dâĂ©chappement.
Certaines versions du noyau (aprĂšs Linux 2.0) interprĂštent les sĂ©quences de contrĂŽle sur 8 bits. Ces contrĂŽles « C1 » utilisent des codes entre 128 et 159 pour remplacer ESC [, ESC ] et dâautres initiateurs similaires de sĂ©quence de contrĂŽle sur deux octets. Il en existe des fragments dans les noyaux modernes (soit nĂ©gligĂ©s soit cassĂ©s par les changements pour la gestion UTF-8), mais lâimplĂ©mentation est incomplĂšte et ne devrait ĂȘtre considĂ©rĂ©e comme fiable.
Les sĂ©quences « mode privé » Linux ne suivent pas les rĂšgles ECMA-48 des sĂ©quences de contrĂŽle en mode privĂ©. En particulier, celles terminant par ] nâutilisent pas un caractĂšre de terminaison standard. La sĂ©quence OSC (de rĂ©glage de la palette) pose un problĂšme plus important, puisque xterm (1) peut lâinterprĂ©ter comme une sĂ©quence de contrĂŽle exigeant une fin de chaĂźne (« string terminator » â ST). Contrairement aux sĂ©quences setterm (1) qui seront ignorĂ©es (Ă©tant des sĂ©quences de contrĂŽle non autorisĂ©es), la sĂ©quence de palette donnera lâimpression que xterm (1) sâest figĂ© (bien que presser la touche entrĂ©e rĂšgle ce problĂšme). Pour satisfaire les applications qui ont Ă©tĂ© codĂ©es en dur pour utiliser les sĂ©quences de contrĂŽle Linux, rĂ©glez la ressource brokenLinuxOSC de xterm (1) Ă vrai.
Une ancienne version de ce document insinuait que Linux reconnaissait la séquence de contrÎle ECMA-48 destinée au texte invisible. Elle est ignorée.
VOIR AUSSI
ioctl_console (2), charsets (7)
TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Cédric Boutillier <cedric.boutillier@gmail.com>, Frédéric Hantrais <fhantrais@gmail.com> et Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>
Cette traduction est une documentation libre ; veuillez vous reporter Ă la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il nây a aucune RESPONSABILITĂ LĂGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .