有没有什么方法(也许使用 ImageMagik 或其他东西)从 shell 脚本加载全屏图像然后关闭它?
我有一台可以加载 kodi、mythTV 和其他一些东西的媒体电脑。我希望可以推迟加载 kodi 直到一切准备就绪,而不是显示桌面等,只显示全屏图像而不是桌面。因此,shell 脚本(位于启动项中)看起来应该类似于:
#!/bin/bash
#first load the image full screen
display -options here ~/Pictures/loader.jpg
#do other stuff here and sleep if required
loadstuff
sleep 10
#close the image
display -close orwhatever
#load kodi
kodi &
我目前一切正常,唯一的问题是它在桌面上停留 5 秒钟(同时另一个应用程序 AndroMouse 运行),然后加载 kodi,然后等待 mythTV 启动后再加载 PVR 插件。
我不想显示桌面(如果我不加载 AndroMouse,您就永远看不到桌面,直接进入 Kodi),相反,我想显示全屏加载图像,我只会让 Kodi 等待加载,直到神话完成。
我怎样才能在执行任何其他操作之前(尽可能早地)全屏加载图像,然后在到达脚本的那部分时再次将图像取下?
答案1
好的,现在我有一个可行的方法,如果有人想出更好的解决方案(并解释为什么它是更好的解决方案)我会接受这个答案。
因此我使用 eog(Eye of gnome),并使用以下命令启动它:
eog -f -w -g ~/Pictures/loader.png 1>/dev/null 2>&1&
因此,这会将主目录中图片目录中的图像 loader.png 加载到 gnome 之眼中。加载时,它会使用 -f(全屏)、-w(单窗口模式)和 -g(不是图库)选项。然后,单窗口模式允许您根据需要多次启动它(将其带回前台),而无需再次打开它。
然后后面是“1>/dev/null 2>&1&”。这基本上将所有错误放到一个输出中,并将该输出传送到 NULL,这样就不会将任何错误反馈给进行调用的脚本(因为这会导致该脚本出现问题)。末尾的 & 只是让它运行自己的线程,因此您不必等待它关闭再继续下一部分。
当你想删除图像时,你可以使用以下调用:
pkill eog
注意:这将终止 eog 的任何实例,因此请确保您当时没有在其他任何地方使用 eog(或名称中带有 eog 的任何脚本等)。
因此,要将其放在示例 .sh 文件中,您可以执行以下操作:
#!/bin/bash
#set the image to use for the loader
loadImage=~/Pictures/loader.png
#load the loader image
eog -f -w -g $loadImage 1>/dev/null 2>&1&
#load any other apps required
~/scripts/andromouse/andromouse.sh 1>/dev/null 2>&1&
~/scripts/startMyth.sh 1>/dev/null 2>&1&
eog -f -w -g $loadImage 1>/dev/null 2>&1&
#launch kodi over the image and then get rid of the image
~/scripts/startKodi.sh
sleep 5
pkill eog
exit
这将把图像放上去,启动您需要的任何后台程序等,启动 Kodi,等待 5 秒钟,然后关闭图像。等待 5 秒钟的原因是为了确保 Kodi 在屏幕上,然后再删除图像。无论如何,Kodi 都会加载到顶部(只要您在启动 Kodi 命令后不调用 eog)。