如何使 .tcl 檔案從啟動器直接可執行

如何使 .tcl 檔案從啟動器直接可執行

我正在運行 Ubuntu 14.04 LTS。我使用一個名為 ApE(質粒編輯器)的程序,我必須使用以下命令直接從終端運行它;

tclsh8.5 /home/justin/ApE/AppMain.tcl 

為了方便起見,我希望能夠直接打開該程式作為嵌入在啟動器中的可執行圖示。我的期望是應該有一個簡單的 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

從那裡,我需要透過將以下 shebang 添加到該腳本來修改 .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

然後我需要將 /usr/share/applications 目錄中的 ApE 圖示簡單地拖放到 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

這完全解決了問題。

相關內容