Nejsem si jistý, jestli je to jediný možný způsob, ale
Četl jsem, že aby bylo možné umístit jeden pixel na obrazovku na vámi zvolené místo, musíte něco zapsat do místa zvaného framebuffer.
Tak mě zajímalo, jestli je možné vstoupit do tohoto místa a něco do něj napsat, aby se někde na obrazovce zobrazil jediný pixel.
Přijatá odpověď:
ano, mimo X-server, v tty, zkuste příkaz:
cat /dev/urandom >/dev/fb0
pokud obrazovku vyplňují barevné pixely, pak je vaše nastavení v pořádku a můžete si zkusit pohrát s tímto malým skriptem:
#!/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
kde funkce 'pixel' by měla být odpovědí... zapsat pixel na obrazovku změnou hodnot bajtů (modrá-zelená-červená-alfa) na x-y offsetu zařízení /dev/fbX, což je vyrovnávací paměť snímků pro grafickou kartu.
nebo zkuste vykreslit jeden pixel lineru (žlutý na x:y=200:100, pokud je šířka 1024):
printf "\x00\xFF\xFF\x00" | dd bs=4 seek=$((100 * 1024 + 200)) >/dev/fb0
AKTUALIZACE: tento kód funguje i uvnitř X-serveru, pokud nakonfigurujeme X tak, aby používal frame buffer. zadáním fb0 uvnitř /usr/share/X11/xorg.conf.d/99-fbdev.conf