Servus,
ich teste hier ein kleines Programm qiv (Quick image viewer), einen sehr schlanken und entspr. flotten Bildbetrachter, welcher aus der Kommandozeile gestartet und über die Tastatur (u. a.) gesteuert wird.
Dieser Betrachter bietet eine Funktion, bestimmte Tasten mit frei definierbaren externen Kommandos zu belegen. Z. B. habe ich definiert, das ein Druck auf die Taste ‚0‘ das gerade geöffnete Bild auch im feh öffnet.
Die Definition der Tastenbelegungen geschieht in einem Shell-Script, qiv-command, welches irgendwo im Pfad liegen muss und von qiv aufgerufen wird. Dieses Script ist sehr einfach aufgebaut:
#! /bin/sh
case "$1" in
0)
feh "$2" &
;;
1)
echo -ne "1 was pushed.\nStart your own programs by editing the\n\"$0\" file!";
;;
_[...weitere Tastendefinitionen...]_
\*)
echo "Usage: $0 [0-9]"
exit 1
esac
exit 0
Nach meinem Verständnis wird feh durch die folgende Angabe des & vom Mutterprozess gelöst, das aufrufende Script beendet sich und gibt die Kontrolle an qiv zurück.
Damit sollte qiv in der Lage sein, beliebige weitere Tastendrücke abzuarbeiten. Z. B. müsste es möglich sein, ins nächste Bild zu wechseln, und dieses ebenfalls an feh zu übergeben.
Tatsächlich aber passiert das nicht. qiv nimmt zwar weiter Tastendrücke entgegen, arbeitet diese aber nicht ab. Erst wenn ich den vorher aufgerufenen feh wieder schliesse, werden sie sukzessive abgearbeitet.
Weiss jemand, wodurch dieses seltsame Verhalten ausgelöst werden könnte oder alternativ, wo ich den entscheidenden Denkfehler mache?
Gruß