DE'de terminali (örneğin gnome-terminali) rahatlığımız için yeniden boyutlandırabiliriz, terminalin boyutunu piksel veya sütun ve satır sayısı olarak nasıl bilebilirim?
DE'de terminali (örneğin gnome-terminali) rahatlığımız için yeniden boyutlandırabiliriz, terminalin boyutunu piksel veya sütun ve satır sayısı olarak nasıl bilebilirim?
Yanıtlar:
Komutu verirseniz
stty size
geçerli terminalin boyutunu satır ve sütun olarak döndürür. Misal:
$ stty size
24 80
Satırları ve sütunları aşağıdaki gibi değişkenlere okuyabilirsiniz ( Janis'in yorumu sayesinde ):
$ read myrows mycols < <(stty size)
Boyutu piksel olarak elde etmek için ekranınızın çözünürlüğü hakkında bilgi gerektirir ve bence stty
bu tür bilgilere doğrudan erişimi vardır.
bash
echo
read
ksh
bash
read myrows mycols < <( stty size )
Bir de masaüstü ortamında , sen X kullanıyorsanız ve xwininfo
yarar piksel cinsinden penceresinin boyutunu gösterebilir. Masaüstü çalışan (ve, örneğin, uzaktan bağlı değil) olan, ayrıca, terminal emülatörü bir değişken içerir $WINDOWID
Eğer bir parametre olarak kullanarak xwininfo
, örneğin,
xwininfo -id $WINDOWID
ve bir liste listesi alın:
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
Bu örnekte, olan hatlar Width
ve Height
boyut olan piksel . Son satır, karakterlerin-geometry
boyutunu verir (ayrıca sol üst köşenin konumunu - piksel olarak).
Konuşurken boyutlandırma pencere, resize
program, satır ve sütun göstermektedir. Bu örnek için şunu gösterir:
$ resize
set noglob;
setenv COLUMNS '103';
setenv LINES '42';
unset noglob;
Soru, bilginin nasıl kullanılabileceğini göstermedi, ancak çıktı metin olduğu için tahmin edilebilir bir formatta kolayca yazılır. İşte awk kullanarak basit bir örnek:
#!/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
hangi baskılar
577x624 pixels, 103x42 chars