Окончательное решение у меня такое. Этот скрипт кладётся в директорию с исполняемым файлом игры и называется также как этот файл, но без ".exe". В скрипте нужно раскомментировать нужное разрешение и закомментировать все остальные.
#!/bin/sh vga=`xrandr | grep -P " connected (primary )?\d+" | sed -e "s/\(\w\+\) .*/\1/"` if xrandr --output $vga --set "scaling mode" "Full aspect" 2>/dev/null;then wine "$0".exe else #res=640x480 && off=107 #res=800x600 && off=133 #res=1024x768 && off=171 #res=1152x864 && off=192 #res=1280x960 && off=213 res=1440x1080 && off=240 xrandr --output $vga --mode $res --panning $res --transform 1.33333333,0,-$off,0,1,0,0,0,1 && wine "$0".exe ; xrandr --output $vga --auto --panning 0x0 --scale 1x1 fi
Также нужно проверить все ли режимы поддерживает Ваш монитор?
xrandr Если нужного режима нет в списке режимов, то его можно добавить вручную отредактировав xorg.conf./etc/X11/xorg.conf.d/50-monitor.conf
Section "Monitor" Identifier "VGA1" Modeline "1280x960" 101.25 1280 1360 1488 1696 960 963 967 996 -hsync +vsync Modeline "1280x960" 130.00 1280 1368 1504 1728 960 963 967 1005 -hsync +vsync Modeline "1440x1080" 129.00 1440 1528 1680 1920 1080 1083 1087 1120 -hsync +vsync EndSection Где Identifier "VGA1" это имя вывода, определяется вызовом xradr. Modeline ... параметры добавляемого режима. Эти параметры определяются вызовом cvt с параметрами разрешения и частоты. "_60.00" из первого параметра нужно удалить.
cvt 1280 960 60 cvt 1280 960 75 cvt 1440 1080 60 Если монитор поддерживает "scaling mode" "Full aspect" тогда файл запускается через wine без изменений. Если нет, тогда экран корректируется через xrandr. И потом экран возвращается в нормально состояние.
|