Sur DE, nous pouvons redimensionner le terminal (gnome-terminal par exemple) pour notre commodité, comment puis-je connaître la taille du terminal en termes de pixels ou de nombre de colonnes et de lignes?
13
Si vous exécutez la commande
stty size
il renvoie la taille du terminal actuel en lignes et colonnes. Exemple:
$ stty size
24 80
Vous pouvez lire les lignes et les colonnes dans des variables comme celle-ci (grâce au commentaire de Janis ):
$ read myrows mycols < <(stty size)
L'obtention de la taille en pixels nécessite une connaissance de la résolution de votre écran et je ne pense pas stty
avoir un accès direct à ces informations.
bash
laecho
commande de cette réponse ne verra pas les variables, car leread
dans le pipeline sera exécuté dans un sous-shell. (Il fonctionneksh
, cependant.) Pourbash
vous pouvez utiliser, par exemple,read myrows mycols < <( stty size )
.Dans un environnement de bureau , vous utilisez X et l'
xwininfo
utilitaire peut afficher la taille de la fenêtre en pixels. De plus, si vous exécutez sur le bureau (et non, par exemple, connecté à distance), l'émulateur de terminal fournit une variable$WINDOWID
que vous pouvez utiliser comme paramètre pourxwininfo
, par exemple,et obtenez une liste de liste ceci:
Dans cet exemple, les lignes avec
Width
etHeight
sont la taille en pixels . La dernière ligne, avec-geometry
donne la taille en caractères (ainsi que la position du coin supérieur gauche - en pixels).En parlant de redimensionner la fenêtre, le
resize
programme affiche le nombre de lignes et de colonnes. Pour cet exemple, il montreLa question n'indiquait pas comment les informations pourraient être utilisées, mais comme la sortie est du texte, dans un format prévisible, elle est facilement scriptée. Voici un exemple simple utilisant awk:
qui imprime
la source