如何在 Ubuntu 12.04 LTS 中为命令创建程序快捷方式?

Jis*_*Yoo 9 launcher shortcuts ubuntu

我记得我可以在旧版本的 Ubuntu 中做到这一点,但我在 Ubuntu 12.04 中迷失了方向。

我想在启动器栏或桌面上添加一个项目,双击时运行以下命令,例如:

emacs -q --some-other-options --load ~/xyz.el
Run Code Online (Sandbox Code Playgroud)

在 MS Windows 中,我想创建一个带有自定义参数的程序快捷方式。如果我也可以通过在 Launcher Search 上键入“Emacs XYZ”并选择找到的项目来运行该命令,那也很好。Windows 7 中所有可能的功能以及如何通过右键单击各种内容即可轻松发现。

作为一种解决方法,我制作了一个包含该命令的可执行脚本“Emacs XYZ.sh”,并在桌面上创建了该脚本的链接(通过按住 Alt 拖动)。但是这个解决方法是不完整的,因为链接不能拖到启动栏,当我双击链接时,Ubuntu总是问

您想运行“链接到 Emacs XYZ.sh”,还是显示其内容?

使其运行命令分两步。当我在 Launcher Search 上搜索“Emacs XYZ”并选择该项目时,它只是使用 gedit 打开脚本,而不是运行脚本。此外,脚本的显示图标不是 Emacs 图标。

Jis*_*Yoo 10

我正在阅读和尝试很多东西,然后我发现https://help.ubuntu.com/community/UnityLaunchersAndDesktopFiles解释了一切。基于此,这里有一个自我回答。

在这个答案中,我将演示:

  • 如何显示程序快捷方式的详细信息
  • 如何修改程序快捷方式
  • 如何创建运行命令的新程序快捷方式
  • 如何将程序快捷方式添加到某个地方,以便它出现在启动器搜索中(通过启动器搜索,我的意思是当您单击左侧的 Dash 主页图标或按 Windows 键时显示的搜索界面。)

先决条件:

  • 熟悉命令 cd 和 ls

打开终端。cd 到 /usr/share/applications 并使用 ls 显示文件夹的内容,还使用 ​​xdg-open 使用默认文件浏览器显示文件夹:

cd /usr/share/applications
ls
xdg-open . &
Run Code Online (Sandbox Code Playgroud)

ls显示带有.desktop扩展名的文件。这些文件是文本文件,它们的内容可以用 gedit 查看,例如输入:

gedit gcalctool.desktop &
Run Code Online (Sandbox Code Playgroud)

.desktop文件夹中的每个文件都是一个程序快捷方式,文件浏览器将它们显示为程序快捷方式,而不是显示它们的实际文件名。grep 可以发现哪些程序快捷方式属于哪些文件:例如要找出用于字符映射的文件,请输入:

grep -Fi 'character map' *.desktop
Run Code Online (Sandbox Code Playgroud)

这将显示它对应于文件gucharmap.desktop.

要编辑快捷方式,请使用 gksudo gedit 打开它:

gksudo gedit gucharmap.desktop &
Run Code Online (Sandbox Code Playgroud)

为了创建一个新的快捷方式,例如创建一个运行以下命令的快捷方式:

python -i -c 'from math import *'
Run Code Online (Sandbox Code Playgroud)

进入:

gksudo gedit gcalctool.desktop my-calc.desktop &
Run Code Online (Sandbox Code Playgroud)

gcalctool.desktop是计算器已经存在的快捷方式文件,并且my-calc.desktop是一个尚不存在的新文件名。使用gedit,复制gcalctool.desktopto的内容, my-calc.desktop然后修改内容my-calc.desktop,保存。

gcalctool.desktop 的内容:

[Desktop Entry]
Name=Calculator
Comment=Perform arithmetic, scientific or financial calculations
Exec=gcalctool
Icon=accessories-calculator
Terminal=false
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Utility;Calculator;
X-GNOME-DocPath=gcalctool/gcalctool.xml
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gcalctool
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-OtherBinaries=gnome-calculator
X-Ubuntu-Gettext-Domain=gcalctool
Run Code Online (Sandbox Code Playgroud)

my-calc.desktop 的内容(更改的字段:名称、注释、执行、终端):

[Desktop Entry]
Name=My Calculator
Comment=Perform calculations with Python
Exec=python -i -c 'from math import *'
Icon=accessories-calculator
Terminal=true
Type=Application
StartupNotify=true
Categories=Utility;Calculator;
Run Code Online (Sandbox Code Playgroud)

现在“我的计算器”图标应该出现在用xdg-open .. 双击它应该会打开一个带有python -i -c 'from math import *'run的终端窗口。您还可以通过搜索“我的计算器”从启动器搜索运行它。您可以将图标(在文件浏览器窗口中)拖动到左侧启动器栏(任务栏)中的空白位置以将其放置在那里。如果将图标拖到桌面,Ubuntu 会说

移动“my-calc.desktop”时出错......移动文件时出错:权限被拒绝。

相反,在将它拖到桌面的同时按 Alt,Ubuntu 将显示一个菜单:“移到这里”、“复制到这里”和“链接到这里”,选择“复制到这里”,快捷方式将被复制到桌面。

为了能够删除 /usr/share/applications 中的快捷方式,请输入:

gksudo xdg-open /usr/share/applications &
Run Code Online (Sandbox Code Playgroud)

最好只删除您创建的快捷方式并保留其他快捷方式。

如果您在其中找不到某些内容/usr/share/applications,但它却出现在 Launcher Search 中,则它可能在~/.local/share/applications/

进一步阅读:

https://help.ubuntu.com/community/UnityLaunchersAndDesktopFiles


小智 9

我会使用alacarte :/usr/bin/alacarte来构建一个菜单项。

然后在alacarte中,在命令所在的部分,我将使用终端模拟器打开emacs。

例如:terminator -x htop现在将htop在终结符窗口中启动。或者,如果你更愿意留下来gnome-terminal,那就是gnome-terminal -x htop

添加后,您可以在搜索中找到它,并将其添加到 Unity 上的启动栏中。

terminator 和 gnome-terminal 有其他标志(如-xin terminator -x htop)可以更好地完成任务..

这是我使用 alacarte 添加的名为 MOC 的程序的菜单条目,我喜欢将其用于音频程序。我使用 -e 标志代替终止符,因为我不需要通过命令传递任何其他参数。