Petits bouts d’hubiC
Cet article présente des logiciels et des services qui ne sont plus maintenus ou accessibles depuis très longtemps. Il est conservé à titre indicatif et historique, mais aucun des outils abordés ci-après ne doivent être utilisés autrement qu’à titre d’example ou de référence.
Introduction
Voici déjà quelque temps que je me suis installé à Nantes. Au moment de
l’emménagement, s’est posée la question désormais classique : quelles
sont les boutiques du voisinage quel opérateur téléphonique/internet
prendre ?
Jusqu’à présent j’ai souvent été chez SFR, d’autant que je possédais un forfait mobile chez eux. Puis je suis passé chez Joe Mobile et la pertinence de prendre également SFR pour l’internet (offres groupées) disparaissait. De même, les preuves apparues récemment de modification du contenu des pages Web servies aux mobinautes me chagrinait un peu.
Dans l’absolu, je ne souhaitais pas non plus m’embarquer dans une offre avec télévision comprise, étant donné que je ne la regarde jamais. Alors, SFR, Orange, Bouygues, Free ? Bof, bof… (oui, Free dans le même panier. Depuis l’épisode des sites en annu de la fin des années 90, je me suis promis de ne jamais donner le moindre centime directement à Iliad.)
L’offre la plus attirante pour moi sur Nantes était bien sûr celle proposée par FAI maison, le FAI alternatif, associé à la fédération FDN. Malheureusement, au moment de mon établissement des retards de livraison dans l’établissement des lignes me faisait craindre un délai un peu compliqué. J’aurai pu, certes, passer directement par FDN, mais les soucis semblant justement venir de là-bas, j’ai préféré reporter, tout en me promettant de m’investir tout de même à terme dans l’association.
Tout ça, ce n’était que la moitié de l’introduction. Bref, j’ai finalement craqué pour l’offre d’OVH Télécom. N’étant pas là pour faire de la pub, je vous laisse vous documenter par vous-même sur leur site. Cette offre propose en option (activable gratuitement à la demande) un espace sur leur solution de stockage/synchro en ligne hubiC (oui, la majuscule est à la fin, je ne sais pas non plus pourquoi…).
Client de longue date chez Dropbox, j’y ai vu entre autres un moyen de réduire considérablement ma facture, tout en rapatriant mes données personnelles sous les yeux de la DGSE, plutôt que la NSA. Un geste patriotique quoi (ça donne droit à des réductions d’impôt vous pensez ?). Néanmoins, comme on ne fait pas deux fois les mêmes erreurs, j’en ai profité pour mettre en place une solution de chiffrement de mes données envoyées sur le cloud (flûte, mes chances de réduction d’impôt viennent de voler en éclat 😕). Mais c’est un autre sujet.
J’ai donc commencé à utiliser le client linux d’hubiC, tout en mono.
De la beauté de la ligne de commande… au besoin d’information
Chez OVH, quand on fait quelque chose, on le fait à fond. Donc quand on fait un client de synchronisation dans le cloud, on barde son produit d’options (comme la publication de fichiers ou répertoires, la possibilité d’avoir différents comptes, la liaison avec DBUS et j’en passe)… mais on reste sensible aux clichés. Vous êtes sous linux ? Vous n’aurez donc qu’une ligne de commande.
Même si cette dernière est ma foi fort pratique, à l’usage (surtout en comparaison de Dropbox) on regrette quand même parfois le manque de visibilité et de possibilité de monitoring du bouzin en natif.
Du coup j’ai décidé de palier à ce problème en écrivant des scripts me permettant d’afficher en permanence dans ma barre de statut l’état d’hubiC.
Widget Awesome
À ce moment-là, j’utilisais principalement le gestionnaire de fenêtre automatique (une meilleure traduction que « en tuile » pour tiling ?) Awesome. J’en suis toujours extrêmement content. La simplicité de mise en œuvre de scripts divers et variés pour personnaliser son environnement est tout bonnement… awesome (oui, je sais, c’était facile).
J’ai donc commis dans un premier temps un petit bout de script en Lua permettant d’afficher dans la wibox l’état courant de son hubiC, le tout agrémenté d’un petit nuage utf-8. Le script en lui-même est à placer où bon vous semble et dépend d’un script bash. La configuration de ce widget se fait assez simplement.
Dans votre fichier de configuration ~/.config/awesome/rc.lua
, placez
simplement les lignes suivantes
local cloudwidget = require("edcloudmon") cloudwidget.init()
La première ligne inclut le fichier en question. C’est une bonne
pratique de regrouper les fichiers tiers dans un sous-dossier de votre
dossier de préférence. Ainsi, je place ces fichiers dans le dossier
~/.config/awesome/plugins/
La ligne pour insérer le fichier se
transforme alors simplement en local cloudwidget =
require("plugins.edcloudmon")
.
La deuxième ligne du fragment précédent permet d’initialiser le widget et en particulier de lancer les différents timers qui iront vérifier à intervalle régulier l’état d’hubiC.
N’oubliez pas d’ajouter le widget à votre wibox, par exemple à l’aide d’une ligne ressemblant à la cinquième ligne du bloc suivant :
for s = 1, screen.count() do mylayoutbox[s] = awful.widget.layoutbox(s) [...] local right_layout = wibox.layout.fixed.horizontal() right_layout:add(cloudwidget.label) [...] local layout = wibox.layout.align.horizontal() layout:set_right(right_layout) [...] mywibox[s]:set_widget(layout) end
En étudiant ce code, vous constaterez que j’y suis allé un peu comme un bourrin, étant donné que je débutais en partie. Les appels répétés à la commande hubic status suivi d’un sed n’est pas la soupe la plus digeste pour votre système.
Par ailleurs, j’ai pu constater que les dernières évolutions du projet MATE le rendait enfin très intéressant, pour l’amoureux abandonné du projet Gnome que je suis. La découverte du très bon thème Clearlooks-Phénix a fini de me convaincre et je suis revenu à mes premiers amours. Ce changement de bureau s’est accompagné d’une quête de nouveaux outils de monitoring et comme on n’est jamais si bien servi que par soi-même, j’ai décidé qu’il était définitivement temps que je me mette au python.
StatusIcon pygtk
L’option la plus évidente s’ouvrant à moi pour suivre l’activité d’hubiC
sur mon beau bureau gnome mate, était l’écriture d’un script me
permettant de loger une icône dans le systray. L’occasion était trop
belle, j’ai donc attrapé mon navigateur et je me suis renseigné sur
pygtk.
Le résultat est téléchargeable sous la forme d’une archive tar.gz à dézipper où bon vous semble. Je considère cette première version comme une version de test (que j’utilise cependant quotidiennement). Dès que j’aurai l’assurance d’un début de stabilité, je fournirai également un paquet pour Archlinux. N’étant plus depuis longtemps dans le monde Debian, je ne pourrais pas fournir directement de paquet deb (donc éventuellement pour ubuntu), mais n’hésitez surtout pas à le faire, je place tous mes développements (sauf mention explicite du contraire) sous la belle licence WTF.
L’application actuelle propose les fonctionnalités suivantes :
- Lancement / arrêt d’hubiC (l’icône est en effet conçue pour vivre indépendemment du processus hubiC principal).
- Basculement de l’état en pause d’hubiC. Ce basculement est également automatisé dans le cas d’une perte de connectivité, pourvu que vous utilisiez NetworkManager.
- Affichage en temps réel de notification sur le bureau des activités d’hubiC.
- Affichage pour mémoire des derniers messages d’activité d’hubiC pour la session en cours dans un sous menu. Si le message concerne un dossier, un clic sur le message ouvre le dossier en question et s’il concerne un fichier, le dossier parent est ouvert (dépendance à xdg-open)
- L’icône en elle-même s’anime lorsqu’hubiC est occupé et affiche une erreur lorsqu’hubiC est en pause, arrêté ou dans un état chelou (autre qu’occupé ou disponible en fait).
Parmi les fonctionnalités que je ne souhaite PAS développer, car ne répondant pas (à mon avis) à la problématique de monitoring, il y a toutes les fonctionnalités liées au premier lancement d’hubiC (appariement d’un compte, création d’un compte ou que sais-je), aux opérations de login/logout ou de publication de fichiers / répertoires. Pour cela je considère que le client en ligne de commande est largement suffisant. Mais tout peut-être négociable 😉
Parmi les évolutions d’ores et déjà envisagées, par contre, vous pouvez trouver :
- une refonte de la boucle principale de suivi de l’activité. Même si je ne lance plus de « hubic status » suivi d’un sed mais utilise plutôt l’interface dbus faite pour ça… je continue tout de même à tester la valeur d’une propriété toutes les cinq secondes, ce que je trouve un rien pas élégant. Je vais donc réfléchir à un petit algo plus mignon cherchant à minimiser le nombre de requête effectué sur l’interface dbus.
- la sauvegarde de la préférence d’affichage ou non des notifications. Il s’agit pour l’instant d’une simple variable qui se perd à la clôture du programme. Même si j’ai découvert depuis un moment par ailleurs comment gérer facilement les préférences en python, je trouvais un peu overkill d’avoir un fichier de pref en plus « juste pour ça ». Mais…
- comme je pense proposer également la personnalisation de l’application permettant d’ouvrir les dossiers depuis la liste des activités (en remplacement d’xdg-open), ça peut faire sens de gérer un fichier de config.
- Enfin, comme j’utilise moi-même ce système et afin de proposer une vraie originalité à ma petite icône de statut, j’envisage d’y adjoindre la possibilité de gérer la création / montage / démontage de répertoire encfs synchronisé via hubiC.
Voili voilou. Comme d’habitude, tous les commentaires / applaudissements / insultes sont les bienvenus.