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을 시작했는데 모드의 화면 높이가 671px입니다(화면 해상도를 조정하기 위해 수정 스크립트를 만들었습니다 xrandr --output VGA-0 --mode 1366x671). 화면 높이가 642px와 일치하지 않으면 실행 시 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의 끝까지 인쇄합니다.

관련 정보