Как создать и закрепить ярлык Unity для определенной команды / шеллскрипта

9

Это не дубликат, так как я потратил много времени, пытаясь найти решение от Ask Ubuntu и Googling, но безрезультатно. Это конкретная проблема после успешного закрепления ярлыка в Unity.

Команда, которую я пытаюсь закрепить:

rdesktop -u user -d DOMAIN -g 1380x849 -r sound:local -p password -x 0x80 -P -a 32 -k fi 192.168.1.103

Хорошо, вот что я попробовал:

  1. Вручную создайте rdesk.desktop, который будет использовать приложение rdesktop с некоторыми параметрами команды для подключения к удаленной машине и автоматического входа в систему. Я могу успешно перетащить этот модуль запуска в Unity.

  2. Создайте панель запуска с помощью утилиты «Главное меню», нажав значок Ubuntu и запустив оттуда сессию, затем закрепив фактический значок rdesktop, который появляется при запуске.

Оба метода работают частично. Я могу получить хороший ярлык со значком по своему выбору на панели задач с помощью (1), но при нажатии на этот ярлык появляется второй (фактический rdesktop) значок в нижней части панели Unity. Закрепление этого второго значка работает, но на самом деле ничего не происходит после нажатия кнопки ПОСЛЕ того, как я закрыл сеанс. Закрепленный значок из метода (2) действует точно так же.

При наведении мыши на второй значок отображается: rdesktop - 192.168.1.103

Как я могу создать ярлык для команды rdesktop с параметрами и прикрепить его к Unity, чтобы значок, по которому я щелкаю, выделялся и реагировал на щелчки даже после закрытия сеанса? В качестве альтернативы, я думаю, что я мог бы как-то отредактировать второй закрепленный значок, чтобы он работал с правильными параметрами, чтобы rdesktop действительно открывался, я просто не мог найти его нигде в файловой системе, чтобы взглянуть.

Изменить: вот моя запись .desktop, которую я перетащил в Unity

[Desktop Entry]
Name=Remotedesktop Client
Comment=Connect to a remote Windows Terminal-Server
Exec=rdesktop -u name -d DOMAIN -g 1380x849 -r sound:local -p password -x 0x80 -P -a 32 -k fi 192.168.1.103
Icon=/usr/share/icons/hicolor/scalable/apps/nm-device-wired.svg
Terminal=false
Hidden=false
Type=Application
Version=1.0
Encoding=UTF-8

Вот скриншот для пояснения:

введите описание изображения здесь

Верхний чёрный выделенный - мой .Desktop, а нижний - то, что я получаю, когда нажимаю на него. Верхняя часть на самом деле будет работать только один раз, и если я откреплю ее и перетяну в Unity, она снова сработает, один раз.

красный
источник

Ответы:

11

Вам необходимо настроить WMClass для rdesktop в вашем файле .desktop. Этот работает для меня:

[Desktop Entry]
Version=1.0
Type=Application
Name=Gacela
Exec=rdesktop #####:####
Icon=/usr/share/icons/gacela.png
Comment=Conexion co Gacela
Categories=Internet;
Terminal=false
StartupNotify=true
StartupWMClass=rdesktop
GenericName=

Чтобы получить WMClass любого запущенного окна, вам нужно использовать эту команду:

xprop

и нажмите на окно, которое вы хотите идентифицировать. Ищите значение WM_CLASS в выводе или grep, если вы предпочитаете меньший вывод:

xprop | grep WM_CLASS
Хавьер Ривера
источник
Не может быть так сложно сделать ярлык в Unity ?!
Дан Даскалеску
Это не инструкции для создания общего ярлыка, это решение необходимо только в том случае, если программа, соответствующая именам Windows и программ, не может это сделать.
Хавьер Ривера