xdotool Проблема с рабочим столом

xdotool Проблема с рабочим столом

Я совсем новичок в этом деле, так что надеюсь никого не обидеть. Я пытаюсь создать значки Desktop.desktop для моего HTPC (домашнего кинотеатра). Каждый значок при нажатии должен открывать URL и разворачивать экран. Мой код ниже делает это, но xdotool не разворачивает. Однако, когда я запускаю свой xdotool на терминале, он работает! Я предполагаю, что коду нужна какая-то задержка между открытием URL и разворачиванием?

[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

Заранее спасибо.

решение1

Файл .desktop либо откроет URL, либо выполнит команду, но не то и другое одновременно. Чтобы он открыл URL и сделал что-то с созданными окнами, объедините оба действия в строке exec =.

Есть два способа объединить два действия в одной Exec =строке.

  1. Передача нескольких команд в оболочку с помощью такой конструкции, как sh -c "command 1; command 2". This is a way to pass two commands through a single command: anExec=`, обрабатывает только одну команду.
  2. Создайте bash-скрипт, содержащий необходимые команды, и вызовите этот bash-скрипт в своей Exec=строке.

Таким образом, удалите строку URL=и измените Exec=строку на

sh -c 'google-chrome https://www.youtube.com/ && xdotool search "google chrome" windowactivate --sync key F11'

Вы можете заменить shна bash. Вместо &&вы также можете использовать ;, но первый вариант гарантирует, что xdotoolкоманда будет выполнена только в том случае, если первая команда будет выполнена успешно.

Если есть проблема со временем, попробуйте вставить паузу, например

...&& sleep 0.3 && xdotool

будет ждать 0,3 секунды перед выполнением xdotool. xdotoolТакже имеет встроенную команду sleep, так что && xdotool sleep 0.3 searchтоже должна подойти.

Связанный контент