Firefox, économiseur d'écran et Xfce

Comment un bogue énervant m'a conduit à contribuer à Firefox.

Contexte

J'ai la fâcheuse manie de changer l'environnement de bureau de mon ordinateur tous les 6 mois à peu près. À cette occasion, j'utilise régulièrement Xfce dont la simplicité et légèreté me plaisent.

Lors de mon dernier essai, je remarque un comportement fâcheux : l'écran se met en veille lorsque je visionne une vidéo Youtube avec Firefox. Encore une fâcheuse manie !

On creuse

Je profite de l'occasion pour creuser le problème et voir si je peux le résoudre. Après quelques recherches, je trouve un rapport de bogue similaire à mon problème, lié au composant xfce4-power-manager.

Le mainteneur de projet suggère que Firefox n'appelle pas la bonne interface D-Bus lorsqu'il veut inhiber la mise en veille de l'écran. D-Bus est un démon qui permet de faire communiquer différents programmes entre eux, via des interfaces pré-définies. Le problème n'apparait pas avec Chromium, qui doit certainement faire quelque chose de différent !

Hacker Firefox

Je plonge donc dans les entrailles de Firefox. Je trouve le fichier qui s'occupe de cette fonctionnalité : WakeLockListener.cpp. Je compare avec le code qui remplit la même fonction chez Chromium pour avoir une meilleure idée de ce qui peut mal …

plus ...

Utiliser pg_dump avec Docker

Je suis en train de migrer Tiny Tiny RSS depuis AWS vers un serveur dédié. Pour ce faire j'essaie d'effectuer un dump de la base de donnée (stockée dans RDS) depuis une machine Debian Buster. Malheureusement pg_dump échoue car la version fournie par Debian est trop ancienne !

% pg_dump -h db2.ezvan.fr -U ttrss -W ttrss > ttrss-20220102.sql
Password: 
pg_dump: server version: 12.7; pg_dump version: 11.14 (Debian 11.14-0+deb10u1)
pg_dump: aborting because of server version mismatch
zsh: exit 1     pg_dump -h db2.ezvan.fr -U ttrss -W ttrss > ttrss-20220102.sql

Docker à la rescousse

Je pourrais mettre à jour ma version de Debian pour obtenir un version plus récente de pg_dump, mais une telle migration serait chronophage. Une solution plus simple est d'utiliser Docker pour exécuter la version de pg_dump qui convient.

Installation de Docker

Attention sous Debian le nom du paquet Docker est docker.io !

sudo apt install docker.io

J'ajoute mon utilisateur au groupe docker. Je me reconnecte ensuite afin d'utiliser les nouvelles permissions.

sudo usermod -aG docker user

Je démarre le démon Docker.

sudo systemctl start docker

Lancer pg_dump

Je lance pg_dump dans un conteneur Docker. J'utilise l'image postgres en spécifiant la version …

plus ...

Podman, volume et SELinux

En ce moment j’expérimente avec Rust, le langage de programmation à la mode. Ayant compilé mon programme expérimental sur mon système Fedora, je l’envoie à un ami. Quelle déception quand il me dit que mon programme répond mal :

/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not `found

Rust compile avec la version de la librairie glibc de mon système, qui est trop récente et pas compatible avec Ubuntu. Je dois donc compiler avec un système plus ancien. Pas de panique les conteneurs sont parfaits pour ça !

Comme je travaille avec Fedora, j’utilise Podman qui est un équivalent à Docker pour créer mon conteneur.

Je tente ainsi, mais c’est l’échec :

% podman run --rm -v "$PWD":/usr/src/ -w /usr/src/ rust cargo build --release 
error: could not find `Cargo.toml` in `/usr/src` or any parent directory
zsh: exit 101   podman run --rm -v "$PWD":/usr/src/ -w /usr/src/ rust cargo build --release

D’où vient cette erreur ? Je tente de lire le répertoire depuis le conteneur :

% podman run --rm -v "$PWD":/usr/src/ rust ls /usr/src
ls: cannot open directory '/usr/src': Permission denied
zsh: exit 2     podman run --rm -v "$PWD …
plus ...

Apple, ARM et plateforme ouverte

Les nouveaux ordinateurs Apple basés sur le processeur M1 commencent à être testés par différents sites spécialisés en hardware. Le verdict est sans appel : c'est une claque de performance et efficacité sans précédent pour ses vénérables concurrents.

Une révolution ?

Est-ce l'avènement d'une nouvelle ère où nos smartphones et ordinateurs personnels utiliseront tous la même technologie ARM, que les smartphones utilisent depuis leurs débuts ?

Les smartphones ont envahi notre monde. Ils sont partout, et nécessaires pour de plus en plus d'opérations : validation d'opérations bancaires, paiements, tickets de transport, services de transport urbain, etc.

C'est une révolution encore plus forte que celle de l'ordinateur personnel, qui a généralisé l'accès à l'informatique et à Internet.

L'histoire bégaie

Il y a pourtant une différence majeure avec les ordinateurs personnels.

Au début de ceux-ci, de nombreux fabricants étaient en compétition, comme Amiga, Apple et Atari, avec des architectures et systèmes différents. Il n'y avait que peu d'interopérabilité entre les différents ordinateurs disponibles. Puis a emergé la plateforme PC, qui devint rapidement un standard de facto.

La grosse force de cette plateforme est son ouverture. Un système fonctionnant sur PC peut fonctionner sur tous les ordinateurs compatibles PC. La majorité des ordinateurs sont compatibles PC à …

plus ...

Changer la taille de police dans les applications Qt sous Xfce

En ce moment j’utilise Xfce comme environnement de bureau, pour soulager mon ordinateur portable âgé de sept ans qui fatigue un peu.

Comme je suis myope, je change toujours la taille des polices en changeant le DPI, pour le régler à 120. C’est facile à faire dans Xfce en utilisant le module « Apparence » du panneau de paramètres.

Mais dans certaines applications qui utilisent le framework Qt ce paramètre n’était pas toujours respecté. Après quelques recherches, j’ai trouvé qu’un moyen simple de changer l’apparence dans ces applications est d’utiliser le fichier ~/.Xresources. Ce fichier est utilisé par le serveur X pour configurer ses applications clientes.

Voici la configuration que j’ai utilisée :

!-------------------------------------------------------------------------------
! Xft settings
!-------------------------------------------------------------------------------

Xft.dpi:        120
Xft.antialias:  true
Xft.rgba:       rgb
Xft.hinting:    true
Xft.hintstyle:  hintslight
Xft.autohint:   false
Xft.lcdfilter:  lcddefault

Il faut ensuite utiliser la commande xrdb pour appliquer ces paramètres :

xrdb -merge ~/.Xresources

Et voilà, mes applications Qt comme KeepassXC ont la bonne taille de police !

plus ...