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 29/11/2020, à 21:29

cristobal78

(résolu)Modifier dimensions terminal nombre ligne/colonne dans script

Bonjour à tous

par défaut mon terminal (celui que j'ouvre par Ctrl-Alt-T) a pour dimensions 18 lignes et 80 colonnes.
Je sais modifier ces dimensions via le menu "Édition > Préférences du profil", c'est facile et immédiat.

Mais ce que je voudrais c'est fixer ces dimensions par une ligne de Cde dans le corps du script que je lance.

En effet parfois un script lancé dans mon terminal 18 / 80 va me sortir des lignes plus longues que 80 colonnes et donc il y a un retour à la ligne ce qui n'est pas beau et en plus ce retour rend la lecture peu aisée.

Y a t il une commande, exécutée dans un script Bash dès sa 1-ere ligne, pour forcer un affichage du terminal avec un nombre de lignes et de colonnes donné, fixé par moi ? Bien sur idéalement dès la fin du script le terminal reprendrait ses dimensions par défaut à savoir 18 / 80.

Des idées ?

Dernière modification par cristobal78 (Le 02/12/2020, à 22:10)


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#2 Le 30/11/2020, à 00:01

Hizoka

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

Salut,

resize -s 18 80

?

Après ce sont des configs spécifique au terminal.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#3 Le 30/11/2020, à 00:07

MicP

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

Bonjour

Dans son message #1, cristobal78 a écrit :

… une commande, exécutée dans un script Bash dès sa 1-ere ligne, pour forcer un affichage du terminal avec un nombre de lignes et de colonnes donné, …

Depuis un script,
pour redimensionner la fenêtre de terminal
en 25 lignes de 120 colonnes :

printf "\033[8;25;120t"

et pour la remettre
en 18 lignes de 80 colonnes :

printf "\033[8;18;80t"

Edit : Le dernier point-virgule n'était pas nécessaire.

Dernière modification par MicP (Le 02/12/2020, à 20:17)

Hors ligne

#4 Le 30/11/2020, à 09:18

serged

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

Tu peux utiliser wmctrl (désolé, rien dans la doc Ubuntu-fr. Un volontaire ?).


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#5 Le 02/12/2020, à 01:29

cristobal78

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

Bonsoir à tous les 3.

J'ai opté pour la proposition de MicP qui, placée en 1-ere ligne de mon script Bash, a parfaitement rempli son rôle. C'est super. smile smile smile

J'ai constaté qu'après exécution du script et fermeture du terminal ce dernier reprenait automatiquement les dimensions qui lui avaient été préalablement assignées dans :
édition > préférences du profil > taille de terminal initiale

Merci encore pour vos idées car ça fait maintenant de bien plus beaux affichages dans le terminal !

Une remarque
Depuis quelques temps je ne reçois plus de mail m'indiquant qu'une ou plusieurs personnes ont répondu à mon post.
C'est en allant sur le forum, à tout hasard, que j'ai découvert vos 3 interventions.
Voilà pourquoi j'ai mis presque 2 jours pour vous remercier et ... passer en "résolu".


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#6 Le 02/12/2020, à 09:25

MicP

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

Tu peux aussi remettre le terminal à la taille qu'il avait avant l'exécution du script

savSize="$LINES;$COLUMNS"     # sauvegarde taille terminal

# … contenu du script
printf "\033[8;25;120t"       # passage en 25 lignes de 120 caractères

# … fin du script

printf "\033[8;${savSize}t"   # retour à la taille originale

Dernière modification par MicP (Le 03/12/2020, à 00:36)

Hors ligne

#7 Le 02/12/2020, à 16:35

cristobal78

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

salut Micp

je prends note de ton dernier post. smile

Une question cependant que j'avais oubliée :
J'ai regardé la cde printf dans le man. Pas triste pour comprendre quelquechose là dedans et surtout comme souvent dans le man pas le moindre exemple pour t'éclairer.
J'ai donc été voir ici :
http://www.gnu.org/software/coreutils/m … invocation

et je n'ai pas été déçu non plus !

Donc ce serait super si tu pouvais expliquer le fonctionnement de ta cde

printf "\033[8;25;120;t" 

dans laquelle je ne déchiffre que le 25 et le 120 !


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#8 Le 02/12/2020, à 20:12

MicP

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

Bonjour

J'ai modifié les lignes de commandes proposées, car le dernier point-virgule n'était pas nécessaire.

Il s'agit de commandes CSI (Control Sequence Introducer)
Voir  : https://en.wikipedia.org/wiki/ANSI_escape_code


Extrait de : XTerm Control Sequences

                        XTerm Control Sequences

                               Edward Moy
                   University of California, Berkeley

                               Revised by

                             Stephen Gildea
                          X Consortium (1994)

                             Thomas Dickey
                      XFree86 Project (1996-2006)
                    invisible-island.net (2006-2020)
               updated for XTerm Patch #362 (2020/11/06)

Definitions

Many controls use parameters, shown in italics.  If a control uses a
single parameter, only one parameter name is listed.  Some parameters
(along with separating ;  characters) may be optional.  Other characters
in the control are required.

C    A single (required) character.

Ps   A single (usually optional) numeric parameter, composed of one or
     more digits.

Pm   Any number of single numeric parameters, separated by ;  charac-
     ter(s).  Individual values for the parameters are listed with Ps .

Pt   A text parameter composed of printable characters.

Control Bytes, Characters, and Sequences

ECMA-48 (aka "ISO 6429") documents C1 (8-bit) and C0 (7-bit) codes.
Those are respectively codes 128 to 159 and 0 to 31.  ECMA-48 avoids
referring to these codes as characters, because that term is associated
with graphic characters.  Instead, it uses "bytes" and "codes", with
occasional lapses to "characters" where the meaning cannot be mistaken.

…

CSI Ps ; Ps ; Ps t
          Window manipulation (XTWINOPS), dtterm, extended by xterm.
          These controls may be disabled using the allowWindowOps
          resource.

          xterm uses Extended Window Manager Hints (EWMH) to maximize
          the window.  Some window managers have incomplete support for
          EWMH.  For instance, fvwm, flwm and quartz-wm advertise sup-
          port for maximizing windows horizontally or vertically, but in
          fact equate those to the maximize operation.

          Valid values for the first (and any additional parameters)
          are:

…

            Ps = 8 ;  height ;  width ⇒  Resize the text area to given
          height and width in characters.  Omitted parameters reuse the
          current height or width.  Zero parameters use the display's
          height or width.

…

Dernière modification par MicP (Le 02/12/2020, à 20:50)

Hors ligne

#9 Le 02/12/2020, à 21:37

cristobal78

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

@ micp

J'ai suivi tes liens, mais j'y ai trouvé une vraie jungle ! Encore pire que le man. big_smile

Alors si je comprends bien:

\033 c'est pareil que ESC

avec le "[" ça devient
ESC [
c-à-d le Control Sequence Introducer

Ps = 8 ;  height ;  width ⇒  Resize the text area to given
          height and width in characters.
ce qui permet la modif de hauteur et largeur

On les fixe à 25 et 120 par
25;120

le "t" est là mais on ne sait pas trop pourquoi ?

Ouf.  smile


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#10 Le 02/12/2020, à 21:42

MicP

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

Le "t" fait partie de la séquence d'échappement,
il est nécessaire pour qu'elle soit bien interprétée.

… J'ai suivi tes liens, mais j'y ai trouvé une vraie jungle ! Encore pire que le man.  …

Oui, ça a commencé il y a très très longtemps,
quand les fabriquant de terminaux se battaient pour imposer leur standards,
alors, il a fallu essayer de s'adapter à chaque "standard".

Dernière modification par MicP (Le 02/12/2020, à 21:45)

Hors ligne

#11 Le 02/12/2020, à 22:08

cristobal78

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

En tout cas thanks a lot.


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#12 Le 02/12/2020, à 22:36

MicP

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

Pour la séquence ESC, je préfère m'habituer à utiliser la notation Octale (\033)
parce qu'elle fonctionne aussi bien avec le shell /usr/bin/bash
qu'avec le shell /usr/bin/dash (<=> /usr/bin/sh)

Hors ligne

#13 Le 03/12/2020, à 15:56

cristobal78

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

Alors juste comme ça, pour rire, et en signe de reconnaissance pour ceux qui m'aident ou m'ont aidé  smile

Je me suis écrit une micro fonction appelée "redimterm" que voici :

redimterm()
{
lig=$1 ; col=$2
printf "\033[8;$lig;$col;t"
}

que je suis en train de glisser dans mes scripts.

@ MicP : Apparemment il faut bien un ";" de séparation entre $col et "t" car

... $col t   tout comme ..$colt   ne marchent pas


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#14 Le 03/12/2020, à 19:10

Hizoka

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

c'est sur que $colt ne marchera pas, il se dira que c'est une variable inconnue, donc vide.

quand tu veux coller des variables à du texte, encadre le nom de la variable par des accolades :

echo "${col}t"

KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#15 Le 03/12/2020, à 20:12

serged

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

À noter que les commandes "resize" et les séquences d'échappement ne fonctionnent pas avec mon terminal (terminator). Donc réservé à xterm ! (néanmoins, marche aussi avec gnome-terminal)


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#16 Le 03/12/2020, à 20:54

Hizoka

Re : (résolu)Modifier dimensions terminal nombre ligne/colonne dans script

la hauteur ne fonctionne pas avec konsole et la largeur fait un truc étrange.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne