Mon Sway réalisé
================
Date: 2019-03-23 10:01
Author: jdn06
Category: Logiciels libres
Tags: Sway, i3, Wayland, GNOME
Si je relis les propos que j’ai pu tenir au moment de la sortie de
GNOME 3, en 2011, je m’aperçois que mon regard sur cet environnement
a beaucoup évolué, sans pour autant que l’essentiel ne change :
- Les bugs ayant disparu, la lourdeur de l’environnement ayant un peu
diminué, l’ensemble est devenu utilisable sur une machine moyennement
performante.
- Je trouve même l’utilisation agréable et bien conçue quand on est
sur un ordinateur mobile ou sur un écran de taille mesurée, avec un
clavier sous les doigts.
- Je reste rétif à l’idée d’utiliser cet environnement sur un grand
écran 25’ avec une souris : bonjour les gesticulations et la nausée.
Du coup, mon ordinateur de bureau est resté sous Mate.
Si donc mon Thinkpad d’occasion se révèle très agréable et fluide
sous GNOME 3, la puissance limitée de l’eeePC qui l’a précédé m’a
obligé à chercher des solutions plus légères ces dernières années, au
point que j’ai pris goût à la puissance et à la simplicité du
gestionnaire de fenêtre i3. Cet environnement par pavage de fenêtres
est d’autant plus agréable qu’on aime travailler sur le terminal et
ne pas utiliser la souris. Il sera parfait pour tous ceux qui
préfèrent le gestionnaire de fichiers Ranger à Nautilus (appelé de
nos jours platement Fichiers).
Comme j’ai fait en sorte d’utiliser quelques technologies encore
expérimentales sur ma nouvelle machine, elle est en Btrfs avec
snapshots et en Wayland. Du coup, j’étais particulièrement impatient
de voir Sway 1.0 sortir sur Archlinux. En effet, j’avais testé Sway
en version 0.15 sur ma machine précédente, mais les bugs étaient
encore trop nombreux pour une utilisation quotidienne efficace. Sway
est la transposition du projet i3 pour le serveur d’affichage
Wayland. Il est principalement développé par Drew DeVault, alias
sircmpwn, autre amateur de vieux Thinkpads[1] et adepte d’un
minimalisme informatique très cohérent, d’un projet à l’autre.
Tous les problèmes qui avaient rendu l’utilisation de Sway 0.15 peu
satisfaisante paraissent aujourd’hui réglés. Les fenêtres flottantes
fonctionnent comme elles le doivent et les fenêtres un peu chargées
de GTK3 ou de QT5 sont pleinement fonctionnelles. Me restaient tout
de même deux problèmes à régler :
- L’un, commun à tous ces environnements minimalistes, était
l’intégration de Gnome-Keyring ou d’un autre agent SSH.
- L’autre, commun à plusieurs environnements sous Wayland, était le
bon fonctionnement de Smplayer.
Pour Smplayer, le problème était que la vidéo ne démarrait pas
et affichait une erreur assez peu explicite, signifiant en fait
qu’il essayait en vain d’ouvrir X11, lequel n’étant pas installé
se révélait peu disponible. En ajoutant en option à passer à
mpv dans les paramètres avancés
--gpu-context=wayland
le problème disparaissait. Reste que la vidéo démarrait dans une
fenêtre séparée avec un ratio déformant. Si on accepte l’idée
d’avoir deux fenêtres séparées (une pour Smplayer avec ses menus et
commandes) et une pour la vidéo, le problème de ratio se règle en
demandant explicitement à Smplayer d’exécuter mpv dans sa propre
fenêtre, toujours dans les paramètres avancés.
Pour Gnome-Keyring, j’ai pataugé un peu plus longtemps. La page du
wiki d’Archlinux consacrée à ce problème est assez touffue, mais elle
ne donne pas la solution exacte du problème, car les variables
d’environnement sont un peu retorses avec Wayland :
- Celles qu’on essaie de faire passer par .bash_profile ou par
.profile ne sont pas chargées.
- Celles qu’on passe par .bashrc ne fonctionnent que pour les
applications lancées depuis un terminal.
- Celles qu’on passe par .config/environment.d/envvars.conf
paraissent assez limitées dans leurs possibilités.
J’ai donc trouvé une solution presque satisfaisante avec la
configuration suivante (à adapter à l’uid de chaque utilisateur) :
.bashrc
...
if [ -n "$DESKTOP_SESSION" ];then
export GSM_SKIP_SSH_AGENT_WORKAROUND=1
eval $(gnome-keyring-daemon --start)
export SSH_AUTH_SOCK
fi
.config/environment.d/envvars.conf
...
SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"
Pour vérifier après redémarrage que les variables sont bien passées,
on peut utiliser
systemctl --user show-environment
J’ai pour ma part dû forcer les choses avec un
systemctl --user import-environment
mais je ne saurais dire si c’est une étape nécessaire dans tous les
cas ou non.
La solution n’est pas parfaite. Le déverrouillage de la clé SSH doit
se faire initialement dans un terminal (ce qui est pour moi, de
toute façon, l’usage très largement majoritaire). Mais ensuite, une
application lancée graphiquement, comme Unison-gtk, peut utiliser les
clés déverrouillées, ce qui n’est pas possible avec la seule
modification de .bashrc. Jusque-là, je me contentais de lancer
les applications graphiques depuis un terminal, ce qui est plus
laborieux.
J’avoue que depuis que j’utilise i3 et Sway, je n’utilise presque
plus Openbox et plus du tout Enlightenment. En effet, on gagne
très largement en légèreté et en puissance, même si la courbe
d’apprentissage est un peu plus raide. On renonce en partie à la
métaphore du bureau popularisée par MacOS et par Windows, ce qui
déroutera peut-être les débutants. En même temps, cette métaphore m’a
toujours paru d’une facilité un peu trompeuse et maladroite : j’ai
toujours l’impression de mimer des gestes avec une souris, un peu à
la manière dont on communiquerait avec quelqu’un qui ne comprendrait
pas votre langue. Dans le cas de Sway ou d’i3, on reste au maximum
dans la conversation avec la machine grâce au clavier. Moins
d’énergie perdue et plus d’efficacité.
[1]
https://drewdevault.com/2019/01/23/Why-I-use-old-hardware.html