33. Le shell sécurisé : ssh

Ssh est un incontournable de la gestion sécurisée des machines. L’idée est simple : depuis un ordinateur, se connecter en ligne de commande sur un autre.

Utilisation

Après installation de ssh sur les deux ordinateurs, l’utilisation est simple :

ssh pi@ipordinateurdistant

où, « pi » est le nom de l’utilisateur sous lequel on veut se connecter et « ipordinateurdistant » l’adresse ip de l’ordinateur distant sur lequel on veut se connecter.

Suivant les cas, si vous avez autorisé une connexion avec un mot de passe, un mot de passe vous sera demandé, ou, si vous n’autorisez qu’une connexion par clé, une phrase de passe vous sera demandée.

Création des clés

Pour créer des clés privée et publique utilisables par ssh, il faut simplement lancer la commande :

ssh-keygen -t rsa

Ainsi, vous créerez une paire de clé publique-privée de type rsa, communément utilisé. Vous seront demandé le répertoire dans lequel les clés seront stockées et votre phrase de passe deux fois. Pour le répertoire de stockage, vous pouvez laisser le répertoire par défaut : « .ssh ». Quand cela est fini, vous retrouverez vos clés dans ce répertoire sous les noms « id_rsa » pour la clé privée et « id_rsa.pub » pour la clé publique. Id_rsa étant votre clé privée, elle ne doit jamais être communiquée à qui que ce soit.

Transfert de la clé publique

Pour la clé publique, il faut maintenant la transférer sur les ordinateurs sur lesquels vous voulez vous connecter. Pour cela, il vous faut un compte utilisateur valide sur l’ordinateur distant. Admettons que votre compte sur celui-ci se nomme « pi ». Le transfert de votre clé publique sur ce compte se fait de la manière suivante :

ssh-copy-id pi@ipordinateurdistant

Un avertissement vous sera alors donné vous demandant de confirmer que vous voulez réellement vous connecter sur cet ordinateur. Répondez par « yes ». Le mot de passe du compte pi vous sera alors demandé et après l’avoir validé, vous serez informé que votre clé publique a été ajoutée au trousseau de ce compte.

Vous pourrez alors utiliser ssh comme mentionné plus haut pour vous connecter à l’aide de votre phrase de passe.

Configuration

Alors depuis l’ordinateur sur lequel vous avez créé les clés vous pourrez vous connecter avec votre phrase de passe, parfaitement sécurisée. Mais avec un autre ordinateur, il est possible que vous puissiez vous connecter avec un mot de passe. Si c’est le cas, toute personne pourra tenter de se connecter en ssh à votre compte pi. Pour s’y connecter, il lui suffira de trouver votre mot de passe. Si ce n’est pas le cas, l’accès lui sera simplement refusé. L’ordinateur distant ne va donc alors accepter une connexion que si il sait que c’est vous. Pour cela, il a créé, lors de la transmission de votre clé publique un fichier des hôtes connus baptisé « known_host » et un autre fichier des clés authorisées « authorised_keys ». Ainsi, il est préférable, après avoir déposé sa clé publique, d’interdire les connexions par mot de passe. Cela se fait dans le fichier de l’ordinateur distant :

/etc/ssh/sshd_config

Vous trouverez dans ce fichier la ligne suivante :

#PasswordAuthentication yes

En mode root ou avec sudo, décommentez-la est mettez sa variable à no :

PasswordAuthentication no

Enregistrez et redémarrez ssh par :

systemctl restart ssh

Désormais l’ordinateur distant ne sera plus accessible qu’à travers une phrase de passe. Attention, cela pourrait signifier que certains utilisateurs sans clés qui se connectaient avec un mot de passe pourraient ne plus pouvoir utiliser ssh.

Dérogation de droits

SI vous voulez accorder à certains utilisateurs la possibilité de se connecter par mot de passe, alors que par défaut c’est l’authentification par phrase de passe qui doit être imposée, cela est faisable en ajoutant à la fin du fichier « sshd_config » :

