Page 1 sur 2

[openbox]pipemenus(Résolu)

Publié : ven. 08 nov. 2013, 18:52
par Kristen
Bonjour
Je n'arrive pas à faire fonctionner certains pipemenus, par exemple celui-ci

Code : Tout sélectionner

 #!/bin/sh
 #
 # date-menu.sh
 #
 # This is in the public domain.  Honestly, how can you claim anything to something
 # this simple?
 #
 # Outputs a simple openbox pipe menu to display the date, time, and calendar.
 # You need 'date' and 'cal'.  You should have these.  Additionally, the calendar
 # only appears properly formated if you use a mono spaced font.
 
 # Outputs the selected row from the calender output.
 # If you don't use a mono spaced font, you would have to play with spacing here.
 # It would probably involve a very complicated mess.  Is there a way to force a
 # different font per menu?
 function calRow() {
   cal | gawk -v row=$1 '{ if (NR==row) { print $0 } }'
 }
 
 # Build the menu
 cat << EOFMENU
 <openbox_pipe_menu>
   <separator label="`date +%A\ \ \ \ \ \ \ \ \ \ \ \ %I\:%M\ %p`" />
   <item label="`date +%B\ %d,\ %Y`" />
   <separator />
   <item label="`calRow 2`" />
   <item label="`calRow 3`" />
   <item label="`calRow 4`" />
   <item label="`calRow 5`" />
   <item label="`calRow 6`" />
   <item label="`calRow 7`" />
   <item label="`calRow 8`" />
 </openbox_pipe_menu>
 EOFMENU
J'ai bien mis le fichier date-menu.sh dans ~/.config/openbox/scripts/ et je l'ai bien passé en exécutable. Pourtant, ça me donne:

Code : Tout sélectionner

sortie du pipe-menu invalide
C'est pareil avec d'autres scripts mais ça fonctionne avec d'autres.

Re: [openbox]pipemenus

Publié : ven. 08 nov. 2013, 21:46
par FoolEcho
Salut,

Il ne fonctionne pas quand tu le lances manuellement ? :|

Re: [openbox]pipemenus

Publié : sam. 09 nov. 2013, 06:22
par Kristen
Lancé dans un terminal, ça me donne :

Code : Tout sélectionner

$ sh date-menu.sh 
date-menu.sh: ligne34: avertissement :« here-document » à la ligne 21 délimité par la fin du fichier (au lieu de « EOFMENU »)
 <openbox_pipe_menu>
   <separator label="samedi            06:20 " />
   <item label="novembre 09, 2013" />
   <separator />
   <item label="lu ma me je ve sa di" />
   <item label="             1  2  3 " />
   <item label=" 4  5  6  7  8  9 10 " />
   <item label="11 12 13 14 15 16 17 " />
   <item label="18 19 20 21 22 23 24 " />
   <item label="25 26 27 28 29 30    " />
   <item label="                     " />
 </openbox_pipe_menu>
 EOFMENU

Re: [openbox]pipemenus

Publié : sam. 09 nov. 2013, 14:29
par vintherine
Tout va très bien chez moi. J'ai enregistré le fichier indiqué, fait un chmod +x et rajouté

Code : Tout sélectionner

<menu execute="~/.config/openbox/pipemenus/datemenu.sh" id="date" label="Date"/>
dans mon menu.xml juste avant le dernier </menu>. Et ça marche nickel.

Re: [openbox]pipemenus

Publié : sam. 09 nov. 2013, 17:18
par Kristen
Je ne comprends pas alors. Je viens de réessayer en remettant la configuration d'origine de openbox en supprimant ~/.config/openbox puis

Code : Tout sélectionner

