Only try to coerce the screen resolution of Linux guests
This feature was originally developed for Linux guests. macOS doesn't honur it and not Windows automatically installs all the required drivers it is not required for Windows either.
This commit is contained in:
parent
cc9e13ec81
commit
cc397fc088
63
quickemu
63
quickemu
@ -488,42 +488,41 @@ function vm_boot() {
|
||||
fi
|
||||
fi
|
||||
|
||||
local X_RES=1152
|
||||
local Y_RES=648
|
||||
if [ "${XDG_SESSION_TYPE}" == "x11" ]; then
|
||||
local LOWEST_WIDTH=""
|
||||
if [ -z "${SCREEN}" ]; then
|
||||
LOWEST_WIDTH=$(xrandr --listmonitors | grep -v Monitors | cut -d' ' -f4 | cut -d'/' -f1 | sort | head -n1)
|
||||
else
|
||||
LOWEST_WIDTH=$(xrandr --listmonitors | grep -v Monitors | grep "^ ${SCREEN}:" | cut -d' ' -f4 | cut -d'/' -f1 | head -n1)
|
||||
fi
|
||||
if [ "${FULLSCREEN}" ]; then
|
||||
# Determine a sane resolution for Linux guests.
|
||||
if [ "${guest}" == "linux" ]; then
|
||||
local X_RES=1152
|
||||
local Y_RES=648
|
||||
if [ "${XDG_SESSION_TYPE}" == "x11" ]; then
|
||||
local LOWEST_WIDTH=""
|
||||
if [ -z "${SCREEN}" ]; then
|
||||
X_RES=$(xrandr --listmonitors | grep -v Monitors | cut -d' ' -f4 | cut -d'/' -f1 | sort | head -n1)
|
||||
Y_RES=$(xrandr --listmonitors | grep -v Monitors | cut -d' ' -f4 | cut -d'/' -f2 | cut -d'x' -f2 | sort | head -n1)
|
||||
LOWEST_WIDTH=$(xrandr --listmonitors | grep -v Monitors | cut -d' ' -f4 | cut -d'/' -f1 | sort | head -n1)
|
||||
else
|
||||
X_RES=$(xrandr --listmonitors | grep -v Monitors | grep "^ ${SCREEN}:" | cut -d' ' -f4 | cut -d'/' -f1 | head -n1)
|
||||
Y_RES=$(xrandr --listmonitors | grep -v Monitors | grep "^ ${SCREEN}:" | cut -d' ' -f4 | cut -d'/' -f2 | cut -d'x' -f2 | head -n1)
|
||||
LOWEST_WIDTH=$(xrandr --listmonitors | grep -v Monitors | grep "^ ${SCREEN}:" | cut -d' ' -f4 | cut -d'/' -f1 | head -n1)
|
||||
fi
|
||||
if [ "${FULLSCREEN}" ]; then
|
||||
if [ -z "${SCREEN}" ]; then
|
||||
X_RES=$(xrandr --listmonitors | grep -v Monitors | cut -d' ' -f4 | cut -d'/' -f1 | sort | head -n1)
|
||||
Y_RES=$(xrandr --listmonitors | grep -v Monitors | cut -d' ' -f4 | cut -d'/' -f2 | cut -d'x' -f2 | sort | head -n1)
|
||||
else
|
||||
X_RES=$(xrandr --listmonitors | grep -v Monitors | grep "^ ${SCREEN}:" | cut -d' ' -f4 | cut -d'/' -f1 | head -n1)
|
||||
Y_RES=$(xrandr --listmonitors | grep -v Monitors | grep "^ ${SCREEN}:" | cut -d' ' -f4 | cut -d'/' -f2 | cut -d'x' -f2 | head -n1)
|
||||
fi
|
||||
elif [ "${LOWEST_WIDTH}" -ge 3840 ]; then
|
||||
X_RES=3200
|
||||
Y_RES=1800
|
||||
elif [ "${LOWEST_WIDTH}" -ge 2560 ]; then
|
||||
X_RES=2048
|
||||
Y_RES=1152
|
||||
elif [ "${LOWEST_WIDTH}" -ge 1920 ]; then
|
||||
X_RES=1664
|
||||
Y_RES=936
|
||||
elif [ "${LOWEST_WIDTH}" -ge 1280 ]; then
|
||||
X_RES=1152
|
||||
Y_RES=648
|
||||
fi
|
||||
elif [ "${LOWEST_WIDTH}" -ge 3840 ]; then
|
||||
X_RES=3200
|
||||
Y_RES=1800
|
||||
elif [ "${LOWEST_WIDTH}" -ge 2560 ]; then
|
||||
X_RES=2048
|
||||
Y_RES=1152
|
||||
elif [ "${LOWEST_WIDTH}" -ge 1920 ]; then
|
||||
X_RES=1664
|
||||
Y_RES=936
|
||||
elif [ "${LOWEST_WIDTH}" -ge 1280 ]; then
|
||||
X_RES=1152
|
||||
Y_RES=648
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${guest_os}" != "macos" ]; then
|
||||
echo " - Screen: ${X_RES}x${Y_RES}"
|
||||
fi
|
||||
|
||||
# https://www.kraxel.org/blog/2019/09/display-devices-in-qemu/
|
||||
if [ "${guest_os}" == "linux" ]; then
|
||||
case ${OUTPUT} in
|
||||
@ -555,8 +554,8 @@ function vm_boot() {
|
||||
# Build the video configuration
|
||||
VIDEO="-device ${DISPLAY_DEVICE}"
|
||||
|
||||
# Do not try and coerce the display resolution for macOS
|
||||
if [ "${guest_os}" != "macos" ]; then
|
||||
# Try and coerce the display resolution for Linux guests only.
|
||||
if [ "${guest_os}" == "linux" ]; then
|
||||
VIDEO="${VIDEO},xres=${X_RES},yres=${Y_RES}"
|
||||
fi
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user