====== 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