Pada DE kita dapat mengubah ukuran terminal (gnome-terminal misalnya) untuk kenyamanan kita, bagaimana saya bisa mengetahui ukuran terminal dalam hal piksel atau jumlah kolom dan baris?
Pada DE kita dapat mengubah ukuran terminal (gnome-terminal misalnya) untuk kenyamanan kita, bagaimana saya bisa mengetahui ukuran terminal dalam hal piksel atau jumlah kolom dan baris?
Jawaban:
Jika Anda mengeluarkan perintah
stty size
mengembalikan ukuran terminal saat ini dalam baris dan kolom. Contoh:
$ stty size
24 80
Anda dapat membaca baris dan kolom menjadi variabel seperti ini (terima kasih atas komentar Janis ):
$ read myrows mycols < <(stty size)
Untuk mendapatkan ukuran dalam piksel memerlukan pengetahuan tentang resolusi layar Anda dan saya pikir tidak stty
memiliki akses langsung ke informasi tersebut.
bash
satu echo
perintah dalam jawaban ini tidak akan melihat variabel, karena read
di dalam pipa akan dieksekusi dalam subkulit. (Ini berfungsi ksh
, meskipun.) Untuk bash
Anda mungkin ingin menggunakan, misalnya read myrows mycols < <( stty size )
,.
Di lingkungan desktop , Anda menggunakan X, dan xwininfo
utilitas dapat menunjukkan ukuran jendela dalam piksel. Juga, jika Anda menjalankan pada desktop (dan tidak, misalnya, terhubung dari jarak jauh), terminal emulator menyediakan variabel $WINDOWID
yang dapat Anda gunakan sebagai parameter untuk xwininfo
, misalnya,
xwininfo -id $WINDOWID
dan dapatkan daftar listing ini:
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
Dalam contoh ini, garis dengan Width
dan Height
merupakan ukuran dalam piksel . Baris terakhir, dengan -geometry
memberikan ukuran dalam karakter (serta posisi sudut kiri atas - dalam piksel).
Berbicara tentang mengubah ukuran jendela, resize
program menunjukkan jumlah garis dan kolom. Untuk contoh ini, ini menunjukkan
$ resize
set noglob;
setenv COLUMNS '103';
setenv LINES '42';
unset noglob;
Pertanyaan itu tidak menunjukkan bagaimana informasi dapat digunakan, tetapi karena outputnya berupa teks, dalam format yang dapat diprediksi, maka informasi tersebut dapat ditulis dengan mudah. Berikut adalah contoh sederhana menggunakan 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
yang mencetak
577x624 pixels, 103x42 chars