Librem 5 et convergence

L’idée de convergence existe depuis bien longtemps. Aujourd’hui, hormis le fait que l’architecture d’un téléphone n’est pas la même que celle d’un ordinateur de bureau, il est parfaitement envisageable de considérer qu’un téléphone puisse faire office d’ordinateur de bureau.

Cela fait maintenant plusieurs années que j’utilise un Raspberrypi, d’abord 3B+, aujourd’hui 4B+, comme poste de travail. Or, l’architecture du Raspberrypi est celle d’un téléphone. Mon raspberrypi est connecté à un écran tactile de 12,5 pouces et relié à un clavier bluetooth récupéré d’une ancienne tablette. Le système est Raspbian, dérivé de Debian.

Avec le Librem 5 en mode convergence, j’ai accès à un écran de 30 pouces simultanément à l’écran tactile du Librem, avec un clavier muni d’un touchpad et une souris, les deux sans fils. Tout cela est relié par l’intermédiaire d’un hub relié au Librem par un connecteur USBC et disposant d’une sortie HDMI pour connecter l’écran, de trois ports USB3 et d’une alimentation (aussi en USBC).

Convergence simple
Premier exemple de convergence.

Sur la capture d’écran ci-dessus se trouve le premier exemple de convergence. À gauche, se trouve l’écran tactile du Librem, avec les deux bandes noires permettant d’accéder au programmes (en bas) et aux différents réseaux et notifications (en haut). À droite, se trouve l’écran principal avec une image de fond prise par mes soins.

La gestion des écrans est intéressante, puisque c’est le bord commun aux deux écrans qui permet le passage du pointeur de la souris d’un écran à l’autre. Remarquez que l’écran tactile du Librem est parfaitement utilisable simultanément à l’utilisation de la souris. Remarquez aussi que la plupart du temps, le lancement d’une application depuis le librem provoquera son affichage sur le Librem, mais pas toujours. Or, en raison de l’adaptation des applications à l’écran du Librem, le bandeau haut de la fenêtre permettant sa saisie peut parfois ne pas être présent. Il peut donc être difficile de déplacer une fenêtre d’un écran à l’autre sans connaître quelques fonctionnalités de déplacement au clavier comme :

  • <SHIFT><WINDOW><Flèche droite ou gauche> pour déplacer la fenêtre qui a le focus d’un écran à l’autre,
  • <WINDOW><Flèche haut ou bas> pour maximiser ou afficher à la taille choisie la fenêtre,
  • <WINDOW><Flèche gauche ou droite> pour placer la fenêtre sur toute la moitié gauche ou droite de l’écran,
  • <WINDOW><A> pour ouvrir le lanceur d’application et
  • <WINDOW><S> pour ouvrir le sélecteur d’application.

Sur la seconde capture de l’écran, on peut voir qu’il est possible de placer l’écran du librem différemment et de lui donner un facteur de zoom particulier. Le panneau des préférences présenté permet aussi de choisir l’écran principal, c’est-à-dire l’écran sur lequel les menus (bandes noire en haut et en bas) seront affichés. Il permet aussi d’effectuer différents réglages propres à la configuration de chaque écran ou de choisir un clonage simple de l’écran du Librem sur l’autre écran. Enfin, il permet de couper l’écran secondaire après avoir remis les menus sur celui du Librem, pour permettre de le débrancher et quitter ainsi la convergence. Or, cela ne fonctionne pas toujours bien. Dans la moitié des cas, après avoir débranché l’écran secondaire, le Librem plante et redémarre. Il s’agit là d’un bug à corriger.

Convergence écran
Second exemple de convergence avec préférences de réglages des écrans.

Cela dit, la convergence fonctionne plutôt bien du point de vue des écrans et il devient vite extrêmement pratique de lancer des logiciels de manières tactile sur l’écran du Librem pour les utiliser sur l’autre écran.

Mais la convergence n’est pas qu’une affaire d’écran. C’est surtout un problème logiciel. Je présenterai dans un autre article, le cas de l’utilisation simultanée d’un logiciel de reconnaissance de caractères (gimagereader) et de LaTeX qui pourrait être considéré comme un exemple fort de convergence. Pour rester ici focalisé sur l’écran, il me faut évoquer les captures d’écrans.

