예를 들어 내 애플리케이션(게임)의 해상도는 640x480뿐입니다. 이제 2가지 옵션이 있습니다. 640x480 크기의 창 모드에서 시작하거나 전체 화면을 활성화하고 전체 화면을 채우는 것입니다.
내가 원하는 것은 전체 화면으로 전환하지 않고 앱 크기를 조정하는 것입니다(예: 1024x768).
현재 나는 두 가지 솔루션을 시도했습니다.
에서 "가상 데스크톱 시뮬레이션"을 활성화합니다
winecfg
. 처음에는 해당 해상도로 데스크톱이 시작되지만 응용 프로그램에서 전체 화면을 활성화하면 데스크톱이 640x480으로 축소됩니다.내부 X 서버에서 Wine을 시작하십시오.
Xephyr -ac -br -noreset -screen 1024x768 :1.0 & ZEPHYR_PID=$! sleep 1 DISPLAY=:1.0 wine game.exe kill $ZEPHYR_PID
여기서도 같은 문제가 발생합니다. 전체 화면을 활성화하면 창 크기가 조정됩니다.
답변1
한번은 전체 화면 모드로 플레이했는데 모니터의 해상도와 새로 고침 빈도를 변경하는 스크립트를 만들었고 잘못된 비율을 사용했기 때문에 모니터에 "Entrace not adm"이라는 메시지와 함께 부동 상자가 나타났습니다. 수정하려면 아래와 같은 것을 사용합니다.
'에이스 오브 스페이드' 입니다.
#!/bin/bash
# Resolution Fix
echo `xrandr --current | grep current | awk '{print $8}'` >> /tmp/width
echo `xrandr --current | grep current | awk '{print $10}'` >> /tmp/height
cat /tmp/height | sed -i 's/,//g' /tmp/height
WIDTH=$(cat /tmp/width)
HEIGHT=$(cat /tmp/height)
rm /tmp/height /tmp/height
echo "$WIDTH"x"$HEIGHT" >> /tmp/Resolution
Resolution=$(cat /tmp/Resolution)
rm /tmp/Resolution
# Resolution Fix
BINARY="$HOME/.wine/drive_c/Ace of Spades/client.exe"
$(wine "$BINARY" -"$@" "%u") &
xrandr -s 800x600 -r 77
sleep 2
BINARYPID=$(pidof $BINARY)
taskset -p 0xFFFFFFFF $BINARYPID &
while Launchers=$(pidof "client.exe")
do
sleep 1
done
xrandr -s $Resolution -r 63
exit 0
Resume에서 이 스크립트는 "mimetype"과 웹 브라우저 서버에서 "aos://" 프로토콜을 사용하여 Ace Of Spade를 시작하는 데 사용됩니다. 프로토콜의 또 다른 구성 유형은 여기서는 설명하지 않겠습니다.
이번에 게임을 실행하면 게임 실행 후 게임을 종료할 때까지 모니터 해상도가 800x600으로 바뀌다가, 게임을 종료하면 다시 800x600으로 돌아갑니다.