À noter pour le script de artik1024, c'est pas l'url qui contient un retour à la ligne, c'est xsel qui le rajoute...
Je suis en train de faire une amélioration du script pour qu'il propose une ou 2 options avant de mettre les liens en copie. Je dépose ensuite!
Edit :
Terminé! (petit exemple obtenu par simple collé ^^)
Voici ma version du script avec demande au départ de conservation et choix du dossier de sauvegarde et possibilité d'avoir un lien pour forum avec miniature!
dépendances:
sudo apt-get install scrot curl libnotify-bin xsel
#!/bin/bash
# script pour créer rapidement et simplement un screenshot d'une zone du bureau
# et de l'envoyer sur imgur. Vous avez le choix de sauvegarder l'image. Vous récupérez
# un lien disponible en collant le contenu du presse papier sous la forme d'un lien ou
# de BBcode contenant le lien et une miniature. Enjoy!
#
# Copyright (C) 22 Jan. 2011, Rombeaut Rodolphe
# http://scriptam.over-blog.com/
# Released into the public domain.
###### Options ######
# changer en LOG=1 pour conserver la liste des urls des images uploadées
LOG=0
# changer en TAILLE="s" pour le thumbnail small ou en TAILLE="l" (L minuscule) pour le large
TAILLE="s"
###################
CHOIX=$(zenity --list \
--checklist \
--title="Options" \
--text="Choisissez vos options de traitement: \n - Conserver l'image pour conserver le screenshot ^^ \n - Lien pour forum pour obtenir un lien a coller dans un \nforum avec thumbnail et lien vers l'original.\n - Par defaut, vous obtenez juste le lien de l'image." \
--height="240" \
--hide-column="2" \
--column="" \
--column="" \
--column="Choix" \
FALSE "1" "Conserver l'image" \
FALSE "3" "Conserver l'image sur le bureau" \
FALSE "2" "Lien pour forum") || {
notify-send Annulation
exit 0
}
# Emplacement du screenshot pour conservation
[ -n "$(echo ${CHOIX} | grep 1)" ] && {
LOCATE=$(zenity --file-selection \
--title="Dossier d'enregistrement" \
--filename="${HOME}/" \
--directory) || {
notify-send Annulation
exit 0
}
# Vérifier la présence d'un fichier screenshot dans le dossier
# Si oui renommer en screenshot(X).jpg ou X est un nombre suffisamment élevé pour
# ne pas écraser l'ancien screenshot
[ -f "${LOCATE}/screenshot.jpg" ] && {
b=1
while [ -f "${LOCATE}/screenshot($b).jpg" ] ; do ((b++)) ; done
SCRSHT="${LOCATE}/screenshot($b).jpg"
} || SCRSHT="${LOCATE}/screenshot.jpg"
} || {
# Idem que avant mais pas besoin de demander l'emplacement
# Vérification automatique du nom du dossier (bureau ou Desktop)
[ -n "$(echo ${CHOIX} | grep 3)" ] && {
[ -d "${HOME}/bureau" ] && BUREAU="${HOME}/bureau" || BUREAU="${HOME}/Desktop"
[ -f "${BUREAU}/screenshot.jpg" ] && {
b=1
while [ -f "${BUREAU}/screenshot($b).jpg" ] ; do ((b++)) ; done
SCRSHT="${BUREAU}/screenshot($b).jpg"
} || SCRSHT="${BUREAU}/screenshot.jpg"
} || {
# Si pas d'option, on envoie en dossier /tmp et on supprime tout ancien fichier
# pour ne pas fausser le test suivant
rm -f /tmp/screenshot.jpg
SCRSHT="/tmp/screenshot.jpg"
}
}
# Cheese! ^^
scrot -s -q 100 -d 1 "${SCRSHT}";
[ -f "${SCRSHT}" ] || {
notify-send "Pas de screenshot effectué"
exit 1
}
URL=$(curl -F "image"=@"${SCRSHT}" -F "key"="5d317f0bee23b282473522e1aa68f621" http://imgur.com/api/upload.xml | grep -Eo '<[a-z_]+>http[^<]+' | sed 's/^<.\|_./\U&/g;s/_/ /;s/<\(.*\)>/\1:\ /' | cut -d ' ' -f3 | head -n1)
[ "${LOG}" -eq 1 ] && echo "$(date);${URL}" | tee -a "${HOME}/.${0##*/}.log" ;
# Retour à xsel selon option
[ -n "$(echo ${CHOIX} | grep 2)" ] && {
echo -n "[url=${URL}][img]${URL%.*}${TAILLE}.${URL##*.}[/img][/url]" | xsel -i -b ;
} || {
echo -n "${URL}" | xsel -i -b ;
}
notify-send "Image Uploadée";
exit 0
Edit : Mise à jour pour palier à certains désagréments
Possibilités de faire plusieurs envois avec sauvegarde sur le disque au même endroit sans risque d'effacement des précédentes images. Choix d'enregistrer par défaut sur le bureau (ou Desktop si le dossier bureau n'existe pas) ou dans un autre endroit au choix.
Vérification de la création du screenshot.
Sinon on peut toujours avoir un lien en BBcode pour forum avec miniature ou seulement avoir le lien de l'image.
Si vous souhaitez avoir la miniature large, remplcer à la ligne 81:
echo -n "[url=$URL][img]${URL%.*}s.${URL##*.}[/img][/url]" | xsel -i -b ;
par
echo -n "[url=$URL][img]${URL%.*}l.${URL##*.}[/img][/url]" | xsel -i -b ;
(Tout con comme modif mais faut le savoir)
Enjoy!