Où comment faire défiler une série de fond d'écran pour les environnements de bureau tels que GNOME, MATE, ou Cinnamon.
samedi 18 août 2018
Envie d'un diaporama comme fond d'écran ?
Par olivier le samedi 18 août 2018, 14:24 - Programmation
samedi 18 août 2018
Par olivier le samedi 18 août 2018, 14:24 - Programmation
samedi 12 septembre 2015
Par olivier le samedi 12 septembre 2015, 21:18 - Logiciel
Certains d'entre vous le savent peut-être, mais je suis un utilisateur heureux du bureau Xfce [1], je suis avec attention tout ce qui touche de près ou de loin à ce projet. Or des développeurs de la distribution Xubuntu ont développé un petit logiciel [2] permettant de sauvegarder la disposition du (ou des) panel(s). Il repose sur Gtk3 (grâce à la couche GObject Introspection) et Python3.
Avec la dernière version (1.0.1), des pré-réglages [3] sont déjà disponibles (je me tâte à les laisser dans le paquet pour FreeBSD), seulement quand on en sélectionne un, et par mégarde on clique sur le bouton de suppression on obtient ceci :
(Cliquez sur l'image pour la voir dans son format original)
Je trouve que ce n'est pas élégant. J'ai donc proposé un patch qui vérifie si l'utilisateur est le propriétaire de l'archive. Si ce n'est pas le cas, une boîte de dialogue apparaît.
C'est mieux non ?
jeudi 14 mai 2015
Par olivier le jeudi 14 mai 2015, 20:59 - Programmation
En ce moment, je travaille sur le portage de l'environnement de bureau Pantheon [1] pour FreeBSD. C'est long, fastidieux, car il faut sans cesse lire le code (voir plusieurs fois) pour vérifier qu'il n'y a pas de « linuxisme », et trouver des parades pour les résoudre (si il y en a).
Récemment je suis tombé sur une portion de code, qui m'a laissé perplexe. Pour simplifier, elle consiste à calculer la taille du disque dur [2].
En isolant cette partie (Cf. annexe, fichier hdd.vala
), je fus surpris du résultat (au départ j'ai cru, que sous Linux le résultat serait différent, mais en fait non).
valac --pkg=glib-2.0 --pkg=gio-2.0 hdd.vala ./hdd 33.2 GB
Le résultat sera sans doute différent chez vous, en fait, le calcul se fait uniquement pour la racine (/
). Il crée un File object juste pour /
, grâce à la méthode GLib.File.new_for_path.
Mais dans mon cas, mon disque dur est partitionné, je dois pouvoir retrouver la (quasi) totalité du disque, en faisant la somme de toutes mes partitions.
Ce bout de code s'inspire en fait, de ce que fait GNOME (via le paquet gnome-control-center). En parcourant le fichier panels/info/cc-info-panel.c
, on constate, que c'est la fonction g_unix_mount_points_get qui est utilisée [3].
Avec le langage Vala, il faut utiliser la classe UnixMountEntry, et faire une boucle sur l'ensemble des points de montage.
Dans mon exemple (Cf. annexe), je stocke la taille de chacune des partitions dans une liste, et ensuite je fais la somme de toutes les tailles.
valac --pkg=glib-2.0 --pkg=gio-2.0 --pkg=gio-unix-2.0 hdd-02.vala ./hdd-02 266.5 GB
C'est déjà plus cohérent.
Il ne reste plus qu'à envoyer un patch aux développeurs.
[1] Issue du projet elementary OS.
[2] À partir de la ligne 234 du fichier src/Plug.vala
(Switchboard-about-plug).
[3] Elle lit le fichier /etc/fstab
ou /etc/mtab
.
vendredi 9 mai 2014
Par olivier le vendredi 9 mai 2014, 23:37 - Programmation
Je viens de publier sur le wiki, un snippet, afin de déterminer l'origine d'une adresse IP écrit en Vala.
En testant ce programme avec différentes versions de ce langage, j'ai dû mettre en place des tests, qui sont évalués par le compilateur valac
. On parle souvent de préprocesseur dans certains langages.
Si on dispose d'une version de Vala >= 0.22, il faut activer la directive VALA_0_22.
Si on dispose d'une version de libsoup >= 2.42, il faut activer la directive LIBSOUP_2_42.
C'est très simple, on utilise l'exécutable pkg-config
[1].
pkg-config --modversion libsoup-2.4 2.42.3.1
En fait pkg-config
interroge les fichiers .pc
, qui se trouve dans le dossier pkgconfig/
. Pour savoir où il se trouve dans l'arborescence :
find /usr -type d -name 'pkgconfig' -print
Par exemple, sous Fedora, on le trouve dans les dossier /usr/share
et /usr/lib
. Sous FreeBSD, il est situé dans /usr/local/libdata
.
Pour Vala :
valac --version Vala 0.20.1
Maintenant nous avons toutes les informations, on peut compiler notre programme.
Si Vala < 0.22.x
valac --target-glib=2.32 --pkg=glib-2.0 --pkg=libsoup-2.4 --pkg=json-glib-1.0 geoip.vala
Si Vala >= 0.22.x et libsoup >= 2.42.x
valac --define=VALA_0_22 --define=LIBSOUP_2_42 --pkg=glib-2.0 --pkg=libsoup-2.4 --pkg=json-glib-1.0 geoip.vala
Sous FreeBSD, on peut changer de compilateur, en utilisant par exemple clang.
valac --cc=clang --define=VALA_0_22 --pkg=glib-2.0 --pkg=libsoup-2.4 --pkg=json-glib-1.0 geoip.vala
Dans tout les cas, on obtient le même résultat :
./geoip fr
[1] Sous FreeBSD, on utilisera plutôt pkgconfig
.