Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#51 Le 19/03/2009, à 15:34

Coolaman

Re : [Script] Screenshot

Bizarre, tout fonctionne chez moi ( en ligne de commande, squeeze et xarchiver )

Bon je te met le code

#!/bin/bash
# Contact : coolaman@free.fr
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
#
# Depends : 	Scrot
#		Zenity
#		Imagemagick 
#		libaosd or Xdialog ( not necessary, only for showing time in pause )


###################### Traduction ##########################

lang="`echo ${LANG:0:2}`"

full="Total"
desfull="Take a full screnshot"
part="Partial"
despart="Take a partial screenshot"
title="Save in which directory ?"
des="Description"
ch="Choice"
pause="Pause"
despause="Allows to take a popup"
pec="Unknown format"
rap="Express"
rapide="Recording under Screenshot.png in your home"
ok="Save this screenshot ?"
exist="File exists !"
case $lang in
fr)
full="Totale"
desfull="Prendre une capture totale"
part="Partielle"
despart="Prendre une capture partielle"
title="Sauvegarder dans quelle repertoire ?"
des="Description"
ch="Choix"
pause="Pause"
despause="Permet de prendre un popup ou autre"
pec="Format inconnu"
rap="rapide"
rapide="Enregistrement sous Screenshot.png dans votre home"
ok="Garder ce screenshot ?"
exist="Le fichier existe !"
;;
de)
full="Voll"
desfull="Eine Gesamtgefangennahme nehmen"
part="Partiell"
despart="Eine partielle Gefangennahme nehmen"
title="Bewahren in, welches repertoire ?"
des="Beschreibung"
ch="Wahl"
pause="Pause"
despause="Erlaubt, ein popup zu nehmen "
pec="Unbekanntes Format"
rap="Schnellzug"
rapide="Registrierung unter Screenshot.png in Ihrem Heim"
ok="Diesen Screenshot behalten ?"
exist="Die Datei existiert !"
;;
es)
full="Total"
desfull="Tomar una captura total"
part="Parcial"
despart="Tomar una captura parcial"
title="Salvaguardar en cuál repert ?"
des="Descripción"
ch="Elección"
pause="Pausa"
despause="Permite tomar un popup"
pec="Formato desconocido"
rap="rápido"
rapide="Registro bajo Screenshot.png en su home"
ok="Guardar a este screenshot ?"
exist="El fichero existe !"
;;
it)
full="Totale"
desfull="Prendere una cattura totale"
part="Parziale"
despart="Prendere una cattura parziale"
title="Salvaguardare in quale repertoire  ?"
des="Descrizione"
ch="Scelta"
pause="Pausa"
despause="Permette di prendere un popup"
pec="Formato sconosciuto"
rap="Veloce"
rapide="Registrazione sotto Screenshot.png nel vostro home"
ok="Custodire questo screenshot ?"
exist="Lo schedario esiste !"
;;
esac

mkdir /home/$USER/scr 
############################ Sauvegarde ####################################
function name {
	cd ~
	files=`zenity  --file-selection --save --filename "Screenshot.png" --title "$title"` 

	if [ "$files" = "" ]; then rm -rf /home/$USER/scr ; exit 0
	fi
######################## Recuperation du repertoire ##########################
	rep=`dirname "$files"`
	 
######################### Recuperation du nom ###############################
	nom=`basename "$files" | cut -f1 -d.`
	
##########################Recuperation extension ############################
	ext=`basename "$files" | cut -f2 -d.`

######################### Choix de l'extension ##############################

	case $ext in
	"png") 	ext="png"
	;;
	"jpg") 	ext="jpg"
	;;
	"ppm") 	ext="ppm"
	;;
	"tiff") ext="tiff"
	;;
	"jpeg") ext="jpeg"
	;;
	*) zenity --error --title="" --text="$pec"
	name
	;;
	esac
	
convert /home/$USER/scr/Screenshot.png /home/$USER/scr/Screenshot."$ext"

#################### Incrementation si le fichier existe ###################
	
	if [ -e "$rep"/"$nom"."$ext" ]; then v=1
	while [ -e "$rep"/"$nom"_"$v"."$ext" ] 
	do
	echo $v
	v=$(($v+1))
	done
	fi
	
