====== Configuration et compilation du terminal st ======
* Objet : Présentation rapide, compilation et proposition de fix des touches DEL et BACKSPACE du terminal st
* Niveau requis : FIXME {{tag>avisé}}
* Commentaires : //Pour ceux qui veulent un émulateur de terminal ultra-light et rapide. //
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
===== Introduction =====
**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.
===== Installation =====
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
===== Utilisation =====
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: \\
* Par défaut, DEL avait le même comportement que BACKSPACE (effacement du caractère précédent donc).
* Sous **emacs**, BACKSPACE devenait équivalent à Ctrl+H et m'affichait donc l'aide contextuelle pour les touches et DEL n'était pas reconnue.
* Sous **vim**, BACKSPACE fonctionnait mais DEL procédait à la mise en majuscule du caractère sous le curseur.\\
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,
===== Compilation et installation =====
== Mode brutal: ==
Par défaut, **st** ira s'installer dans // /usr/local/bin/ // : \\
make clean install
== Mode raffiné: ==
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