在Gnome“运行应用程序”对话框中访问别名

时间:2008-10-09 14:28:19

标签: ubuntu gnome

我希望能够在Ubuntu / Gnome中按Alt + F2时出现的“运行应用程序”对话框中从我的.bashrc运行别名。

有谁知道怎么做?

10 个答案:

答案 0 :(得分:4)

http://www.freedesktop.org/wiki/Specifications可能是个好地方。我发现大部分时间都很难跟上这些,但有时候你可以搞清楚。具体来说,就是“桌面条目规范”。

另外,我认为你不能使用.bashrc中的任何别名,至少在没有编写某种包装脚本的情况下也是如此。我认为它需要是一个可执行文件。当然,你可以使用好的旧符号链接 - 相同的+我的名字技巧......

(其中,参考文献如下:

  1. 创建一个使用自己的名称作为参数的脚本。
  2. 使用参数值作为链接名称为所述脚本创建符号链接。)

  3. 调查...

    一些随意的调查显示,如果你使用Nautilus(至少是我的版本),创建它们相当简单:

    1. 打开一些随机文件的上下文菜单,并使用“打开方式” - >“打开其他应用程序”。
    2. 展开“使用自定义命令”并输入以下内容:
      1. xterm -e 'bash -c "unzip -l %f; sleep 5"'
    3. 这导致了
      1. 正在运行的命令(因此请勿键入rm -rf
      2. ~/.local/share/applications/中名为xterm-usercreated.desktop
      3. 的文件
    4. 至少在这里,我得到了以下文件:

      [Desktop Entry]
      Encoding=UTF-8
      Name=xterm
      MimeType=application/zip;
      Exec=xterm -e 'bash -c "unzip -l %f; sleep 5"' %f
      Type=Application
      Terminal=false
      NoDisplay=true
      

      4:查看系统xterm .desktop我发现:

      [Desktop Entry]
      Type=Application
      Encoding=UTF-8
      Name=XTerm
      GenericName=
      Comment=XTerm: terminal emulator for X
      Icon=/usr/share/pixmaps/xterm-color_32x32.xpm
      Exec=xterm
      Terminal=false
      Categories=X-Debian-Applications-Terminal-Emulators;
      

      5:将.usercreated.desktop文件编辑为:

      [Desktop Entry]                                                                 
      Type=Application                                                                
      Encoding=UTF-8                                                                  
      Name=xtermz                                                                     
      Exec=xterm -e 'bash -c "unzip -l %f; sleep 5"' %f                               
      Terminal=false                                                                  
      Categories=X-Local-WTF                                                          
      

      6:运行xdg-desktop-menu forceupdate --mode user

      7:“xtermz”现在出现在列表中......成功!

      8:哎呀!这也使它出现在“其他”下的主菜单中。怪异!


      一些注意事项:

      • 在我的Debian /测试中,xdg-desktop-menu和朋友(尤其是xdg-icon-resource)住在xdg-utils包中。
      • 您应该可以从头开始创建.desktop文件。
      • 您应该可以使用.desktop blah blah
      • 安装xdg-desktop-menu install文件

答案 1 :(得分:2)

您只需添加指向/ usr / bin的符号链接:ln -s <YOUR_ALIAS_PATCH> <ALIAS_NAME>

答案 2 :(得分:1)

我无法使别名正常工作,所以我这样做了:

  • 创建一个shell脚本来做我想做的事情并把它放在我的家庭目录中

  • / usr / bin中添加指向我的shell脚本的链接:

    • 例如 sudo ln -s~ / bin / MyShellScript.sh / usr / bin / MyShortcutName

有效!

答案 3 :(得分:1)

我无法使别名正常工作,所以我这样做了:

创建一个shell脚本来执行我想要的操作并将其放在我的主目录中 在/ usr / bin中添加我的shell脚本的链接: 例如sudo ln -s ~/bin/MyShellScript.sh /usr/bin/MyShortcutName 它有效!

它的工作原理是因为/ usr / bin在你的路径变量中。更好的选择是在家中创建一个隐藏目录,如〜/ .scripts /

然后将此目录添加到您的路径中。你现在可以将所有脚本放在那个目录中。

答案 4 :(得分:1)

你可以做几件事。正如Brad Parks + Nostoc所说,您可以在本地路径中放入执行程序的脚本:

$ cat my/local/path/terminal
#! /bin/bash
gnome-terminal

如果您不想为多个别名执行此操作,请在本地路径中添加一个“别名执行程序”:

$ cat my/local/path/myAlias
#! /bin/bash
CMD="$*"
eval "$CMD"

然后,在对话框中,输入“myAlias aliasedProgram arg1 arg2 etc”。

答案 5 :(得分:1)

Linux Mint和Ubuntu有一个非常简单的解决方案(我没有在其他发行版上查看):

mkdir ~/bin  #actually, need to run this line just once
cd ~/bin
ln -s /bin/any/your/application.sh YOUR_ALIAS_NAME

例如,我想从 Alt + F2 菜单中运行calc,因此我的脚本是:

mkdir ~/bin
cd ~/bin
ln -s /usr/bin/gnome-calculator calc

如果要传递任何参数,可以在~/bin中创建一个简短的shell脚本:

#create the file:
echo '#!/bin/sh
firefox --private-window' > ~/bin/pfx
#make my script executable:
chmod 755 ~/bin/pfx

基于这样一个事实的解决方案,即开箱即用的家庭目录中有一个名为.profile的文件。我希望,你已经知道,.profile file是什么。作为其工作的一部分,此文件会将~/bin附加到$PATH(如果存在bin)。

我认为, bin在家中并不安全,但本文建议按照所述方式进行操作:https://help.ubuntu.com/community/HomeFolder#Installing_Software_Into_The_Home_Directory

答案 6 :(得分:0)

我没有使用alt-f2在终端外运行命令,而是使用gnome-do;它更方便和更方便灵活(一旦设置)。您仍然无法运行shell&#34;别名&#34;,但您可以配置gnome-do以使用&#34;文件和文件夹&#34;插件,然后任何&#34; *。桌面&#34;您想要执行的应用程序可用于运行,打开等。您也可以以相同的方式执行shell脚本。

答案 7 :(得分:0)

我做了类似于@YAG的事情。

我在/ usr / local / bin中创建了一个名为'my'的bash脚本:

echo -e '#!/usr/bin/bash\n~/bin/$@' > ~/temp
sudo cp ~/temp /usr/local/bin/my
rm ~/temp

现在,如果我想从Alt + F2调用〜/ bin中的脚本,我只需输入:

my script.sh

优点是所有用户都可以访问他们自己的〜/ bin目录,而且你不必为每个〜/ bin / *文件创建一个新的符号链接。

缺点是你需要每次输入'my',并且不能依靠alt + f2的自动完成功能来完成'script.sh'

答案 8 :(得分:0)

我在名称/ usr / bin / b下创建了这个脚本,并赋予它全局读/执行权限:

#!/bin/bash -i
eval "$@"

现在我可以使用命令

b foo arg1 arg2

基本上运行

foo arg1 arg2

好像它已在交互式shell中输入。使用别名,复合命令等没关系。

答案 9 :(得分:0)

简单键入:bash -ic'MY_ALIAS'