if [ -n "$v" ] ; then mv /home/$USER/scr/Screenshot."$ext" "$rep"/"$nom"_"$v"."$ext"	
else mv /home/$USER/scr/Screenshot."$ext" "$rep"/"$nom"."$ext"
fi

}

############################# Affichage #####################################

function affich {
if [ -e /usr/bin/convert ] ; then
convert -thumbnail 400x400 /home/$USER/scr/Screenshot.png /home/$USER/scr/thumb.png && ( display -border 2x2 -geometry -1-1 -title "Screenshot.png" -immutable /home/$USER/scr/thumb.png & zenity --question --title="Printscreen" --text="$ok" )
	case $? in
	1)
	killall display ; zob="" 
	rm /home/$USER/scr/"Screenshot.png" ; rm /home/$USER/scr/thumb.png ; choose
	;;
	0)
	killall display 
	;;
	esac
fi
}

############################ Affichage Pause ##############################

function pa {

if [ -e /usr/bin/aosd_cat ]; then
	if [ "$zob" = "ok" ] ; then	
	while [ "$p" -ge 1 ]
	do
	sleep 1
	p=$(($p-1))
	echo "$p" | aosd_cat  -p 2 --x-offset=-20 --y-offset=10 --font="bitstream bold 40" --fore-color="#e53838" --transparency=1 --fade-full=1000
	done
	fi
	
elif [ -e /usr/bin/Xdialog ]; then
	if [ "$zob" = "ok" ] ; then
	(
	while [ "$p" -ge 0 ]
	do
	echo "XXX";echo "$p";echo "XXX"
	sleep 1
	p=$(($p-1))
	done
	) | Xdialog  --under-mouse --no-buttons  --infobox "" 2 5 0
	fi	
fi

}

########################### Screenshot total ###############################
function tot {

	pa && scrot /home/$USER/scr/Screenshot.png -b -d1
	if [ $? != 0 ] ; then zenity --error --title "Printscreen" ; p=0  
	choose
	fi
}

########################### Screenshot partiel ##############################

function part {
	pa && scrot /home/$USER/scr/Screenshot.png -s -b 
	if [ $? != 0 ] ; then zenity --error --title "Printscreen" ; p=0 
	choose
	fi
}

################################# Choix #####################################

function choose {

choix=`zenity --list --radiolist --width=530 --height=220 \
		--title="Printscreen" \
		--column="" --column="$ch" --column="$des" \
		TRUE	"$rap"		"$rapide" \
		FALSE	"$full"		"$desfull" \
		FALSE	"$part"		"$despart" \
		FALSE	"$pause"	"$despause" `
		
case "$choix" in		
"$full") tot && affich && name ;;
"$part") part && affich && name ;;
"$rap")  tot && affich ; DATE=`date +"%R_%d%m%Y"` ; cp /home/$USER/scr/Screenshot.png /home/$USER/Screenshot_$DATE.png ;;
"$pause") p=`zenity --scale --min-value=0 --max-value=20 --text="$pause" --width=100 --title="Printscreen" ` ;	zob="ok" ; choose ;;
*) rm -rf /home/$USER/scr ; exit 0 ;;
esac

}

choose
rm -rf /home/$USER/scr 
exit 0

A +

Hors ligne

#52 Le 25/03/2009, à 19:05

hector

Re : [Script] Screenshot

Bonjour et bravo pour ce script :
je vois 3 petites améliorations possibles, dites-moi ce que vous en pensez :

  * dans le choix des 4 possibilités : proposer celle qu'on a choisie le coup d'avant.
  * le bouton valider présélectionné pour qu'un "entrée" suffise à lancer l'imprime écran.
  * la possibilité de mettre l'image dans le presse-papiers (pour pouvoir le rajouter dans un document par copier-coller).

Merci.

Hors ligne

#53 Le 27/03/2009, à 20:18

Coolaman

Re : [Script] Screenshot

Merci, soluce vite fait pour ta premiere demande :

Remplacer :

"$full") tot && affich && name ;;
"$part") part && affich && name ;;
"$rap")  tot && affich ; DATE=`date +"%R_%d%m%Y"` ; cp /home/$USER/scr/Screenshot.png /home/$USER/Screenshot_$DATE.png ;;

par

