Des captures d’écrans avec un logiciel simple et léger

Le meilleur, simple et léger, mon choix à la fois pour la vitesse et pour les fonctions principales dont j’ai besoin, se nomme «scrot». C’est un petit logiciel en ligne de commande.

scrot captures d'écran

captures d’écran en console

Puis un jour j’ai eu envie d’un peu plus de confort, sans sacrifier la légèreté. J’ai essayé des programmes graphiques comme gnome-screenshot, flameshot, ou shutter mais ils installent généralement un tas de dépendances, tout ça pour faire quelques captures d’écrans ici et là, je trouve que c’est trop, juste pour reproduire l’image d’une fenêtre, d’un écran ou d’une partie de l’écran.

Puis, j’ai trouvé une petite interface graphique qui utilise scrot. C’est gscreenshot, un petit projet en python hébergé sur Github. Je vous donne le lien : https://github.com/thenaterhood/gscreenshot

Ce que je devrais vous dire, côté technique

scrot est un logiciel de captures d’écran utilisant la bibliothèque imlib2. Il est présent dans les distributions GNU/Linux grand public. Il prend peu de place, et il est simple d’usage. Les commandes telles que “man scrot”, dans la console, ou “scrot -h” vous permettent de moduler facilement son usage grâce à une liste d’options simples à comprendre et appliquer (par exemple, “-c” pour compter, suivi de “-d” pour délai en secondes, vous permet de préparer votre fenêtre avant que la capture ne se déclanche).

gscreenshot vient avec les options les plus couramment utilisées en mode fenêtré, et il ne nécessite pas d’installer grand chose de plus pour fonctionner que scrot, et d’avoir python qui de base est déjà présent dans les distributions GNU/Linux dédiées aux postes clients.

interface graphique pour scrot

Interface graphique légère pour scrot

