Table des matières

Configuration et compilation du terminal st

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:

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