ubuntuusers.de

Zenity Meldungsfenster vergrößern

Status: Gelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

suwo

Anmeldungsdatum:
25. Februar 2009

Beiträge: 502

Hallo zusammen.

Ich habe ein script im Netz gefunden, um pdf-Dateien nach Wörtern zu durchsuchen. Funktioniert super, aber: Die Dateien dich ich durchsuche, haben ziemlich lange Namen, so dass diese nicht komplett angezeigt werden. Wie kriege ich das hin, dass das Meldungsfenster entsprechend der Dateinamen breiter wird? Hier das script:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/bash

IFS="
"

# Select Directory
NEWPATH=$(zenity --file-selection --directory --title="Wähle einen Ordner")
if [ -z "$NEWPATH" ]; then
	echo 'Keinen Ordner ausgewählt'
	exit 1
fi
cd $NEWPATH

files=$(ls *.pdf -1)
if [ $? != "0" ]; then
	zenity -error --text='No files to convert!'
	exit 3
fi

#Get Keyword
KEYWORD=$(zenity --entry --text="Gib den Suchbegriff ein" --title="Suche in PDF-Dateien")
if [ -z "$KEYWORD" ]; then
	echo 'No keyword'
	exit 2
fi

#Files text exctraction and matching
( for MYFILE in $files; 
	do
	result=$(pdftotext $MYFILE  - | grep $KEYWORD -i)
	if [ -n "$result" ]; then
		echo $MYFILE >> '/tmp/pdfFinder'
	fi
done
) |  zenity --progress --title='Processing PDFs' --pulsate --auto-close

#Checking Results
list=$(cat '/tmp/pdfFinder')
if [ -z $list ]; then
	zenity --error --text='Keine Datei gefunden!'
	exit 5
fi
rm '/tmp/pdfFinder'

#Show List until user exits the program or selects a file
while [ 1 ]; do
	fileToOpen=$(zenity --list --column="FileName" --title="Dateien mit dem Suchbegriff \"$KEYWORD\"" $list)
	if [ $? == '0' ]; then
		if [ -z "$fileToOpen" ]; then
			zenity --error --text='No file Selected'
		else
			#Running pdf viewer already looking for our word
			evince --find=$KEYWORD $fileToOpen
		fi
	else
		exit 4
	fi
done

Im Anhang das Ergebnis die Ausgabe als Bild. Danke für Tipps,

Suwo

Bearbeitet von rklm:

Syntaxhighlighting. Bitte beachte Forum/Syntax!

Bilder

STRAGIC-IT

Avatar von STRAGIC-IT

Anmeldungsdatum:
3. Januar 2006

Beiträge: 3497

Wohnort: Fürth

Hallo suwo, unter

man zenity

finden sich sehr viele Infos.

Bye HS

coram

Anmeldungsdatum:
17. Januar 2015

Beiträge: 645

Wohnort: Freiburg

Seltsam, dass das Zenity-Ergebnisfenster bei Dir - anders als bei mir (siehe Anhang original_script.png) – keine Scroll-Balken aufweist!

Um das Fenster in seinen Ausmaßen aber an den längsten Dateinamen und an die Anzahl der gefundenen Dateien anzupassen, habe ich das Skript mal ab Zeile 37 bearbeitet. Die beiden markierten Zahlenwerte müssen evtl. je nach systemweiten Schrifteinstellungen individuell angepasst werden (zum derart vergrößerten Meldungsfenster siehe Anhang modified_script.png):

#Checking Results
list=$(cat '/tmp/pdfFinder')
if [ -z $list ]; then
	zenity --error --text='Keine Datei gefunden!'
	exit 5
fi

#Zeichenzahl der längsten Ausgabezeile
ll=$(wc -L '/tmp/pdfFinder' | cut -d" " -f1)
#Entsprechende Fensterbreite für zenity
width=$(($ll * 10))

#Anzahl der Ausgabezeilen
nl=$(wc -l '/tmp/pdfFinder' | cut -d" " -f1)
#Entsprechende Fensterhöhe für zenity
height=$(($nl * 48))

rm '/tmp/pdfFinder'

#Show List until user exits the program or selects a file
while [ 1 ]; do
	fileToOpen=$(zenity --list --column="FileName" --width=$width --height=$height --title="Dateien mit dem Suchbegriff \"$KEYWORD\"" $list)
	if [ $? == '0' ]; then
		if [ -z "$fileToOpen" ]; then
			zenity --error --text='No file Selected'
		else
			#Running pdf viewer already looking for our word
			evince --find=$KEYWORD $fileToOpen
		fi
	else
		exit 4
	fi
done
Bilder

suwo

(Themenstarter)

Anmeldungsdatum:
25. Februar 2009

Beiträge: 502

Hallo. Danke für die Tipps. Habe mir natürlich man zenity angeschaut. Aber auf die Lösung von coram wäre ich nicht gekommen. @coram Es existiert bei der Ausgabe sehr wohl ein Scrollbalken, der wird aber nur sichtbar, wenn ich mit der Maus drüberfahre (Unity). Das script habe ich per copy and paste modifiziert, klappt aber trotzdem nicht. K.A. warum.

#!/bin/bash

IFS="
"

