在 Ubuntu 14.04 上,第一个 Unity Dash 搜索比以下搜索慢得多。
使用 xdotool 我试图在 Ubuntu 启动时打开然后关闭 Unity Dash 用户界面。
~/.config/autostart/unity_dash_update.desktop
[Desktop Entry]
Type=Application
Exec=~/.config/autostart/unity_dash_update.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[it]=Unity Dash Update
Name=Unity Dash Update
Comment[it]=
Comment=
~/.config/autostart/unity_dash_update.sh
#!/bin/bash
sleep 1
xdotool key Alt+F2
sleep 3
window="$(xdotool getactivewindow)"
xdotool key --window $window "Escape"
exit 0
如果我手动运行 bash 脚本,一切正常,但在系统启动期间,Dash 出现并且不会消失。
我尝试过在 xdotool 执行之间有或没有睡眠时间,但没有成功。
我做错了什么?
更新
正如 Jacob Vlijm 建议的那样,Exec
参数错误,因为它必须是绝对路径。
这是我的错,因为我尝试了一种快速(太快)的方法来从我发布的代码中删除我的名字。
对不起。
所以一个更正的 .desktop 文件将是
[Desktop Entry]
Type=Application
Exec=/home/myname/.config/autostart/unity_dash_update.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[it]=Unity Dash Update
Name=Unity Dash Update
Comment[it]=
Comment=
感谢雅各布的帮助。
dbus
实际上有一个关闭 Dash 菜单的方法。使用qdbus
您的脚本可以更改如下:请注意,另外我已将睡眠时间增加到 10 秒,因为 Unity 可能需要一些时间才能启动。因此,如果 Unity 尚未启动,这将使脚本运行命令,但这些命令将无效。
您的设置中有一些问题:一个肯定会使其无法正常工作,另一个很可能是:
1.最重要的一个:
在
.desktop
文件中,您使用:但
~
在文件中不起作用.desktop
,您需要使用绝对路径,除非您的脚本在$PATH
(并且可执行)中,然后只需按其名称运行它。2. 很可能,您需要在命令运行之前设置一个中断
现在它只是运行得太早了,要么中断,要么错过目标。这种情况经常发生在:
xrandr
命令,尤其是在连接了第二台显示器时还有一些... Unity 相关的命令按定义在列表中,因为它本质上与桌面相关。
结论:将您的
Exec=
行更改为:编辑
重要笔记
在您的问题中,您提到“Unity Dash 搜索速度要慢得多”。但是,您的
xdotool
命令不会调用 Unity Search,而是调用命令条目。只需(虚拟地)按下即可调用 Unity SearchSuper。然后制作脚本:或者更好的是,根本不使用脚本,并将其添加到启动应用程序中,包括在它运行之前需要的中断:
当然你可以试试
sleep 15
时间。您的
.desktop
文件非常扩展,而对于像在启动时运行脚本这样的基本工作:足够了。
如果你使用少,少会出错:)
另请参见此处。
如果您坚持使用单独的脚本,请不要将其存储在
~/.config/autostart
. 该目录专门用于启动(登录)启动器。