ターミナルウィンドウのサイズを変更するコマンドを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
動作します。less
read