st est un émulateur de terminal simple et léger développé par le projet suckless.
Son but est de fournir une alternative peu consommatrice en ressources, stable et très rapide à xterm dont le code serait devenu extrêmement difficile à maintenir.
Le code source peut être récupéré sur le site à l'adresse http://st.suckless.org ou, et c'est ce que je recommande, directement depuis le dépôt git afin d'obtenir la dernière version grâce à la commande:
git clone git://git.suckless.org/st
Il se configure directement dans le code via le fichier config.def.h :
/* police de caractère et distance en pixel entre le texte et la bordure */ static char font[] = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*"; static int borderpx = 1; /* TERM value (définition de la variable d'environnement TERM) */ static char termname[] = "st-256color"; static unsigned int tabspaces = 4; /* Couleurs employées, numérotées ci-après de 1 à 16 */ /* Terminal colors (16 first used in escape sequence) */ static const char *colorname[] = { /* 8 normal colors */ "black", "red3", "green3", "yellow3", "blue2", "magenta3", "cyan3", "gray90", /* 8 bright colors */ "gray50", "red", "green", "yellow", "#5c5cff", "magenta", "cyan", "white", [255] = 0, /* Vous pouvez mettre ici vos couleurs personnalisées, leur numéro commence à 256 */ /* more colors can be added after 255 to use with DefaultXX */ "#cccccc", "#191919", "#9e0000", }; /* * Default colors (colorname index) * foreground, background, cursor */ static unsigned int defaultfg = 7; /* couleur de premier plan (police) */ static unsigned int defaultbg = 257; /* couleur d'arrière plan */ static unsigned int defaultcs = 258; /* couleur du curseur */
Cette phase de configuration est simple et explicite.
En revanche, j'ai eu quelques soucis avec l'interprétation des touches DEL (Suppr) et BACKSPACE:
Un peu agaçant tout cela, j'ai donc modifié les séquences des touches dans config.def.h puis modifié le st.info en conséquence.
Voici un diff qui, je l'espère, pourra être d'une quelconque utilité à d'autres utilisateurs:
config.def.h
--- st/config.def.h 2014-12-16 07:47:40.936515457 -0400 +++ st/config.def.h 2014-12-14 20:23:49.061465478 -0400 @@ -202,7 +204,6 @@ { XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0, 0}, { XK_KP_Delete, ShiftMask, "\033[2K", -1, 0, 0}, { XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0, 0}, - { XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0, 0}, { XK_KP_Delete, XK_ANY_MOD, "\177", +1, 0, 0}, { XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0, 0}, { XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0, 0}, @@ -212,6 +213,7 @@ { XK_KP_Subtract, XK_ANY_MOD, "\033Om", +2, 0, 0}, { XK_KP_Decimal, XK_ANY_MOD, "\033On", +2, 0, 0}, { XK_KP_Divide, XK_ANY_MOD, "\033Oo", +2, 0, 0}, + { XK_BackSpace, XK_ANY_MOD, "\177", 0, 0, 0}, { XK_KP_0, XK_ANY_MOD, "\033Op", +2, 0, 0}, { XK_KP_1, XK_ANY_MOD, "\033Oq", +2, 0, 0}, { XK_KP_2, XK_ANY_MOD, "\033Or", +2, 0, 0}, @@ -257,8 +259,7 @@ { XK_Delete, ControlMask, "\033[3;5~", +1, 0, 0}, { XK_Delete, ShiftMask, "\033[2K", -1, 0, 0}, { XK_Delete, ShiftMask, "\033[3;2~", +1, 0, 0}, - { XK_Delete, XK_ANY_MOD, "\033[P", -1, 0, 0}, - { XK_Delete, XK_ANY_MOD, "\177", +1, 0, 0}, + { XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0, 0}, { XK_Home, ShiftMask, "\033[2J", 0, -1, 0}, { XK_Home, ShiftMask, "\033[1;2H", 0, +1, 0}, { XK_Home, XK_ANY_MOD, "\033[H", 0, -1, 0},
--- st/st.info 2014-12-16 07:47:40.936515457 -0400 +++ st/st.info 2014-12-14 20:24:03.629465315 -0400 @@ -53,7 +53,7 @@ ka3=\E[5~, kc1=\E[4~, kc3=\E[6~, - kbs=\010, + kbs=\177, kcbt=\E[Z, kb2=\EOu, kcub1=\EOD, @@ -73,7 +73,7 @@ kri=\E[1;2A, kclr=\E[3;5~, kdl1=\E[3;2~, - kdch1=\0177, + kdch1=\E[3~, kich1=\E[2~, kend=\E[4~, kf1=\EOP,
Par défaut, st ira s'installer dans /usr/local/bin/ :
make clean install
Nécessite l'installation de l'utilitaire checkinstall mais permet au programme d'être pris en compte par le gestionnaire de paquet et même de générer votre paquet .deb:
checkinstall