Je vous présente ici quelques utilitaires qui permettent de faire des impressions d'écran sous Linux.
fbcat est un petit utilitaire tout simple qui effectue une impression d'écran de la console.
Il peut fonctionner même sans environnement graphique, par exemple sous Raspberry Pi OS Lite.
Il génère un fichier au format .ppm (Portable Pixmap Format).
Pour l'installer :
sudo apt install fbcat
Et pour l'utiliser :
fbcat > nom_fichier.ppm
Voici ce que j'obtiens si je lance cette commande dans une fenêtre SSH alors que le Pi n'a aucun écran branché.
Et si je branche un clavier et un écran sur le Raspberry Pi et que je relance la commande, j'obtiendrai exactement ce que je vois à l'écran.
L'utilitaire fbgrab fonctionne un peu comme fbcat sauf que le résultat est un fichier .png et que la syntaxe ne nécessite pas de redirection (>).
Il est automatiquement installé quand vous installez fbcat.
Pour l'utiliser :
fbgrab nom_fichier.png
La commande setterm (SET TERMinal atttibutes) permet d'enregistrer dans un fichier texte ce qui est affiché dans le terminal.
Ce n'est pas tout à fait une impression d'écran mais les informations trouvées sont les mêmes puisque le terminal n'affiche que du texte.
sudo setterm --dump
Par défaut, les informations seront enregistrées dans un fichier nommé screen.dump dans le dossier courant.
Un fichier .dump est un simple fichier texte.
Il est possible de spécifier le nom du fichier désiré. Vous pouvez même utiliser l'extension .txt si vous préférez.
sudo setterm --dump --file mon_fichier.txt
Voici ce que j'obtiens si je lance la commande setterm dans une fenêtre SSH alors que le Pi n'a aucun écran branché.
[ OK ] Started Manage Sound Card State (restore and store).
Starting Save/Restore Sound Card State...
Starting Snappy daemon...
[ OK ] Started triggerhappy global hotkey daemon.
[ OK ] Started System Logging Service.
[ OK ] Started Raise network interfaces.
[ OK ] Started Deferred execution scheduler.
[ OK ] Started rng-tools.service.
[ OK ] Started Save/Restore Sound Card State.
[ OK ] Reached target Sound Card.
[ OK ] Started Login Service.
[ OK ] Started WPA supplicant.
[ OK ] Started Avahi mDNS/DNS-SD Stack.
[ OK ] Started dphys-swapfile - set up, mount/unmount, and delete a swap file.
Starting Authorization Manager...
[ OK ] Started Authorization Manager.
[ OK ] Started Modem Manager.
[ OK ] Started Check for Raspberry Pi EEPROM updates.
[ OK ] Started LSB: Switch to ondemand cpu governor (unless shift key is pressed).
[ OK ] Started Snappy daemon.
Starting Wait until snapd is fully seeded...
Starting Time & Date Service...
[ OK ] Started Time & Date Service.
[ OK ] Started Wait until snapd is fully seeded.
Starting Load/Save RF Kill Switch Status...
[ OK ] Started Configure Bluetooth Modems connected by UART.
[ OK ] Started Load/Save RF Kill Switch Status.
[ OK ] Created slice system-bthelper.slice.
Starting Raspberry Pi bluetooth helper...
[ OK ] Started Raspberry Pi bluetooth helper.
Starting Bluetooth service...
[ OK ] Started Bluetooth service.
[ OK ] Reached target Bluetooth.
Starting Hostname Service...
[ OK ] Started Hostname Service.
[ OK ] Started dhcpcd on all interfaces.
[ OK ] Reached target Network.
Starting Permit User Sessions...
[ OK ] Reached target Network is Online.
[ OK ] Started Unattended Upgrades Shutdown.
Starting MariaDB 10.3.34 database server...
Starting Fail2Ban Service...
Starting OpenBSD Secure Shell server...
Starting Network Time Service...
Starting The Apache HTTP Server...
Starting /etc/rc.local Compatibility...
My IP address is 192.168.1.113
[ OK ] Started Permit User Sessions.
[ OK ] Started Fail2Ban Service.
[ OK ] Started /etc/rc.local Compatibility.
Starting Terminate Plymouth Boot Screen...
Starting Hold until boot process finishes up...
Raspbian GNU/Linux 10 raspberrypi tty1
raspberrypi login:
Et si je branche un clavier et un écran sur le Raspberry Pi et que je relance la commande, j'obtiendrai exactement ce que je vois à l'écran.
pi@raspberrypi:~ $ hostname -I
192.168.1.113
pi@raspberrypi:~ $ sudo setterm --dump
Scrot (SCReenshOT) et un autre utilitaire qui permet d'effectuer des impressions d'écran.
Il est plus puissant que les autres mais il nécessite qu'un environnement graphique soit installé et ce, même pour faire une capture d'écran de la console.
Il est installé par défaut avec Raspberry Pi OS with Desktop.
Je vous propose ici une astuce pour pouvoir tout de même l'utiliser avec Raspberry Pi OS Lite.
Dans la version Lite de Raspberry Pi OS, vous devrez d'abord installer un environnement graphique.
Si vous tentez d'appeler Scrot alors qu'aucun environnement graphique n'est disponible, vous obtiendrez le message « giblib error: Can't open X display. It *is* running, yeah? ».
Je vous propose d'installer XFCE, un environnement graphique léger.
sudo apt install xfce4
Si vous ne souhaitez pas que votre Raspberry Pi démarre toujours en environnement graphique :
sudo systemctl set-default multi-user.target
Vous devrez cependant passer en mode graphique avant d'utiliser Scrot.
sudo service lightdm start
Une fois que vous avez un environnement graphique en place, vous pouvez installer Scrot.
sudo apt install scrot
Si votre clavier dispose d'une touche ImpÉcr ou Print Screen, vous n'avez qu'à appuyer sur cette touche et une image de l'écran sera enregistrée dans votre dossier personnel.
Sinon, vous pouvez ouvrir une fenêtre Terminal et entrer la commande :
scrot
Ceci créera une image de l'écran au format .png, placée dans le dossier courant. Pour connaître le chemin de ce dossier, entrez la commande pwd (Print Working Directory). Sous Raspberry Pi OS, il s'agit par défaut du dossier /home/pi.
L'image créée incluera la fenêtre Terminal.
Pour ne pas avoir la fenêtre Terminal dans l'image, il est possible de demander un délai. Par exemple, avec la commande :
scrot -d 3
Vous aurez un délai de 3 secondes pour refermer la fenêtre Terminal avant que l'impression d'écran soit faite.
▼Publicité