Как сделать.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
И это исправило это полностью.