Как сделать файл .tcl исполняемым напрямую из Launcher

Как сделать файл .tcl исполняемым напрямую из Launcher

Я использую 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

И это полностью всё исправило.

Связанный контент