[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [KDE] Comment rendre "Ouvrir avec" civil?



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.



Reply to: