Почему запуск собственного сценария из панели запуска работает только один раз?

Я создал сценарий оболочки, скажем, это

echo hi
sleep 5
echo bye
exit

Затем я создал .desktop -файл для запуска сценария оболочки. Двойной щелчок по нему работает отлично:

[Desktop Entry]
Version=1.0
Name=Test
Comment=Bash Cript
Exec=bash /example/test.sh
Terminal=true
Type=Application
Categories=Utility;Application;

После перетаскивания .desktop-файла в Unity Launcher, я могу нажать на него. РАЗ. После первого запуска значок остается в панели запуска, но нажатие на него ничего не делает.

Щелчок средней кнопкой мыши снова запускает приложение.

Что я делаю не так?

3
задан 24 June 2016 в 10:49

1 ответ

Это действительно работает

... даже протестированный это, но значок средства запуска безразлично в течение приблизительно 7 секунд после нажатия. Если Вы щелкнете еще раз то после этих 7 секунд это будет работать снова.

Это "повреждение" вызывается значком, ожидающим окна для появления. Выигранный' t иметь место, начиная с появления gnome-terminal - окно "требуется" gnome-terminalзначок средства запуска и Ваш "самодельный" значок не распознают окно как "его".

Решение?

Вы могли решить проблему путем добавления строки к средству запуска (14.04)

StartupWMClass=gnome-terminal

или (16.04):

StartupWMClass=gnome-terminal-server

однако, только сделайте это по причинам тестирования, не используйте это в качестве постоянного решения; наличие mutiple .desktop файлы, возможно требуя того же WM_CLASS в их основной команде плохая идея, она вызовет столкновения в как gnome-terminal появляется в средстве запуска Единицы.

Лучшее решение

Лучше добавьте свой сценарий как опцию щелчка правой кнопкой к существующему gnome-terminal средство запуска:

enter image description here

  1. Скопируйте глобальное gnome-terminal средство запуска от /usr/share/applications кому:

~/.local/share/applications:

    cp /usr/share/applications/gnome-terminal.desktop ~/.local/share/applications
  1. Откройте файл с gedit:

    gedit ~/.local/share/applications/gnome-terminal.desktop
    
  2. Измените строку:

    Actions=New;
    

    в:

    Actions=New;My Script;
    

    и добавьте раздел:

    [Desktop Action My Script]
    Name=My Script
    Exec=gnome-terminal -e "bash /absolute/path/to/your/script.sh"
    

    к самому концу файла. Затем выйдите из системы и въезжайте задним ходом, и Вы будете иметь свой сценарий в наличии как quicklist-ярлык в gnome-terminal средство запуска.

5
ответ дан 24 June 2016 в 10:49

Другие вопросы по тегам:

Похожие вопросы: