console_codes(4) Device Drivers Manual console_codes(4) NOM console_codes -- Sequence de controle et d'echappement des consoles DESCRIPTION Sous Linux, le gestionnaire de console implemente un sous-ensemble important des sequences de controle des terminaux VT102 et ECMA-48/ISO/IEC 6429/ANSI X3.64, ainsi que quelques sequences specifiques pour le changement de palette de couleurs, de jeu de caracteres, etc. Dans la description ci-dessous, la seconde colonne de la table contient les mnemoniques ECMA-48 ou DEC (ces derniers ayant le prefixe DEC) pour chaque fonction indiquee. Les sequences sans mnemonique ne correspondent ni a l'ECMA-48 ni au VT102. Lorsque tout le pretraitement necessaire a une sortie est termine, et qu'un flux de caracteres arrive au gestionnaire de console pour etre effectivement affiche, la traduction des codes utilises pour le pretraitement en codes utilises pour l'affichage a lieu avant tout. Si la console est en mode UTF-8, les octets arrivant sont tout d'abord assembles en codes sur 16 bits au standard Unicode. Sinon, chaque octet est transforme en fonction de la table de correspondance en cours (qui convertit chaque octet en une valeur Unicode). Consultez la section Jeux de caracteres ci-apres pour plus de details. Normalement, la valeur Unicode est convertie en un index dans la table de caracteres, qui est alors stocke dans la memoire video, afin que le glyphe correspondant (comme ceux qui se trouvent dans la memoire morte video), apparaisse sur l'ecran. Notez que l'utilisation de l'Unicode, et la conception des PC, permettent de disposer simultanement de 512 symboles differents. Si la valeur Unicode rencontree est un caractere de controle ou si l'on est deja dans le traitement d'une sequence d'echappement, la valeur sera traitee de maniere particuliere. Plutot que d'etre convertie en un index dans la table des caracteres et affichee comme un glyphe, elle peut provoquer un deplacement du curseur ou toute autre fonction de controle. Consultez le paragraphe Controle de la console Linux ci-apres pour plus de details. Il vaut mieux eviter en general de coder en dur les controles de terminaux dans les programmes. Linux propose l'utilisation de la base de donnees terminfo(5) concernant les possibilites des terminaux. Plutot que d'emettre des sequences d'echappement a la main, vous pourrez presque toujours utiliser des bibliotheques de gestion de terminaux utilisant terminfo ou des utilitaires comme ncurses(3), tput(1) ou reset(1). Commandes de la console Linux Ce paragraphe decrit tous les caracteres de commande et les sequences d'echappement qui declenchent certaines fonctions speciales (c'est-a-dire n'affichant pas un glyphe a la position actuelle du curseur) sur la console Linux. Caracteres de controle Un caractere est dit << de controle >> s'il correspond a 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 caracteres de controle >> (voir ci-apres), dans lequel les codes 07, 09, 0b, 18, 1a et 7f seront quand meme affiches sous forme de glyphes, peut etre defini. Inversement, en mode UTF-8, tous les codes de l'intervalle 00-1f sont consideres comme des caracteres de controle quel que soit le << mode d'affichage des caracteres de controle >>. Lorsqu'un caractere de controle est rencontre, il agit immediatement, puis est oublie (meme au milieu d'une sequence d'echappement), et la sequence d'echappement continue avec le caractere suivant). Toutefois, ESC indique le debut d'une nouvelle sequence d'echappement, annulant alors une eventuelle sequence deja commencee. De meme, CAN et SUB annulent toute sequence d'echappement entamee. Les caracteres de controle reconnus sont BEL, BS, HT, LF, VT, FF, CR, SO, SI, CAN, SUB, ESC, DEL, CSI. Ils effectuent les actions suivantes : BEL (0x07, ^G) emet un bip ; BS (0x08, ^H) provoque un retour en arriere d'une colonne (mais ne remonte pas a la ligne precedente quand il est invoque en debut de ligne) ; HT (0x09, ^I) provoque un saut au prochain taquet de tabulation ou a la fin de ligne s'il n'y a pas de taquet d'ici la ; 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 caracteres G1 ; SI (0x0F, ^O) active le jeu de caracteres G0 ; CAN (0x18, ^X) SUB (0x1A, ^Z) interrompent des sequences d'echappement ; ESC (0x1B, ^[) debute une sequence d'echappement ; DEL (0x7F) est ignore ; CSI (0x9B) est equivalent a ESC [. Sequences d'echappement ESC, non CSI ESC c RIS reinitialisation ESC D IND saut de ligne ESC E NEL nouvelle ligne ESC H HTS positionner un taquet de tabulation a la colonne en cours ESC M RI saut de ligne inverse ESC Z DECID identification reservee a DEC, le noyau renvoie la chaine ESC [ ? 6 c, affirmant qu'il s'agit d'un VT102 ESC 7 DECSC sauvegarde de l'etat actuel (coordonnees du curseur, attributs, jeux de caracteres pointes par G0, G1) ESC 8 DECRC restauration de l'etat sauvegarde le plus recemment par ESC 7 ESC % debut d'une sequence de selection de jeu de caracteres : ESC % @ selection par defaut (ISO/IEC 646/ISO/IEC 8859-1) ; ESC % G selection de l'UTF-8 ; ESC % 8 selection de l'UTF-8 (obsolete). ESC # 8 DECALN test d'alignement d'ecran DEC, remplissage de l'ecran avec des E ESC ( debut d'une sequence de definition du jeu G0 (suivi par un des B, 0, U, K (comme ci-dessous) ESC ( B selection par defaut (mappage ISO/IEC 8859-1) ESC ( 0 selection du mappage des graphismes VT100 ESC ( U pas de mappage -- directement les caracteres ROM ESC ( K selection du mappage defini par l'utilisateur -- carte chargee par mapscrn(8) ESC ) debut d'une sequence G1 (suivi par un des B, 0, U, K, comme ci-dessus) ESC > DECPNM definition du mode de pave numerique ESC = DECPAM definition du mode de pave numerique d'application ESC ] OSC prefixe d'Operating System Command ESC ] R reinitialisation de la palette ESC ] P definition de la palette, avec des parametres en 7 chiffres hexadecimaux nrrggbb apres le P final. Ici n est la couleur (0-15) et rrggbb indique les valeurs rouge/vert/bleu (0-255) Sequences d'echappement ECMA-48 CSI CSI (ou ESC [) est suivi d'une serie de parametres, au plus NPAR (16), representes par des nombres decimaux separes par des points-virgules. Un parametre vide ou absent est considere comme etant 0. La serie de parametres peut etre precedee par un seul point d'interrogation. Toutefois, apres CSI [ (ou ESC [ [) un seul caractere est lu, et le reste de la sequence est ignore. L'idee est d'ignorer les touches de fonctions repetees. L'action declenchee par une sequence CSI est indiquee par le dernier caractere. @ ICH insertion du nombre indique de caracteres blancs A CUU remontage du curseur du nombre de lignes indique B CUD descente de curseur du nombre de lignes indique C CUF avance du curseur du nombre de colonnes indique D CUB recul du curseur du nombre de colonnes indique E CNL descente du curseur du nombre de lignes indique, dans la premiere colonne F CPL remontage du curseur du nombre de lignes indique, dans la premiere colonne G CHA deplacement du curseur a la ligne indiquee, dans la meme colonne H CUP deplacement du curseur a la ligne et a la colonne indiquees (origine en 1, 1) J ED effacement de l'ecran (par defaut, depuis le curseur jusqu'a la fin de l'ecran) ESC [ 1 J : effacement du debut jusqu'au curseur ESC [ 2 J : effacement de tout l'ecran ESC [ 3 J : effacement de tout l'ecran, y compris le tampon de defilement en arriere (depuis Linux 3.0) K EL effacement de la ligne (defaut : depuis le curseur jusqu'a la fin de la ligne) ESC [ 1 K : effacement du debut de ligne jusqu'au curseur ESC [ 2 K : effacement de toute la ligne L IL insertion du nombre indique de lignes blanches M DL suppression du nombre indique de lignes P DCH suppression du nombre indique de caracteres sur la ligne en cours X ECH effacement du nombre indique de caracteres sur la ligne en cours a HPR avance du curseur du nombre de colonnes indique c DA reponse de ESC [ ? 6 c : << Je suis un VT102 >> d VPA placement du curseur sur la ligne indiquee, meme colonne e VPR descente de curseur du nombre de lignes indique f HVP placement du curseur aux ligne et colonne indiquees g TBC sans parametre : effacer un taquet de tabulation a la position courante ESC [ 3 g : effacement de tous les taquets de tabulation h SM definition du mode (voir ci-apres) l RM reinitialisation du mode (voir ci-apres) m SGR definition des attributs (voir ci-apres) n DSR indication d'etat (voir ci-apres) q DECLL reglage des LED du clavier ESC [ 0 q : effacement de toutes les LED ESC [ 1 q : allumage de la LED Arret Defil. ESC [ 2 q : allumage de la LED Verr. Num. ESC [ 3 q : allumage de la LED Verr. Maj. r DECSTBM indication de la region de defilement, les parametres sont les lignes haute et basse s ? memorisation de l'emplacement du curseur u ? retablissement de l'emplacement du curseur ` HPA deplacement du curseur a la ligne indiquee, dans la meme colonne Selection du rendu graphique ECMA-48 La sequence ECMA-48 SGR suivante ESC [ parametres m definit les parametres d'affichage. Plusieurs attributs peuvent etre indiques dans la meme sequence, separes par des points-virgules. Un attribut vide (entre les points-virgules ou en debut ou fin de chaine) est interprete comme valant zero. parametre resultat 0 reinitialisation de tous les attributs a leurs valeurs par defaut. 1 gras 2 demi-brillance (simule par une couleur sur un ecran couleur) 3 italiques (depuis Linux 2.6.22 ; simule par une couleur sur un ecran couleur) 4 soulignement (simule par une couleur sur un ecran couleur) (les couleurs utilisees pour simuler la demi-brillance ou sont definies en utilisant ESC ] ...) 5 clignotement 7 video inversee 10 reinitialisation du mappage choisi, affichage du drapeau controle et activation du drapeau meta (<< fonte principale >> pour ECMA-48) 11 selection d'aucun mappage, reglage de l'affichage du drapeau controle reinitialisation de l'activation du drapeau meta (<< premiere fonte alternative >> pour ECMA-48) 12 selection d'aucun mappage, reglage de l'affichage du drapeau controle reinitialisation de l'activation du drapeau meta (<< seconde fonte alternative >> pour ECMA-48). L'activation du drapeau meta fait que le bit du poids le plus fort est active avant que la translation de table de mappage ne soit faite. 21 soulignement. Avant Linux 4.17, cette valeur reglait une intensite normale (comme cela est fait dans beaucoup d'autres terminaux) 22 intensite normale 23 pas d'italiques (depuis Linux 2.6.22) 24 pas de soulignement 25 pas de clignotement 27 pas d'inversion video 30 encre noire 31 encre rouge 32 encre verte 33 encre marron 34 encre bleue 35 encre magenta 36 encre cyan 37 encre blanche 38 couleur de fond 256/24 bits apres, comprimee dans les 16 couleurs basiques (avant Linux 3.16 : soulignement actif, couleur de fond par defaut) 39 couleur de l'encre par defaut (avant Linux 3.16 : pas de soulignement, couleur d'encre par defaut) 40 fond noir 41 fond rouge 42 fond vert 43 fond marron 44 fond bleu 45 fond magenta 46 fond cyan 17 fond blanc 48 couleur de fond 256/24 bits apres, comprimee dans les 8 couleurs basiques 49 couleur de fond par defaut 90..97 couleurs de fond en versions brillantes de 30..37 100..107 couleur de fond, telle que 40..47 (brillance non geree) Les commandes 38 et 48 ont besoin d'autres arguments : ;5;x 256 couleurs : les valeurs 0..15 sont IBGR (noir, rouge, vert, ... blanc), 16..231 un cube de couleurs 6x6x6, 232..255 une rampe d'echelle de gris ;2;r;g;b couleur en 24 bits, les composantes r/g/b sont dans l'intervalle 0..255 Modes ECMA-48 ESC [ 3 h DECCRM (inactif par defaut) : afficher les caracteres de controle. ESC [ 4 h DECIM (inactif par defaut) : mode insertion. ESC [ 20 h LF/NL (inactif par defaut) : faire suivre les LF, VT ou FF par un CR. Demandes de rapport d'etat ECMA-48 ESC [ 5 n Rapport d'etat du peripherique (DSR) : la reponse est ESC [ 0 n (Terminal OK). ESC [ 6 n Rapport de position du curseur (CPR) : la reponse est ESC [ y ; x R, ou x,y est la position actuelle du curseur. Modes prives DEC (DECSET/DECRST) Ces modes ne sont pas decrits dans l'ECMA-48. La liste ci-dessous presente les sequences d'activation des modes. Les sequences de desactivation sont obtenues en remplacant le << h >> final par un << l >>. ESC [ ? 1 h DECCKM (inactif par defaut) : les touches de deplacement du curseur emettent un prefixe ESC O plutot que ESC [. ESC [ ? 3 h DECCOLM (inactif par defaut = 80 colonnes) : bascule de 80 a 132 colonnes. Les sources du gestionnaire de console indiquent que ce code n'est pas suffisant a lui seul. Certains utilitaires comme resizecons(8) modifient egalement les registres materiels de la carte video. ESC [ ? 5 h DECSCNM (inactif par defaut) : mode d'inversion video. ESC [ ? 6 h DECOM (inactif par defaut) : adressage du curseur relatif au coin haut gauche de la region de defilement. ESC [ ? 7 h DECAWM (actif par defaut) : saut de ligne automatique. Un caractere emis apres la colonne 80 (ou 132 en mode DECCOLM), est affiche au debut de la ligne suivante. ESC [ ? 8 h DECARM (actif par defaut) : repetition automatique des touches du clavier. ESC [ ? 9 h Etat de souris X10 (inactif par defaut) : definit le mode de rapport d'etat de la souris a 1 (ou le reinitialise a 0) -- voir ci-apres. ESC [ ? 25 h DECTECM (actif par defaut) : curseur visible. ESC [ ? 1000 h Etat de souris X11 (inactif par defaut) : definit le mode de rapport d'etat de la souris a 2 (ou le reinitialise a 0) -- voir ci-apres. Sequences CSI privees de la console Linux Les sequences suivantes ne sont ni ECMA-48 ni du VT102 originel. Elles sont specifiques au gestionnaire de console de Linux. Les couleurs sont indiquees selon les parametres SGR : 0 = noir, 1 = rouge, 2 = vert, 3 = marron, 4 = bleu, 5 = magenta, 6 = cyan, 7 = blanc, 8-15 = versions brillantes de 0-7. ESC [ 1 ; n ] choix de la couleur n pour simuler le soulignement ESC [ 2 ; n ] choix de la couleur n pour simuler la demi-brillance ESC [ 8 ] utilisation de la paire de couleurs actuelle par defaut ESC [ 9 ; n ] delai d'effacement de l'ecran a n minutes ESC [ 10 ; n ] frequence du bip en Hz ESC [ 11 ; n ] duree du bip en ms ESC [ 12 ; n ] basculement de la console indiquee au premier plan ESC [ 13 ] reaffichage de l'ecran ESC [ 14 ; n ] delai pour l'arret de l'ecran VESA en minutes ESC [ 15 ] basculement de la console precedente au premier plan (depuis Linux 2.6.0). ESC [ 16 ; n ] intervalle de clignotement du curseur en millisecondes (depuis Linux 4.2). Ensembles de caracteres Le noyau connait 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) specifique utilisateur. Il existe deux jeux de caracteres, appeles G0 et G1, et l'un d'entre eux est selectionne comme jeu en cours (initialement G0). La frappe de ^N selectionne le jeu G1 comme jeu en cours, la frappe de ^O selectionne le jeu G0. Ces variables G0 et G1 pointent vers des tables de traduction, qui peuvent etre modifiees par l'utilisateur. Initialement elles pointent respectivement vers les tables a) et b). Les sequences ESC ( B, ESC ( 0, ESC ( U et ESC ( K font pointer G0 respectivement vers les tables a), b), c) et d). Les sequences ESC ) B, ESC ) 0, ESC ) U, ESC ) K font pointer G1 vers les tables a), b), c) et d) respectivement. La sequence ESC c reinitialise le terminal. C'est ce qui doit etre effectue lorsque l'ecran est rempli de codes incomprehensibles. La commande classique << echo ^V^O >> selectionne 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'entree de la base terminfo pour la console est correcte, et dispose d'une entree rs1=\Ec alors la commande << tput reset >> fonctionnera aussi. La table de correspondance definie par l'utilisateur peut etre construite en utilisant mapscrn(8). Cette correspondance agit ainsi : si le symbole c doit etre imprime, alors le symbole s = map[c] est envoye a la memoire video. La representation graphique correspondant a s est placee par defaut en memoire morte, et peut etre modifiee en utilisant setfont(8). Gestion de souris Les possibilites de gestion de souris sont prevues pour fournir un rapport d'etat de la souris compatible avec xterm(1). Comme le gestionnaire de console n'a aucun moyen de connaitre le peripherique, ni le type de souris, ces rapports sont envoyes dans le flux de saisie de la console uniquement quand une requete ioctl de mise a jour de la souris est recue. Ces requetes doivent etre declenchees par une application utilisateur capable de gerer les souris, comme le demon gpm(8). Les sequences de suivi de souris engendrees par xterm(1) sont encodes dans un unique caractere, de code valeur+040. Par exemple, << ! >> correspond a 1. Le systeme de coordonnees d'ecran commence a 1. En mode de compatibilite X10, une sequence d'echappement est envoyee lors de l'appui sur un bouton, encodant la position et le numero du bouton presse. Ce mode est active avec ESC [ ? 9 h et desactive par ESC [ ? 9 l. Lors d'une pression sur un bouton, xterm(1) envoie ESC [ M bxy (6 caracteres). Dans ce message b correspond au numero de bouton -1, x et y sont les coordonnees de l'emplacement ou le bouton a ete presse. Ce sont les memes codes que ceux produits par le noyau. En mode de suivi normal (non implemente sous Linux 2.0.24), une sequence d'echappement est envoyee lors de l'appui sur un bouton, mais aussi lors du relachement. Des informations sur les touches de modification (SHIFT, CTL...) sont egalement envoyees. Le mode est active par ESC [ ? 1000 h et desactive avec ESC [ ? 1000 l. Lors de l'appui ou du relachement d'un bouton, xterm(1) envoie ESC [ M bxy. Les deux bits de poids faible de b correspondent a l'etat du bouton 0=MB1 presse, 1=MB2 presse, 2=MB3 presse, 3=relachement. Les bits de poids fort codent l'eventuelle touche modificatrice enfoncee lors de l'appui sur le bouton 4=Shift, 8=Meta, 16=Control. A nouveau x et y sont les coordonnees de l'evenement de souris. Le coin en haut a gauche de l'ecran a pour coordonnees (1,1). Comparaison avec d'autres terminaux Beaucoup d'autres terminaux sont dits compatibles VT100, comme la console Linux. Nous allons voir ici les differences entre cette derniere et les deux types principaux de terminaux : le DEC VT102 et xterm(1). Gestion des caracteres de controle Le VT102 reconnaissait les caracteres de controle supplementaires suivants : NUL (0x00) etait ignore ; ENQ (0x05) renvoyait un message de reponse ; DC1 (0x11, ^Q, XON) reprenait une transmission ; DC3 (0x13, ^S, XOFF) faisait que vt100 ignorait tous les codes saufs XOFF et XON (et arretait egalement la transmission). Une gestion de DC1/DC3 compatible VT100 pouvait etre activee par le pilote de terminal. Le programme xterm(1) (en mode VT100) reconnait les caracteres de controle BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC. Sequences d'echappement Les sequences d'echappement VT100 non implementees sur la console Linux : ESC N SS2 basculement 2 unique (selection du jeu de caracteres G2 pour uniquement le caractere suivant) ESC O SS3 basculement 3 unique (selection du jeu de caracteres G3 pour uniquement le caractere suivant) ESC P DCS chaine de controle de peripherique (terminee par ESC \) ESC X SOS debut de chaine ESC ^ PM message prive (termine par ESC \) ESC \ ST fin de chaine ESC * ... designation du jeu de caracteres G2 ESC + ... designation du jeu de caracteres G3 Le programme xterm(1) (en mode VT100) reconnait ESC c, ESC # 8, ESC >, ESC =, ESC D, ESC E, ESC H, ESC M, ESC N, ESC O, ESC P ... ESC \, ESC Z (il repond ESC [ ? 1 ; 2 c, << Je suis un VT100 avec des options video avancees >>) et ESC ^ ... ESC \ avec les memes significations que celles indiquees plus haut. Il accepte ESC (, ESC ), ESC *, ESC + suivis de 0, A, B pour les caracteres speciaux DEC, les traces de lignes, l'ASCII UK, et l'ASCII US, respectivement. L'utilisateur peut configurer xterm(1) pour qu'il reponde aux sequences de controle VT220, qui s'identifiera comme VT52, VT100, et au-dela selon la maniere dont il est configure et initialise. Il accepte ESC ] (OSC) pour definir certaines ressources. En plus de la fin de chaine (ST) ECMA-48, xterm(1) accepte qu'une chaine OSC se termine par BEL. Il y a quelques sequences de controle OSC reconnues par xterm(1) : ESC ] 0 ; txt ST utiliser txt pour le nom d'icone et le titre de la fenetre ESC ] 1 ; txt ST utiliser txt pour le nom d'icone ESC ] 2 ; txt ST utiliser txt pour le titre de la fenetre ESC ] 4 ; num; txt ST utiliser txt pour la couleur ANSI num ESC ] 10 ; txt ST utiliser txt pour la couleur de texte dynamique ESC ] 4 6 ; nom ST modifier en nom le fichier de journal (normalement desactive par une option au moment de la compilation). ESC ] 5 0 ; fn ST choisir la fonte fn Il reconnait les codes suivants avec une signification legerement differente des codes originaux (sauvant plus d'etats, avec un comportement plus proche de VT100/VT220) : ESC 7 DECSC memoriser l'emplacement du curseur ESC 8 DECRC restaurer l'emplacement du curseur Il reconnait egalement : ESC F curseur en bas a gauche de l'ecran (si active par la ressource d'xterm(1), hpLowerleftBugCompat) ESC l verrouillage memoire (comme les terminaux HP) verrouillage de la memoire au-dessus du curseur ESC m deverrouillage memoire (comme les terminaux HP) ESC n LS2 invocation du jeu de caracteres G2 ESC o LS3 invocation du jeu de caracteres G3 ESC | LS3R invocation du jeu G3 pour le GR (rendu graphique) ESC } LS2R invocation du jeu G2 pour le GR ESC ~ LS1R invocation du jeu G2 pour le GR Il reconnait egalement ESC % et fournit une implementation plus complete d'UTF-8 que la console Linux. Sequences CSI Les anciennes versions de xterm(1), par exemple depuis X11R5, interpretent un SGR clignotant comme un SGR gras. Les versions suivantes implementant les couleurs ANSI, par exemple XFree86 3.1.2A en 1995, ont ameliore cela en autorisant l'attribut clignotant a etre affiche comme une couleur. Les versions modernes de xterm implementent le SGR clignotant sous la forme de texte clignotant et autorisent encore le texte colore comme possibilite 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 incorpore le xterm de XFree86. Toutes les sequences ECMA-48 CSI reconnues par Linux le sont aussi par xterm, bien que xterm(1) implemente plusieurs sequences de controle ECMA-48 et DEC non reconnues par Linux. Le programme xterm(1) reconnait egalement toutes les sequences du mode prive DEC citees plus haut, mais aucune sequence du mode prive Linux. Pour plus de details sur les sequences privees 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 generale chronologique, indique les changements apportes a xterm. Le programme vttest montre le fonctionnement de beaucoup de ces sequences de controle. La distribution source de xterm(1) contient egalement des scripts d'exemple utilisant d'autres fonctionnalites. NOTES ESC 8 (DECRC) n'est pas capable de revenir au jeu de caracteres precedant le changement fait avec ESC %. BOGUES Dans Linux 2.0.23, CSI fonctionne mal, et les caracteres NUL ne sont pas ignores dans les sequences d'echappement. Certaines versions du noyau (apres Linux 2.0) interpretent les sequences de controle sur 8 bits. Ces controles << C1 >> utilisent des codes entre 128 et 159 pour remplacer ESC [, ESC ] et d'autres initiateurs similaires de sequence de controle sur deux octets. Il en existe des fragments dans les noyaux modernes (soit negliges soit casses par les changements pour la gestion UTF-8), mais l'implementation est incomplete et ne devrait etre consideree comme fiable. Les sequences << mode prive >> Linux ne suivent pas les regles ECMA-48 des sequences de controle en mode prive. En particulier, celles terminant par ] n'utilisent pas un caractere de terminaison standard. La sequence OSC (de reglage de la palette) pose un probleme plus important, puisque xterm(1) peut l'interpreter comme une sequence de controle exigeant une fin de chaine (<< string terminator >> -- ST). Contrairement aux sequences setterm(1) qui seront ignorees (etant des sequences de controle non autorisees), la sequence de palette donnera l'impression que xterm(1) s'est fige (bien que presser la touche entree regle ce probleme). Pour satisfaire les applications qui ont ete codees en dur pour utiliser les sequences de controle Linux, reglez la ressource brokenLinuxOSC de xterm(1) a vrai. Une ancienne version de ce document insinuait que Linux reconnaissait la sequence de controle ECMA-48 destinee au texte invisible. Elle est ignoree. VOIR AUSSI ioctl_console(2), charsets(7) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Cedric Boutillier , Frederic Hantrais et Jean-Paul Guillonneau Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 28 janvier 2024 console_codes(4)