Доступ к псевдонимам в диалоге «Запуск приложения» в Gnome - PullRequest
8 голосов
/ 09 октября 2008

Я хотел бы иметь возможность запускать мои псевдонимы из моего .bashrc в диалоговом окне «Запуск приложения», которое появляется, когда вы нажимаете Alt + F2 в Ubuntu / Gnome.

Кто-нибудь знает, как это сделать?

Ответы [ 10 ]

4 голосов
/ 14 октября 2008

http://www.freedesktop.org/wiki/Specifications, вероятно, хорошее место для начала. Я нахожу это довольно трудным для большей части времени, но иногда вы можете понять это. В частности, «Спецификация входа рабочего стола».

Кроме того, я не думаю, что вы сможете использовать псевдонимы из .bashrc, по крайней мере, без написания какого-либо скрипта-обёртки. Я думаю, что это должен быть исполняемый файл. Конечно, вы могли бы просто использовать старые добрые символические ссылки - то же самое + то, что - мое имя трюк ...

(Что, для справки, выглядит так:

  1. Создать скрипт, который использует свое собственное имя в качестве параметра.
  2. Создание символических ссылок на указанный скрипт с использованием значений параметров в качестве имен ссылок.)

Исследуя ...

Некоторые случайные исследования показывают, что создать их довольно просто, если вы используете Наутилус (по крайней мере, ту версию, которая у меня есть):

  1. Откройте контекстное меню для некоторого случайного файла и используйте «Открыть с помощью» -> «Открыть с помощью другого приложения».
  2. Разверните «Использовать пользовательскую команду» и введите что-то вроде:
    1. xterm -e 'bash -c "unzip -l %f; sleep 5"'
  3. Это приводит к
    1. запускаемая команда (поэтому не вводите rm -rf)
    2. файл в ~/.local/share/applications/ называется xterm-usercreated.desktop

Здесь, по крайней мере, я получаю следующий файл:

[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 --mode user

7: "xtermz" теперь отображается в списке ... Успех!

8: Тьфу! Это также заставляет его появиться в главном меню, под «Другое». Weird!


Некоторые заметки:

  • В моем Debian / тестировании xdg-desktop-menu и его друзья (особенно xdg-icon-resource) живут в пакете xdg-utils.
  • Вы должны быть в состоянии создать файл .desktop с нуля.
  • Вы сможете установить файл .desktop, используя xdg-desktop-menu install бла-бла
2 голосов
/ 04 апреля 2012

Вы можете просто добавить символическую ссылку в / usr / bin: ln -s <YOUR_ALIAS_PATCH> <ALIAS_NAME>

1 голос
/ 26 ноября 2015

Существует очень простое решение для 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

Например, мне нравится запускать calc из Alt + F2 меню, поэтому мой скрипт:

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

Если вы хотите передать какие-либо параметры, вы можете создать короткий сценарий оболочки в ~/bin:

#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

1 голос
/ 29 июля 2013

Вы можете сделать пару вещей. Как говорит Брэд Паркс + Носток, вы можете добавить в свой локальный путь скрипт, который выполняет программу:

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

Если вы не хотите делать это для множества псевдонимов, добавьте одного «исполнителя псевдонимов» в локальный путь:

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

Затем в диалоговом окне вы должны ввести «myAlias ​​aliasedProgram arg1 arg2 и т. Д.».

1 голос
/ 02 мая 2010

Я не мог заставить псевдонимы работать, поэтому я сделал это вместо этого:

Создал скрипт оболочки, чтобы делать то, что я хочу, и поместить его в мой домашний каталог Поместите ссылку на мой скрипт в / usr / bin: например, sudo ln -s ~/bin/MyShellScript.sh /usr/bin/MyShortcutName Это работает!

Это работает, потому что / usr / bin находится в вашей переменной пути. Лучшая альтернатива - создать скрытый каталог в вашем доме, например ~ / .scripts /

, а затем добавьте этот каталог в свой путь. теперь вы можете поместить все свои сценарии в этот каталог.

1 голос
/ 24 октября 2008

Я не мог заставить псевдонимы работать, поэтому я сделал это вместо этого:

  • Создан сценарий оболочки, чтобы делать то, что я хочу, и поместить его в мой домашний каталог

  • Поместите ссылку на мой скрипт в / usr / bin:

    • например, sudo ln -s ~ / bin / MyShellScript.sh / usr / bin / MyShortcutName

Работает!

0 голосов
/ 18 октября 2018

Просто введите: bash -ic 'MY_ALIAS'

0 голосов
/ 05 ноября 2015

Я создал этот скрипт под именем / usr / bin / b и дал ему глобальное разрешение на чтение / выполнение:

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

Теперь я могу использовать команду

b foo arg1 arg2

, который в основном работает

foo arg1 arg2

как если бы оно было напечатано в интерактивной оболочке. Можно использовать псевдонимы, составные команды и т. Д.

0 голосов
/ 02 сентября 2014

Я сделал что-то похожее на @ YAG.

я создал скрипт bash в / usr / local / bin под названием my:

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

Теперь, если я хочу вызвать скрипт внутри ~ / bin из Alt + F2, я просто наберу:

my script.sh

Преимущества состоят в том, что все пользователи будут иметь доступ к своему собственному каталогу ~ / bin, и вам не нужно создавать новую символическую ссылку для каждого файла ~ / bin / *.

Недостаток в том, что вам нужно каждый раз вводить 'my', и вы не можете рассчитывать на функцию автозаполнения alt + f2 для завершения 'script.sh'

0 голосов
/ 02 сентября 2014

Вместо того, чтобы использовать alt-f2 для запуска команд вне терминала, я использую вместо этого gnome-do; это гораздо удобнее и гибче (после настройки). Вы по-прежнему не сможете запускать «псевдонимы» оболочки, но вы можете настроить gnome-do для использования плагина «файлы и папки», и тогда любые приложения «* .desktop», которые вы хотите выполнить, будут доступны для запуск, открытие и т. д. Аналогичным образом можно также выполнить сценарии оболочки.

...