cp /etc/xdg/openbox/* ~/.config/openbox
et c'est toujours pareil! ?

Re: [openbox]pipemenus

Publié : sam. 09 nov. 2013, 20:06
par vintherine
Euh... je ne suis pas sûr de comprendre ce que tu veux dire.

Si par hasard c'est : je mets mes scripts dans un répertoire donné et j'attends que ça marche tout seul avec la config d'origine, ben c'est pas ça. N'y vois pas d’offense. Fait voir ton .config/openbox/menu.xml

Re: [openbox]pipemenus

Publié : sam. 09 nov. 2013, 23:28
par Kristen
Ouais, je me suis mal exprimé. Je voulais dire que j'ai repris la configuration par défaut à laquelle j'ai ajouté

Code : Tout sélectionner

<menu execute="~/.config/openbox/scripts/date-menu.sh" id="date" label="Date"/>
dans le menu.xml et fais un chmod +x dessus sans que ça ne change rien. Je précise qu'un autre script openbox pour avoir les infos du système fonctionne bien.

Re: [openbox]pipemenus

Publié : sam. 09 nov. 2013, 23:38
par vintherine
Bon, ben ça me dit pas plus. Fait le voir ton menu :copain:

Re: [openbox]pipemenus

Publié : dim. 10 nov. 2013, 09:10
par Kristen
le menu.xml http://pastebin.archlinux.fr/474618
le date-menu.sh

Code : Tout sélectionner

 #!/bin/sh
 #
 # date-menu.sh
 #
 # This is in the public domain.  Honestly, how can you claim anything to something
 # this simple?
 #
 # Outputs a simple openbox pipe menu to display the date, time, and calendar.
 # You need 'date' and 'cal'.  You should have these.  Additionally, the calendar
 # only appears properly formated if you use a mono spaced font.
 
 # Outputs the selected row from the calender output.
 # If you don't use a mono spaced font, you would have to play with spacing here.
 # It would probably involve a very complicated mess.  Is there a way to force a
 # different font per menu?
 function calRow() {
   cal | gawk -v row=$1 '{ if (NR==row) { print $0 } }'
 }
 
 # Build the menu
 cat << EOFMENU
 <openbox_pipe_menu>
   <separator label="`date +%A\ \ \ \ \ \ \ \ \ \ \ \ %I\:%M\ %p`" />
   <item label="`date +%B\ %d,\ %Y`" />
   <separator />
   <item label="`calRow 2`" />
   <item label="`calRow 3`" />
   <item label="`calRow 4`" />
   <item label="`calRow 5`" />
   <item label="`calRow 6`" />
   <item label="`calRow 7`" />
   <item label="`calRow 8`" />
 </openbox_pipe_menu>
 EOFMENU

Re: [openbox]pipemenus

Publié : dim. 10 nov. 2013, 09:21
par FoolEcho

Code : Tout sélectionner

-->     </menu>
Tu as une fin de commentaire qui traîne dans ton menu.xml, ligne 182 (et aucun début auparavant).

Re: [openbox]pipemenus

Publié : dim. 10 nov. 2013, 09:23
par Kristen
oupss reste un commentaire que j'ai supprimé. C'est enlevé mais c'est toujours pareil.

Re: [openbox]pipemenus

Publié : dim. 10 nov. 2013, 11:41
par vintherine
tu as 2 < au lieu d'1 ligne 585

Code : Tout sélectionner

                <<menu id="pipe-weather" label="Météo" execute="python2 ~/.config/openbox/scripts/yweather.py FRXX5439 Celsius" />
un fois ceci rectifié ça fonctionne chez moi.

Re: [openbox]pipemenus

Publié : dim. 10 nov. 2013, 12:01
par Kristen
OK erreur rectifiée mais ça ne marche toujours pas :(

Re: [openbox]pipemenus

Publié : dim. 10 nov. 2013, 12:15
par vintherine
bon, reprenons :

1) tu utilises exactement le menu que tu nous a passé, rectifié des 2 erreurs signalées ?
2) le chemin vers le script est correct et le script lui-même est exécutable ?

Si tout ça est correct il n'y a aucune raison que ça ne fonctionne pas. Revérifie tout.

le message d'erreur est fichier non trouvé, c'est ça ? C'est le message que j'avais avant d'enlever le < excédentaire.

Tu peux aussi essayer avec un menu minimaliste

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8"?>
<openbox_menu xmlns="http://openbox.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://openbox.org/                 file:///usr/share/openbox/menu.xsd">
	<menu id="root-menu" label="Openbox 3.5">
                <menu execute="~/.config/openbox/scripts/date-menu.sh" id="date" label="Date"/>
	</menu>
</openbox_menu>
si ~/.config/openbox/scripts/date-menu.sh existe et est exécutable ça doit marcher.

PS Tu n'oublies pas la commande

Code : Tout sélectionner

openbox --reconfigure
après chaque modif ?

Re: [openbox]pipemenus

Publié : dim. 10 nov. 2013, 14:00
par Kristen
vintherine a écrit :bon, reprenons :

1) tu utilises exactement le menu que tu nous a passé, rectifié des 2 erreurs signalées ?
oui c'est bien ceux-la
vintherine a écrit :2) le chemin vers le script est correct et le script lui-même est exécutable ?
oui
vintherine a écrit :Si tout ça est correct il n'y a aucune raison que ça ne fonctionne pas. Revérifie tout.
tout est revérifié et pourtant ça ne fonctionne pas :(
vintherine a écrit :le message d'erreur est fichier non trouvé, c'est ça ? C'est le message que j'avais avant d'enlever le < excédentaire.
Le message d'erreur est

Code : Tout sélectionner

Sortie du pipe-menu invalide "/home/christian/.config/openbox/script/date-menu.sh
vintherine a écrit :Tu peux aussi essayer avec un menu minimaliste

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8"?>
<openbox_menu xmlns="http://openbox.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://openbox.org/                 file:///usr/share/openbox/menu.xsd">
	<menu id="root-menu" label="Openbox 3.5">
                <menu execute="~/.config/openbox/scripts/date-menu.sh" id="date" label="Date"/>
	</menu>
</openbox_menu>
si ~/.config/openbox/scripts/date-menu.sh existe et est exécutable ça doit marcher.
Pas de changement
vintherine a écrit :PS Tu n'oublies pas la commande

Code : Tout sélectionner

openbox --reconfigure
je fais bien cette commande à chaque fois.
après chaque modif ?
c'est fait à chaque fois.

Re: [openbox]pipemenus

Publié : dim. 10 nov. 2013, 14:25
par benjarobin
Quelle est la sortie de /home/christian/.config/openbox/script/date-menu.sh
Tape juste ceci dans un terminal, je ne veux pas le contenu du fichier mais la sortie de cette commande

Re: [openbox]pipemenus

Publié : dim. 10 nov. 2013, 14:46
par Kristen
OK les gars, j'ai trouvé l'erreur. Elle venait de mon date-menu.sh. Je l'ai créé en allant sur la page http://openbox.org/wiki/Openbox:Pipemenus:Date_Menu Là, j'ai sélectionné tout le texte puis copier coller dans mon date-menu.sh et ça ne fonctionnait pas. Le problème est que ce copier/coller m'a laissé un espace en début de chaque ligne. En supprimant cet espace, plus de problème.
Désolé pour le dérangement et merci pour tout.
Erreur stupide :bouletdujour:

Re: [openbox]pipemenus

Publié : dim. 10 nov. 2013, 14:53
par benjarobin
:resolu:

Re: [openbox]pipemenus

Publié : dim. 10 nov. 2013, 14:57
par Kristen
Maintenant, j'au un autre soucis. Tout est décalé
Image
J'ai encore déraillé?
Mon date-menu.sh corrigé

Code : Tout sélectionner

#!/bin/sh
#
# date-menu.sh
#
# This is in the public domain.  Honestly, how can you claim anything to something
# this simple?
#
# Outputs a simple openbox pipe menu to display the date, time, and calendar.
# You need 'date' and 'cal'.  You should have these.  Additionally, the calendar
# only appears properly formated if you use a mono spaced font.

# Outputs the selected row from the calender output.
# If you don't use a mono spaced font, you would have to play with spacing here.
# It would probably involve a very complicated mess.  Is there a way to force a
# different font per menu?
function calRow() {
  cal | gawk -v row=$1 '{ if (NR==row) { print $0 } }'
}

# Build the menu
cat << EOFMENU
<openbox_pipe_menu>
  <separator label="`date +%A\ \ \ \ \ \ \ \ \ \ \ \ %I\:%M\ %p`" />
  <item label="`date +%B\ %d,\ %Y`" />
  <separator />
  <item label="`calRow 2`" />
  <item label="`calRow 3`" />
  <item label="`calRow 4`" />
  <item label="`calRow 5`" />
  <item label="`calRow 6`" />
  <item label="`calRow 7`" />
  <item label="`calRow 8`" />
</openbox_pipe_menu>
EOFMENU
@benjarobin bientôt ... j'espère!

Re: [openbox]pipemenus

Publié : dim. 10 nov. 2013, 15:35
par Kristen
Dans les explications sur le pipemenu, il est indiqué

Code : Tout sélectionner

# If you don't use a mono spaced font, you would have to play with spacing here.
# It would probably involve a very complicated mess.  Is there a way to force a
# different font per menu??
Si je comprends la traduction google, il me faut utiliser une police mono. Question, comment fait-on?