Match user autreuser
    PasswordAuthentication yes

où « autreuser » est un utilisateur autorisé à utiliser une authentification par mot de passe. Attention, tout ce qui vient après la ligne « Match user autreuser » concernera l’utilisateur « autreuser ». On peut ainsi ajouter d’autres directives pour cet utilisateur spécifique en dessous de « Password… ».

26. Git introduction

Nous allons prendre un dépôt relativement simple comme celui se trouvant à l’adresse : https://git.roflcopter.fr/guyotv/TM_latex

Un tel dépôt peut être téléchargé (Bouton download) ou cloné (bouton clone). Téléchargé signifie que vous allez en récupérer tous les fichiers, que vous pourrez les utiliser et les modifier sur votre ordinateur, mais pas interagir avec le dépôt. Par contre, quand vous clonez le dépôt, en plus de récupérer tous les fichiers du dépôts, vous récupérez aussi un répertoire caché nommé « .git » qui va vous permettre de modifier les fichiers du dépôt.

Pour cloner le dépôt, cliquez sur le bouton clone et copiez l’adresse de clonage. Puis, placez-vous dans le répertoire dans lequel vous mettez les dépôts clonés et clonez :

clone https://git.roflcopter.fr/guyotv/TM_latex.git

Quelques instants plus tard se trouvera cloné sur votre ordinateur le répertoire du dépôt. Vous pourrez alors travailler localement sur ses fichiers en toute liberté sans modifier le dépôt.

Une fois les modifications faites, vous pourrez utiliser la suite classique de commandes suivante :

git status
git add .
git commit -m "Voici les modifications que j'ai faites."
git push -u origin master

Cette suite de commandes est à comprendre en s’imaginant qu’il existe trois éléments de travail : les fichiers que vous avez modifiés, un dépôt local et un dépôt distant. Quand vous travaillez sur les fichiers qui sont sur votre ordinateur, vous ne modifiez aucun des deux dépôt local et distant. Ainsi :

  • la commande « git status » va comparer les fichiers qui sont dans votre répertoire local à ceux qui se trouvent dans le dépôt local. S’il n’existe pas de différence, elle vous répondra qu’aucune modifications n’est nécessaire. Par contre, si vous avez modifié les fichiers de votre répertoire local, elle va vous afficher tous ceux qui ne correspondent pas à ceux qui se trouvent dans le dépôt local.
  • la commande « git add . » (attention le point « . » est nécessaire) va vous permettre d’ajouter tous ces fichiers (le point « . » signifie tous) à la liste des fichier à modifier sur le dépôt local. Vous pourriez vouloir ne modifier que quelques uns de ceux-ci sur le dépôt local, auquel cas, il faudra les spécifier à la place du point. Ainsi, les fichiers à modifier seront marqués en tant que tel.
  • la commande « git commit -m « C’est fait. » » vous permet d’envoyer les modifications du répertoire de travail dans le dépôt local avec un message obligatoire décrivant ces changements.

À ce stade, rien n’a été effectué sur le dépôt distant. Mais tous les changements que vous avez réalisés se trouvent en attente sur le dépôt local, c’est-à-dire sur votre ordinateur.

  • la commande « git push -u origin master » vous permet d’envoyer vos changements sur le dépôt distant nommé « master ». Plus précisément, elle vous permet de les envoyer sur la branche « origin » du dépôt « master ». En effet, il peut y avoir plusieurs branches branches du même projet sur lesquelles on peut travailler en parallèle. Pour en savoir plus reportez-vous à l’article https://www.cvgg.org/wordpress/blog/27-git-et-les-branches/. Le « -u » va vous demander de spécifier l’utilisateur et vous demandera son mot de passe.

