Se passer de flash avec surf

Je pense que le problème vient d’un bête souci de copier coller.
En effet, sous surf, il arrive que des “symboles” bizarres apparaissent. (retour à la ligne par exemple).
Donc essaie de copier coller le code avec un autre navigateur, ou le recopier à la main :slightly_smiling: .

Sinon, pour mon script, j’ai moi même quelques soucis avec. En effet, il faut parfois aller sur l’url du truc que je veux télécharger, puis ensuite lancer le script.
L’idéal serait que le script récupère l’url du lien sur lequel on fait clic-droit. Mais je ne sais pas mieux faire.
Donc ton souci de téléchargement vient surement de là aussi :slightly_smiling: .

[quote=“thuban”]Sinon, pour mon script, j’ai moi même quelques soucis avec. En effet, il faut parfois aller sur l’url du truc que je veux télécharger, puis ensuite lancer le script.
L’idéal serait que le script récupère l’url du lien sur lequel on fait clic-droit. Mais je ne sais pas mieux faire.
Donc ton souci de téléchargement vient surement de là aussi :slightly_smiling: .[/quote]
Bonjour,
et si tu met l’url que tu souhaites télécharger dans le presse papier avec ctrl-y pour la page courante ou quand ton pointeur est sur le lien désiré et que tu rajoutes une partie avec sselp ou xclip -o dans ton script?
genre :[code]
#!/bin/sh
while :; do
dirs=ls -pAX |grep /
dchoix=`echo "Télécharge ici
Retour
!

$dirs
" |dmenu -l 10 -p $PWDif [ -d "$dchoix" ]; then cd $dchoix; else case "$dchoix" in "Télécharge ici") break;; Retour) cd ..;; !) exit 0;; esac fi done wgetsselp` && sfm
exit 0[/code]

sympa sselp !
Le plus dur est justement de récupérer l’url pour la mettre dans le presse papier. Si je dois faire une manip spécialement pour la mettre dans le presse papier, pour ensuite lancer le téléchargement, je ne gagne pas de temps que en ouvrant la page de l’url du truc que je veux télécharger. Il faudrait que je récupère l’url directement dans le script.

Sympa aussi ton script. Tu utilises une manière d’écrire qui m’échappe par contre (avec le ! ) , mais je m’en suis inspiré pour arranger un peu le mien :

[code]#!/bin/sh
#dmenudl.sh
###les couleurs de dmenu
SB="#AFAFAF"
SF="#000000"
NB="#0C0C0C"
NF="#D4D4D4"
###on se place dans le répertoire utilisateur par défaut
#liste ce qui se trouve dans le répoertoire courant, et l’envoie dans dmenu

liste_ () {
echo " $(ls -d … */ -1 --sort=extension)

Telecharge Ici" | dmenu -fn ‘fixed’ -nb $NB -nf $NF -sb $SB -sf $SF -l 17 -p “$PWD” -i
}

action_ () {
case $1 in
*/ | … ) cd $1
;;
Telecharge Ici”) break
;;
esac
}

v_=$IFS
IFS=’

INDEX="$(liste_)"
#tant que on donne de quoi manger à action, elle tourne
while [ “$INDEX” != “” ]; do
action_ $INDEX
INDEX="$(liste_)"
done

IFS=$v_
url=xprop -id $1 _SURF_URI |cut -d \" -f2
urxvt -e wget -c $url

exit 0
[/code]

Thuban => on premier script fonctionne à présent; ça va mieux quand on le rend executable…

eol=> je vais reprendre ton script plutôt que le copier-coller

Je lance un download avec mon raccourcis clavier, un fenêtre apparait pour me demander l’endroit où placer le dit download
mais comment le télécharger après??

Question conne mais je ne vois pas :unamused:

[quote=“eol”][quote=“thuban”]Sinon, pour mon script, j’ai moi même quelques soucis avec. En effet, il faut parfois aller sur l’url du truc que je veux télécharger, puis ensuite lancer le script.
L’idéal serait que le script récupère l’url du lien sur lequel on fait clic-droit. Mais je ne sais pas mieux faire.
Donc ton souci de téléchargement vient surement de là aussi :slightly_smiling: .[/quote]
Bonjour,
et si tu met l’url que tu souhaites télécharger dans le presse papier avec ctrl-y pour la page courante ou quand ton pointeur est sur le lien désiré et que tu rajoutes une partie avec sselp ou xclip -o dans ton script?
genre :[code]
#!/bin/sh
while :; do
dirs=ls -pAX |grep /
dchoix=`echo "Télécharge ici
Retour
!

$dirs
" |dmenu -l 10 -p $PWDif [ -d "$dchoix" ]; then cd $dchoix; else case "$dchoix" in "Télécharge ici") break;; Retour) cd ..;; !) exit 0;; esac fi done wgetsselp&& sfm exit 0[/code][/quote] J'essaie de le comprendre. Au passage, il ne manque pas un "" à cette ligne? :

[quote=“thuban”]sympa sselp !
Le plus dur est justement de récupérer l’url pour la mettre dans le presse papier. Si je dois faire une manip spécialement pour la mettre dans le presse papier, pour ensuite lancer le téléchargement, je ne gagne pas de temps que en ouvrant la page de l’url du truc que je veux télécharger. Il faudrait que je récupère l’url directement dans le script.[/quote]Une fois sur le lien, avec un doigt sur control, faire y d, c’est assez rapide quand même, ça t’évite le temps de l’ouverture de la page.

C’est vrai que j’aurais pu choisir un autre caractère vu qu’il a déjà une signification dans le shell,
mais dans le contexte, c’est juste une des lignes qui sont affichées dans dmenu,
le ! me permet juste d’annuler le téléchargement,
dans ce script sa signification n’a aucun rapport avec celle qu’il a dans le shell,
si tu regardes bien il apparait après un echo et entre des " ",
donc aucune chance que le shell l’interprète.

[quote=“thuban”]J’essaie de le comprendre. Au passage, il ne manque pas un “`” à cette ligne? :

