如何在我的桌面上创建启动器?

在旧版本中,我可以很容易地在我的桌面上创建一个启动器。我只需要右键点击桌面,然后选择“创建启动器”选项。
现在我该如何创建这样的启动器呢?

看一下Xubuntu吧:Xfce通过菜单编辑器对此有非常优雅的支持。 - 魔大农
我必须启动Tweak工具,启用桌面图标,然后双击桌面上的主目录图标,然后在拖放文件夹到桌面时按住ALT键(而不是之前)。在启用桌面图标之前,其他方法都无法生效 :) - Spikolynn
我知道已经有很多相当不错的答案了,但这是我首选的方法,附上一个详细的示例,使用Arduino IDE v1.8.5:https://askubuntu.com/a/1014261/327339 - Gabriel Staples
22个回答

注意:在19.10版本中,gnome-panel中已删除了gnome-desktop-item-edit(请参见gnome-desktop-item-edit: command not found on Ubuntu 19.10 and later even with the 'gnome-panel' package installed)。因此,这个答案可能不适用于19.10及以后的版本。
如果您仍然想使用旧的GUI对话框,它仍然可用:
使用ALT+F2键输入
gnome-desktop-item-edit --create-new ~/Desktop

这将启动旧的图形用户界面对话框,并在您的桌面上创建一个启动器:

enter image description here

先决条件

如果您已经安装了gnome-shell/gnome-fallback,gnome-desktop-item-edit将会自动安装。如果您之前已经安装了gnome-tweak-tool,它也会自动安装。

或者,您可以安装旧版的gnome-panel,这样不会占用太多空间:

sudo apt-get install --no-install-recommends gnome-panel

您以后可以将MyLauncher.Desktop文件从~/Desktop移动到~/.local/share/applications/,这样它就会出现在所有应用程序仪表板中,或者移动到/usr/local/share/applications,这样它就对所有用户可用(感谢@JonBently的评论)。
编辑:Ubuntu 22.04+该应用程序称为gnome-tweaks ..... 2022年7月28日

