Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/03/2024, à 19:15

Biggest-Gargantua

Bug avec PS1 et les ansi escapes

Bonjour à tous !

Comme d'habitude, je ne sais pas si je suis dans la bonne partie du forum (c'est tellement grand ici, on s'y perd facilement).

Mon problème est tout bête, il concerne les variables bash PS0, PS1 et PS2. J'aimerais y mettre de la couleur en fond (avec les ansi escapes). Tout fonctionne correctement SAUF le wrapping. Au lieu de gentiment retourner à la ligne quand le texte est trop long, il revient au début de celle ci, et "crop" le PS1 (si j'efface tout, le PS1 n'est pas entier). Il y a des problèmes similaires lorsque je colle (avec ctrl+maj+c) plusieurs lignes d'un coup. J'ai trouvé des "solutions" à mon problèmes sur stackoverflow, mais... Elles n'y changent rien (et sont particulièrement incompréhensibles). On pourrait croire que ma manip (absolument honteuse) pour afficher l'heure en dehors de la zone d'écriture est cause du bug, mais... Non... J'ai essayé sans, et ça ne change pas... Ce n'est pas la couleur de foreground (qui est de toute manière utilisé par le PS1 par défaut), ni les triangles (il faut par ailleurs une font adaptée pour qu'ils soient beaux). J'ai essayé de retirer chaque élément individuellement ou en groupe, et seules les couleurs de background posent problème. Je n'ai essayé qu'avec Gnome Terminal et le terminal interne de visual studio code, les deux ont ces problème.

Voici mon "code" (qui est soigneusement placé à la fin du .bashrc) :

triangle_1=$(echo -e "\uE0B0")
triangle_2=$(echo -e "\uE0B2")

export PS1="\033[01;32m$triangle_2\033[30;42m \u@\h \033[44;32m$triangle_1 \033[30m\w \033[34;40m$triangle_1\033[37m \$ \033[00;30m$triangle_1\033[00m\033[s"
export PS2="\033[30m$triangle_2\033[40;37m > \033[00;30m$triangle_1\033[00m\033[s"

size_1=$(tput cols)
size_2=$(($size_1 - 11))
export PS0="\033[u\033[${size_2}G\033[30m$triangle_2\033[40;37m \t \033[00;30m$triangle_1\033[00m\n"

J'ai un Ubuntu 22.04 LTS avec Gnome, installé sur un Asus zenbook duo ux482 (oui c'est infernal avec la carte graphique... Par miracle, je n'ai pas eu besoin de neofetch, qui fait systématiquement planter ma machine ^^' ).

Cordialement, Gargantua.

Hors ligne