Как сделать.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

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

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