filyb.info

mercredi 3 janvier 2007

gmmkeys 0.2 : touches multimédia de Gnome dans Amarok

Je vous avais déjà parlé d'un plugin Amarok pour que ce dernier gère les touches multimédia de Gnome, et j'en avais publié un prototype.

Désormais, le code a été poli, le script correctement empaqueté, et publié sur kde-apps.org est disponible en version 0.2.

Si vous souhaitez le télécharger, l'archive est ici : gmmkeys.amarokscript.tar.bz2, mais le plus simple reste encore de le récupérer directement via Amarok (Outils > Gestionnaire de scripts > Obtenir plus de scripts).

Comme le prototype, ce plugin utilise un module binaire mmkeys.so provenant de Exaile. Mon archive propose le module compilé pour i386, pour les autres architectures, vous pouvez utiliser les modules compilés pour le projet Exaile, ou le compiler à l'aide du code source présent dans celui d'Exaile.

mercredi 27 septembre 2006

Touches multimédia pour Amarok sous Gnome

Imaginez que vous venez de passer sous Gnome, mais que vous ne pouvez pas vous passer du lecteur de musique Amarok, car ni Listen, ni Exaile ne font le poids.

Mais contrairement à ces deux derniers, Amarok n'est pas capable d'être affecté par les raccourcis clavier Gnome concernant les lecteurs de médias (Lecture, Pause, etc.). Et - bien sûr - vous avez un clavier avec des touches multimédia, parfaitement gérées par Gnome. Et vous aimeriez que cela fonctionne aussi avec Amarok... Il existe sûrement des solutions consistant à aller récupérer quelque part les codes de ces fameuses touches, et charger un programme au démarrage de la session pour lancer une commande lors de la pression de ces touches - mais pourquoi ne pas plutôt intégrer Amarok dans Gnome en le faisant réagir aux raccourcis de Gnome ?

