Xtermベースの端末のサイズを変更するユニバーサル組み込みコマンドを探しています。
これは、新しいウィンドウを作成しないある種のコマンドであり、これらの端末が起動するファイルに含める必要はありません。
60x30フレームで開くアプリを作成したいのですが、コマンドを実行した後でのみです
myapp run
ターミナルを常に30x60で開くのではなく、myappの実行時にサイズを変更するだけです。
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
で指定された重力を使用する必要があることを示します。
ほとんどの端末(Terminal.appを含む)が受け入れる必要のあるANSIエスケープシーケンスがあります。
$ echo -e "\e[8;30;60t"
これにより、端末のサイズが30行60列に変更されます(必要なサイズを誤解した場合は、30行と60列を入れ替えてください)。
この文字列が端末に書き込まれている限り、どこからでも使用できます。 myapp
の一部にするか、ラッパーとしてシェル関数を作成できます。
myapp () {
echo -e "\e[8;30;60t"
command myapp "$@"
}
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を区別する方法を見つける必要があるかもしれません。ユーザーが何を使いたいかを知っているか、ユーザーに選択させる(またはもっと賢いもの:-))。