🆒 Comment avoir des émojis colorées dans les programmes st,dmenu,dwm,slstatus sur Archlinux 👌

[lienbillet seul]

J'utilisais slstatus/dwm/st et dmenu depuis un bon bout de temps, et je ne comprenais pas pourquoi certaines émojis s'affichait correctement, d'autres en noir et blanc. Ça cassait la "consistance".

La bonne réponse bien sûr est que je m'y suis mal pris. Je vais vous expliquer comment faire afin de vous éviter moults pertes de cheveux et prises de têtes.


  1. S'assurer d'avoir fakeroot ou sudo d'installé, vu que l'on va compiler des paquets depuis l'AUR grâce à makepkg -s .
  2. Téléchargez et compilez la version patchée de libxft par Maxime Coste: libxft-bgra-git.
    Pour l'installer exécutez les commandes suivantes:
    curl -OJL https://aur.archlinux.org/cgit/aur.git/snapshot/libxft-bgra-git.tar.gz
    tar xvzf libxft-bgra-git.tar.gz
    cd libxft-bgra-git/
    makepkg -s
    pacman -U libxft-bgra-git*.pkg.tar.zst

    Si on vous informe d'un conflit avec libxft, foncez quand même.
  3. Choisissez ensuite une police de caractères ayant des émojis. Il y en a plusieurs (noto-fonts-emoji,ttf-joypixels par exemple), pour ma part j'ai choisi ttf-twemoji. Si vous l'avez vous aussi choisie, n'oubliez pas de copier 75-twemoji.conf dans le répertoire /etc/fonts/conf.d.
    Exécutez
    pacman -U ttf-twemoji*.pkg.tar.xz
    dans le répertoire de ttf-twemoji afin d'installer la police de caractères après sa compilation.
  4. N'oubliez pas de commenter ou supprimer les lignes 142 à 146 dans le fichier drw.c du code source de dwm et dmenu quand vous les recompilez. Sans ça, les émojis ne s'afficheront pas ou pas correctement.
  5. Tout est bon ! Vous pouvez maitenant tester tout ça grâce àun simple script affichant une liste d'émojis :
    curl -OJL https://github.com/LukeSmithxyz/voidrice/raw/master/.local/share/larbs/emoji
    mv emoji ~/.local/share/emojis
    cat ~/.local/share/emojis | dmenu -i -b -l 5

Merci à Luke Smith et Unicode pour la liste d'émojis et la standardisation des émojis, respectivement. Très 🆒.