为别名创建可点击的桌面快捷方式

jay*_*psb 6 unity alias

例如,假设我在 my 下定义了一个别名.bash_aliases

alias gotoheaven="xdg-open /path/to/heaven"
Run Code Online (Sandbox Code Playgroud)

现在我想在桌面上为它创建一个可点击的图标。[我知道make link要创建文件夹快捷方式,但我所要求的只是一个示例,以便我可以扩展它以创建任何其他类型的快捷方式]。编辑:快捷方式绑定到别名。类似的东西open Terminal and run gotoheaven。这样我就不必将别名重新写入 Exec 条目。

kos*_*kos 6

确切地说,有一种方法,即在交互式 shell 中运行别名;

即,使用以下Exec=行创建桌面文件:

Exec=bash -c 'exec bash -i <<<"gotoheaven"'
Run Code Online (Sandbox Code Playgroud)
  • bash -c '[...]': 启动一个非交互式 shell(这是利用<<<重定向所必需的)并[...]在其中运行;
  • exec bash -i <<<"gotoheaven": 用交互式 shell 替换非交互式 shell,并重定向gotoheaven到交互式 shell 的 STDIN,它提供~/.bashrc并运行别名。

但是,由于这或多或少需要将命令从别名复制粘贴到新桌面文件中,但运行额外的 shell,因此我建议您只将命令从别名复制粘贴到新桌面文件中如该问题的答案之一所述。

您似乎坚持这样一个事实,即快捷方式必须运行别名而不是相同的命令,除非您需要在设置的环境中运行命令~/.bashrc(这似乎不是这种情况),否则这没有意义)。只需创建一个运行相同命令的桌面文件即可。


Ser*_*nyy 5

别名属于 shell,它们不是外部命令。所以不可能为别名创建快捷方式。

但是,可以使用您在别名中引用的命令并创建 .desktop 文件,这基本上是快捷方式,然后在 Exec= 后放置您希望运行的命令

下面是一个示例:

[Desktop Entry]
Name=MyAppName
Type=Application
Exec=xdg-open /path/to/heaven
Terminal=false
Run Code Online (Sandbox Code Playgroud)

Icon=/path/to/image.png字段是可选的。Terminal=必须放置零件以指示是否需要在终端上显示输出。在您的情况下,我认为没有必要,因为您正在使用xdg-open打开某个文件

您可能需要通过右键单击文件,打开“属性”,然后选中“权限”选项卡下的“执行”来使文件可执行

或者通过 chmod +x /path/to/MyAppName.desktop