dchoix=`echo "Télécharge ici[/quote]Regarde 5 lignes en dessous :wink:

Ohhh!!! Super! j’ai tout compris maintenant! :stuck_out_tongue: Il est super chouette ton script, vraiment! Et le Retour, au moins, c’est plus explicite que laisser les … comme je le fais. j’aime beaucoup!
Merci pour les éclaircissement, je me bloquait sur le !, qui je le sais sert en shell, mais je ne sais pas à quoi :blush: .

Sinon, le "while : ", ça fait quoi exactement? Une boucle infinie en fait?

[quote=“thuban”]Ohhh!!! Super! j’ai tout compris maintenant! :stuck_out_tongue: Il est super chouette ton script, vraiment! Et le Retour, au moins, c’est plus explicite que laisser les … comme je le fais. j’aime beaucoup![/quote]Merci pour les compliments :slightly_smiling:
Pour le Retour ou “…” , je suis encore partagé, les deux méthodes ont leurs avantages, d’ailleurs si tu regardes quelques posts plus haut le script que j’avais proposé à m3t4linux, il utilise les deux points plutôt que “retour”, à un moment j’avais changé mais j’avais oublié de corriger le deuxième.

[quote=“thuban”]Merci pour les éclaircissement, je me bloquait sur le !, qui je le sais sert en shell, mais je ne sais pas à quoi :blush: .[/quote]Ça peut servir à plusieurs choses mais principalement pour inverser des conditions dans les tests, genre dans le script, il y avait if [ -d "$index" ];pour vérifier que $index est un répertoire, avec if [ ! -d "$index" ];j’aurais pu vérifier si $index n’est pas un répertoire.

[quote=“thuban”]Sinon, le "while : ", ça fait quoi exactement? Une boucle infinie en fait?[/quote]oui, c’est une boucle, “while :” c’est synonyme de “while true”.

eol, merci pour ce script, une merveille et ça fonctionne chez moi!!!

Par contre, mon dmenu ne m’affiche pas correctement les accents, à la place de “Téléchargement”, j’ai des accents remplacés par des symboles…
Comment corriger ce problème d’encodage?
Merci

C’est clair qu’il est tout propre le script! :slightly_smiling:
Pour le point d’exclamation, je sais pour les conditions (sinon je m’en serais pas sorti dans les autres scripts :slightly_smiling: ). Je pensais surtout à sa fonction dans certains scripts, comme dans le wmiirc par exemple.

C’est vrai que Retour peut présenter un souci, comme par exemple, si un dossier s’appelle Retour :smiley: . C’est vrai que les deux points sont quand même facilement accessible sur le clavier aussi.

M3t4linux, je crains que le problème d’encodage ne puisse se résoudre comme ça. Le souci vient de dmenu lui même il me semble.

Bon, c’est pas grave, je retire les “é” du script :wink:

Bon, du coup, j’ai repris mon script pour le rendre plus propre (parce que, faire des trucs vite fait, ce n’est pas une solution pérenne). Je me suis donc dis : allez mon grand, prends exemple sur eol!

[code]#!/bin/sh
#dmenudl.sh
###les couleurs de dmenu
SB="#AFAFAF"
SF="#000000"
NB="#0C0C0C"
NF="#D4D4D4"
###on se place dans le répertoire utilisateur par défaut
#liste ce qui se trouve dans le répoertoire courant, et l’envoie dans dmenu

liste_ () {
echo "$(ls -d … */ -1 --sort=extension)

Telecharge Ici
Quitter" | dmenu -fn ‘fixed’ -nb $NB -nf $NF -sb $SB -sf $SF -l 17 -p “$PWD” -i
}

action_ () {
case $1 in
/ ) cd $1
;;
) cd …
;;
Telecharge Ici”) break
;;
Quitter”) exit 2
;;
esac
}
#on change l’internal file separator, pour les fichiers avec espace passent quand même.
v_=$IFS
IFS=’
'
INDEX="$(liste_)“
while [ $INDEX != “” ]; do
action_ $INDEX
INDEX=”$(liste_)"
done
IFS=$v_
url=xprop -id $1 _SURF_URI |cut -d \" -f2
urxvt -e wget -c $url

exit 0
[/code]
J’ai du séparer le retour en arrière d’un simple déplacement de fichier, car comme il y a un retour à la ligne, ça ne marche pas sinon.
Je ne sais pas si ça marche avec ton script eol, mais là si un dossier contient un espace, ça marchera quand même.
J’ai tenté de regarder du côté de la fonction clipboard de surf, même essayé de voir si on ne pouvais pas l’éxécuter avant le script dmenudl en le mettant dans le config.h, mais mes connaissances du c sont trop limitées.
Je n’ai donc pas de meilleures façon que le xprop pour récupérer l’url.

[quote=“M3t4linux”]eol, merci pour ce script, une merveille et ça fonctionne chez moi!!!

Par contre, mon dmenu ne m’affiche pas correctement les accents, à la place de “Téléchargement”, j’ai des accents remplacés par des symboles…
Comment corriger ce problème d’encodage?
Merci[/quote]Ben il faut utiliser une police qui rend les accents proprement,
donc soit tu patches dmenu avec le patch pour les polices xft, soit
tu remplaces la ligne static const char *font = "-*-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*";par cette ligne : static const char *font = "-misc-fixed-medium-r-*-*-14-*-*-*-*-*-*-*";dans le config.h et tu reconstruis dmenu.

eol : :smt058

j’ai toujours évité de donner des noms avec espace à mes fichiers et répertoires, donc je n’ai pas du tout pris ce cas de figure en compte et je doute fort que mon script fonctionne avec les espaces.

edit : Je vais regarder ce que tu as fait pour les espaces, c’est possible que ça me serve pour d’autres scripts, merci.

[quote=“thuban”]J’ai tenté de regarder du côté de la fonction clipboard de surf, même essayé de voir si on ne pouvais pas l’éxécuter avant le script dmenudl en le mettant dans le config.h, mais mes connaissances du c sont trop limitées.
Je n’ai donc pas de meilleures façon que le xprop pour récupérer l’url.[/quote]Pareil pour moi, pas les connaissances pour ça, ce qui pourrait aussi être fait est : soit modifier le script link_hints pour que dans le cas où il se trouve face à un lien qu’il ne peut pas afficher il lance le script de téléchargement, soit tenter la même chose dans les sources de surf, mais là c’est une autre histoire …

[quote=“thuban”]eol : :smt058[/quote]Un peu de tenue, je crois qu’on nous regarde! :smt003

:slightly_smiling:
Vais me gêner tiens :slightly_smiling:

Bon alors, j’ai ajouté le changement de l’IFS afin que d’eventuels espaces dans les noms de répertoires ne posent aucun problème
mais j’ai eu un effet secondaire, il m’était impossible de laisser dmenu et ses options déclarés dans une variable,
ça m’affichait un message d’erreur.
Pour contourner cette erreur, il a suffit de remplacer la variable par une fonction,
je n’ai aucune idée de pourquoi l’un fonctionne et pas l’autre, mais bon c’est résolu.
(Si quelqu’un a une idée …)

Donc merci à Thuban pour le tuyau de l’IFS et pour me donner l’idée d’utiliser une fonction dans le script,
chose dont je n’ai absolument pas l’habitude mais qui a l’air bien pratique.

Maintenant le script donne ça :[code]
#!/bin/sh
#SDL SimpleDownLoader : Télécharge la page courante sous Surf.
IFS=’
'
dmenu_ () { dmenu -l 44 -fn xft:Monospace-10 -i -xs -fl -p “$PWD”
}

while :; do
dirlist=ls -pAX |grep /
index=`echo "Télécharge ici
!

$dirlist

" |dmenu_if [ -d "$index" ]; then cd $index; else case "$index" in "Télécharge ici") break;; !) exit 0;; esac fi done url=xprop -id $1 _SURF_URI |cut -d " -f2`
wget $url && sfm
exit 0[/code]Comme le script se termine par un exit 0, je ne me suis pas donné la peine de remettre IFS à sa valeur initiale, est-ce une erreur ou le changement n’était-il comme je le pense valable que pour ce script?

Sincèrement, je ne sais pas ce qu’il en est pour l’IFS. Je ne pense pas que cela soit problématique, mais pour être plus prudent, ça ne coute pas grand chose de la remettre à sa valeur initiale au cas où.
Les fonctions c’est très pratique! C’est d’autant plus pratique lorsque tu écris plusieurs scripts, tu as des fonctiosn toutes prêtes à servir sous la main, ça éclaircit les choses et permet d’écrire de nouveau scripts de façon plus propre que avec des copier/coller de bouts de code.