Ich bin hier noch ganz neu und hoffe, niemanden zu beleidigen. Ich versuche, Desktop.desktop-Symbole für meinen HTPC (Heimkino-PC) zu erstellen. Jedes Symbol sollte beim Drücken die URL öffnen und den Bildschirm maximieren. Mein Code unten tut dies, aber das Xdotool maximiert nicht. Wenn ich mein Xdotool jedoch auf einem Terminal ausführe, funktioniert es! Ich nehme an, der Code benötigt eine Art Verzögerung zwischen dem Öffnen der URL und dem Maximieren?
[Desktop Entry]
Name=YouTube
Type=Link
URL=https://www.youtube.com/
Comment Terminal=false
Icon=/home/babak/Myicons/YouTube.png
Exec=xdotool search "google chrome" windowactivate --sync key F11
Dank im Voraus.
Antwort1
Eine .desktop-Datei öffnet entweder eine URL oder führt einen Befehl aus, aber nicht beides gleichzeitig. Um die URL zu öffnen und etwas mit den erstellten Fenstern zu tun, kombinieren Sie beide Aktionen in der exec =
Zeile.
Es gibt zwei Möglichkeiten, zwei Aktionen in einer Zeile zu kombinieren Exec =
.
- Übergeben Sie mehrere Befehle an Ihre Shell, indem Sie eine Konstruktion wie
sh -c "command 1; command 2". This is a way to pass two commands through a single command: an
„Exec=“ verwenden. Die Zeile verarbeitet nur einen einzigen Befehl. - Erstellen Sie ein Bash-Skript mit den erforderlichen Befehlen und rufen Sie dieses Bash-Skript in Ihrer
Exec=
Zeile auf.
Löschen Sie daher die Zeile URL=
und ändern Sie sie Exec=
in
sh -c 'google-chrome https://www.youtube.com/ && xdotool search "google chrome" windowactivate --sync key F11'
Sie können sh
durch ersetzen bash
. Statt &&
können Sie auch verwenden ;
, aber ersteres stellt sicher, dass der xdotool
Befehl nur ausgeführt wird, wenn der erste Befehl erfolgreich ausgeführt wurde.
Wenn es ein Timing-Problem gibt, versuchen Sie, eine Pause einzufügen, z. B.
...&& sleep 0.3 && xdotool
würde 0,3 Sekunden warten, bevor es ausgeführt wird xdotool
. xdotool
hat auch einen integrierten Sleep-Befehl, && xdotool sleep 0.3 search
sollte also auch funktionieren.