Journal Pipemenu pour Openbox pour écouter sa musique avec Audacious

Posté par (page perso) . Licence CC by-sa
Tags :
14
8
fév.
2013

Openbox, à l'origine simple gestionnaire de fenêtres, supporte de nombreuses fonctionnalités comme des menus dynamiques accessibles d'un simple clic droit sur le bureau. Il suffit ainsi d'y ajouter une barre des tâches comme tint2 et un gestionnaire de fond d'écran comme nitrogen pour en faire un environnement de bureau tout à fait présentable, alliant légèreté et rapidité.

Openbox n'utilise que 3 fichiers de configuration, situés dans ~/.config/openbox : autostart.sh, rc.xml et menu.xml. C'est dans ce dernier que l'on peut insérer ces menus dynamiques, appelés aussi pipemenus car ils fournissent sur la sortie standard un résultat (au format xml) récupéré par OpenBox tout comme la sortie d'un pipe dans une commande shell.

L'intérêt, vous l'aurez compris, est qu'il est très facile de réaliser un petit script (bash, perl, python….) qui créera un menu personnalisé tout en étant dynamique (c.a.d. régénéré en permanence pour tenir compte des modifications de son environnement). De plus il est aisé d'étudier et de modifier un script existant pour l'adapter à son besoin.

C'est donc ce que j'ai fait récemment, en reprenant dirlist.pl, un script en perl de Dave Foster, pour en faire un menu permettant de naviguer dans son arborescence et jouer avec Audacious (ou ajouter à la liste de lecture en cours), un répertoire ou un fichier audio.

Sans plus tarder la traditionnelle capture d'écran :

Capture d'écran

J'ai mis dans une archive le script et 3 icônes. Pour l'utiliser il vous faut Perl bien entendu, mais aussi le module MIME::Types (extra/perl-mime-types pour les archers). Le script est en GPLv3. Les instructions d'usage et d'installation sont dans les commentaires du script.

Todo :

  • faire un README et un LISEZMOI si ça intéresse quelqu'un
  • Il est possible d'utiliser le module Linux::DesktopFiles pour récupérer les icônes en accord avec le thème utilisateur, mais je ne sais pas si cela en vaut la peine et dans quelle mesure cela alourdirait le script.
  • J'en ferai bien une version gtk ce qui me permettrait d'enrichir ma collection d'applets pour tint2
  • # Capture d'écran

    Posté par (page perso) . Évalué à 0.

    Je ne sais pas pourquoi, j'ai sans doute m….r, pas de capture d'écran dans le journal.

    La voici!
    Capture

    • [^] # Re: Capture d'écran

      Posté par . Évalué à 2.

      J'ai régulièrement ce souci car les images sont sur le domaine "img.linuxfr.org".
      Si tu surfes en https, comme l'autorité de certification du domaine, CAcert, n'est pas connu du navigateur, il y a une alerte de sécurité.
      Cela fonction pour une page HTML mais pas pour une image, donc cela fonctionne pour le www mais pas pour le img.
      La solution est d'ajouter l'autorité de certification à celles du navigateur. Cela supprimera les alertes de sécurité.
      (cela ne marche pas pour moi car mon client a un proxy ssl "man in the middle" #~*ù$!!)

  • # tempo

    Posté par (page perso) . Évalué à 2.

    al di meola / mc laughlin / lucia :

    il va falloir ajouter une option "lire la piste en plus lent sinon j'entends pas toutes les notes"

    • [^] # Re: tempo

      Posté par (page perso) . Évalué à 0.

      T'as pas tort, c'est l'album live de 1980 Friday Night In San Francisco, et ça commence gentiment par Mediterranean Sundance.

  • # Petite question

    Posté par . Évalué à 2.

    Salut,

    Merci pour ce petit journal, voilà une idée qui me plaît beaucoup. :)
    Il y a juste une question qui me taraude concernant ton menu : visiblement, tu as une entrée « jouer avec Audacious » et une autre « Ajouter à la liste de lecture ». Or, jusqu'à présent, j'ai toujours rédigé des entrées de ce type :

    <item label="label">
        <action name="Execute">
            <command>Commande</command>
        </action>
    </item>
    
    

    Ce qui implique que l'action à déclencher est prévue à l'avance.
    Comment fais-tu pour choisir l'action à exécuter via le menu ?

    • [^] # Re: Petite question

      Posté par (page perso) . Évalué à 3. Dernière modification le 08/02/13 à 19:12.

      Heu… j'ai peur de ne pas comprendre la question. Ce sont juste deux options de menu différentes, qui se rapportent au fichier (ou au répertoire) en cours.

      Dans la capture d'écran la souris vient de se positionner sur un répertoire qui s'appelle "Selection". Le menu qui s'ouvre sur sa droite le concerne donc. Sa structure est :

      • <separator label="Nom du répertoire" />
      • <item label="Jouer avec Audacious"><action name="Execute"><execute>"audacious /chemin/du/répertoire"</execute></action></item>
      • <item label="Ajouter à la liste de lecture"><action name="Execute"><execute>"audacious -e /chemin/du/répertoire"</execute></action></item>
      • <separator/>

      puis vient la liste des répertoires
      <menu id="nom_du_répertoire" label="Nom du répertoire" execute="perl $0 /Chemin/du/répertoire" />
      $0 = chemin du script lui-même (obpwa) qui s'appelle donc recursivement

      S'il y a des fichiers seuls sont retenus ceux de type mime audio/* et ils seront présentés après les répertoires, séparés de ceux-ci par un <separator/>, mais selon le même principe. À savoir un menu offrant la possibilité de jouer ou d'ajouter.

      Ceci dit j'ai mis un lien avec le script, tu peux l'analyser. S'il y a des choses que tu ne comprends pas il y a mon jabber dans ma signature.

      • [^] # Re: Petite question

        Posté par . Évalué à 1.

        Heu… j'ai peur de ne pas comprendre la question. Ce sont juste deux options de menu différentes, qui se rapportent au fichier (ou au répertoire) en cours.

        Ah, ok, au temps pour moi, j'ai mal interprété la capture d'écran.
        M'enfin, l'idée n'en reste pas moins intéressante, encore merci. ;)

  • # Est-ce qu'il existe un dépôt des pipemenus ?

    Posté par (page perso) . Évalué à 2.

    Joli script.

    J'ai fait moi aussi des pipemenus openbox et je me demandais s'il y avait un dépôt un peu mieux que le wiki openbox. D'une part parce que c'est difficile de choisir le bon pipemenu quand il en existe un (j'ai préféré programmer moi-même un menu des applications personnelles en .desktop plutôt que d'essayer les divers xdg application menus). D'autre part parce que je veux plutôt voir le code que télécharger un tarball et éventuellement contribuer des modifs.

    Un dossier avec droits ouverts sur le dépôt git d'openbox ou ailleurs pourrait être sympa.

  • # les gouts et les couleurs

    Posté par (page perso) . Évalué à 1.

    Je pertinente, juste pour Afrocubism et Ali Faka Touré ;-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.