オープンターミナルの寸法を探す

オープンターミナルの寸法を探す

デスクトップ環境では端末のサイズを変更できます(GNOME端末例えば)私たちの便宜のために。

端末のピクセルサイズや列、行数をどのように知ることができますか?

答え1

コマンドを出すと

stty size

現在の端末の行と列のサイズを返します。例:

$ stty size
24 80

このような変数で行と列を読み取ることができます(ありがとうジャニスのコメント):

$ read myrows mycols < <(stty size)

ピクセルサイズを取得するには、画面解像度に関する知識が必要であり、sttyそのような情報に直接アクセスする方法はないと思います。

答え2

tput cols; tput lines

これにより、列と行が表示されます。

答え3

デスクトップ環境、Xを使用しており、xwininfoユーティリティはウィンドウサイズをピクセル単位で表示できます。また、デスクトップで実行している場合(リモートで接続されていない場合など)、ターミナルエミュレータは引数$WINDOWIDとして使用できる変数を提供しますxwininfo

xwininfo -id $WINDOWID

リストを取得します。

xwininfo: Window id: 0xc00025 "uxterm"

  Absolute upper-left X:  65
  Absolute upper-left Y:  167
  Relative upper-left X:  0
  Relative upper-left Y:  22
  Width: 624
  Height: 577
  Depth: 24
  Visual: 0x22
  Visual Class: TrueColor
  Border width: 1
  Class: InputOutput
  Colormap: 0x21 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +65+167  -589+167  -589-256  +65-256
  -geometry 103x42+65+145

Widthこの例では、行Heightサイズはとです。ピクセル。最後の行は次の-geometry寸法を提供します。数値(そして左上隅の位置 - ピクセル単位)。

について話すサイズ変更ウィンドウにresizeプログラムは行と列の数を表示します。この例では、次のように表示されます。

$ resize
set noglob;
setenv COLUMNS '103';
setenv LINES '42';
unset noglob;

質問は情報の使用方法を示していませんが、出力は予測可能な形式のテキストなので、スクリプトを書くのは簡単です。以下は、awkを使用する簡単な例です。

#!/bin/sh
if [ -n "$WINDOWID" ]
then
    xwininfo -id $WINDOWID | awk '
    BEGIN { px = 0; py = 0; chars = "?x?"; }
    /Height:/ { py = $2; }
    /Width:/ { px = $2; }
    /-geometry/ { chars = $2; sub("+.*","",chars); }
    END { printf "%dx%d pixels, %s chars\n", py, px, chars; }'
else
    printf '? no WINDOWID found\n'
fi

印刷

577x624 pixels, 103x42 chars

関連情報