"$full") sed -i "233,235s/TRUE/FALSE/g" "$DIR_SCRIPT"/Printscreen  && sed -i '234s/FALSE/TRUE/g' "$DIR_SCRIPT"/Printscreen ; tot && affich && name ;;
"$part") sed -i "233,235s/TRUE/FALSE/g" "$DIR_SCRIPT"/Printscreen && sed -i '235s/FALSE/TRUE/g' "$DIR_SCRIPT"/Printscreen ; part && affich && name ;;
"$rap")  sed -i "233,235s/TRUE/FALSE/g" "$DIR_SCRIPT"/Printscreen && sed -i '233s/FALSE/TRUE/g' "$DIR_SCRIPT"/Printscreen ; tot && affich ; DATE=`date +"%R_%d%m%Y"` ; cp /home/$USER/.screenshot/Screenshot.png /home/$USER/Screenshot_$DATE.png ;;

et ajoute en debut du script la ligne :

DIR_SCRIPT="le repertoire ou se trouve le script ex: /home/login/.script"

par contre ca ne fonctionnera qu'au redémarrage du script, pas si tu annule.

Pour le reste, je ne sais pas si zenity permet de "pré valider" entrée ( ou je ne connais pas la commande ) et mettre l'image dans le presse papier, faut que je regarde du coté de imagemagick.

Dernière modification par Coolaman (Le 27/03/2009, à 21:47)

Hors ligne

#54 Le 28/03/2009, à 17:41

louis3d

Re : [Script] Screenshot

Très bon petit script !
Merci c'est bien utile...

PS : Moi non plus je n'arrivais pas à decompresser ton archive

Dernière modification par louis3d (Le 28/03/2009, à 17:42)

Hors ligne

#55 Le 28/03/2009, à 19:04

jeromeg

Re : [Script] Screenshot

Salut,

Sinon vous pouvez utiliser Xfce4 Screenshooter que j'ai pas mal amélioré ces derniers temps. Par exemple, il est possible de mettre les captures d'écran dans le presse-papier.

À +,

Jérôme

Hors ligne

#56 Le 29/03/2009, à 08:55

Coolaman

Re : [Script] Screenshot

louis3d a écrit :

Très bon petit script !
Merci c'est bien utile...

PS : Moi non plus je n'arrivais pas à decompresser ton archive

J'ai recompressé l'archive en ligne de commande et re-uploadé, ca devrai marcher.

Salut,

Sinon vous pouvez utiliser Xfce4 Screenshooter que j'ai pas mal amélioré ces derniers temps. Par exemple, il est possible de mettre les captures d'écran dans le presse-papier.

Je confirme Xfce4 Screenshooter fonctionne très bien ( j'ai honte mais c'est ce que j'utilise maintenant car plus rapide que mon script, qui n'était à la base qu'un soluce temporaire).

Hors ligne

#57 Le 30/05/2009, à 20:44

Mornagest

Re : [Script] Screenshot

jeromeg a écrit :

Salut,

Sinon vous pouvez utiliser Xfce4 Screenshooter que j'ai pas mal amélioré ces derniers temps. Par exemple, il est possible de mettre les captures d'écran dans le presse-papier.

À +,

Jérôme

J'ai pas réussi à trouver comment lier le plugin à la touche impr. écran... je peux rajouter un raccourci dans les paramètres clavier de Xfce, mais il faut connaître la commande à lancer, or j'ignore comment elle se nomme.

Quelqu'un sait ? smile

Edit : au temps pour moi, c'est expliqué clairement ici... désolé tongue et merci Jeromeg cool

Dernière modification par Mornagest (Le 30/05/2009, à 20:47)


N'oubliez pas de consulter la documentation pour vous donner un coup de main !
Merci de modifier le premier message de votre sujet pour ajouter [Résolu] lorsque votre problème l'est :)
Xubuntu 20.04 sur deux ordinateurs, zéro souci. Passez à Xubuntu ;)

Hors ligne

#58 Le 12/11/2013, à 09:22

dYp

Re : [Script] Screenshot

Pour configurer xfce4-screenshooter sur le clavier :
- Ouvrir "Menu" > "Paramètres" > "Clavier"
- Onglet "Raccourci des Applications" Cliquer "Ajouter"
- Saisir "xfce4-screenshooter" puis cliquer "Valider"
- Dans la fenêtre suivante appuyer sur la ou les touches désirées pour le raccourci... et voilà, mon [Print Screen] lance 'xcfe4-screenshooter'

Hors ligne