martes, 26 de octubre de 2021

Recuperar resolución previa a la ejecución de juegos que la cambian al salir

Algunos juegos cambian la resolución de tu ordenador y al salir la dejan distinta a la que tenías configurada según tus necesidades.

En mi caso tengo dos pantallas conectadas a mi PC, un monitor Full HD y un viejo televisor LCD que solo admite HD Ready con un refresco adecuado para trabajar.

Configuración de trabajo por defecto
Mi configuración deseada: resoluciones correctas y modo extendido

Como se puede ver en la imagen para trabajar normalmente los tengo configurados de manera que el monitor sea la pantalla principal (la que tiene los botones) y el televisor la extienda hacia la derecha.

Pero después de ejecutar algunos juegos a pantalla completa que no gestionan bien las resoluciones terminan ambos con una resolución pobre y mostrando la misma imagen (en espejo).

Después de salir de DosBox a pantalla completa: resolución pobre y modo espejo

 

La solución más sencilla es reiniciar el ordenador o al menos el entorno gráfico, pero es poco práctico, lo ideal es que un script devolviera la resolución correcta.

Para conseguir este objetivo, lo primero es ver cual es la resolución de tu monitor para lo que usaremos el comando xrandr (si no lo tienes instalado ya estás tardando):

xrandr -q

En mi caso me ha devuelto una salida como ésta:

Screen 0: minimum 320 x 200, current 3200 x 1080, maximum 16384 x 16384
DVI-I-1 connected 1280x720+1920+0 (normal left inverted right x axis y axis) 160mm x 90mm
   1280x720      60.00*+  59.86    50.00    59.94    59.74  
   1920x1080i    60.00    50.00    59.94  
   .......

HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 510mm x 290mm
   1920x1080     60.00*+  50.00    59.94    59.93  
   1920x1200     59.95  
   1920x1080i    60.00    50.00    59.94
   ........

Vamos a analizar con más detalle la salida de datos obtenida.

  1. La primera línea empieza con la etiqueta Screen 0 y no hay una etiqueta Screen 1, lo que significa que ambos monitores en realidad se comportan como uno solo (modo extendido).
  2. La siguiente línea y otra que aparece más abajo con la misma sangría nos dice a que puerto está conectado cada monitor, la resolución nativa, si está girado, etc...
  3. Debajo de esas líneas aparecen muchas líneas correspondientes a cada resolución soportada, he omitido algunas irrelevantes sustituyéndolas por puntos suspensivos para que no nos perdiéramos en la longitud de la salida.
  4. Nos fijamos en las líneas que tiene un *, ya que es la resolución utilizada en cada pantalla:
    • DVI-I-1: el televisor LCD funciona con una resolución 1280x720.
    • HDMI-1: el monitor funciona con una resolución 1920x1080 y es la pantalla primaria (la que tiene los botones).

Con esta información ya podemos crear nuestro comando para recuperar la resolución:

xrandr --output DVI-I-1 --mode 1280x720 --scale 1x1 --output HDMI-1 --primary --mode 1920x1080 --scale 1x1 --left-of DVI-I-1

Como veis es muy fácil adaptar a cualquier necesidad, definimos dos output para cada conector, con el parámetro --mode le indicamos la resolución y en principio dejamos una escala 1x1.

En el caso del segundo monitor indicamos también que es primary y que extiende al televisor por la izquierda (--left-of DVI-I-1).

Como es lógico, lo ideal es poner ese comando enorme en un script que podemos guardar en /usr/local/bin con permisos de escritura, hacer un acceso directo a él o invocarlo al final de los scripts que ejecutan los juegos problemáticos.

 

miércoles, 20 de octubre de 2021

Configurar una impresora por red en Debian

Si tenemos Ubuntu podemos obviar este paso pero si tenemos Debian hay que instalar el soporte de impresoras:

sudo apt-get install system-config-printer cups

Lo siguiente es iniciar el servicio de impresión.


Iniciamos el servicio cups

sudo systemctl enable --now cups

Después nos conectamos al servidor CUPS (localhost)

Para continuar pulsamos el botón desbloquear y Agregar

Impresora de red

Muchas impresoras soportan el protocolo AppSocket/HP JetDirect (aunque no sean HP)


En este caso lo que hay que hacer es poner la IP de la impresora y darle a siguiente:


Lo más probable es que detecte el fabricante y el modelo exacto, o al menos el que más se le aproxime.

 


En este caso ha detectado sin problemas el modelo exacto.

 

Le damos a siguiente para instalar el driver:

Si tuviera hardware adicional como terminadores se lo indicamos en este paso.


Ponemos un nombre para distinguir a la impresora en la red, si no ponemos nada podrá su denominación técnica.


Ya tenemos añadida la impresora, aunque no hemos terminado.


Para cambiar las propiedades de la impresora hacemos clic con el botón derecho en el icono de la misma o la seleccionamos para ir a las opciones Impresora > Propiedades.

Nos vamos justo antes de la sección de Basic para indicar la seguridad de nuestra impresora, que puede ser por Password o por user code / user id como es en nuestro caso.



martes, 12 de octubre de 2021

Soporte DVD en tu distro GNU/Linux

Con esta breve receta vas a poder reproducir todos tus DVD sean de la zona que sean (algo que no puedes hacer en otros sistemas operativos).

Como seguramente ya tengas instalada la librería, pero no configurada empezaría con el siguiente comando:

sudo dpkg-reconfigure libdvd-pkg

Si te da un error indicando que no está instalado el paquete libdvd.pkg, simplemente lo instalamos

sudo apt install -y libdvd-pkg

Tanto si el primer comando nos ha llevado a la reconfiguración como si hemos tenido que usar el segundo terminaremos en la siguiente pantalla.


Simplemente hay que seleccionar YES o SÍ y ya tenemos soporte DVD en nuestros reproductores favoritos, por cierto, recomiendo la navaja suiza del vídeo: VideoLAN.

miércoles, 6 de octubre de 2021

Crear un disquete de autoarranque para el ZX Spectrum +3

Un experimento rápido es hacerte un disco que arranque desde el menú del ZX Spectrum +3, no hace falta que tengas uno real, el experimiento lo puedes hacer con un emulador, como Retro Virtual Machine o ZESarUX, por ejemplo.

Vamos por pasos:

  1. Formatear un disquete (o crearlo formateado si es un emulador).
  2. Nos vamos a la opción de menú +3 Basic
  3. Creamos nuestro programa Basic.
  4. Lo salvamos con la siguiente orden (suponiendo que la primera línea del programa es la 10):
    save "disk" line 10
  5. Da igual que se escriba en mayúsculas o minúsculas. Las comillas se consiguen pulsando la tecla CTRL y sin soltarla la letra P.
  6. Para probarlo basta con pulsar ENTER al arrancar el menú, es decir, la opción Cargador.

 

Actualización: he convertido mi menú para disquetes también para el +3 y lo he renombrado como 8bitdiskmenu.


 Podéis ver como se hizo en AUA.