VirtualBoxゲストアドインは、Arch Linux、Lubuntu、openSUSE Tumbleweedを含む複数のプラットフォームでEnlightenment 20の画面解像度を自動的に調整できないことを確認しました。例をご覧ください。これ私はArch Linuxフォーラムの投稿を作成したので、次のスクリプト(に保存されています)を使用しています~/.bashrc
。
xrandr --output VGA-0 --mode 1366x642
画面解像度をフルスクリーンに調整します。問題は、私が望むモードの画面の高さが642pxではない場合があることです。たとえば、openSUSE Tumbleweed VMを起動したところ、モードの画面の高さは671ピクセルです(画面の解像度を調整するための修正スクリプトを作成しましたxrandr --output VGA-0 --mode 1366x671
)。画面の高さが642ピクセルと一致しない場合、実行中にxrandr --output VGA-0 --mode 1366x642
画面の解像度を調整することはできず、次のエラーメッセージが返されますxrandr: cannot find mode 1366x642
。ただし、このモードの画面の高さはを実行して確認できます。xrandr
これは私のopenSUSE Tumbleweed VMに出力を提供します。
Screen 0: minimum 64 x 64, current 800 x 600, maximum 32766 x 32766
VGA-0 connected primary 800x600+0+0 0mm x 0mm panning 800x600+0+0
1366x671 60.00 +
2560x1600 60.00
2560x1440 60.00
2048x1536 60.00
1920x1600 60.00
1920x1080 60.00
1600x1200 60.00
1680x1050 60.00
1400x1050 60.00
1280x1024 60.00
1024x768 60.00
800x600 60.00*
640x480 60.00
出力をフィルタリングxrandr
して正しい画面の高さの値を取得し、それに渡すことができるかどうか疑問に思いますxrandr --output VGA-0 --mode 1366x<HEIGHT>
。ここに私が使用するスクリプトがあります($H
目的のフィルタによって決定されるモーダルの高さはどこにあります)。
L=$(xrandr)
H=f($L) # Where f(x) is the filter I am hoping for.
xrandr --output VGA-0 --mode 1366x$H
ベストアンサー1
以下が使えるようです。
H=$(xrandr | awk '$1 ~ /^[[:digit:]]+x[[:digit:]]+$/ && $2 ~ /^[[:digit:]]+\.[[:digit:]]+$/ && $3 == "+" { print substr($1, index($1, "x")+1) }')
xrandr --output VGA-0 --mode 1366x$H
以下はよく設定されたawkプログラムです。
'$1 ~ /^[[:digit:]]+x[[:digit:]]+$/ && \
$2 ~ /^[[:digit:]]+\.[[:digit:]]+$/ && \
$3 == "+" \
{ print substr($1, index($1, "x")+1) }'
$3 == "+"
正しい線をつかむような簡単なものから始めましたが、少しの編集証$1
と$2
チェックを追加しました。このprint
行は$ 1の一部を印刷します。ディメンションの「x」の位置を計算し、1つの位置をスキップしてそこから$ 1の終わりまで印刷します。