我已经设置了一些应用程序在每次登录时自动启动(例如,redshift-gtk、gtg),但是在将这些应用程序添加到启动应用程序之后(System -> Preferences -> Startup Applications
)显然登录时间增加了。由于这一切,我的面板、桌面等出现的时间太长了——直到我不得不等待。
我不需要这些应用程序立即可用,但如果它们最终启动会很好,同时 ubuntu 菜单/面板可用于运行我可能需要的其他应用程序。
我尝试使用 at 命令,目的是编辑所有启动应用程序以将命令放入 at 队列,但这不起作用,因为应用程序没有获得必要的环境变量(如 DISPLAY)。
这是什么nice
命令的用途?我有什么其他想法可以做到这一点吗?如果可能的话,我想避免编辑启动应用程序命令,因为这意味着要在我使用的其他机器上进行大量复制。
等待桌面加载所需的秒数是任意的,并且可以根据情况而变化。代替
sleep
,尝试在系统负载下降后立即使用以下命令运行启动应用程序:(编辑:添加了 koushik 的建议。)
将其另存为
~/bin/run-when-load-low
并添加run-when-load-low 'COMMAND'
到启动应用程序首选项中。这种方法的注意事项:
DISPLAY
环境变量传递给应用程序。对于大多数桌面应用程序,这将是您所需要的。话虽如此,请务必考虑任何特殊情况,并在对任何行为不正常的情况进行故障排除时牢记这一事实。如果您认为应用程序可能需要传递其他环境变量,那么一个很好的起点是printenv
应用程序的文档,尽管我个人还没有遇到这个问题。batch
仅影响应用程序何时运行;它不会改变它们的优先级/友好性。run-when-load-low 'gedit My\ Notes.txt'
。如果您确实需要将单引号参数传递给您的应用程序,则必须在启动命令中使用双引号:run-when-load-low "gedit 'My Notes.txt'"
. 对于比这更复杂的任何事情,您最好只使用硬编码的命令修改脚本副本。我发现仅仅使用
sleep 10 && COMMAND
命令名是行不通的。我遇到了 conky 和 xchat 加载过早并且以某种方式损坏的问题。我必须编写一个名为的小脚本~/bin/startup
并将其放入其中:您需要更改其允许执行的权限,
chmod +x ~/bin/startup
然后只需用命令替换启动应用程序条目,startup
它就会触发脚本中的所有内容。如果您愿意,您可以为每个应用程序创建一个文件。
使用“睡眠”命令。
在系统 -> 首选项 -> 启动应用程序中,编辑要延迟的程序的命令:
将 10 替换为您希望它等待的秒数,并将 COMMAND 替换为最初在命令框中的内容。