たとえば、私のアプリケーション(ゲーム)の解像度は640×480です。今2つのオプションがあります。 640x480サイズのウィンドウモードで起動するか、フルスクリーンを有効にしてフルスクリーンを埋めることです。
私が望むのは、フルスクリーンに切り替えることなくアプリのサイズを変更することです(例:1024x768)。
現在、私は2つの解決策を試しました。
で「仮想デスクトップシミュレーション」を有効にします
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」とWebブラウザサーバーで「aos://」プロトコルを使用してAce Of Spadeを起動するために使用されます。プロトコルの別の構成タイプについてはここでは説明しません。
今回ゲームを実行すると、ゲーム実行後にゲームを終了するまでモニター解像度が800x600に変わり、ゲームを終了すると再び800x600に戻ります。