VirtualBoxで実行されるEnlightenment 20の画面解像度を自動的に調整するBashスクリプトを書くには? [閉鎖]

VirtualBoxで実行されるEnlightenment 20の画面解像度を自動的に調整するBashスクリプトを書くには? [閉鎖]

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の終わりまで印刷します。

おすすめ記事