
Я использую Ubuntu 14.04 LTS. Я использую программу ApE (Редактор плазмидов), которую мне приходится запускать прямо из Терминала с помощью следующей команды;
tclsh8.5 /home/justin/ApE/AppMain.tcl
Для удобства я хотел бы иметь возможность открывать эту программу напрямую как исполняемый значок, встроенный в Launcher. Я ожидаю, что должен быть простой скрипт bash, который я мог бы написать для вызова tclsh8.5, чтобы открыть файл .tcl напрямую, но я полный новичок и понятия не имею, как это сделать. Любая помощь будет высоко оценена.
решение1
Вот полный процесс того, что у меня в итоге получилось;
$ sudo apt-get install gksu
$ cd /usr/share/applications
$ gksudo gedit ApE.desktop
Затем я создал следующий файл .desktop
[Desktop Entry]
Type=Application
Name=ApE
Icon=/home/justin/ApE/ApE.png
Exec=/home/justin/ApE/AppMain.tcl %f
Version=1.0
Comment=A Plasmid Editor
GenericName=Plamid Editor
Terminal=false
X-MultipleArgs=false
Categories=Utility;
StartupWMClass=ApE
StartupNotify=true
После этого мне нужно было изменить файл .tcl, добавив в этот скрипт следующий код:
#!/usr/bin/tclsh
Затем я сделал скрипт .tcl исполняемым;
$ cd /home/justin/ApE
$ chmod +x AppMain.tcl
Затем я проверил и установил .desktop с помощью следующих команд;
$ cd /usr/share/applications
$ desktop-file-validate ApE.desktop
$ desktop-file-install ApE.desktop
Команда desktop-file-install добавила следующую строку в файл .desktop;
X-Desktop-File-Install-Version=0.22
Затем мне нужно было просто перетащить значок ApE из каталога /usr/share/applications в Unity Launcher, и вот он.
Однако, хотя это и помещало значок ApE в лаунчер, всякий раз, когда я нажимал на значок ApE, он создавал значок вопросительного знака в лаунчере, представляющий открытое окно. Чтобы облегчить это, мне нужно было согласовать значения StartupWMClass. Поэтому, вернувшись в терминал, я выполнил следующую команду;
$ xprop WM_CLASS
а затем кликнул по открытому окну ApE, которое вернуло следующий вывод;
WM_CLASS(STRING) = "dna_window18", "Toplevel"
Поэтому я вернулся к файлу ApE.desktop;
$ cd /usr/share/applications
$ gksudo gedit ApE.desktop
и изменил значение StartupWMClass на Toplevel, получив в результате файл ApE.desktop
[Desktop Entry]
Type=Application
Name=ApE
Icon=/home/justin/ApE/ApE.png
Exec=/home/justin/ApE/AppMain.tcl %f
Version=1.0
Comment=A Plasmid Editor
GenericName=Plamid Editor
Terminal=false
X-MultipleArgs=false
Categories=Utility;
StartupWMClass=Toplevel
StartupNotify=true
X-Desktop-File-Install-Version=0.22
И это полностью всё исправило.