Para gestionar mi red domestica utilizo proxmox como sistema de virtualización. Tengo virtualizado distintos tipos de maquinas, windows, debian, suse… con Debian surgió un problema con SPICE, no era capaz de cambiar el tamaño de la pantalla automaticamente. Buscando por internet vi que a otras personas les ocurria lo mismo y alguno decia que ejecutando el siguiente comando se arreglabla.
# xrandr --output Virtual-0 --auto
La solución es correcta, el problema es que no es automática. Buscando por internet descubrí que gnome tiene algun mecanismo que hace que el cambio de tamaño automatico funcione, sin embargo, para el entorno mate-desktop no. Para lograr ejecutar el comando «xrandr» automaticamente hay que buscar un trigger que detecte automaticamente el cambio de pantalla, encontre la solución en la siguiente web
Parece que UDEV expone el evento de cambio de tamaño y se parece a lo siguiente:UDEV [10758.537471] change /devices/pci0000:00/0000:00:02.0 `drm/card0 (drm)
Para que cambie de tamaño hay que crear una regla UDEV que llame a un script y modifique el tamaño de la pantalla. para ello creamos el fichero /etc/udev/rules.d/50-x-resize.rules con el siguiente contenido:
ACTION==»change»,KERNEL==»card0″, SUBSYSTEM==»drm», RUN+=»/usr/local/bin/x-resize»
Tambien hay que crear el script que redimensiona la pantalla: /usr/local/bin/x-resize:
#! /bin/sh
PATH=/usr/bin
desktopuser=$(/bin/ps -ef | /bin/grep -oP ‘^\w+ (?=.*vdagent( |$))’) || exit 0
export DISPLAY=:0
export XAUTHORITY=$(eval echo «~$desktopuser»)/.Xauthority
xrandr –output $(xrandr | awk ‘/ connected/{print $1; exit; }’) –auto
Recordar que hay que dar al Script los debidos permisos de ejecución.