web-dev-qa-db-ja.com

Bashサイズ変更ターミナルXterm

Xtermベースの端末のサイズを変更するユニバーサル組み込みコマンドを探しています。

これは、新しいウィンドウを作成しないある種のコマンドであり、これらの端末が起動するファイルに含める必要はありません。

60x30フレームで開くアプリを作成したいのですが、コマンドを実行した後でのみです

myapp run

ターミナルを常に30x60で開くのではなく、myappの実行時にサイズを変更するだけです。

2
Blue Ice

Macを持っていないので試せませんが wmctrl はUNIXアプリなのでshouldOSXでも動作します。次のようなものを試してください:

 wmctrl -r :ACTIVE: -e 5,-1,-1,660,540
        -----------   -- -- -- --- ---
             |         | |  |   |   |---> Window height
             |         | |  |   |-------> Window width             
             |         | |  |-----------> Window Y coordinates
             |         | |--------------> Window X coordinates
             |         |----------------> Gravity
             |--------------------------> Apply to the active window

重力は次のいずれかになります( ソース ):

  • 北西(1)
  • 北(2)、
  • 北東(3)、
  • 西(4)、
  • センター(5)、
  • 東(6)、
  • 南西(7)、
  • 南(8)、
  • 南東(9)
  • 静的(10)。

重力0は、ウィンドウマネージャーがWM_SIZE_HINTS.win_gravityで指定された重力を使用する必要があることを示します。

2
terdon

ほとんどの端末(Terminal.appを含む)が受け入れる必要のあるANSIエスケープシーケンスがあります。

$ echo -e "\e[8;30;60t"

これにより、端末のサイズが30行60列に変更されます(必要なサイズを誤解した場合は、30行と60列を入れ替えてください)。

この文字列が端末に書き込まれている限り、どこからでも使用できます。 myappの一部にするか、ラッパーとしてシェル関数を作成できます。

myapp () {
    echo -e "\e[8;30;60t"
    command myapp "$@"
}
2
chepner

AppleScriptを試すことができます。ここにvimを調整する例があります:

#!/bin/sh 
# Script runvim.sh
osascript  <<EOF
tell app "Terminal"
  set number of rows of first window to 34
  set number of columns of first window to 96
  set custom title of first window to "vim"
end tell
EOF
vim $@

これは組み込みですが、ターミナルとiTerm2を区別する方法を見つける必要があるかもしれません。ユーザーが何を使いたいかを知っているか、ユーザーに選択させる(またはもっと賢いもの:-))。

0
rfindeis