#51 Le 10/07/2006, à 09:15
- xtof59
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Tu sembles avoir le même soucis que moi et je ne l'ai pas résolu avec nautilus mais avec fuse et fusesmb qui "monte" le réseau dans un dossier "Network" de ton home. De là c'est très simple de joindre des fichiers à partir de thunderbird.
http://doc.ubuntu-fr.org/wiki/installat … seau_samba
C'est plutôt pour xubuntu mais ça marche très bien sous ubuntu également.
Hors ligne
#52 Le 10/07/2006, à 16:14
- ppmt
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Je ne sais de quel fichier temporaire il s'agit mais pour moi la reduction du fichier si elle a lieu se fait dans le repertoire .Trash de l'utilisateur.
Le probleme est-il le meme que ce soit une image ou pas?
le dock dont vous avez toujours rêvé Cairo-Dock
irc://irc.freenode.net/#Cairo-Dock-fr
Hors ligne
#53 Le 23/07/2006, à 00:12
- eugenio
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Hello.
@Razer : Je n'arrive pas à accéder à ta page pour télécharger ta solution pour nautilus-action.
Tu peux tester ?
A plus.
#54 Le 27/08/2006, à 17:01
- herve c
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Merci beaucoup, ça faisait 6 mois que ma femme me demandais cette fonctionnalité !
J'ai légèrement modifié le script, pour utiliser une résolution par défaut et éviter la boite de dialogue. Rajoutez les lignes suivantes :
# utilise definition par defaut
DEF="640x480"
DEF_ASKED=1
Juste avant la ligne :
# If the file is an image, prompt for reducing it.
Hors ligne
#55 Le 24/12/2006, à 19:48
- soifran2
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
ça fracasse tout, ça manquait tellement!
#56 Le 28/12/2006, à 13:59
- fifo
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Maravilloso
Hors ligne
#57 Le 28/12/2006, à 21:37
- gunsman
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Merci pour ce script, c'est tout simplement magnifique. Encore merci de partager tes trouvailles !
Dernière modification par gunsman (Le 28/12/2006, à 21:37)
Sous linux depuis 2004 mais première fois que tout mon matos fonctionne !!! Merci Ubuntu et maintenant merci Dell, mon D510 est entièrment sous linux !
Hors ligne
#58 Le 29/12/2006, à 10:25
- ghimli
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Oui merci beaucoup ! Pour ma part, je préférais le script de reza, et j'ai finalement réussi à le récupérer grâce au cache de Google. Je le poste donc ici pour le pas qu'il se perde :
#!/usr/bin/perl -w
use Gtk2 '-init';
# ---------------------------PLEASE EDIT CORRECTLY THIS PART----------------------------------
# Locale used by application : can be actually set to 'en' or 'fr' pour les français
$lang='fr';
# Thunderbird command : can be "thunderbird" or "mozilla-thunderbird"
# Depending of your distribution the filename in /usr/bin change
$thunderbird='mozilla-thunderbird';
# Set the default quality (0-100) of rescaled pictures
$quality=90;
# --------------------------------------------------------------------------------------------
# DEBUGAGE
my $filelog=">/tmp/send-debug" ;
open LOGFILE, $filelog ;
$filelog = select LOGFILE; $| = 1; #Mode Autoflush pour LOGFILE
print( LOGFILE "Script Nautilus Envoyer par Email\n" ) ;
print( LOGFILE "---------------------------------\n" ) ;
# FIN DEBUGAGE
# Vérification de la présence des dépendances
eval "use Image::Imlib2"; &warn_msg("libimage-imlib2-perl") if $@;
use constant TRUE => 1 ;
use constant FALSE => 0 ;
# Variables internes
$imgfnd = FALSE;
$othfnd = FALSE;
$canresize = FALSE;
$mozon = 0;
$datasize = 0;
$tbirdbin="/usr/bin/$thunderbird";
# Fix lang used by application
&set_lang;
# On recupere les fichiers en argument si ils existent
if (@ARGV) {
for ($i=0; $i<@ARGV; $i++) {
$filesarg[$i] = $ARGV[$i];
@filename = split ("/", $ARGV[$i]);
$file[$i] = $filename[@filename-1];
$datasize = (`ls -s "$filesarg[$i]" | awk '{print \$1}'` + $datasize); # Estimation de la taille totale
#DEBUGAGE
print ( LOGFILE "Argument : $filesarg[$i]\n") ;
print ( LOGFILE "Nom fichier : $file[$i]\n") ;
print ( LOGFILE "Taille fichier : $datasize Ko\n") ;
#FIN DEBUGAGE
}
}
else {
#DEBUGAGE
print( LOGFILE "Pas de fichier à joindre... Arrêt\n" ) ;
# FIN DEBUGAGE
&warn_msg("nofiles");
}
# On détermine si ce sont que des images
for ($i=0; $i<@filesarg; $i++) {
$filetype = `file "$filesarg[$i]"`;
if ($filetype =~ m/image/g) {
$imgfnd = TRUE;
}
else {
$othfnd = TRUE;
}
}
$canresize = TRUE if ($imgfnd == TRUE && $othfnd == FALSE);
#DEBUGAGE
print( LOGFILE "Tous les fichiers sont des images\n" ) if ($imgfnd == TRUE && $othfnd == FALSE);
print( LOGFILE "Il y a des images\n" ) if ($imgfnd == TRUE && $othfnd == TRUE);
print( LOGFILE "Pas d'images\n" ) if $imgfnd == FALSE;
print( LOGFILE "Utilisateur : $ENV{'USER'}\n" ) ;
# FIN DEBUGAGE
# On affiche la fenetre de Redimensionnement des images si necessaire
&draw_gtkwin if ($canresize == TRUE);
# On met en forme la liste pour thunderbird : file://<pathfile1>,file://<pathfile2>,file://<pathfile3>
for ($i=0; $i<@filesarg-1; $i++) {
$attach = $attach . "file:\/\/" . $filesarg[$i] . ",";
}
$attach = $attach . "file:\/\/" . $filesarg[@filesarg-1];
# On envoie la liste des fichiers à Thunderbird
$mozon = `ps -ec -u $ENV{'USER'}| grep -c mozilla-thunder`;
$mozon =~ s/\n//g;
$thbversion = `$tbirdbin --version |grep 1.5`;
#DEBUGAGE
print( LOGFILE "Valeur variable mozon : $mozon\n");
print( LOGFILE "La version de Thunderbird est la 1.5 \n") if $thbversion ne "";
print( LOGFILE "Thunderbird est lancé\n" ) if $mozon ne "0";
print( LOGFILE "Liste des fichiers mises en formes : $attach\n" );
# FIN DEBUGAGE
if ($thbversion ne "") {
$mozrmt="/usr/lib/mozilla-thunderbird/mozilla-xremote-client -a $thunderbird";
}
else {
$mozrmt="/usr/lib/mozilla-thunderbird/mozilla-thunderbird-xremote-client";
}
if ($mozon ne "0") {
exec "$mozrmt \"xfeDoCommand(composeMessage,attachment='$attach')\"";
}
else {
exec "$tbirdbin & sleep 2; $mozrmt \"xfeDoCommand(composeMessage,attachment='$attach')\"";
}
############################# FONCTIONS ################################
#Redimensionne les images
sub img_resize {
my ($widget,$button)=@_ ;
# On récupère la référence du groupe auquel appartient le bouton
my $group = $button->get_group() ;
my $label;
my $size =0;
# On parcours le tableau des boutons et on affiche le bouton qui est actif.
my $but ;
foreach $but (@$group) {
if ($but->get_active) {
# On récupère le label du bouton actif
$label = $but->get_label() ;
}
}
$size = 1024 if $label =~ m/1024/g;
$size = 800 if $label =~ m/800/g;
$size = 640 if $label =~ m/640/g;
if ($size ne 0) {
for ($i=0; $i<@filesarg; $i++) {
my $image=Image::Imlib2->load($filesarg[$i]);
my $sclimg=$image->create_scaled_image($size,0);
$sclimg->set_quality($quality);
$sclimg->image_set_format("jpeg");
$sclimg->save("$ENV{HOME}/.Trash/$file[$i]");
$filesarg[$i]="$ENV{HOME}/.Trash/$file[$i]";
}
}
# DEBUGAGE
print( LOGFILE "Dimensionnement choisi : $label - Valeur configurée : $size\n" );
# FIN DEBUGAGE
Gtk2->main_quit;
}
# Creation de la fenetre gtk pour redimensionnemt
sub draw_gtkwin {
# Création de la fenêtre
my $confwin = Gtk2::Window->new('toplevel');
$confwin->signal_connect('delete_event', sub {$confwin->destroy();});
$confwin->set_title($msg{"WinName"});
$confwin->set_border_width(10);
$confwin->set_resizable(FALSE);
# Creation boite Verticale Principale
my $vbox = new Gtk2::VBox( FALSE, 5 );
$confwin->add( $vbox ) ;
# Boites horizontales Principales
my $hbox1 = new Gtk2::HBox( FALSE, 5 ); # HBOX1 - Label
$vbox->pack_start( $hbox1, FALSE, FALSE, 0 ) ;
my $hbox2 = new Gtk2::HBox( FALSE, 5 ); # HBOX2 - Radio btn
$vbox->pack_start( $hbox2, FALSE, FALSE, 0 ) ;
my $hbox3 = new Gtk2::HBox( FALSE, 5 ); # HBOX3 - Boutons
$vbox->pack_start( $hbox3, FALSE, FALSE, 0 ) ;
# Label de HBOX1
my $label = Gtk2::Label->new ();
$label->set_markup($msg{"WinText1"}."<b>$datasize Ko</b>.\n".$msg{"WinText2"} ) ;
$label->set_justify( 'left' );
$hbox1->add($label);
# Label de HBOX2
$label = Gtk2::Label->new ($msg{"ScaleType"} ) ;
$label->set_justify( 'left' );
$hbox2->add($label);
# Boite verticale et radio button
my $vboxbt = new Gtk2::VBox( FALSE, 5 );
$hbox2->add($vboxbt);
my $button1 = Gtk2::RadioButton->new( undef, $msg{"NoScale"} );
$vboxbt->add($button1);
my $group = $button1->get_group();
my $button2 = Gtk2::RadioButton->new_with_mnemonic( $group, $msg{"HighQ"} );
$vboxbt->add($button2);
my $button3 = Gtk2::RadioButton->new_with_mnemonic( $group, $msg{"MediumQ"} );
$vboxbt->add($button3);
my $button4 = Gtk2::RadioButton->new_with_mnemonic( $group, $msg{"LowQ"} );
$vboxbt->add($button4);
$cancel = Gtk2::Button->new_from_stock('gtk-cancel');
$cancel -> signal_connect ('clicked',sub {Gtk2->main_quit; exit 0});
$valid = Gtk2::Button->new_from_stock('gtk-apply');
$valid -> signal_connect ('clicked',\&img_resize,$button1);
$hbox3->add($cancel);
$hbox3->add($valid);
$confwin->show_all ;
Gtk2->main;
}
# Fenetre d'erreur si il manque une dependance
sub warn_msg {
my ($dep) = @_;
my $label;
if ($dep eq "nofiles") {
$label = $msg{"WarnFiles"};
}
else {
$label = $msg{"WarnDep"};
}
my $msgdiag = Gtk2::MessageDialog->new (undef,'destroy-with-parent','error','close',$label);
$msgdiag->show;
if ('close' eq $msgdiag->run) {
$msgdiag->destroy;
exit 1;
}
Gtk2->main;
}
# Fix lang used
sub set_lang {
if ($lang eq "fr") {
%msg = ("WinName" => "Envoi de fichiers par email",
"WinText1" => "Le(s) fichier(s) que vous voulez envoyer sont une (des) image(s).\n"
."La taille totale est de ",
"WinText2" => "Vous pouvez effectuer un redimensionnement pour que l'email soit moins volumineux.",
"ScateType" => "Type de redimensionnement :",
"NoScale" => "Aucun changement de taille",
"HighQ" => "Haute qualité : 1024 pixels de large",
"MediumQ" => "Moyenne qualité : 800 pixels de large",
"LowQ" => "Basse qualité : 640 pixels de large",
"WarnFiles" => "Vous devez sélectionner au moins un fichier à envoyer !",
"WarnDep" => "Un programme nécessaire au bon fonctionnement est manquant, merci d'installer ce package :");
}
elsif ($lang eq "en") {
%msg = ("WinName" => "Send files by email",
"WinText1" => "The file(s) you want to send is (are) pictures\n"
."Total size : ",
"WinText2" => "You can scale the picture(s) to reduce date size",
"ScateType" => "Scale type :",
"NoScale" => "Don't change anything",
"HighQ" => "High quality : 1024 pixels of height",
"MediumQ" => "Medium quality : 800 pixels of height",
"LowQ" => "Low quality : 640 pixels of height",
"WarnFiles" => "You have to select at least one file !",
"WarnDep" => "A package is missing, please install it :");
}
}
Pour les nautilus-actions, je n'ai pas pu récupérer le fichier .schema, mais je l'ai fait moi-même :
<?xml version="1.0" encoding="UTF-8">
<gconfschemafile>
<schemalist>
<schema>
<key>
/schemas/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/label
</key>
<applyto>
/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/label
</applyto>
<owner>nautilus-actions</owner>
<type>string</type>
<locale name="C">
<default>Envoyer l'image par e-mail...</default>
<short>Le libellé de l'entrée de menu</short>
<long>
Le libellé de l'entrée de menu apparaissant dans le menu contextuel de Nautilus quand la sélection correspond aux paramètres de conditions d'affichage
</long>
</locale>
</schema>
<schema>
<key>
/schemas/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/tooltip
</key>
<applyto>
/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/tooltip
</applyto>
<owner>nautilus-actions</owner>
<type>string</type>
<locale name="C">
<default>Envoie l'image par e-mail avec Mozilla Thunderbird</default>
<short>L'infobulle de l'entrée de menu</short>
<long>
L'infobulle de l'entrée de menu apparaissant dans la barre d'état de Nautilus quand l'utilisateur pointe sa souris sur l'entrée du menu contextuel de Nautilus
</long>
</locale>
</schema>
<schema>
<key>
/schemas/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/icon
</key>
<applyto>
/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/icon
</applyto>
<owner>nautilus-actions</owner>
<type>string</type>
<locale name="C">
<short>L'icône de l'entrée de menu</short>
<long>
L'icône de l'entrée de menu apparaissant à coté du libellé dans le menu contextuel de Nautilus quand la sélection correspond aux paramètres de conditions d'affichage
</long>
</locale>
<default>/usr/share/pixmaps/mozilla-thunderbird-pm.png</default>
</schema>
<schema>
<key>
/schemas/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/path
</key>
<applyto>
/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/path
</applyto>
<owner>nautilus-actions</owner>
<type>string</type>
<locale name="C">
<short>Le chemin de la commande</short>
<long>
Le chemin de la commande à lancer lorsque l'utilisateur sélectionne l'entrée de menu dans le menu contextuel de Nautilus
</long>
</locale>
<default>/home/nicolas/SendEmail</default>
</schema>
<schema>
<key>
/schemas/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/parameters
</key>
<applyto>
/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/parameters
</applyto>
<owner>nautilus-actions</owner>
<type>string</type>
<locale name="C">
<short>Les paramètres de la commande</short>
<long>
Les paramètres de la commande à lancer quand l'utilisateur sélectionne l'entrée de menu dans le menu contextuel de Nautilus.
Les paramètres peuvent contenir des options spéciales qui seront remplacées par des informations de Nautilus avant le lancement de la commande :
%d : le dossier de base des fichiers sélectionnés ;
%f : le nom du fichier sélectionné, ou le nom du premier fichier si plusieurs fichiers sont sélectionnés ;
%m : la liste des noms des fichiers sélectionnés sans leurs chemins, séparés par des espaces ;
%M : la liste des fichiers/dossiers avec leurs chemins complets, séparés par des espaces ;
%u : l'URI gnome-vfs ;
%s : le protocole présent dans l'URI gnome-vfs ;
%h : le nom d'hôte de la machine présent dans l'URI gnome-vfs ;
%U : le nom de l'utilisateur présent dans l'URI gnome-vfs ;
%% : le signe pourcent
</long>
</locale>
<default>%M</default>
</schema>
<schema>
<key>
/schemas/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/basenames
</key>
<applyto>
/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/basenames
</applyto>
<owner>nautilus-actions</owner>
<type>list</type>
<list_type>string</list_type>
<locale name="C">
<short>
La liste des motifs de correspondance des fichiers/dossiers sélectionnés
</short>
<long>
A list of strings with joker '*' or '?' to match the name of the selected file(s)/folder(s). Each selected items must match at least one of the filename patterns for the action to appear
</long>
</locale>
<default>[*]</default>
</schema>
<schema>
<key>
/schemas/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/matchcase
</key>
<applyto>
/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/matchcase
</applyto>
<owner>nautilus-actions</owner>
<type>bool</type>
<locale name="C">
<short>
'true' if the filename patterns have to be case sensitive, 'false' otherwise
</short>
<long>
If you need to match a filename in a case-sensitive manner, set this key to 'true'. If you also want, for example '*.jpg' to match 'photo.JPG', set 'false'
</long>
</locale>
<default>true</default>
</schema>
<schema>
<key>
/schemas/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/mimetypes
</key>
<applyto>
/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/mimetypes
</applyto>
<owner>nautilus-actions</owner>
<type>list</type>
<list_type>string</list_type>
<locale name="C">
<short>
The list of patterns to match the mimetypes of the selected file(s)
</short>
<long>
A list of strings with joker '*' or '?' to match the mimetypes of the selected file(s). Each selected items must match at least one of the mimetype patterns for the action to appear
</long>
</locale>
<default>[image/*]</default>
</schema>
<schema>
<key>
/schemas/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/isfile
</key>
<applyto>
/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/isfile
</applyto>
<owner>nautilus-actions</owner>
<type>bool</type>
<locale name="C">
<short>
«vrai» si la sélection peut contenir des fichiers, «faux» sinon
</short>
<long>
This setting is tied in with the 'isdir' setting. The valid combinations are:
isfile=TRUE and isdir=FALSE: the selection may hold only files
isfile=FALSE and isdir=TRUE: the selection may hold only folders
isfile=TRUE and isdir=TRUE': the selection may hold both files and folders
isfile=FALSE and isdir=FALSE: this is an invalid combination (your configuration will never appear)
</long>
</locale>
<default>true</default>
</schema>
<schema>
<key>
/schemas/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/isdir
</key>
<applyto>
/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/isdir
</applyto>
<owner>nautilus-actions</owner>
<type>bool</type>
<locale name="C">
<short>
«vrai» si la sélection peut contenir des dossiers, «faux» sinon
</short>
<long>
This setting is tied in with the 'isfile' setting. The valid combinations are:
isfile=TRUE and isdir=FALSE: the selection may hold only files
isfile=FALSE and isdir=TRUE: the selection may hold only folders
isfile=TRUE and isdir=TRUE': the selection may hold both files and folders
isfile=FALSE and isdir=FALSE: this is an invalid combination (your configuration will never appear)
</long>
</locale>
<default>false</default>
</schema>
<schema>
<key>
/schemas/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/accept-multiple-files
</key>
<applyto>
/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/accept-multiple-files
</applyto>
<owner>nautilus-actions</owner>
<type>bool</type>
<locale name="C">
<short>
«vrai» si la sélection contient plusieurs éléments, «faux» sinon
</short>
<long>
Si vous avez besoin de sélectionner un ou plusieurs fichiers/dossiers, positionnez cette clé à «vrai». Si vous désirez uniquement un fichier ou dossier, positionnez à «faux»
</long>
</locale>
<default>true</default>
</schema>
<schema>
<key>
/schemas/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/schemes
</key>
<applyto>
/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/schemes
</applyto>
<owner>nautilus-actions</owner>
<type>list</type>
<list_type>string</list_type>
<locale name="C">
<short>
La liste des protocoles GnomeVFS où les fichiers sélectionnés devraient se trouver
</short>
<long>
Définit la liste des protocoles GnomeVFS valides à faire correspondre aux éléments sélectionnés. Le protocole GnomeVFS est le protocole utilisé pour accéder aux fichiers. Le mot-clé à utiliser est celui utilisé dans l'URI GnomeVFS.
Exemples d'URI GnomeVFS :
file:///tmp/foo.txt
sftp:///root@test.example.net/tmp/foo.txt
Les protocoles les plus courants sont :
«file» pour les fichiers locaux ;
«sftp» pour les fichiers accédés via SSH ;
«ftp» pour les fichiers accédés via FTP ;
«smb» pour les fichiers accédés via Samba (partage Windows) ;
«dav» pour les fichiers accédés via WeDav.
Tous les protocoles GnomeVFS utilisés par Nautilus peuvent être utilisés ici.
</long>
</locale>
<default>[file]</default>
</schema>
<schema>
<key>
/schemas/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/version
</key>
<applyto>
/apps/nautilus-actions/configurations/5af03327-e66c-42bd-abb9-bd188934e706/version
</applyto>
<owner>nautilus-actions</owner>
<type>string</type>
<locale name="C">
<short>La version du format de configuration</short>
<long>
La version du format de configurauion qui sera utilisé pour gérer la compatibilité avec les versions antérieures
</long>
</locale>
<default>1.1</default>
</schema>
</schemalist>
</gconfschemafile>
Il suffit d'enregistrer ce code dans un fichier toto.schemas et l'importer sous nautilus-actions (si ça ne marche pas, le plus important est le paramètre "%M" et le mimetype "image/*").
edith : modification de la ligne concernant l'estimation de la taille pour supprimer le warning (erreur signalée ci-dessous)
Dernière modification par ghimli (Le 29/03/2007, à 08:35)
Ghimli, Ubuntu addicted
Hors ligne
#59 Le 17/01/2007, à 18:08
- silfeed
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Bonjour tout le monde!
Je suis nouvel utilisateur sur Ubuntu, et j'apprend ici mon premier script (celui de Eddy, le reste est encore trop avancé pour moi).
Et ca marche en plus!
Excellent
Merci pour ce script!
Dernière modification par silfeed (Le 17/01/2007, à 18:10)
Hors ligne
#60 Le 05/02/2007, à 10:32
- razer
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Hello à tous,
Désolé de vous avoir un peu "snobbé" sur ce coup, je n'avais pas imaginé que mon travail pourrait en intéresser autant...
Ayant changé de FAI, ma page perso a changé. Je vais préparer une page web contenant ce petit script ainsi que les liens vers les dépendances et une petite FAQ/Documentation le concernant.
Vous pouvez d'ors et déjà me donner des idées pour améliorer ce petit programme qui, bien que pratique et normalement fonctionnel, n'est pas parfait...
Etant moi même un utilisateur d'une Gentoo, j'ai surtout développé une méthode d'installation (nous appelons çà un ebuild...) sur cette plate forme. J'essayerais de créer un ".deb" dont l'objectif sera de prendre en compte les dépendances et la configuration des "nautilus-actions", ce que j'ai réalisé sous Gentoo.
Merci pour l'intérêt que vous portez à cette petite contribution, longue vie à l'Ubuntu
Hors ligne
#61 Le 15/02/2007, à 07:43
- Jonath68
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Salut,
Merci pour ce script.
Par contre, chez moi ça marche pas fort, en fait ça ouvre thunderbird, mais pas un nouveau message.
J'ai mis le script mis à jour pour la version 1.5 et je suis sous ubuntu 6.10
Merci de vos réponses
Jonath
"La violence est le dernier rempart de l'incompétence"
Isaac ASIMOV
Hors ligne
#62 Le 15/02/2007, à 08:59
- silfeed
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
@Jonath68
Quel script as tu utilisé?
Moi j'ai pris le 1er (celui sur le post de départ) avec Ubuntu Edgy Eft, ca fonctionne nickel
Hors ligne
#63 Le 15/02/2007, à 09:19
- Jonath68
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
J'ai utilisé le deuxième, je vais refaire avec le premier
et je reviens pour vous dire si ça fonctionne
Jonath
"La violence est le dernier rempart de l'incompétence"
Isaac ASIMOV
Hors ligne
#64 Le 15/02/2007, à 09:21
- Jonath68
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
toujours pareille, c'est thunderbird qui s'ouvre et pas un nouveau message
Tant pis, je reverrai cela ce soir en rentrant du boulot
en tout cas merci pour vos réponses
Jonath
"La violence est le dernier rempart de l'incompétence"
Isaac ASIMOV
Hors ligne
#65 Le 15/02/2007, à 09:46
- silfeed
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Tiens c'est bizarre ca...:|
Tu es sur que tu as copie l'entièreté du script?
Sinon 'faudra demander l'avis des experts
Dernière modification par silfeed (Le 15/02/2007, à 09:50)
Hors ligne
#66 Le 15/02/2007, à 12:46
- Jonath68
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Bon ben me revoilà alors j'ai refais un troisième copier / coller
et là, comme par miracle ça marche.
Donc je ne comprends pas l'erreur.
Mais en tous cas merci pour ce script je cherchais justement comment faire.
Jonath
"La violence est le dernier rempart de l'incompétence"
Isaac ASIMOV
Hors ligne
#67 Le 16/02/2007, à 22:42
- OLT
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Je suis tout nouveau ds votre monde , et je suis trés interressé par ce script ( envoyant souvant des images par mel ). Mais g un blème , tout fonctionne jusqu'a envoyer le mel ou la Thunderbird me dit qu'il ne trouve pas le fichier temporaire
....../home/..../Trash/......jpg
voila je suis preneur de toutes les idées ....................
Hors ligne
#68 Le 16/02/2007, à 22:44
- OLT
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Je précise que le répertoire .Trash existe bien sur mon Home
Voila c tout:D
Hors ligne
#69 Le 21/03/2007, à 01:06
- Jonathan Ernst
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Bonjour,
Voici une version pour Evolution.
J'ai corrigé en passant une "erreur" de syntaxe (un warning) pour le calcul de la taille du fichier.
#!/usr/bin/perl -w
use Gtk2 '-init';
# ---------------------------PLEASE EDIT CORRECTLY THIS PART----------------------------------
# Locale used by application : can be actually set to 'en' or 'fr' pour les français
$lang='fr';
# Thunderbird command : can be "thunderbird" or "mozilla-thunderbird"
# Depending of your distribution the filename in /usr/bin change
$evolution='evolution';
# Set the default quality (0-100) of rescaled pictures
$quality=80;
# --------------------------------------------------------------------------------------------
# Vérification de la présence des dépendances
eval "use Image::Imlib2"; &warn_msg("libimage-imlib2-perl") if $@;
use constant TRUE => 1 ;
use constant FALSE => 0 ;
# Variables internes
$imgfnd = FALSE;
$othfnd = FALSE;
$canresize = FALSE;
$datasize = 0;
$evobin="/usr/bin/$evolution";
# Fix lang used by application
&set_lang;
# On recupere les fichiers en argument si ils existent
if (@ARGV) {
for ($i=0; $i<@ARGV; $i++) {
$filesarg[$i] = $ARGV[$i];
@filename = split ("/", $ARGV[$i]);
$file[$i] = $filename[@filename-1];
$datasize = (`ls -s "$filesarg[$i]" | awk '{print \$1}'` + $datasize); # Estimation de la taille totale
}
}
else {
&warn_msg("nofiles");
}
# On détermine si ce sont que des images
for ($i=0; $i<@filesarg; $i++) {
$filetype = `file "$filesarg[$i]"`;
if ($filetype =~ m/image/g) {
$imgfnd = TRUE;
}
else {
$othfnd = TRUE;
}
}
$canresize = TRUE if ($imgfnd == TRUE && $othfnd == FALSE);
# On affiche la fenetre de Redimensionnement des images si necessaire
&draw_gtkwin if ($canresize == TRUE);
# On met en forme la liste pour thunderbird : file://<pathfile1>,file://<pathfile2>,file://<pathfile3>
$attach = "?attach=" . $filesarg[@filesarg-1];
for ($i=1; $i<@filesarg; $i++) {
$attach = $attach . "&attach=" . $filesarg[$i];
}
exec "$evobin \"mailto:$attach\"";
############################# FONCTIONS ################################
#Redimensionne les images
sub img_resize {
my ($widget,$button)=@_ ;
# On récupère la référence du groupe auquel appartient le bouton
my $group = $button->get_group() ;
my $label;
my $size =0;
# On parcours le tableau des boutons et on affiche le bouton qui est actif.
my $but ;
foreach $but (@$group) {
if ($but->get_active) {
# On récupère le label du bouton actif
$label = $but->get_label() ;
}
}
$size = 1024 if $label =~ m/1024/g;
$size = 800 if $label =~ m/800/g;
$size = 640 if $label =~ m/640/g;
if ($size ne 0) {
for ($i=0; $i<@filesarg; $i++) {
my $image=Image::Imlib2->load($filesarg[$i]);
my $sclimg=$image->create_scaled_image($size,0);
$sclimg->set_quality($quality);
$sclimg->image_set_format("jpeg");
$sclimg->save("$ENV{HOME}/.Trash/$file[$i]");
$filesarg[$i]="$ENV{HOME}/.Trash/$file[$i]";
}
}
Gtk2->main_quit;
}
# Creation de la fenetre gtk pour redimensionnemt
sub draw_gtkwin {
# Création de la fenêtre
my $confwin = Gtk2::Window->new('toplevel');
$confwin->signal_connect('delete_event', sub {$confwin->destroy();});
$confwin->set_title($msg{"WinName"});
$confwin->set_border_width(10);
$confwin->set_resizable(FALSE);
# Creation boite Verticale Principale
my $vbox = new Gtk2::VBox( FALSE, 5 );
$confwin->add( $vbox ) ;
# Boites horizontales Principales
my $hbox1 = new Gtk2::HBox( FALSE, 5 ); # HBOX1 - Label
$vbox->pack_start( $hbox1, FALSE, FALSE, 0 ) ;
my $hbox2 = new Gtk2::HBox( FALSE, 5 ); # HBOX2 - Radio btn
$vbox->pack_start( $hbox2, FALSE, FALSE, 0 ) ;
my $hbox3 = new Gtk2::HBox( FALSE, 5 ); # HBOX3 - Boutons
$vbox->pack_start( $hbox3, FALSE, FALSE, 0 ) ;
# Label de HBOX1
my $label = Gtk2::Label->new ();
$label->set_markup($msg{"WinText1"}."<b>$datasize Ko</b>.\n".$msg{"WinText2"} ) ;
$label->set_justify( 'left' );
$hbox1->add($label);
# Label de HBOX2
$label = Gtk2::Label->new ($msg{"ScaleType"} ) ;
$label->set_justify( 'left' );
$hbox2->add($label);
# Boite verticale et radio button
my $vboxbt = new Gtk2::VBox( FALSE, 5 );
$hbox2->add($vboxbt);
my $button1 = Gtk2::RadioButton->new( undef, $msg{"NoScale"} );
$vboxbt->add($button1);
my $group = $button1->get_group();
my $button2 = Gtk2::RadioButton->new_with_mnemonic( $group, $msg{"HighQ"} );
$vboxbt->add($button2);
my $button3 = Gtk2::RadioButton->new_with_mnemonic( $group, $msg{"MediumQ"} );
$vboxbt->add($button3);
my $button4 = Gtk2::RadioButton->new_with_mnemonic( $group, $msg{"LowQ"} );
$vboxbt->add($button4);
$cancel = Gtk2::Button->new_from_stock('gtk-cancel');
$cancel -> signal_connect ('clicked',sub {Gtk2->main_quit; exit 0});
$valid = Gtk2::Button->new_from_stock('gtk-apply');
$valid -> signal_connect ('clicked',\&img_resize,$button1);
$hbox3->add($cancel);
$hbox3->add($valid);
$confwin->show_all ;
Gtk2->main;
}
# Fenetre d'erreur si il manque une dependance
sub warn_msg {
my ($dep) = @_;
my $label;
if ($dep eq "nofiles") {
$label = $msg{"WarnFiles"};
}
else {
$label = $msg{"WarnDep"};
}
my $msgdiag = Gtk2::MessageDialog->new (undef,'destroy-with-parent','error','close',$label);
$msgdiag->show;
if ('close' eq $msgdiag->run) {
$msgdiag->destroy;
exit 1;
}
Gtk2->main;
}
# Fix lang used
sub set_lang {
if ($lang eq "fr") {
%msg = ("WinName" => "Envoi de fichiers par email",
"WinText1" => "Le(s) fichier(s) que vous voulez envoyer sont une (des) image(s).\n"
."La taille totale est de ",
"WinText2" => "Vous pouvez effectuer un redimensionnement pour que l'email soit moins volumineux.",
"ScateType" => "Type de redimensionnement :",
"NoScale" => "Aucun changement de taille",
"HighQ" => "Haute qualité : 1024 pixels de large",
"MediumQ" => "Moyenne qualité : 800 pixels de large",
"LowQ" => "Basse qualité : 640 pixels de large",
"WarnFiles" => "Vous devez sélectionner au moins un fichier à envoyer !",
"WarnDep" => "Un programme nécessaire au bon fonctionnement est manquant, merci d'installer ce package :");
}
elsif ($lang eq "en") {
%msg = ("WinName" => "Send files by email",
"WinText1" => "The file(s) you want to send is (are) pictures\n"
."Total size : ",
"WinText2" => "You can scale the picture(s) to reduce date size",
"ScateType" => "Scale type :",
"NoScale" => "Don't change anything",
"HighQ" => "High quality : 1024 pixels of height",
"MediumQ" => "Medium quality : 800 pixels of height",
"LowQ" => "Low quality : 640 pixels of height",
"WarnFiles" => "You have to select at least one file !",
"WarnDep" => "A package is missing, please install it :");
}
}
#70 Le 21/03/2007, à 10:55
- ghimli
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
apparemment tu l'as aussi modifié pour utiliser evolution à la place de thunderbird...
Du coup ça serait cool de préciser où se trouve la modif, pour que je puisse le corriger sur ma version ?
Dernière modification par ghimli (Le 21/03/2007, à 10:58)
Ghimli, Ubuntu addicted
Hors ligne
#71 Le 21/03/2007, à 14:22
- ppmt
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Cherche le mot evolution dans le script peut-etre et remplace par thunderbird
le dock dont vous avez toujours rêvé Cairo-Dock
irc://irc.freenode.net/#Cairo-Dock-fr
Hors ligne
#72 Le 21/03/2007, à 15:24
- ghimli
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
ben le soucis c'est qu'apparemment, il n'a pas changé que ça : les noms de variables ont aussi changé, au moins (evobin par exemple). C'est pour ça que j'aurais bien voulu juste avoir la ligne du bug pour éviter de tout vérifier ligne par ligne...
Ghimli, Ubuntu addicted
Hors ligne
#73 Le 28/03/2007, à 17:09
- Jonathan Ernst
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
Ce que j'ai changé pour corriger le warning :
$datasize = (`ls -s "$filesarg[$i]" | awk '{print \$1}'` + $datasize); # Estimation de la taille totale
ça serait bien de fusionner les deux scripts et d'avoir une variable de configuration qui permet de choisir le mailer...
#74 Le 28/03/2007, à 20:04
- philox47
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
bonjour eddy
j'ai fais comme indiqué pour thunderbird 1.5 mais cela ne marche pas car nulle part je ne trouve script en cliquant droit ?
je suis sous edgy
merci a toi
Hors ligne
#75 Le 28/03/2007, à 22:36
- philox47
Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus
sorry eddy j'ai parlé trops vite lol ca marche apres redemarrage x un grand merci a toi c'est génial
Hors ligne