79虽然这是一个很棒的答案,但很遗憾Ubuntu让它变得如此困难。 - djangofan
18如果您创建了一个启动器,它可以启动"创建启动器",那么将gnome-desktop-item-edit --create-new ~/Desktop放入命令部分能够实现此功能。这样,您就可以拥有一个桌面图标来创建启动器。 - Mateo
这对我来说不起作用。 所有发生的事情就是它显示一个“结果”,但即使我按下回车键或点击图标,它也不运行任何东西。 - matteo
1哦,通过在终端中输入我可以看出为什么它不起作用:$ gnome-desktop-item-edit --create-new ~/Desktop 当前未安装程序“gnome-desktop-item-edit”。您可以通过输入以下命令进行安装: sudo apt-get install gnome-panel - matteo
我设置了图标,但它没有保存。 - Deepen
我使用gnome-desktop-item-edit --create-new创建了一个应用程序,现在我需要编辑它。怎么办? - A J
2这在Ubuntu 14.04上不起作用:ALT+F2会打开Unity中的启动栏!但是下面@virpara提供的解决方案有效:如何在我的桌面上创建启动器? - rubo77
18值得一提的是,这些文件最好放在~/.local/share/applications/目录下 - 这样它们就会出现在Dash中。 - artfulrobot
1只是为了记录,你可以直接在/applications/中使用**gnome-desktop-item-edit --create-new ~/.local/share/applications/**来创建快捷方式。 - dragonmnl
1在Ubuntu 16.04中,gnome-desktop-item-edit不再可用 :-( - artfulrobot
12我不明白为什么那会很难? - Adelin
2在桌面上创建一个快捷方式是一个非常基本且经常使用的功能。谁会傻到强迫用户通过创建文本文件来实现呢?Ubuntu应该内置这个功能。命令行有它自己的位置,但快捷方式是一个图形界面的东西。再次感谢您的回答。 - Andiana
1这个方法很有效,但如果你使用的是Ubuntu 17.10,请小心,因为它会更改默认窗口管理器。要取消其影响,需要执行sudo apt-get purge gnome-panel命令。 - ROMANIA_engineer
1@ROMANIA_engineer 谢谢,这实际上意味着这个答案不再是一个可行的选择了,https://askubuntu.com/a/64237/340383 真的是最好的答案,随着Ubuntu 17.10的到来。我永远不会记得那些"安装某某软件包并记住之后清除某某软件包"的魔法配方,只为了简单地将一个图标添加到桌面。 - bgoodr
在Ubuntu 18.04上,找不到命令。 - Cagy79
1请注意,如果您希望该文件对系统上的所有用户都可用,那么更好的位置是/usr/local/share/applications。否则,它只会对您自己可见。 - Jon Bentley
2遗憾的是,这在2019年几乎2020年仍然具有相关性。 - Jaroslav Záruba
不再可用了。在Ubuntu 18.04中找不到该命令。 - ibilgen

你可以手动完成。创建一个名为something.desktop的新文本文件,并在其中写入以下内容:
#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=command to run here
Name=visible name here
Comment=comment here
Icon=icon path here

别忘了将文件设置为可执行(chmod +x something.desktop)。
或者在那个标签上点击右键,选择“允许启动” (在Ubuntu 19.04中经过测试)。

7谢谢你的回答。我需要把文件放在哪里呢?我可以把它放在.local/share/applications文件夹中,然后将其拖放到启动器面板上,但这不是我想要的。我想把它们放在桌面上而不是启动器面板上。 - tinuz
2然后将它放在你的桌面上!你可以把它放在任何你想要的地方。 - fnkr
我喜欢这个。如果你的桌面上已经有一个启动器,那就更容易了 - 只需复制它并根据需要进行编辑。 - Kit Johnson
20这真是个大麻烦。你需要编辑一个文本文件来创建一个快捷方式?为什么我们要把它搞得比在Windows上更困难呢?而且当你有一个可执行文件时,怎么会想到“图标路径在这里”呢?祝你从中提取图标好运 - 这是另一项完全不同的任务。令人惊讶的是,在Ubuntu上,这个最简单的任务竟然如此困难! - Dan Dascalescu
不适用于Gnome 3.28.1。 - Suncatcher
如果其他工具已经过时,那么这应该是被接受的答案。但是不要添加任何包含工具或其他东西的存储库来执行如此简单的任务... - codepleb
2#!/usr/bin/env xdg-open 这个 shebang 真的有必要吗?我在其他答案中没有看到它被使用。 - WinEunuuchs2Unix
1它在Ubuntu 19.10上无法运行。我收到错误信息gdbus.error: ...unknown xorg.xfce.panel was not provided by any .service files - rubo77
1在Ubuntu 19上对我没用。不得不使用sudo mv ~/something.desktop /usr/share/applications/命令。 - ichigolas
1@DanDascalescu 如果你不知道的话,Linux是一个衍生自UNIX的操作系统,遵循着UNIX的哲学:“一切皆文件”,这种方式比起为不同事物使用多个未定义和临时格式来说更加合理。如果你喜欢Windows的方式,完全可以自由地使用微软的操作系统。同时,请不要要求所有事物都迎合你的口味。 - Adrian

有一种更酷的方式:

Arronax


arronax

原始图片来自iloveubuntu.net,目前无法访问

要安装,请打开终端,按下Ctrl+Alt+T并输入以下命令:

sudo add-apt-repository ppa:diesch/testing 
sudo apt-get update
sudo apt-get install arronax
nautilus -q

这更酷,因为它具有拖放和更多带有图形用户界面(GUI)的功能。

了解更多关于Arronax on ubuntugeek.com的信息。


这是一个非常方便的工具。请访问作者的网站http://www.florian-diesch.de/software/arronax。 - Rudiger Wolf
1现在alacarte坏了,这是另一种方式。它不像alacarte那样显示所有启动器,但它可以让你对它们进行更多的设置... - user77164
这真的很好,不仅适用于Unity,也在MATE上运行良好! - Jonas Czech
非常感谢!在安装过程中报告了一些错误(Ubuntu 16),但是它完美地运行了!而且,在启动器中显示了正确的图标! - dwn
更酷的是!它将打开的窗口分组放置在启动器图标下方 - 不错! - dwn
3现在请使用sudo add-apt-repository ppa:diesch/stable - julianstanley

  1. 在 /usr/share/applications/ 中创建 .desktop 文件

    gksudo gedit /usr/share/applications/give-any-name.desktop
    
  2. 粘贴以下文本

    [Desktop Entry]
    Type=Application
    Terminal=false
    Icon=/path/to/icon/icon.png
    Name=give-name-here
    Exec=/path/to/file/executable
    Categories=Utility;
    

把你想要的名字给Name

至于IconExec,可以使用完整路径或系统名称。例如,VLC视频播放器图标可以是/usr/share/icons/hicolor/48x48/apps/vlc.png或只是vlc(不带.png扩展名)。

对于Categories,请查看XDG Standards list


最新版本不再适用,桌面图标已完全移除。
这是在Gnome和Unity中恢复右键菜单的解决方案,
1- 如果你还没有安装,请安装gnome-tweak-tool Install gnome-tweak-tool, 在终端中粘贴以下内容-
sudo apt-get install gnome-tweak-tool

2- 然后输入以下内容来启动它
gnome-tweak-tool

或者使用快捷键 Alt+F2 输入 gnome-tweak-tool 然后点击 "运行"。
3- 在左侧的选项卡中导航到 "桌面" 选项,并打开
"由文件管理器处理桌面"。

enter image description here

4-此部分的来源: 1 现在我们将创建一个脚本放在右键菜单上 -

通过终端或按下Alt+F2打开gedit,粘贴代码

gnome-desktop-item-edit ~/Desktop/ --create-new

只将此内容放入新的文本文档中,然后保存为"创建新启动器",无需扩展名(如果无法在下一步中使其可执行,您可能需要使用.sh作为扩展名,例如"创建新启动器.sh")。

5- 现在我们需要将文件设置为可执行,右键单击该文件,选择> 属性 > 点击权限标签 > 找到"执行"并选中"允许将文件作为程序执行",然后关闭。

6- 打开文件浏览器,选择> 查看 > 显示隐藏文件,现在导航到您的主文件夹,并将文件放置在~/.gnome2/nautilus-scripts中。如下所示 -

enter image description here

7- 现在我们可以在右键菜单上创建新的启动器了!在桌面上右键单击,然后选择 > 脚本 > 创建新的启动器 然后填写您想要的应用程序的命令信息,如下所示- enter image description here 如果您忘记了应用程序的启动命令,请点击“浏览”,然后导航到文件系统 > usr > bin,即 /usr/bin,这些是您系统上的应用程序,大多数情况下在您点击“打开”后会自动找到图标,尽管在此之前不会显示出来。
如果当您回到“创建启动器”对话框时没有显示图标,您可以通过在 /usr/share/icons 中找到图标并拖放进来。各个主题文件夹中都有默认图标,或者在 /usr/share/icons/hicolor/scalable/apps 或 /usr/share/icons/hicolor/48x48/apps 中有特定的图标,如果以后您想要放置一个图标,可以右键单击 > 属性来拖放图标进去。
这只适用于 GNOME 的部分(在 Unity 中,alt+f2 是不同的)。列出已知应用程序的另一种方法是按下 Alt+F2 并单击“显示已知应用程序列表”下的应用程序,然后您可以复制该程序的命令文本粘贴到
创建新的启动器中。

enter image description here

所有这些都将使制作自定义启动器变得非常容易,一旦设置完成,您就可以在不使用终端的情况下制作它们。

非常感谢您抽出时间写下这篇内容!我已经按照步骤完成了,并且现在能够轻松地制作启动器,真是太棒了。 - Kamil Slowikowski
8这太过于复杂了... - Reinier Post
为什么Tweaker不起作用呢?我在Gnome 3.28.1上启用了桌面图标,但它们没有显示出来。 - Suncatcher
新版本中完全移除了桌面图标支持。 - Mateo

一个更简单的方法来创建程序的启动器:
如果你可以在你的Dash中找到这个程序,只需点击并拖动该程序的图标到你的桌面或其他你想要的位置即可。 :)

1在Ubuntu 14.04上对我来说不起作用(错误信息)。 - BurninLeo
你可能需要使用中间的鼠标按钮。这将创建一个指向.desktop文件的符号链接。除非.desktop文件是可执行的,否则它仍然无法正常工作。 - Seppo Enarvi

在14.04 / 15.10 / 16.04 /17.04 / 17.10版本中,要在桌面上创建一个现有应用程序的快捷方式:最简单的解决方案(据我所见,在其他答案中没有找到)是将应用程序的桌面文件复制到桌面上:转到/usr/share/applications,右键单击应用程序的桌面文件>复制,转到您的桌面,右键单击>粘贴。不要忘记将其设置为可执行文件,在您将其设置为可执行文件后,它的正确图标将出现。
在14.04中,仅通过从Dash拖放图标到桌面上无法实现。

1这在14.04版本中对我有用:xdg-desktop-icon install /usr/share/applications/google-chrome.desktop - Adam Monsen
我的Gnome 3.28.1上右键菜单中没有“粘贴”选项。 - Suncatcher
@Suncatcher 这是因为3.28不再支持桌面图标... - Jacob Vlijm

创建一个名为something.desktop的文件,用gedit打开并输入以下内容:
[Desktop Entry]
Name=Launcher Name
Comment=Launcher Comment
Exec=Command to Execute
Terminal=false
Type=Application
Icon=Path to Icon

把这个文件放在/usr/share/applications,当你运行它时,在Unity启动器中右键点击应用程序并勾选“保持在启动器中”(如果你想要它在Unity启动器中),或者如果你想要一个桌面启动器,就把它放在桌面上。
如果你想将此应用程序应用到你的用户账户,请将此文件放在~/.local/share/applications
Jurriaan制作了一个图形化的Python应用程序来为您完成所有这些操作,可以在这里下载:http://jurschreuder.nl/UnityLaunchCreator.tar.gz

如何使用一个.desktop文件和两个符号链接创建桌面快捷方式和Unity Dash / Gnome dock(“开始菜单”)图标选项
(在Ubuntu 14.04、16.04、18.04和20.04中测试通过)。
在这个例子中,我们将为Arduino v1.8.5创建一个启动器。可执行文件之前已经提取到这个文件夹中:“〜/Downloads/Install_Files/Arduino/arduino-1.8.5”。启动应用程序的主要可执行文件存储在“〜/Downloads/Install_Files/Arduino/arduino-1.8.5/arduino”中。
按照下面的示例,根据您的应用程序更新所有步骤,包括根据需要修改.desktop文件内容。
我的策略是创建一个单独的.desktop文件作为程序的“主”启动器,然后我们将创建两个符号链接(symlinks)到该文件,以便我们可以通过桌面上的图标(1)和使用Unity或Gnome应用程序启动器搜索菜单(2)来启动程序。
问:为什么要这样做? 答:这样做可以让您只需编辑一个.desktop文件即可同时更改两个位置的快捷方式。
问:为什么不直接在桌面上创建.desktop文件,然后为Unity/Gnome应用程序启动器创建一个符号链接呢? 答:因为这样,.desktop文件会安全地保存在一个不同的文件夹中,你和你的孩子不会意外从桌面上删除它,所以你知道它不会被意外修改或删除。
步骤:
1. 使用您选择的文本编辑器创建一个启动器(.desktop文件),根据需要进行编辑。将其存储在“〜/Desktop_launchers/Arduino_1_8_5.desktop”中。
以下是命令,我使用“leafpad”图形界面文本编辑器:
mkdir ~/Desktop_launchers
sudo apt update && apt install leafpad
cd ~/Desktop_launchers
leafpad Arduino_1_8_5.desktop

将以下内容复制并粘贴到刚创建的"Arduino_1_8_5.desktop"文件中。
  • 请注意,我的主目录("~")是"/home/gabriels"。请根据您的用户名在下面进行修改。
  • 还请注意,对于带有空格的Exec路径,您必须在路径名称周围使用单引号('),否则当您点击运行链接时会出现"启动应用程序时出错"。
  • 然而,对于Icon路径,即使路径中有空格,您也不要在路径周围使用单引号,否则图标将无法正确显示在链接上。

Arduino_1_8_5.desktop文件内容:

[Desktop Entry]
Name=Arduino 1.8.5
Comment=
Exec=/home/gabriels/Downloads/Install_Files/Arduino/arduino-1.8.5/arduino
Icon=/home/gabriels/Downloads/Install_Files/Arduino/arduino-1.8.5/lib/arduino.png
Terminal=false
Type=Application
StartupNotify=true

保存并退出。

2. 使其可执行。

注意:这一步很重要!在下面的下一步中创建符号链接之前,您必须先完成此步骤,否则您即将创建的符号链接将无法正常作为从桌面启动程序的快捷方式。

chmod +x Arduino_1_8_5.desktop

3. 在桌面上创建一个符号链接,以便您可以从那里启动您上述的.desktop启动器:
命令格式:ln -s /path/to/file /path/to/symlink_to_make
ln -s ~/Desktop_launchers/Arduino_1_8_5.desktop ~/Desktop/Arduino_1_8_5.desktop

请注意,将符号链接以“.desktop”结尾是必需的,否则它将无法正确显示或作为桌面快捷方式正常工作。
4. 在Unity/Gnome应用程序菜单上创建一个符号链接,这样您也可以从那里启动它。
sudo ln -s ~/Desktop_launchers/Arduino_1_8_5.desktop /usr/share/applications/Arduino_1_8_5.desktop

注意:

  • Ubuntu Unity/Gnome应用程序的.desktop文件存储在:“/usr/share/applications”目录中
  • 附注:与桌面上的.desktop文件不同,应用程序目录中的文件不需要标记为可执行文件才能正常工作。

5. 完成!

  • 现在,如果您需要更新桌面文件,只需直接在一个地方更新它:“~/Desktop_launchers/Arduino_1_8_5.desktop”,更改将自动被桌面和“/usr/share/applications”中的符号链接识别。
  • 如果在更改后桌面图标未更新,请点击桌面,然后按下F5Ctrl + R以刷新桌面图标。
  • 要删除快捷方式,只需从桌面和“/usr/share/applications”中删除相应的符号链接,如下所示:
  • rm ~/Desktop/Arduino_1_8_5.desktop
  • sudo rm /usr/share/applications/Arduino_1_8_5.desktop

截图:

我的桌面上显示新创建的快捷方式:

enter image description here

新创建的快捷方式的Unity启动器菜单:

enter image description here

额外阅读:

如需更多知识和其他技巧,请参阅官方Ubuntu文档中的"UnityLaunchersAndDesktopFiles",链接在此处:https://help.ubuntu.com/community/UnityLaunchersAndDesktopFiles

另请参阅:

  1. 我的eRCaGuy_dotfiles项目,包括我的示例Desktop_launchers以及desktop_file_install.shdesktop_file_uninstall.sh脚本。

考虑到Scaine的先前答案,gnome-panel方法安装了依赖项,但从根本上来说-我们并不真正需要这些,我们只需要创建.desktop文件。因此,我放了一个小脚本,以图形方式执行该操作,在~/Desktop文件夹中创建了一个命名的.desktop文件,可以随时使用并固定到Unity启动器上。这里的脚本不是最好的,但能完成任务。

这可以保存为名为makeLauncher.sh的文件,从右键单击->属性->权限->允许将文件作为程序执行更改权限,然后它就准备好了。

#!/bin/bash

FORM=$(zenity --forms \ --title="Simple shortcut maker" --text="Create new .desktop file" \
        --add-entry="Program Name" \
        --add-entry="Command or path to file" \
        --add-entry="Terminal app(true/false)" \
        --add-entry="Icon (path)") 

[ $? == 0 ] || exit 1

awk -F'|' -v home="$HOME" '{ 
    FILE = home"/Desktop/"$1".desktop"
        print "[Desktop Entry]" >> FILE
        print "Type=Application" >> FILE
        print "Name="$1 >> FILE
        print "Exec="$2 >> FILE
        print "Terminal="$3 >> FILE
        if ($4 !~ /^[ ]*$/)
            print "Icon="$4 >> FILE ;
    system("chmod 755 " FILE);

}' <<< "$FORM"

这是它的外观。

enter image description here

附注:遗憾的是,zenity的表单字段没有复选框用于表单小部件,所以终端应用程序选项的真/假必须键入。我正在考虑用PyQt重写这个脚本。


1建议:终端应用程序应该是一个复选框 - 这会使代码稍微复杂一些,但对用户来说更容易。图标可以选择性地使用文件选择器。 - muru
@muru 好建议 - 我会努力去做。 - Sergiy Kolodyazhnyy
我已经将脚本添加到了Nautilus操作中,但它只会在桌面上创建启动器。有没有办法在执行脚本的文件夹内(通过该操作)创建启动器呢? - user47206
1@cipricus 嗯,是的,可能的:脚本写入FILE = home"/Desktop/"$1".desktop",其中home被定义为awk命令中的变量,在-v home="$HOME"部分。你可以做的是从awk命令中删除所有对FILE的引用,并通过> somefile.desktop将命令本身重定向到你想要创建的特定文件名。这并不太困难,只需要重新编写那个特定的部分。请在几天后提醒我。我会尽量明天更新这个答案,但我可能会忘记。 - Sergiy Kolodyazhnyy
谢谢!- 我想到了一个更简单的答案(将“创建启动器”添加到Nautilus上下文菜单(无需gnome-desktop-item-edit),但我觉得你的可能更好。 - user47206