xdotool 桌面问题

xdotool 桌面问题

我对此很陌生,所以希望不要冒犯。我正在尝试为我的 HTPC(家庭影院电脑)创建 Desktop.desktop 图标。每个图标一旦按下,就会打开 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. 使用诸如 Exec=` 之类的构造将多个命令传递给你的 shell,sh -c "command 1; command 2". This is a way to pass two commands through a single command: an该行只处理单个命令。
  2. 创建一个包含所需命令的 bash 脚本,并在您的Exec=行中调用该 bash 脚本。

因此,删除该行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 秒后再执行xdotoolxdotool也有一个内置的睡眠命令,所以&& xdotool sleep 0.3 search也可以解决问题。

相关内容