No estoy seguro de si es la única forma posible, pero
leí que para poner un solo píxel en la pantalla en la ubicación que elijas, tienes que escribir algo en un lugar llamado framebuffer.
Entonces me dio curiosidad, si es posible ingresar a este lugar y escribir algo en él para mostrar un solo píxel en algún lugar de la pantalla.
Respuesta aceptada:
sí, fuera del servidor X, en tty, pruebe el comando:
cat /dev/urandom >/dev/fb0
si los píxeles de colores llenan la pantalla, entonces su configuración está bien y puede intentar jugar con este pequeño script:
#!/usr/bin/env bash
fbdev=/dev/fb0 ; width=1280 ; bpp=4
color="\x00\x00\xFF\x00" #red colored
function pixel()
{ xx=$1 ; yy=$2
printf "$color" | dd bs=$bpp seek=$(($yy * $width + $xx)) \
of=$fbdev &>/dev/null
}
x=0 ; y=0 ; clear
for i in {1..500}; do
pixel $((x++)) $((y++))
done
donde la función 'píxel' debería ser una respuesta... escriba un píxel en la pantalla cambiando los valores de byte (azul-verde-rojo-alfa) en el desplazamiento x-y del dispositivo /dev/fbX que es el búfer de fotogramas para la tarjeta de video.
o intente dibujar un píxel de línea (amarillo en x:y=200:100, si el ancho es 1024):
printf "\x00\xFF\xFF\x00" | dd bs=4 seek=$((100 * 1024 + 200)) >/dev/fb0
ACTUALIZACIÓN: este código funciona incluso dentro del servidor X, si solo configuramos X para usar el búfer de cuadros. especificando fb0 dentro de /usr/share/X11/xorg.conf.d/99-fbdev.conf