[KDE] Comment rendre "Ouvrir avec" civil?

Le
Yves Rutschle
Bonjour,

Dans KDE, on peut sélectionner plusieurs fichiers, puis
cliquer droit et "Ouvrir avec" et choisir une commande.
Malheureusement, KDE choisit alors de lancer x fois la
commande avec un seul fichier en paramètre de chaque
commande, au lieu de lancer une fois la commande avec x
fichiers en paramètres.

Quand on a fait un petit script de re-dimensionnement
d'image, et que votre utilisateur sélectionne 150 images, ça
se passe assez mal.

Est-il possible de dire à KDE d'"ouvrir avec" une seule
instance de commande et plusieurs paramètres (ce qui est
pourtant assez classique sous Unix, non?)

Merci d'avance,
Y.
"On peut ouvrir une fois mille images, mais on ne peut pas
ouvrir mille fois mille images. Non, mille fois une image."

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sylvain Sauvage
Le #18337031
Yves Rutschle, jeudi 8 janvier 2009, 14:40:21 CET

Bonjour,



’soir,

Dans KDE, on peut sélectionner plusieurs fichiers, puis
cliquer droit et "Ouvrir avec..." et choisir une commande.
Malheureusement, KDE choisit alors de lancer x fois la
commande avec un seul fichier en paramètre de chaque
commande, au lieu de lancer une fois la commande avec x
fichiers en paramètres.
[…]
Est-il possible de dire à KDE d'"ouvrir avec" une seule
instance de commande et plusieurs paramètres (ce qui est
pourtant assez classique sous Unix, non?)



Il semblerait que ce soit possible en utilisant '%F' à la
place de '%f' dans le .desktop.

--
Sylvain Sauvage

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Yves Rutschle
Le #18340601
On Thu, Jan 08, 2009 at 07:41:13PM +0100, Sylvain Sauvage wrote:
Il semblerait que ce soit possible en utilisant '%F' à la
place de '%f' dans le .desktop.



Merci de la piste -- question subsidiaire (je suis handicapé
des interfaces graphiques): j'ai trouvé comment faire un
.desktop, mais je ne vois pas comment le transformer en
"commande" que l'on pourrait appeler à travers le menu
"ouvrir avec" (en lui passant un paramètre en plus des noms
de fichiers).

Pour le moment, j'ai mon script /usr/local/bin/pic_resize,
et je l'appelle simplement en faisant "ouvrir avec" "autre"
"pic_resize" (KDE le trouve naturellement dans $PATH).

Apparement on ne peut pas mettre un .desktop dans le $PATH
pour qu'il soit pris en compte... en fait je ne vois pas
comment utiliser un .desktop pour appeler un script avec les
paramètres que je veux.

C'est possible?

Merci d'avance.
Y.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Sylvain Sauvage
Le #18343831
Yves Rutschle, vendredi 9 janvier 2009, 08:06:36 CET

On Thu, Jan 08, 2009 at 07:41:13PM +0100, Sylvain Sauvage
wrote:
> Il semblerait que ce soit possible en utilisant '%F' à la
> place de '%f' dans le .desktop.

Merci de la piste -- question subsidiaire (je suis handicapé
des interfaces graphiques): j'ai trouvé comment faire un
.desktop, mais je ne vois pas comment le transformer en
"commande" que l'on pourrait appeler à travers le menu
"ouvrir avec" (en lui passant un paramètre en plus des noms
de fichiers). […]



Ma faute. Je croyais que tu avais déjà passé cette ét ape.

J’avais trouvé ça :
http://legroom.net/2007/04/20/adding-custom-actions-kde-context-menus

En résumé, c’est dans ~/.kde/share/apps/konqueror/servi cemenus

Pour un ajout global : /usr/share/apps/konqueror/servicemenus

On y voit un tas d’exemple, p.ex. le couple %u/%U (pour URI),
peut-être plus puissant que %f/%F (p.ex. pour les fichiers
déportés, ftp, ssh, etc.).

Pas testé. SGDG…

--
Sylvain Sauvage

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Yves Rutschle
Le #18421441
On Fri, Jan 09, 2009 at 02:08:08PM +0100, Sylvain Sauvage wrote:
J'avais trouvé ça :
http://legroom.net/2007/04/20/adding-custom-actions-kde-context-menus



Ok, cet article m'a bien lancé, et finalement je trouve la
doc complète là:

http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-0.9.4.html

En appelant un petit shell qui utilise kdialog pour demander
à quelle taille il faut re-dimensionner, je peux ensuite
appeler mon autre script (je n'ai pas trouvé d'autre façon
de demander des paramètres -- pas grave, ça fait une belle
pop-up qui plaira aux utilisateurs).

En récapitulant:

Je créé un fichier
~/.kde/share/apps/konqueror/servicemenus/pictools.desktop
(le nom est arbitraire tant qu'il fini en .desktop, et il
est relu dynamiquement: pas besoin de redémarrer KDE à
chaque fois (ouf)).

Dans ce fichier j'ajoute une action à image/jpeg qui
appelle le script:

[Desktop Entry]
ServiceTypes=image/jpeg
Actions=resize

[Desktop Action resize]
Name=Resize Picture
Exec=/usr/local/bin/kde_resize %F

On peut spécifier plusieurs actions dans 'Actions' en les
séparant avec un point-virgule et en multipliant les
sections Desktop Action.

Le %F permet bien de n'appeler qu'une fois le script, ce qui
est mon but d'origine.

Le script kde_resize est tout bète:


#! /bin/sh

size=`kdialog --inputbox "Target size:"`
pic_resize $size $@


Et le script pic_resize est pas bcp plus intelligent, il
utilise convert d'imagemagick:


#! /usr/bin/perl -w

use strict;
use File::Copy;

my $geometry = shift;

foreach my $f (@ARGV) {
my $bak = "$f.bak";

move $f, $bak or die "$f: $!";

system("/usr/bin/convert -thumbnail $geometry '$bak' '$f'");
}


(Si j'avais le courage, je le ré-écrirais directement en
shell dans kde_resize, mais comme ça il reste utilisable tel
quel en ligne de commande.)

Vu que tout ça se base sur la spec freedesktop, ça doit
marcher aussi avec Gnome. Finalement, Gnome et KDE, c'est
presque aussi bien que la ligne de commande, c'est
simplement plus compliqué à mettre en place :-)

Merci du coup de pouce!
Y.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Publicité
Poster une réponse
Anonyme