1 Qu'est-ce qu'adesklets ?
1.1 Réponse courte
`adesklets' est une console interactive d'Imlib2 pour le X Window
System. Il permet à des langages de script d'écrire
de manière propre et simple des applets graphiques
intégrés au bureau (i.e. "desklets") de belle
apparence et légèrement interactifs.
Il peut aussi être utilisé comme un
éditeur graphique en ligne de commande, un peu comme
ImageMagick , mais avec
des fonctionnalités différentes.
1.2 Réponse longue
adesklets signifie
"another desklets [container]" (littéralement: un autre
[conteneur] de desklets). Il a été écrit
comme une alternative à d'autres programmes tels que:
- GNOME gDesklets (http://gdesklets.org/)
- KDE SuperKaramba (http://netdragon.sourceforge.net/).
- GKrellM (http://www.gkrellm.net/)
Puisque ce projet s'appelle 'a'desklets, il est encore
possible, pour commencer des projets semblables, d'utiliser
l'espace de 'b' à 'z' desklets, à l'exception de
'g' desklets, qui est déjà pris.
Plus sérieusement, tous ces programmes sont bons.
Néanmoins, les deux premiers ont des pré-requis
très lourds en termes de dépendances de
bibliothèques; de base gDesklets requiert que le bureau
GNOME soit entièrement installé (plus quelques
bibliothèques spécialisées telles que
gnome-python), tandis que SuperKaramba a besoin de toutes les
bibliothèques de KDE ainsi que de l'environnement de base.
Ceci se répercute sur l'exécution des autres
taches1. D'autre part, alors que GkrellM est
plus léger (bien qu'il dépende toujours de GTK+),
il ne fournit pas la même qualité en terme de
"présentation" (selon les goûts de l'auteur,
naturellement) ou de " scriptabilité " par rapport aux
deux autres.
De ce constat est né adesklets. Il fournit:
- un cadre minimal, fiable pour des desklets X Window
totalement intégrés dans le bureau, avec quelques
facilités pour gérer leur lancement, leur
placement et leur arrêt.
- une API de dessin générique, riche et facile
d'emploi semblable à celle de gDesklets et de
SuperKaramba concernant sa qualité visuelle, grâce
à la bibliothèque Imlib2.
- des dépendances de bibliothèques simples, se
résumant surtout à l'utilisation de la
très bonne (et rapide) bibliothèque Imlib2 pour
toutes les opérations graphiques. Aucune boite à
outils de fenêtres n'est utilisée: le programme
repose directement sur xlib.
- un interpréteur petit, léger, robuste et
portable potentiellement utilisable avec toutes sortes de
langages de scripts, grâce à une syntaxe propre,
limitée et homogène. Dans cette version 0.6.1,
Python et Perl sont directement supportés. Le support de
Ruby serait également possible, n'hésitez pas
à contribuer afin que votre langage
préféré soit supporté (See Extension
d'adesklets.)!
- un usage minimal de l'espace disque, de la mémoire
vive et du processeur. Typiquement, avec la glibc-2.3.4 et le
noyau Linux 2.6 sur une architecture x86, l'unique
exécutable représente moins de 130 Ko sur le
disque et prend moins de 3Mo de mémoire virtuelle par
desklet, juste après son lancement. Lorsque le desklet
est lancé, au repos il n'utilise quasiment aucun cycle
processeur (même en prenant en compte le script Python);
dans la plupart des cas c'est même legèrement
moins avec un script Perl.
Il ne fournit PAS:
- une API de fenêtre sophistiquée, ni même
un accès aux widgets en dehors de menus gris nus et
laids: vous ne pouvez clairement pas écrire une
interface graphique (GUI), seulement des desklets.
- de mécanismes compliqués pour la
configuration des scripts. Les développeurs de scripts
sont libres (ou condamnés, selon la façon de voir
les choses) de faire ce qui leur convient, bien que pour Python
des routines par défaut soient disponibles pour les
aider.
- un support pour tout ce qui n'est pas entièrement
compatible avec un système POSIX. Par exemple, il serait
vraiment surprenant d'arriver à le compiler sur
Cygwin.
- une gestion poussée des évènements
utilisateurs. Le but d'adesklets est d'être fiable et
frugal; seuls quelques événements -
essentiellement relatifs au pointeur - sont utilisables via son
API. Ne réclamez pas le support des
évènements claviers ou l'intégration de
boites à outils – cela va à l'encontre des
objectifs du projet.