Voilà. AInsi vous pourrez reporter vos changements (pour autant que vous y soyez autorisés : utilisateur et mot de passe) sur le dépôt distant. Ainsi aussi les autres utilisateurs pourront les récupérer.


Une utilisation intéressante en mode mono-utilisateur est la suivante. Imaginez que vous travailliez comme cela est présenté ci-dessus à la maison. Vous vous rendez ensuite à votre travail et là-bas désirez modifier vos fichiers. Pour cela vous les récupérez en clonant le dépôt, faites vos modifications et les reportez successivement sur le dépôt local (à votre travail) puis sur le dépôt distant. Tout va bien. De retour chez vous, vous voulez synchroniser le dépôt distant qui a été modifié au travail avec les fichiers qui sont sur votre ordinateur à la maison. Une seule commande suffira :

git pull

Et vous verrez avec un grand plaisir que toutes les modifications faites au travail seront reportée dans vos fichiers à la maison.

Voilà. Amusez-vous bien. La puissance de git est simplement stupéfiante.

32. Gestion du temps en ligne de commande

La mise-à-jour automatique de l’heure sur un ordinateur est tellement classique qu’on en oublierait qu’elle existe. Par ailleurs, justement puisqu’elle existe, pourquoi s’en charger ? Comme il existe un service (NTP) qui se charge de fournir l’heure à l’ordinateur, pourquoi ne pas le laisser faire ?

Si NTP est un service, il doit pour faire son office, utiliser des serveurs de temps disponible sur internet. Il est donc nécessaire que l’ordinateur ait accès au réseau. Si ce n’est pas le cas, l’heure ne sera pas mise à jour. Pour des ordinateurs comprenant une petite pile (la plupart d’entre eux) ou des smartphones constamment branchés sur la batterie, ce n’est qu’après beaucoup de temps que l’heure va prendre quelque retard, puis le quartz intégré à la machine permet aujourd’hui une précision importante.

Par contre, sur certains ordinateurs non munis d’une pile, comme le raspberrypi, si vous l’éteignez, l’horloge s’arrête. En le rallumant sans connexion, l’heure ne sera donc pas correcte.

Une distribution intéressante pour faire de l’astronomie avec un raspberrypi directement sur le télescope permettant d’utiliser la raspicam au foyer (avec un télescope comme le pikon, par exemple) est Astroberry. Cette distribution crée un point d’accès wifi permettant de mettre en place un VPN pour accéder au raspberrypi depuis un portable. Généralement, le réseau internet n’est pas disponible lors d’observations hors de chez soi (le réglage de l’heure via son smartphone ne sera pas abordé ici). Il est donc nécessaire d’effectuer un réglage manuel. Avec Astroberry, on peut le faire avec une interface graphique. Mais, Astroberry nécessite un raspberrypi 3 ou 4. Si on préfère un raspberrypi 0, consommant bien moins de ressources énergétiques (on peut utiliser raspivid sur TCP pour voir les images de la caméra sur un portable et raspistill pour faire les photos), il est nécessaire de s’y connecter via ssh, c’est-à-dire en ligne de commande. Ainsi, en astronomie, avec un raspberrypi 0, le réglage manuel de l’heure peut être nécessaire régulièrement.


Pratiquement, la gestion du temps passait il y a peu par les commandes suivantes permettant notamment de gérer l’accès à un ou des serveurs ntp :

date et ntpdate

Aujourd’hui, avec systemd, un autre outil permet ce type de réglages :

timedatectl

C’est un outil de systemd, à l’instar de systemctl, disponible avec celui-ci. Voici quelques commandes intéressantes :

Activation – désactivation du réglage automatique

timedatectl set-ntp false
timedatectl set-ntp true

Réglage de la zone

timedatectl set-timezone Europe/Zurich

Réglage de la date et de l’heure

timedatectl set-time 'A-M-J HH:MM:SS'
timedatectl set-time 'A:M:J HH:MM:SS'
timedatectl set-time 'A-M-J'
timedatectl set-time 'HH:MM:SS'

