• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Tastatur Befehl von Shell an Browser Brave senden

Guten Abend,

OS: LMDE7
Anwendungen: <simplescreenrecord>, <at>, <xdotool>, <brave>(Version 1.88.122)

Ich möchte meinen Bildschirm aufnehmen, wenn Ich ein Video über meinen Browser schaue. Dazu verwende Ich <simplescreenrecord>, welches zeitgesteuert starten soll, sowie das Video in meinem Browser Brave per gesendetem Tasten-Befehl auch gestartet werden soll.

Leider kommt meine gesendete Taste nicht durch.

Aktuell habe Ich folgenden Befehl ausgearbeitet,

echo "DISPLAY=:0 simplescreenrecorder --start-recording --start-hidden && sleep 2 && xdotool key --window \$(xdotool search --class Brave | head -1) space" | at 11:32

<xdotool search --class Brave | head -1> soll sich die Anwendungs ID, was auch klappt und dann die Taste <space> übersenden. Und das Alles zu einer bestimmten Zeit.

Weiß Jemand wie Ich es besser machen kann?
Oder ist Brave da der falsche Browser für Sowas?

Danke und Grüße
 
Ich würde das erstmal ohne "at" probieren.
Ich kann oft z.B. grafische Programme nicht über "at" öffnen. Das liegt vermutlich daran, daß das unter einem anderen Benutzer ausgeführt wird, und der nicht die Rechte am Display hat.
Wie gesagt, erstmal ohne "at" probieren, und wenn das geht, sich auf die Probleme mit "at" konzentrieren.
 
Super, habe folgenden Befehl probiert xdotool search --onlyvisible --class "Brave" windowactivate --sync key --clearmodifiers space und anscheinend klappt es jetzt. :)
 
Sehr gut, freut mich!

Ich hatte auch noch etwas recherechiert. Wenn ich z.B. versuche, eine Taste an Google-Chrome zu senden, erhalte ich mehrere IDs. Du hattest die erste genommen, mit "| head 1", aber unter Umständen ist es nicht die erste.
Man bekommt zusätzlich noch den Namen des Fensters (Tabs), und wenn da z.B. "YouTube" drin ist, kann man direkt dahin senden, wobei ich für die Datenverarbeitung Perl einsetze. Ist dann 'n bißchen kompliziert, geht aber. Grober Entwurf war so (ich brauch' es ja nicht weiter auszuarbeiten, wenn es bei Dir schon läuft):
Code:
#!/usr/bin/perl

use warnings;
use strict;

my $searchstring = "hrome";
my $sendkey = "space";

sub sendKeyToWindow {
    my $windowid = shift;
    my $sendkey = shift;
    my @commands = ("xdotool windowactivate \"$windowid\"",
                    "xdotool windowfocus \"$windowid\"",
                    "xdotool key \"$sendkey\"");
    my $e;
    for $e (@commands) {
        print "$e\n";
        system($e);
    }
}

# my $e = "export DISPLAY=:0.0"; print "$e\n"; system($e);

my @a = `xdotool search --class "$searchstring"`;
my $i;
my $name;
for $i (@a) {
    chomp $i;
    $name = `xdotool getwindowname $i`;
    if ($name =~ /YouTube/) {
        sendKeyToWindow($i, "space");
    }
}
(Perl wüßte natürlich auch, wie spät es ist, so daß man auch "at" ersetzen könnte, wenn es kein Problem ist, das Perl-Skript die ganze Zeit laufen zu lassen, damit es die Zeit prüft.)
 
Oben