幾何学に関しては、X
マニュアルページは次のように述べています。
"ジオメトリ仕様: ...ほとんどのXプログラムは、このアプリケーションのデフォルトのサイズと位置を指定する-geometry WIDTHxHEIGHT+XOFF+YOFF(ここでWIDTH、HEIGHT、XOFF、YOFFは数値です)形式のコマンドライン引数を受け入れますウィンドウのジオメトリ仕様の幅と高さの部分は、通常、アプリケーションに応じてピクセルまたは文字で測定されます。
両方の幅と高さのオプションがxterm
文字にあるようです。画面に基づいて特定のジオメトリを持つ端末を実行するにはxfce4-terminal
-geometry
プログラム的に(たとえば、タイリング:ターミナルウィンドウで各象限を覆います)画面サイズを文字単位で知る必要があります。ピクセル単位で見つけることができますが、xwininfo -root
文字単位で見つける方法がわかりません。どうすればいいですか? XFCE4関連の回答が可能です。
答え1
私の質問に答える:wmctrl
@NickDの提案に従い、ハッキーソリューションを提案しました。
#!/bin/bash
get_window_id() { # Convert window title into wmctrl window id
wmctrl -l | grep "$1" | cut -f1 -d" " | tail -n1
}
screen_dim=( $(xwininfo -root | grep "\-geometry" | sed -r 's/.* ([0-9]+)x([0-9]+)\+0\+0/\1 \2/gp' -n) )
w=$((screen_dim[0] / 2))
h=$((screen_dim[1] / 2))
k=40
xfce4-terminal --title="My Window 1"
xfce4-terminal --title="My Window 2"
xfce4-terminal --title="My Window 3"
xfce4-terminal --title="My Window 4"
wmctrl -i -r $(get_window_id "My Window 1") -e 0,0,0,$w,$((h - k))
wmctrl -i -r $(get_window_id "My Window 2") -e 0,$w,0,$w,$((h - k))
wmctrl -i -r $(get_window_id "My Window 3") -e 0,0,$h,$w,$((h - k))
wmctrl -i -r $(get_window_id "My Window 4") -e 0,$w,$h,$w,$((h - k))
このk
パラメータは、@NickDで言及されているタスクバーの問題を解決するためのおおよその調整です。
どういうわけか文字のピクセルサイズを見つけることができれば、ジオメトリをxfce4-terminalに直接渡すことができます。そうすればもっときれいになります。
screen_dim=( $(xwininfo -root | grep "\-geometry" | sed -r 's/.* ([0-9]+)x([0-9]+)\+0\+0/\1 \2/gp' -n) )
w=$((screen_dim[0] / 2))
h=$((screen_dim[1] / 2))
cw=$((c/character_width))
ch=$((h/character_height))
k=1
xfce4-terminal --title="My Window 1" --geometry=${cw}x${ch}+0+0
...
しかし、私はそれを得る方法を知りませんcharacter_width
。character_height