# Select Directory
NEWPATH=$(zenity --file-selection --directory --title="Wähle einen Ordner")
if [ -z "$NEWPATH" ]; then
	echo 'Keinen Ordner ausgewählt'
	exit 1
fi
cd $NEWPATH

files=$(ls *.pdf -1)
if [ $? != "0" ]; then
	zenity -error --text='No files to convert!'
	exit 3
fi

#Get Keyword
KEYWORD=$(zenity --entry --text="Gib den Suchbegriff ein" --title="Suche in PDF-Dateien")
if [ -z "$KEYWORD" ]; then
	echo 'No keyword'
	exit 2
fi

#Files text exctraction and matching
( for MYFILE in $files; 
	do
	result=$(pdftotext $MYFILE  - | grep $KEYWORD -i)
	if [ -n "$result" ]; then
		echo $MYFILE >> '/tmp/pdfFinder'
	fi
done
) |  zenity --progress --title='Processing PDFs' --pulsate --auto-close

#Checking Results
list=$(cat '/tmp/pdfFinder')
if [ -z $list ]; then
	zenity --error --text='Keine Datei gefunden!'
	exit 5
fi

#Zeichenzahl der längsten Ausgabezeile
ll=$(wc -L '/tmp/pdfFinder' | cut -d" " -f1)
#Entsprechende Fensterbreite für zenity
width=$(($ll * 10))

#Anzahl der Ausgabezeilen
nl=$(wc -l '/tmp/pdfFinder' | cut -d" " -f1)
#Entsprechende Fensterhöhe für zenity
height=$(($nl * 48))

rm '/tmp/pdfFinder'

#Show List until user exits the program or selects a file
while [ 1 ]; do
	fileToOpen=$(zenity --list --column="FileName" --title="Dateien mit dem Suchbegriff \"$KEYWORD\"" $list)
	if [ $? == '0' ]; then
		if [ -z "$fileToOpen" ]; then
			zenity --error --text='No file Selected'
		else
			#Running pdf viewer already looking for our word
			evince --find=$KEYWORD $fileToOpen
		fi
	else
		exit 4
	fi
done

Im Anhang noch mal mein Suchergebnis. MfG,

Suwo

Bilder

coram

Anmeldungsdatum:
17. Januar 2015

Beiträge: 645

Wohnort: Freiburg

Sorry, es ging in meinem Skript-Schnipsel vielleicht unter, dass auch die Definition von "fileToOpen" unter Einbeziehung der neuen Variablen $width und $height verändert wurde (siehe im Folgenden Zeile 59). Deshalb hier besser meine Version noch einmal im Ganzen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash

IFS="
"

# Select Directory
NEWPATH=$(zenity --file-selection --directory --title="Wähle einen Ordner")
if [ -z "$NEWPATH" ]; then
	echo 'Keinen Ordner ausgewählt'
	exit 1
fi
cd $NEWPATH

files=$(ls *.pdf -1)
if [ $? != "0" ]; then
	zenity -error --text='No files to convert!'
	exit 3
fi

#Get Keyword
KEYWORD=$(zenity --entry --text="Gib den Suchbegriff ein" --title="Suche in PDF-Dateien")
if [ -z "$KEYWORD" ]; then
	echo 'No keyword'
	exit 2
fi

#Files text exctraction and matching
( for MYFILE in $files; 
	do
	result=$(pdftotext $MYFILE  - | grep $KEYWORD -i)
	if [ -n "$result" ]; then
		echo $MYFILE >> '/tmp/pdfFinder'
	fi
done
) |  zenity --progress --title='Processing PDFs' --pulsate --auto-close

#Checking Results
list=$(cat '/tmp/pdfFinder')
if [ -z $list ]; then
	zenity --error --text='Keine Datei gefunden!'
	exit 5
fi

#Zeichenzahl der längsten Ausgabezeile
ll=$(wc -L '/tmp/pdfFinder' | cut -d" " -f1)
#Entsprechende Fensterbreite für zenity
width=$(($ll * 10))

#Anzahl der Ausgabezeilen
nl=$(wc -l '/tmp/pdfFinder' | cut -d" " -f1)
#Entsprechende Fensterhöhe für zenity
height=$(($nl * 48))

rm '/tmp/pdfFinder'

#Show List until user exits the program or selects a file
while [ 1 ]; do
	fileToOpen=$(zenity --list --column="FileName" --width=$width --height=$height --title="Dateien mit dem Suchbegriff \"$KEYWORD\"" $list)
	if [ $? == '0' ]; then
		if [ -z "$fileToOpen" ]; then
			zenity --error --text='No file Selected'
		else
			#Running pdf viewer already looking for our word
			evince --find=$KEYWORD $fileToOpen
		fi
	else
		exit 4
	fi
done

Ein ganz anderer, vielleicht erfolgversprechender Versuch wäre es, statt Zenity dessen Fork Yad zu verwenden, das die möglicherweise passenden Optionen --hscroll-policy=never und --vscroll-policy=never bietet. Kann ich, da gerade in Eile, frühestens heute Abend ausprobieren.

suwo

(Themenstarter)

Anmeldungsdatum:
25. Februar 2009

Beiträge: 502

Hallo.

Vielen Dank. Klappt genauso wie ich es wollte.

Schönes WE,

Suwo

Antworten |