TIP gmail-notify

Un article de Gentoo Linux Wiki.

Sommaire

[modifier] Introduction

Comme toujours, sous Gentoo nous avons la possibilité de choisir l'applet que nous utiliserons pour la notification des courriels pour Gmail. Sous Kde il y a Kcheckgmail, sous Gnome il y a CheckGmail (non trouvé dans l'arbre portage au 23/07/07, date de rédaction de l'article), et sous XFCE nous avons xfce4-mailwatch-plugin (emerge xfce4-mailwatch). Ceci ne répondant pas tout à fait à mes attentes, j'ai voulu installer (sous XFCE4.4 donc), Gmail-notify, programme à la base de Gmail-notifier, si connu sous Firefox ou sous Windows. Cet article explique donc la démarche que j'ai suivi. Vous pouvez d'ailleurs retrouver cette dernière sur le Wiki de Gentoo en anglais (Cf Chapitre Lien), page dont je me suis fortement appuyé pour rédiger cette version francisée.

[modifier] Construction du paquet

Gmail-notify n'étant pas présent dans l'arborescence de portage, nous allons construire un Ebuild à cet effet. Dirigez vous dans le répertoire consacré aux paquets de portage, puis créez les dossiers appropriés à notre paquet :

cd /usr/portage/
mkdir -p net-mail/gmail-notify
cd net-mail/gmail-notify
mkdir files
touch gmail-notify-1.6.1-r1.ebuild

Une fois le fichier crée, éditez le à l'aide de votre éditeur de texte préféré, puis incluez le code suivant :

inherit python eutils

DESCRIPTION="Gmail Notifier is a Linux alternative for the notifier program rele
ased by Google"
HOMEPAGE="http://gmail-notify.sourceforge.net"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
LICENSE="GPL-2"

SLOT="0"
KEYWORDS="~x86"
IUSE=""
RESTRICT="strip"

RDEPEND="virtual/python
        >=dev-python/pygtk-2.0
        >=x11-libs/gtk+-2.4"
DEPEND="${RDEPEND}"

S=${WORKDIR}/${PN}

src_compile(){
    epatch ${FILESDIR}/notifier-home.patch
}

src_install() {
        python_version
        INST_DIR=/usr/lib/python${PYVER}/site-packages/${PN}

        #Install docs
        dodoc README notifier.conf.sample

        #Install all python files into site-packages
        insinto ${INST_DIR}
        doins *.py *.jpg *.png langs.xml pytrayicon.so

        #Install a script in /usr/bin
        echo "#!/bin/bash" > gmail-notify
        echo "export NOTIFIER_HOME=${INST_DIR}" >> gmail-notify
        echo "exec /usr/bin/python ${INST_DIR}/notifier.py \"\$1\"" >> gmail-not
ify
        dobin gmail-notify
        #make_wrapper gmail-notify "/usr/bin/python ${INST_DIR}/notifier.py"
}

pkg_postinst() {
        python_version
        python_mod_optimize /usr/lib/python${PYVER}/site-packages/${PN}
        elog "Run gmail-notify to start the program"
        elog ""
        elog "Warning: if you check the 'save username and password' option"
        elog "your password will be stored in plaintext in ~/.notifier.conf"
        elog "with world-readable permissions. If this concerns you, do not"
        elog "check the 'save username and password' option."
}

pkg_postrm() {
        python_version
        python_mod_cleanup /usr/lib/python${PYVER}/site-packages/${PN}
}

Entrez dans le répertoire files précédemment crée, puis ajouter le fichier notifier-home.patch :

cd files
touch notifier-home.patch

Editez ce fichier, et insérez y le code suivant :

diff -ur orig/GmailConfig.py src/GmailConfig.py
--- orig/GmailConfig.py 2005-09-25 20:12:11.000000000 +0300
+++ src/GmailConfig.py  2006-09-18 17:20:07.000000000 +0300
@@ -1,16 +1,20 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
+import sys
+import os
 import pygtk
 pygtk.require('2.0')
-import os
 import gtk
 import ConfigParser
 import gmailatom
 import xmllangs
-import sys
 
-LANGSXML_PATH=sys.path[0]+"/langs.xml"
-ICON_PATH=sys.path[0]+"/gmail-notify-icon.png"
+NOTIFIER_HOME = os.getenv("NOTIFIER_HOME")
+if not NOTIFIER_HOME:
+       print "Environment variable NOTIFIER_HOME not set"
+       sys.exit(1)
+LANGSXML_PATH = NOTIFIER_HOME + "/langs.xml"
+ICON_PATH = NOTIFIER_HOME + "/gmail-notify-icon.png"
 
 class GmailConfigWindow:
 
diff -ur orig/notifier.py src/notifier.py
--- orig/notifier.py    2005-09-25 20:12:11.000000000 +0300
+++ src/notifier.py     2006-09-18 17:20:02.000000000 +0300
@@ -1,13 +1,13 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 # Uploaded by juan_grande 2005/02/24 18:38 UTC
+import sys
+import os
 import pygtk
 pygtk.require('2.0')
 import gtk
 import time
-import os
 import pytrayicon
-import sys
 import warnings
 import ConfigParser
 import xmllangs
@@ -15,9 +15,13 @@
 import GmailPopupMenu
 import gmailatom
 