Pour pouvoir rédiger cet article, il était nécessaire de pouvoir réaliser des captures d’écrans en mode convergence. Je m’attendais à des difficultés en raison de la présence des deux écrans, mais le problème s’est situé totalement ailleurs.

J’aime et utilise Gimp depuis toujours. Je l’utilise donc pour faire mes captures d’écran. Gimp n’est certainement pas un logiciel adapté à un téléphone et il n’est évidemment pas présent dans la logithèque de PureOS. Mais celle-ci n’est que la partie émergée de l’iceberg Debian. L’utilisation de la console est ici à privilégier. Avec quelques :

apt search terminator
apt search gimp

en utilisant le clavier disponible pour la console, on se rends compte qu’une grande partie des logiciels disponibles sous Debian le sont aussi sous PureOS. Je reparlerai dans un autre article des problèmes rencontrés pour installer certains logiciels comme Merkaartor ou biber. Ainsi, une ligne suffit pour se retrouver avec terminator et gimp :

sudo apt-get install terminator gimp

après éventuellement :

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Terminator est alors disponible (avec transparence, excusez du peu) et Gimp aussi.

MAIS, même si Gimp est parfaitement fonctionnel, impossible de réaliser une capture d’écran. Tout se passe apparemment correctement, mais l’image obtenue reste obstinément entièrement noire.

Comme ImageMagick (installé par défaut), par l’intermédiaire de son utilitaire import, permet de réaliser des captures d’écran, j’ai tenté :

import -pause 10 capture.png

et le résultat fut exactement le même qu’avec Gimp.

Il m’a fallu un certain temps et l’article https://puri.sm/posts/easy-librem-5-app-development-take-a-screenshot/ pour me rendre compte que le problème venait du serveur graphique.

Précisons que non seulement la carte graphique du Librem 5 est libre, mais que le serveur graphique n’est pas X11, classiquement utilisé sous Debian, mais Wayland (https://fr.wikipedia.org/wiki/Wayland). Ce serveur qui va probablement remplacer X11 est déjà présent sous Debian, mais pas installé par défaut. Comme il est semble-t-il plus performant et plus léger que X11, c’est lui qui a été embarqué sur le Librem 5. Or, toutes les applications ne fonctionnent pas bien avec lui.

Grim et capture d’écran

Ainsi, pour obtenir une copie d’écran sous Wayland, il faut utiliser un logiciel du nom de « grim ». Pour le faire simplement, en suivant l’article cité précédemment, il faut simplement installer grim et ce qu’il faut pour notifier l’utilisateur qu’une capture d’écran va être faite :

sudo apt-get install grim libnotify-bin notify-send

Puis, il faut créer un script, qu’on peut nommer « screenshot », contenant :

#!/bin/bash
SCREENSHOT="/home/purism/Pictures/$(date +%Y-%m-%d-%H%M%S).png"
notify-send -t 1000 screenshot "Taking a screenshot in 5 seconds"
sleep 5
grim "$SCREENSHOT"
notify-send screenshot "Screenshot stored at ${SCREENSHOT}"

dont le code est évident et qu’il ne faut pas oublier de rendre exécutable par :

chmod a+x /home/purism/bin/screenshot

On peut ensuite le lancer pour le tester en étant dans le répertoire dans lequel il se trouve par :

./screenshot

Et là, normalement vous devriez obtenir une belle copie des deux écrans simultanément dans le répertoire « Pictures ».

Finalement, on peut créer un lanceur permettant de réaliser une copie d’écran à partir du script « screenshot » en plaçant le fichier « screenshot.desktop » dans le répertoire du lien : /home/purism/.local/share/applications/screenshot.desktop. Il doit contenir :

[Desktop Entry]
Name=Screen Shot
Type=Application
Icon=applets-screenshooter
Exec=screenshot
Categories=Utility;

Ainsi, au prochain redémarrage du téléphone, apparaîtra une jolie petite icone dans les applications permettant de réaliser la capture d’écran.

Vous trouverez dans l’article mentionné ci-dessus, une amélioration de ce script permettant notamment de régler le délai avant que la capture soit réalisée.

Voilà pour cette première présentation de la convergence. Deux autres articles vous en diront plus en vous présentant la convergence liant caméra, reconnaissance de caractères et publication sous LaTeX.

Laisser un commentaire