Configuration du serveur de temps dans le fichier de configuration /etc/systemd/timesyncd.conf

[Time]
NTP=
FallbackNTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org/

puis réactiver ntp, comme vu plus haut.

Enfin, vous pouvez consulter les réglages en cours avec :

timedatectl status

Ce qui devrait vous retourner quelque chose comme :

Local time: lun 2021-08-23 08:50:33 CEST
           Universal time: lun 2021-08-23 06:50:33 UTC
                 RTC time: n/a
                Time zone: Europe/Zurich (CEST, +0200)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Voilà. Timedatectl permet donc le réglage d’un client ntp.

Gemini

J’ai trop longtemps négligé l’importance du texte. Jeune j’ai été passionné de littérature. La science m’en a alors détourné. Paul Feyerabend m’ayant rappelé qu’elle était elle-même langage et Noam Shomsky ayant confirmé qu’il en était de même pour l’informatique, mes pratiques ont lentement dérivées vers le texte par la programmation, des cours de physiques en LaTeX et le un nouveau plaisir d’écrire en opposition radicale avec la période désagréable des vidéos-conférences. Tout alors m’a éloigné du monde des images à tel point que j’ai abandonné la télévision. Ce changement ne fut pas radical, car des années auparavant, j’avais déjà abandonné la voiture pour le vélo et je savais que le ralentissement de ses déplacements pouvait être très bénéfique. J’ai alors compris que le filtrage des informations par le texte pouvait l’être tout autant.

La découvert du groupe « rawtext.club » a donc été pour moi une véritable révélation. Toutes les valeurs des membres de ce groupe me correspondaient et comme ils proposaient de mettre de l’information sur le tout jeune Gemini, un autre web focalisé sur le texte, je me suis lancé dans l’aventure.

Le protocole

Gemini est un protocole, à l’instar d’http. Il s’agit d’accorder deux ordinateurs pour qu’il se comprennent et puissent se transmettre de l’information. Ainsi, quand vous utilisez « Hyper Text Transfer Protocol », soit http, vous utilisez un « un protocole de communication client-serveur développé pour le World Wide Web » (Wikipedia). Quand vous utilisez « Gemini », soit gemini, vous utilisez « un protocole de communication client-serveur. C’est un protocole de la couche application qui utilise le protocole TCP comme couche de transport. Il permet notamment d’accéder à des documents texte simples de type hypertexte. Les échanges entre le client et le serveur sont sécurisés à l’aide du protocole TLS. Le protocole est mis au point de manière collaborative mais n’est pas un standard internet » (Wikipedia).

« Les ressources Gemini sont identifiées au moyen d’URL dont le schéma est gemini://. Il est à noter que contrairement au protocole HTTPS qui possède un équivalent non chiffré (HTTP), le protocole Gemini ne définit volontairement pas d’équivalent non-chiffré.

La syntaxe des pages gemini, appelée Gemtext, est inspirée de celle de Markdown. »

Navigation

Pour visiter des sites gemini, on pourrait croire qu’il suffit de taper gemini:// dans la barre d’un navigateur. Mais le protocole n’étant pas standard, cela n’est pas possible aujourd’hui. Il faut un navigateur spécifique pour cela. Plusieurs solutions existent. Personnellement j’utilise « Amfora », un navigateur Gemini en mode ligne de commande. Une liste de clients gemini vous permettra de faire votre choix et de les installer. Outre Amphora, écrit en go, AV-98 écrit en python sont à tester. Sur la figure suivante, vous pouvez voir les deux navigateurs, Amfora à gauche, coloré sur fond noir et à droite dans une console transparente, AV-98 qui se superpose dans un style plus classique. Pour les navigateurs en mode graphique, Lagrange semble un bon choix.

Rawtext.club

