Terminal "Resizable" adalah hasil dari NAWS ( Negotiate About Window Size
dari RFC 1073 Pilihan Ukuran Jendela Telnet ).
Jika Anda terhubung langsung ke komputer menggunakan port serial, tidak ada negosiasi yang terlibat, dan komputer tidak memiliki pengetahuan langsung tentang ukuran layar terminal Anda.
Jika terminal dapat menegosiasikan ukuran, komputer akan mengirim SIGWINCH
ke aplikasi yang berjalan di terminal, memberi tahu mereka untuk memperbarui gagasan screensize mereka.
Ketika komputer tidak mengetahui screensize, biasanya mengatur ukuran yang ditunjukkan oleh stty -a
(baris dan kolom) menjadi nol. Untuk penggunaan interaktif, ini sedikit tidak ramah, dan beberapa sistem menggunakan variabel lingkungan LINES
dan COLUMNS
untuk membantu. Nilai yang diberikan dapat diturunkan dari deskripsi terminal; lebih sering mereka hanya hardcoded. Konvensi untuk variabel-variabel ini mensyaratkan bahwa mereka berlaku kecuali ditekan secara eksplisit, misalnya, dalam use_env
fungsi aplikasi kutukan . Di sisi positif, variabel-variabel itu dapat berguna ketika tidak ada informasi yang dapat diandalkan tersedia. Di sisi negatif, tidak ada metode yang mudah untuk mengubah variabel-variabel tersebut.
The resize
Program (utilitas disediakan dengan xterm
) dapat menggunakan VT100 gaya laporan posisi kursor urutan escape untuk menentukan ukuran layar. Ini dapat dijalankan dari baris perintah; tidak ada lagi cara mudah untuk melakukannya secara otomatis. Sebagai efek samping, resize
memperbarui informasi pada baris / kolom yang dilihat oleh stty
. Penggunaannya untuk menyediakan variabel lingkungan diperbarui terutama berguna untuk kasus-kasus seperti ini, di mana LINES
dan COLUMNS
yang ditetapkan, dan harus diperbarui.
[[ $(tty) == /dev/ttyS0 ]] && trap res2 DEBUG
ke salah satu konfigurasi profil shell (misalnya/etc/profile
,,~/.bash_profile
). Ini akan membuatnya dijalankan setelah setiap perintah tunggal (yang hanya akan menjadi hal yang baik jika Anda mengubah ukuran jendela / panel dengan layar / tmux / terminal-emulator).