Pour faire cela, je suis allé fouiner dans le code source d'Exaile, qui est écris en Python. Celui-ci utilise un module python écris en C, nommé mmkeys, qui permet de connecter des fonctions pythons aux raccourcis clavier de Gnome. J'ai donc écris un script Amarok en Python utilisant ce module. Voici la procédure d'installation :

  1. Vous devez installer en premier les programmes suivants : Amarok, Python et PyGTK (paquet python-gtk2 sous Ubuntu). Vous devez aussi avoir dans un coin le fichier mmkeys.so. La façon la plus simple est d'installer Exaile, mon script l'utilise depuis l'installation d'Exaile. Vous pouvez aussi chercher ses sources dans l'archive d'Exaile, et le compiler vous-même (dans ce cas n'oubliez pas de changer le dossier dans le script).
  2. Vérifiez l'existence du dossier des scripts d'Amarok : mkdir ~/.kde/share/apps/amarok/scripts
  3. Téléchargez le script gnomemm.py :

    #! /usr/bin/python
    
    # Path for searching mmkeys
    import sys
    sys.path.append('/usr/share/exaile')
    # Import others modules
    import signal
    import os
    import mmkeys
    import gtk
    
    # amarok mm functions
    def previous(a, b):
        """Go to the amarok previous track"""
        print "prev"
        os.system("dcop amarok player prev")
        
    def next(a, b):
        """Go to the amarok next track"""
        print "next"
        os.system("dcop amarok player next")
        
    def stop(a, b):
        """Stop amarok"""
        print "stop"
        os.system("dcop amarok player stop")
    
    def playpause(a, b):
        """Play or pause amarok"""
        print "play/pause"
        os.system("dcop amarok player playPause")
    
    # misc functions
    def end(signum, frame):
        print 'Script was terminated.'
        sys.exit()
    
    # connect gnome mmkeys to functions
    keys = mmkeys.MmKeys()
    keys.connect("mm_prev", previous)
    keys.connect("mm_next", next)
    keys.connect("mm_stop", stop)
    keys.connect("mm_playpause", playpause)
     
    signal.signal(signal.SIGTERM, end)
    
    gtk.main()
    

    Par exemple par la commande : wget http://filyb.info/prog/sh/gnomemm.py.txt && mv gnomemm.py.txt gnomemm.py

  4. Copiez ce script dans le dossier des scripts d'Amarok : cp gnomemm.py ~/.kde/share/apps/amarok/scripts
  5. Rendez exécutable ce script : chmod +x ~/.kde/share/apps/amarok/scripts/gnomemm.py
  6. Lancez Amarok, allez dans Outils > Gestionnaire de scripts, et lancez gnomemm.
  7. Testez !

Si j'ai le temps et le courrage, je ferai un joli package incluant le fichier mmkey.so, installable dans Amarok depuis internet, tout ça...

vendredi 22 septembre 2006

Notification d'emails pour les utilisateurs de Mozilla Thunderbird, Gnome et d'un ASUS Z92J

Bon, d'accord, ce billet ne s'adresse pas à grand monde... S'il vous est utile, dites-le dans les commentaires, que j'ai l'impression de ne pas l'avoir écrit pour rien (d'un autre côté, mes stats vont très bien, merci pour elles, donc je peux me permettre d'écrire des billets plus pour ma pomme en cas de reformattage que pour the reste of the world).

Donc imaginons que vous utilisez Mozilla Thunderbird sous Linux, avec Gnome (ça marchera aussi sous un autre bureau, mais en utilisant les notification de Gnome, et non celles de, par exemple, KDE), et un ASUS Z92J (peut-être que ça marche aussi avec un autre portable ASUS, je n'en sais rien). Ce que vous voulez : à l'arrivée d'un mail, qu'un petit son vous prévienne, qu'un message affiche le sujet et l'expéditeur du mail, et qu'enfin (très important), la diode correspondante de l'ordinateur s'allume.

Le problème de cette diode est que j'ai bien trouvé des notificateurs d'arrivée des messages, mais aucun pour l'évènement plus de messages non lu pour éteindre la diode. J'ai donc décidé de laisser la diode allumée une minute, avec une temporisation.

Après la théorie, la technique :

  1. Installez l'extension pour Mozilla Thunderbird permettant les notifications : Yamb (dont j'avais déjà parlé).
  2. Installez notify-send, la commande pour lancer des notifications Gnome. Elle correspond au paquet libnotify-bin sous Ubuntu.
  3. Téléchargez le script suivant :

    #!/bin/sh
     
    #############################################################################
    # Mail notification for thunderbird and yamb, using the gnome notifier system
    #############################################################################
     
    subject="$1"
    sender="$2"
    recipients="$3"
    size="$4"
    folder="$5"
    accountType="$6" #(movemail, pop3, imap, nntp, rss)
    accountName="$7"
    body="$8"
    
    # Show notify (using notify-send)
    notify-send "Courriel de $sender" $subject
    
    # Play sound (vous pouvez utiliser un autre son)
    aplay "/usr/share/sounds/pop.wav"
    
    # Switch on the ASUS led for one minute (60 second)
    echo 1 > /proc/acpi/asus/mled
    # Vous pouvez changer la durée d'affichage de la DEL en secondes :
    sleep 60
    echo 0 > /proc/acpi/asus/mled
    

    Vous pouvez, par exemple, utiliser la commande wget http://filyb.info/prog/sh/mail-notify

  4. Copiez ce script dans votre path, par exemple sudo cp mail-notify /usr/bin
  5. Rendez-le exécutable : sudo chmod a+x /usr/bin/mail-notify
  6. Dans Mozilla Thunderbird, rendez-vous dans les préférences de Yamb, et entrez le chemin du script, ici /usr/bin/mail-notify (Vous pouvez aussi en profiter pour désactiver la seconde comme interval pour ne passurcharger votre server mail.)
  7. Appréciez.

Voilà, si vous avez des idées d'améliorations, n'hésitez pas !

mercredi 6 septembre 2006

En vrac

samedi 1 avril 2006

Le projet KDE pourrait utiliser le toolkit GTK+

Logo de KDE

La rumeure s'est répandue à la suite d'un discours tenu sur IRC entre les principaux développeurs du projet KDE. Confirmée par mail par Matthias Ettrich, le fondateur du projet KDE, la nouvelle pourrait être annoncée officiellement dans les heures qui viennent.

Nous avons décidé de changer de toolkit graphique pour la prochaine version de KDE, KDE 4, dont le développement est en cours. Notre toolkit actuel, Qt, édité par Trolltech nous pose de nombreux problèmes : plébicités par trop d'utilisateurs, nous avons des retours négatifs, notament au niveau des effets graphiques.

Depuis que nous avons lancé le chantier de KDE 4, nous avons lancé une grande concertation de toute notre communauté. Celle-ci a abouti aux conclusions suivantes : KDE est trop compliqué, et trop superficiel. Un grand nombre de changements applicatif ont été votés, comme la réduction drastique des options du centre de contrôl ou l'abandon des kparts dans Konqueror. Mais nous le sentions bien, il s'agissait d'un problème de fond.

C'est pourquoi, nous avons décidé d'opter pour l'utilisation du toolkit graphique GTK+, qui a de nombreux atouts : écrit en C, un langage que nous apprécions tous, il fait parti du projet GNU, contrairement à Qt, développé par Trolltech. Ses fonctions graphiques sont largement supérieures à celles de Qt, je pense notament au fait que les menus sont opaques, la transparence de ceux de Qt gênait certains utilisateurs.

Afin de faciliter le portage des programmes construits pour KDE 3 vers KDE 4, nous avons lancé le développement d'un toolkit de transition, nommé Qtk+, qui s'installera à la place de Qt, et utilisera GTK. Bien sûr, cela entraînera des pertes de performances, mais nous avons bien du retard sur ce point par rapport à Microsoft Windows Vista, qui devrait sortir a peu près en même temps que KDE 4. Il s'agit pour nous tenir ce challenge, celui des postes bureautiques sous linux !

Comme on le remarquera, Matthias Ettrich s'est abstenu de faire une allusion au projet GNOME, interface de bureau que certains disent concurrente à KDE. Cela pour ne pas lancer un Troll, bien que l'on se doute que cette décision va enterrer le projet GNOME, son seul atout étant bien sûr l'utilisation de GTK.

- page 1 de 2