Gscreenshot n’est pas disponible directement pour Debian et les distributions dérivées, mais on le trouve disponible sous la forme d’un PKGBUILD pour Archlinux (script qui automatise la création d’un paquet et son installation) et en RPM (format de paquets pour les distributions dérivées de Redhat, comme Fedora, CentOS et d’autres – https://aur.archlinux.org/packages/?O=0&K=gscreenshot ou https://pkgs.org/download/gscreenshot).

Pour l’installer sous Ubuntu, Debian, etc. le paquet source téléchargeable sur la page Github du projet est fourni avec des scripts qui automatisent l’opération. Je vous propose de voir comment faire cela simplement.

Ce que dit le README.md sur Github

Prérequis

installé automatiquement par le script de configuration ou votre gestionnaire de paquets

Vos préférences pour faire des captures d’écrans. Vous avez besoin d’au moins un de ceux-ci

  • Scrot
  • ImageMagick
  • Imlib2_grab (la bibliothèque utilisée par Scrot)

Ces dépendances

  • Python 2.7 ou Python 3
  • python-pillow
  • python-gobject (parfois nommé “python-gi” ou “python3-gi”)
  • Setuptools

Optionels, mais recommandés

  • Slop (utilisé pour améliorer la sélection de fenêtre et de section d’écran)
  • Xclip (pour les fonctionnalités de copié de la ligne de commande)
  • xdg-open (pour ouvrir les captures dans votre visionneur d’images)

Prérequis de développement
Tout ce qui précède plus

  • Glade

Une fois l’archive téléchargée ou clonée, vous pouvez utiliser l’une de ces méthodes pour installer le programme:

“sudo pip install -e” (sans les guillemets, puis appuyez sur la touche « Entrée » du clavier). Si cela fonctionne chez vous, il installera automatiquement les dépendances.

“sudo python setup.py install” (sans les guillemets, puis appuyez sur la touche « Entrée » du clavier). Il n’installera par contre pas les dépendances.

$ sudo python setup.py install
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/gscreenshot
copying src/gscreenshot/util.py -> build/lib.linux-x86_64-2.7/gscreenshot
copying src/gscreenshot/__init__.py -> build/lib.linux-x86_64-2.7/gscreenshot
creating build/lib.linux-x86_64-2.7/gscreenshot/frontend
copying src/gscreenshot/frontend/gtk.py -> build/lib.linux-x86_64-2.7/gscreenshot/frontend
(……)
writing manifest file 'src/gscreenshot.egg-info/SOURCES.txt'
Copying src/gscreenshot.egg-info to /usr/local/lib/python2.7/dist-packages/gscreenshot-2.12.0.egg-info
running install_scripts
Installing gscreenshot-cli script to /usr/local/bin
Installing gscreenshot script to /usr/local/bin
writing list of installed files to 'install.txt'

Voici à quoi cela ressemble pour cette seconde ligne de commande (la première retournait des erreurs, je n’ai pas pris le temps de faire des recherches…). Vous pouvez voir dans les dernières lignes la localisation du script exécutable, très classiquement sous “/usr/local/bin”.

Une fois installé, on trouve un lanceur dans la section Graphisme du menu des applications. Nous pouvons aussi paramétrer un raccourci clavier depuis notre méthode préférée, celle prévue dans notre environnement de bureau habituel.

Si vous décidez de l’essayer, dites-moi en commentaire ce que vous pensez de ce petit programme ?

 

Configurer prelink intelligemment

Prelink est un programme en ligne de commande disponible dans les dépôts de la plupart des distributions GNU/Linux. Il a pour rôle de permettre à l’administrateur du système de prélier les bibliothèque des applications installées de sorte à leur permettre de démarrer plus rapidement lorsqu’on lance le programme d’une de ces applications.

Une fois ces bibliothèques préliées, elles seront chargées automatiquement durant le démarrage du système (très probablement dans la phase 5 du démarrage, c’est à dire en “init 5”). Cela permettra aux programmes concernés de démarrer plus rapidement lorsque l’utilisateur l’invoquera, ce qui sur certaines configurations matérielles pourra être un avantage.

Dans tous les tutoriels que j’ai lus sur le web, la ligne de commande qui est systématiquement indiquée est, en root, (avec sudo ou en passant la commande “su” dans votre console),

prelink -avmR

Je recommande de NE PAS utiliser cette méthode. La raison en est que pour accélérer le démarrage de quelques programmes, on va précharger les bibliothèques de tous les programmes sans que ce soit nécessaire et en alourdissant considérablement la charge sur les ressources (mémoire, processeur, que sais-je ?).

Une expérience avec “-avmR” fut réalisée sur un live CD contenant des applications ludiques éducatives : dans le live CD, la suite gCompris prenait plus de 20 secondes à se lancer, ce qui fit croire au testeur qu’il ne se lançait simplement pas, dans le live CD. Une fois l’image ISO reconstruite avec un prelink ne liant plus que quelques programmes et non pas tous, ce fut résolu et gCompris se lançait alors avec un temps de latence de quelques secondes, tout à fait raisonnable. (La création de son répertoire de configuration utilisateur avait aussi été prévue au préalable).

Donc voici comment procéder. D’abord, prelink ne peut lier les bibliothèque d’un programme que si on l’invoque contre le binaire du dit programme. Par exemple, avec firefox, voici comment cela se passe:

firefox est sous /usr/bin/ mais c’est un script. Le binaire est ailleurs : il est sous /usr/lib/firefox/ et se nomme, firefox. Pour le vérifier, il suffit de lancer ls -l /usr/bin/firefox, puis de lire le contenu de /usr/lib/firefox/firefox.sh. Et aussi de lancer file /usr/lib/firefox/firefox, qui affichera que c’est un « ELF … blablabla ».

Pour prélier firefox, et lui seulement, ce sera donc, en root:

prelink -vmR /usr/lib/firefox/firefox

Les programmes intéressants à prélier, dans l’usage courant d’un PC, sont principalement firefox, chromium-browser, libreoffice. Si vous les employez souvent, sont aussi un peu lourds et lents au démarrage, Gimp, Inkscape, Scribus. Dans la distribution que j’utilise, le binaire libreoffice se nomme soffice.bin:

prelink -vmR /usr/lib/libreoffice/program/soffice.bin

Enfin, vous pourrez être surpris de voir tout votre système être prélié de manière automatique, si vous ne supprimez pas le bit d’exécution sur le cron qui est généralement fourni avec le paquet. Rendez-vous dans /etc/cron.daily, et lancez « ls -l prelink », vous devriez voir :

-rwxr-xr-x 1 root root 2379 mai 7 2013 prelink

S’il n’y est pas, il est peut-être dans /etc/cron.weekly, ou *.monthly. Cela dépend de ce qu’a prévu le responsable du paquet.

je conseille de le désactiver. En se positionnant dans le répertoire où se trouve le cron prelink, en root:

chmod a-x prelink

Il existe sous /etc un fichier prelink.conf qui contient et détermine quels fichiers et dossiers devraient être pris en compte. Si vous avez désactivé le cron relative à prelink, vous pouvez ignorer ce fichier. Enfin sous /etc/default il y a aussi un fichier prelink pour les préférences. De la même manière, si vous préliez uniquement quelques programmes lourds et lents à démarrer sur vos ordinateurs, vous n’avez pas besoin d’y toucher, d’autant qu’il n’est pas très clair sur ce qu’il fait. Je soupçonne qu’il n’est en fait pas pris en compte lorsque le cron est actif, et parfaitement inutile lorsqu’on garde la maîtrise sur les programmes traités avec prelink.

Pour l’utilité des options utilisées, le man de prelink est assez clair. Celles que j’emploie, -vmR sont v=verbose (bavard), m=–conserve-memory est recommandée pour gagner de l’espace et -R=–random accroît la sécurité dans le système.

Une fois vos programmes choisis préliés, vous pouvez lancer la commande prelink -p pour vérifier le contenu du cache de prelink.

En conclusion, prelink est un excellent programme, qui a tout avantage à être utilisé en sélectionnant les options disponibles de manière fine, en ignorant les configurations par défaut préjudiciables à une véritable optimisation du système.