-BKG_PATH=sys.path[0]+"/background.jpg"
-ICON_PATH=sys.path[0]+"/icon.png"
-ICON2_PATH=sys.path[0]+"/icon2.png"
+NOTIFIER_HOME = os.getenv("NOTIFIER_HOME")
+if not NOTIFIER_HOME:
+       print "Environment variable NOTIFIER_HOME not set"
+       sys.exit(1)
+BKG_PATH = NOTIFIER_HOME + "/background.jpg"
+ICON_PATH = NOTIFIER_HOME + "/icon.png"
+ICON2_PATH = NOTIFIER_HOME + "/icon2.png"
 
 def removetags(text):
        raw=text.split("<b>")

Procédez ensuite à la création de l'ebuild :

ebuild gmail-notify-1.6.1-r1.ebuild digest

Notre paquet est prêt, il ne reste plus qu'à installer le tout !

[modifier] Installation

L'installation, comme tout les logiciels, programmes et librairies de portage, sera très facile. Veuillez toutefois vérifier d'avoir installé Python, mais également le paquet dev-perl/gtk2-trayicon. Si ce n'est pas le cas, faites :

emerge dev-perl/gtk2-trayicon

Par suite installez le paquet gmail-notify :

emerge gmail-notify

Gmail Notify est installé ;-)

[modifier] Configuration

C'est beau est bien d'avoir gmail-notify, mais il ne semble pas trop se lancer lorsque je fais gmail-notufy ... Pas de panique ! Il vous manque simplement la valeur d'une variable. Pour lancer correctement gmail-notify, j'ai du renseigner la variable NOTIFIER_HOME. Ainsi la commande de lancement de notre notificateur est (dans un terminal et sur base python2.4) :

NOTIFIER_HOME="/usr/lib/python2.4/site-packages/gmail-notify/" /usr/lib/python2.4/site-packages/gmail-notify/notifier.py &

Une icône apparait dans la barre des tâches, gmail-notify fonctionne.

[modifier] Faire fonctionner la commande gmail-notify

Pour rendre utilisable la commande gmail-notify, j'ai du éditer le fichier /usr/bin/gmail-notify et le compléter ainsi :

#!/bin/bash
export NOTIFIER_HOME=/usr/lib/python2.4/site-packages/gmail-notify
python "$NOTIFIER_HOME/notifier.py"

Ceci permet ainsi l'utilisation de la commande gmail-notify dans un terminal.

[modifier] Lancer Gmail-notify au démarrage d'XFCE4

Ayant XFCE4 je voulais que Gmail-notify se lance à chaque démarrage de la machine. Etant encore trop peu informé des commandes consoles (n'ait Gentoo que depuis un semaine), voici ma procédure :

  • Clic droit sur le bureau
  • Paramètres > Application démarrées automatiquement
  • Clic sur le bouton ajouter
  • Nom : Gmail Notifier
  • Description : Notification des courriels
  • Commande : gmail-notify
  • Valider

De cette manière nous n'aurons plus à nous occuper de lancer gmail-notify à chaque démarrage.

Note : Cette procédure requiert la lecture de "Faire fonctionner la commande gmail-notify" du document ci présent.

[modifier] Franciser le notifieur

Encore un souci avec gmail-notifier, il n'est pas francisé ! Ainsi il faut compléter le fichier /usr/lib/python2.4/site-packages/gmail-notify/langs.xml et ajouter la langue appropriée (traduction de Blankoworld, à la volée) :

 <lang name="Français">
                <string id="1" >Configuration</string>
                <string id="2" >Identifiant:</string>
                <string id="3" >Adresse navigateur:</string>
                <string id="4" >Langage:</string>
                <string id="5" >Etes vous certain de vouloir quitter Gmail Notifier ?</string>
                <string id="6" >Infos sur les quotas</string>
                <string id="24">%(u)s utilisé, %(t)s total (%(p)s)</string>
                <string id="9" >_Vérifier maintenant</string>
                <string id="10">_Info sur les quotas...</string>
                <string id="11">_Configurer...</string>
                <string id="12">_Quitter</string>
                <string id="13">Connexion en cours...</string>
                <string id="14">Connecté</string>
                <string id="15">La connexion a échoué</string>
                <string id="16">La connexion à votre boîte de récéption Gmail a échoué, tentative de reconnexion</string>
                <string id="17">Nouveau courriel de </string>
                <string id="18">Aucun courriel non lu</string>
                <string id="19">%(u)d message%(s)s non lus</string>
                <string id="20">Connexion en cours...</string>
                <string id="21">Gmail Notifier</string>
                <string id="22">Mot de passe:</string>
                <string id="23">Aller à la boîte de récéption...</string>
                <string id="25">Vérification des courriels échouée, tentative de revérification</string>
                <string id="26">Avancé >></string>
                <string id="27">Position à l'écran (offset horizontal):</string>
                <string id="28">Position à l'écran (offset vertical):</string>
                <string id="29">Délai de l'animation:</string>
                <string id="30">Délai du popup:</string>
                <string id="31">Intervalle de vérification des courriels:</string>
                <string id="32">Conns time span</string>
                <string id="33">Un à plusieurs champs sont manquants</string>
                <string id="34">Sauvegarder l'identifiant et le mot de passe</string>
        </lang>

Je cherche encore à bien traduire l'identifiant 32, à savoir "Conns time span". Si quelqu'un a une idée, je lui serais reconnaissant de l'ajouter ci après.

[modifier] Liens internes

Gmail Notifier sur Gentoo-Wiki (version anglaise)

[modifier] Liens externes

Gmail Notifier

[modifier] Auteur

[modifier] Remerciements

Je remercie l'auteur Antonio pour son astuce sur le site gentoo-wiki.com .