Comme dit plus haut, ce groupe est plus qu’un hébergeur Gemini. Je vous conseille donc de vous y intéresser de plus près si vous aimez le texte et la philosophie des mouvement « LOW ».

À l’url :
gemini://rawtext.club
vous trouverez une description de ce « Slow social network », comme il se décrit lui-même.

À l’url :
gemini://rawtext.club/~guyotv
vous trouverez mon site gemini. Tout progressivement, celui-ci va prendre de l’importance et j’espère à terme pouvoir migrer entièrement vers celui-ci.

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.

Librem 5 et localisation

Je suis toujours en admiration vis-à-vis de la capacité de certains hommes à gérer la différence. Ici, il s’agit de différences linguistiques : la gestion des langues sur un système d’exploitation.

À priori, le problème est simple : on veut que son ordinateur ou téléphone parle comme nous. Prenons le français par exemple. On peut croire qu’il suffit d’indiquer à sa machine que notre langue est le français pour que tout soit réglé. Mais le problème n’est pas si simple. Voici ce que le Librem propose dans son panneau des préférences, sous « Pays et langue » :

Il y a non seulement la langue, mais divers formats, c’est-à-dire différentes variantes de la langue française. Ici on a la langue française avec une variante suisse (mais cela pourrait être du canadien, par exemple). Les variantes sont importantes non seulement pour des spécificités linguistiques, mais pour la gestion des claviers. Je dis « des », car non seulement la convergence va impliquer l’utilisation d’un clavier physique qui doit être correctement configuré (ici un clavier suisse romand : QWERTZ), mais aussi pour la configuration du clavier virtuel. Avec le Librem, pas moins de trois claviers virtuels sont nécessaires : le clavier suisse, le clavier français et un clavier virtuel dit de « Terminal » qui permet d’utiliser au mieux une console avec des flèches directionnelles et une touche « esc », notamment.

Dès le départ, le Librem demande la configuration de la langue. Or, le problème que j’ai rencontré est qu’après avoir spécifié le français suisse, j’ai voulu retirer l’anglais. Ce fut une mauvaise idée, puis alors toutes les langues qui m’étaient connues ont soudainement disparu. Ce genre de bugs est classique et il peut être difficile d’y remédier sous Android par exemple. Sous PureOS, les commandes propre à un système d’exploitation tels que Debian, permettent de le faire sans difficultés en reconfigurant les locales. Ainsi, un très classique :

sudo dpkg-reconfigure locales

permet de re-générer les locales souhaitées et de spécifier la locale principale (ici le français suisse en UTF8 : fr_CH-UTF8). Mais pour sélectionner les locales au clavier, encore faut-il savoir qu’un clavier de terminal est disponible à gauche de la touche d’espace du clavier virtuel. De plus, non seulement il faut bien savoir qu’il ne faut pas supprimer l’anglais, mais pas non plus le français, car le clavier virtuel suisse romand ne dispose pas de caractères accentués, pour une raison encore inconnue.

Une fois cela fait, il faut finalement ne pas oublier de mettre le clavier suisse romand tout en haut des sources de saisie et qu’il est possible qu’il se déplace parfois vers le bas lors d’un redémarrage.

Tout cela ne fut pas bien problématique pour moi qui suis habitué à régler ces problèmes en ligne de commande, mais cela peut constituer une difficulté pour un néophyte. Une fois tout cela bien configuré, il faut reconnaître que les claviers virtuels sont agréables, ni trop grands ni trop petits, qu’on ne peut rapidement plus se passer du clavier du terminal et qu’en mode de convergence (voir l’article éponyme) le clavier physique fonctionne parfaitement. Relevons aussi que le clavier du terminal et présent par défaut et qu’il est très convainquant, contrairement aux différents claviers de terminaux sous Android qui embarquent quasiment tous des traceurs et sont souvent peu praticables. Par contre, évidemment le swipe n’est pas au rendez-vous.