Page 1 sur 1

[openbox] aide pour un pipe

Publié : ven. 31 mars 2017, 10:02
par Kristen
Bonjour
J'ai honteusement pompé un pipe-menu de Slitaz qui donne directement accès à mes dossiers favoris. Pour cela, le scrip récupère les infos du fichier .gtk-bookmarks. Je l'ai modifié pour qu'il utilise plutôt le fichier ~/.config/gtk-3.0/bookmarks
Le soucis est que je me retrouve avec des sigles incompréhensibles.
Image
Voici le script récupéré

Code : Tout sélectionner

#!/bin/sh
#
# Openbox pipe menu to launch PCmanFM using GTK bookmarks.
#

echo '<openbox_pipe_menu>'

# Home
echo '<item label="Home">'
echo '<action name="Execute"><execute>'
echo "pcmanfm ~"
echo '</execute></action></item>'

# ~/Desktop
echo '<item label="Desktop">'
echo '<action name="Execute"><execute>'
echo "pcmanfm ~/Desktop"
echo '</execute></action></item>'

# GTK bookmarks
for dir in `sed 's/[ ][^ ]*$//' ~/.config/gtk-3.0/bookmarks`
do
	echo '<item label="'`basename $dir`'">'
	echo '<action name="Execute"><execute>'
	echo "pcmanfm $dir"
	echo '</execute></action></item>'
done

echo '</openbox_pipe_menu>'
Vous pouvez m'aider pour que tout soit écrit en français ? Merci.
PS je n'y connais absolument rien en programmation et ça ne me tente pas du tout.

Re: [openbox] aide pour un pipe

Publié : ven. 31 mars 2017, 16:47
par Piczel
Aux vues des sorties de ton image, il y a un soucis d'encodage. Regarde si ton fichier est bien en UTF8 (ça serait bizarre que non, mais sait-on jamais).
Sinon le script a une bonne tête, après je ne suis pas expert de bash, et encore moins des RegEx.

Pourrais-tu fournir le fichier où il lit ?

Re: [openbox] aide pour un pipe

Publié : ven. 31 mars 2017, 17:39
par alh54
Je m'y connais très peu en bash et en programmation en général mais tu peux rajouter un motif pour la commande sed pour corriger le é.
Remplace cette ligne

Code : Tout sélectionner

for dir in `sed 's/[ ][^ ]*$//' ~/.config/gtk-3.0/bookmarks`
par celle-là

Code : Tout sélectionner

for dir in `sed -e 's/[ ][^ ]*$// ; s/%C3%A9/é/g ' ~/.config/gtk-3.0/bookmarks`
S'il y a d'autres caractères qui posent souci tu rajoutes d'autres motifs, il ne doit pas y en avoir beaucoup en tous cas.

Re: [openbox] aide pour un pipe

Publié : ven. 31 mars 2017, 20:09
par Kristen
Piczel a écrit : ven. 31 mars 2017, 16:47 Aux vues des sorties de ton image, il y a un soucis d'encodage. Regarde si ton fichier est bien en UTF8 (ça serait bizarre que non, mais sait-on jamais).
Sinon le script a une bonne tête, après je ne suis pas expert de bash, et encore moins des RegEx.

Pourrais-tu fournir le fichier où il lit ?
Tout est bien en UTF8. Pour le fichier, il se trouve dans ~/.config/gtk-3.0/ le fichier bookmarks (c'est le seul)
alh54 a écrit : ven. 31 mars 2017, 17:39 Je m'y connais très peu en bash et en programmation en général mais tu peux rajouter un motif pour la commande sed pour corriger le é.
Remplace cette ligne

Code : Tout sélectionner

for dir in `sed 's/[ ][^ ]*$//' ~/.config/gtk-3.0/bookmarks`
par celle-là

Code : Tout sélectionner

for dir in `sed -e 's/[ ][^ ]*$// ; s/%C3%A9/é/g ' ~/.config/gtk-3.0/bookmarks`
S'il y a d'autres caractères qui posent souci tu rajoutes d'autres motifs, il ne doit pas y en avoir beaucoup en tous cas.
Impeccable ça marche ! Maintenant avec mon fichier bookmarks

Code : Tout sélectionner

file:///home/christian/ownCloud ownCloud
file:///home/christian/ownCloud/Documents Documents
file:///home/christian/ownCloud/Images Images
file:///home/christian/Musique Musique
file:///home/christian/T%C3%A9l%C3%A9chargements Téléchargements
file:///home/christian/Vid%C3%A9os Vidéos
file:///home/christian/ownCloud/Documents/La%20foul%C3%A9e%20folgoatienne La foulée folgoatienne
le script me renvoie Image
Mon script modifié

Code : Tout sélectionner

#!/bin/sh
#
# Openbox pipe menu to launch PCmanFM using GTK bookmarks.
#

echo '<openbox_pipe_menu>'

# Home
echo '<item label="Home">'
echo '<action name="Execute"><execute>'
echo "pcmanfm ~"
echo '</execute></action></item>'

# ~/Desktop
echo '<item label="Desktop">'
echo '<action name="Execute"><execute>'
echo "pcmanfm ~/Desktop"
echo '</execute></action></item>'

# GTK bookmarks
for dir in `sed -e 's/[ ][^ ]*$// ; s/%C3%A9/é/g ; s/%20/ /g' ~/.config/gtk-3.0/bookmarks`

do
	echo '<item label="'`basename $dir`'">'
	echo '<action name="Execute"><execute>'
	echo "pcmanfm $dir"
	echo '</execute></action></item>'
done

echo '</openbox_pipe_menu>'