LXTerminal と XTerm のサイズ変更コマンド

LXTerminal と XTerm のサイズ変更コマンド

ターミナルウィンドウのサイズを変更するコマンドをbashスクリプトで実行したい。xtermで

xterm -geometry=30x30

を作成します新しいxtermウィンドウ、および

lxterminal --geometry=30x30

を作成します新しいlxterminal ウィンドウ。

新しいウィンドウを開かずにどちらかのターミナルのサイズを変更する方法はありますか? 次のようになります:

if [ $TERMINALTYPE=xterm ]; then
    DASH="-"
else
    DASH="--"
endif

echo -e $TERMINALTYPE" "$DASH"geometry 30x30"

しかし:どちらの端末でも機能する便利なワンライナーのコマンド (vt100 エスケープ シーケンスなど) があれば、さらに良いでしょう。

答え1

これには 2 つの手順があります。まず、xterm にこれを許可するように指示する必要があります。これは、デフォルトでは、ホストされているプログラムによるウィンドウのサイズ変更要求が無視されるためです。これを ~/.Xdefaults に追加します。

xterm*allowWindowOps: true

これを有効にするには、ログアウトするか、次のコマンドを実行する必要があります。

xrdb ~/.Xdefaults

次に、新しい xterm を起動し、bash スクリプトで次の操作を実行します。

echo -ne "\e[8;30;30t"

答え2

ただ共有したいだけです:

apt-get install xterm

次のサイズ変更コマンドを使用します。20= 行数、40= 列数:

resize -s 20 40

要件に応じて行と列の値を変更します。

答え3

に加えて@Paulの正解:

編集せずにこれを試すには~/.Xdefaults、次を実行します:

xterm -xrm 'xterm*allowWindowOps: true'

次に、新しいウィンドウで:

printf "\e[8;%d;%dt" $[LINES+5] $[COLUMNS+5]

.Xdefaultsまたは.Xresources

インストールによっては、.Xresourcesではなくに保存する必要がある場合があります.Xdefaults

ファイル

Xrdb はそれ自体ではファイルをロードしませんが、多くのデスクトップ環境では、ファイルの一般的な代替として、セッションの起動時にファイルxrdbをロードして~/.Xresourcesリソース データベースを初期化します~/.Xdefaults

後で

sed -e '$axterm*allowWindowOps: true' -i.bak .Xresources 
xrdb <.Xresources

それから...

いくつかのbindサンプル

これを実行するか、あなたの.bashrc:

# Some bind for 'Shift' + <direction> key and allowWindowOps resource
bind -x '"\e[1;2C"':'printf  "\e[8;%d;%dt" $LINES $((COLUMNS+5))'
bind -x '"\e[1;2D"':'printf  "\e[8;%d;%dt" $LINES $((COLUMNS-5))'
bind -x '"\e[1;2B"':'printf  "\e[8;%d;%dt" $((LINES+3)) $COLUMNS'
bind -x '"\e[1;2A"':'printf  "\e[8;%d;%dt" $((LINES-3)) $COLUMNS'

Shiftそれぞれ+ Right   、   Shift+ Left   、   Shift+Down   または   Shift+と一緒に使用されます。Up

注記: このようにbind は、対話型コマンド環境 (または進行中の作業の下ではない)でvim動作します。lessread

関連情報