问题描述
我如何在登录后自动启动应用程序?
最佳解决方法
14.04和更高版本
-
打开Dash并搜索”Startup Applications”
-
现在点击添加并在命令中输入以运行应用程序。如果安装(见下文)或如何找出应用程序的终端命令?,可在主菜单中找到。
使用主菜单(alacarte)
-
首先打开程序’Main Menu'(在Dash中输入
Menu
) -
现在选择你想添加到启动的程序,然后点击属性。
-
现在记下该程序的命令。
非GUI方法
高级用户可能希望在~/.config/autostart
中放置.desktop文件,以便在用户登录后运行应用程序。这可能有以下内容:
[Desktop Entry]
Type=Application
Name=<Name of application as displayed>
Exec=<command to execute>
Icon=<full path to icon>
Comment=<optinal comments>
X-GNOME-Autostart-enabled=true
次佳解决方法
对于11.04和更新版本请参阅:How do I start applications automatically on login?
对于旧版本:如果您希望在启动时运行的程序位于“应用程序”菜单中,则可以将drag-and-drop加载到“启动应用程序”窗口中以将其添加到列表中。
第三种解决方法
从Dash启动启动应用程序
点击启动应用程序
然后点击添加
键入程序的名称,浏览到该命令,然后单击添加。
补充:下面是我用来自动启动Guake的示例 – Yakuake的Gnome版本:
把它放在’command’框中。
sh -c "sleep 120s; guake"
这会自动启动guake,但在此之前等待2分钟。你可以改变你想要的120。
编辑:
14.04和16.04:
在Dash中键入Startup,然后在那里运行启动应用程序窗体
然后按照其余的步骤。
(请注意,如果您使用其他语言的ubuntu,”startup”可能找不到正确的程序,请尝试使用您的语言进行的其他搜索)
第四种方法
Unity和Xfce4都有GUI程序,允许您控制启动应用程序。
对于Unity:
对于Xfce4启动工具可在设置>中使用。会话和启动
图片由Xubuntu Geek xubuntugeek提供
如果GUI不是您想要的,并且您想要更高级的控制,那么您可以将.desktop
文件放在Xfce4的~/.config/autostart/
目录中,并将.desktop
文件放在Unity的~/.config/autostart
中,以在用户登录后运行应用程序。
检查此问题以获取有关创建.desktop
文件的更多帮助:
另请注意,如果您希望启动应用程序仅在XFCE中启动,但不在Unity中,则必须将OnlyShowIn=XFCE
行放入.desktop
文件中。它是OnlyShowIn=Unity
仅适用于Unity的应用程序。
第五种方法
您可能需要通过以下命令从CLI启动它:
$ gnome-session-properties
(以防万一你没有运行GNOME;))
第六种方法
您可以使用GNOME启动应用程序。
点击添加按钮,然后添加完整的命令来打开你想要的应用程序。如果你不知道你可以做的命令的路径
which name_of_commmand
第七种方法
还要将BATCH FILE放入启动应用程序,以便在用户登录后运行….在命令行键入启动应用程序的字段中的命令:
gnome-terminal -e "/batch-path/batch-name.sh"
-
gnome-terminal
:用户以当前用户权限登录后打开终端 -
-e
:设置终端执行批处理文件 -
/batch-path/batch-name.sh
:是批处理完整路径和全名
记住比文件批处理权限设置标志允许执行文件作为程序打开。
第八种方法
看看$ XDG_CONFIG_DIRS /autostart目录:
$ echo $XDG_CONFIG_DIRS/autostart
/etc/xdg/xdg-kde-plasma:/usr/share/upstart/xdg:/etc/xdg/autostart
其中说在这个例子中有3个目录。我想修剪 nautilus 的入口
sudo rm /etc/xdg/autostart/nautilus-autostart.desktop
否则如果你可以添加它,创建一个Desktop entry文件:sudo touch /etc/xdg/autostart/my-shell-autostart.desktop
添加这些内容:
[Desktop Entry]
Name=foo
Terminal=false
Exec=/path/shell.sh
Type=Application
Icon=/path/icon.png
Categories=Utility;
第九种方法
带有UNITY指令的Ubuntu 13.10
要使用需要sudo
的命令来执行此操作有点棘手。
在我的情况下,我想使用sudo rmmod psmouse
命令禁用PSMOUSE驱动程序,以防止随机出现的鼠标点击问题。有关此问题的更多信息,请参阅Dealing with Mouse and Touchpad Freezes in Linux。我厌倦了在每次启动时输入它。
在我的安装中,~/.config
文件夹没有自动启动sub-folder,所以我创建了一个。这使我的启动应用程序首选项设置得以保存。
为了切换隐藏启动应用程序的可见性,您可以使用以下命令。
向他们展示:
sudo sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/*.desktop
要隐藏它们:
sudo sed -i 's/NoDisplay=false/NoDisplay=true/g' /etc/xdg/autostart/*.desktop
在Startup Applications Perferences窗口中根据上述帖子配置您的命令。
Name: Fix Mouse
Command: sudo rmmod psmouse
Comment: Fix Mouse
然后你必须使用sudo visudo
编辑/etc /sudoers文件。添加一行包含以下信息的行:
username ALL=(ALL) NOPASSWD: /sbin/rmmod
您必须在以%admin开头的行下面输入此行。我将我的行添加到文件的末尾。使用sudo visudo
来编辑这个文件是很重要的,因为犯错将会阻止你完全不能执行任何sudo
命令。如果发生这种情况,请在恢复模式下启动并取消编辑,然后尝试使用sudo visudo
。
注意:最初我尝试使用bash脚本来间接运行我的命令,但这不起作用。我必须将sudo rmmod psmouse
直接放入编辑启动程序窗口。
第十种方法
对于Ubuntu 12.04,
-
从右上角的菜单启动启动应用程序
-
在没有点击添加的情况下,打开Dash并键入您想要在启动时运行的应用程序,例如Skype的
-
将应用程序拖到启动应用程序窗口。如果Dash窗口太大以至于无法将应用拖到外面,请使用左上角的恢复窗口按钮(如上图所示)。最终名单如下所示:
参考资料