feh Viewer, Tastenbefehle per Kommando?

Gast #4758968
Lesenswert?

Hallo,
bzgl. dem "FEH" Bildbetrachter für Linux (bzw. verwende es jetzt aufm 
Raspberry)..
per feh -F -D 3 directory  wird eine slideshow gestartet.

Per Tastatur kann dann z.B. mit der H-Taste die slideshow pausiert 
werden. Wie simuliere ich die H-Taste per Kommando-Befehl??

Danke
#4759104
Lesenswert?

Schau mal hier den Link:

http://xmodulo.com/simulate-key-press-mouse-movement-linux.html

Hab das dort stehende Beispiel etwas umgebastelt und es hat bei mir 
funktioniert, also es pausiert alle 2 sekunden feh, bzw. hebt die Pause 
auf. Ob das zweite sleep nach dem Fokussieren wirklich nötig ist musst 
du mal ausprobieren.

1
#!/bin/bash 
2
 
3
for i in {1..30} 
4
do
5
  WID=`xdotool search --name "feh" | head -1` 
6
  echo $WID
7
  xdotool windowfocus $WID 
8
   sleep 1
9
  xdotool key "h"
10
  sleep 1 
11
done


hope that helps

vgs
Gast #4759138
Lesenswert?

ok. ja danke, habe auch an xdotool gedacht...(schade ist nicht anders 
möglich)

ABER da ist noch ein anderes Problem bevor ich das nutzen kann,
also wenn ich mit einem script den "feh" starte...  wird der weitere 
Code im script gar nicht mehr ausgeführt.

Ich bekomme es nicht hin, auch mit zwei scripten... sobald "feh" 
gestartet ist wird jeder weitere code im script ignoriert, wieso?
#4759160
Lesenswert?

epikao schrieb:
> Anders beschrieben:
>
> ich kann per script nicht gleichzeitig zwei programme starten, also:
>
> ./main.py && feh -D 3 "/..."
>
> GEHT NICHT? es wird immer nur das erstere ausgeführt, wieso?

Wenn du das so schreibst, sollte das zweite schon ausgeführt werden, 
aber erst, nachdem das erste erfolgreich (also mit Return-Code 0) 
beendet wurde.
Gast #4759161
Lesenswert?

epikao schrieb:
> ./main.py && feh -D 3 "/..."
>
> GEHT NICHT? es wird immer nur das erstere ausgeführt, wieso?

Weil das eben heisst:
fuehre "main.py" aus und wenn dessen Ergebnis true ist dann "feh..."
Das Ergebnis(exitcode) bekommst Du aber erst zum Ende.

asdfgghhjj
Gast #4759166
Lesenswert?

dann probier es mal so:
feh -D 3 "/..."  &
./main.py  &

Dein Konstrukt argeitet die programme in der angegebenen Reihenfolge ab:
./main.py && feh -D 3 "/..."

Das logische und (&& ) dazwischen sorgt sogar dafuer dass das
zweite Programm nicht gestartet wird wenn das erste (./main.py) false
zurueckliefert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren