2015年1月10日 星期六

解決「MATE 『程式選單』混合顯示 GNOME 應用程式」的問題

這篇發文實際上在一年多前就寫得差不多,後來因為可以只安裝「MATE 桌面」。這一來就沒有「GNOME 桌面」的程式造成混淆的問題,就一直擱置而未定稿。
  這次安裝 Fedora 21 Workstation 時,因為不想用「MATE-Compiz Spin」安裝;而是在安裝後,在預設的「GNOME 桌面」環境再加裝「MATE 桌面」。所以,程式選單中包含兩種桌面環境,稍不留神又點錯程式(請參閱另一篇有關兩種「終端機」容易混淆的發文)。
  加裝承襲自 GNOME 2 的「MATE 桌面」環境,與預設安裝的「GNOME 3 桌面」並存在同一台電腦,可以發現到有個『小』問題。
上圖中可以看出來,有幾個重覆的「程式選單」。
重覆的程式選單,一個來自「MATE 桌面」、一個來自「GNOME 桌面」,執行這些程式時除了界面有些不同外,大部份時候沒有差別,也不一定會出錯,畢竟它們是系出同門。
  如果想減少這些顧慮,只留下「MATE 桌面」所附的應用程式,就需要補充一些設定,將不是「MATE 桌面」所附的應用程式之『程式鏈結』隱藏起來。以下是一些不容易分辨的『程式鏈結』及其需修改的『程式鏈結』設定檔。
程 式 名設 定 檔
 計算機 gnome-calculator.desktop
 系統監控 gnome-system-monitor.desktop 
終端機 gnome-terminal.desktop
 磁碟用量分析器 org.gnome.baobab.desktop
 壓縮檔管理員 org.gnome.FileRoller.desktop
 gedit org.gnome.gedit.desktop
 螢幕擷圖 org.gnome.Screenshot.desktop
上表中所列的『程式鏈結』設定檔,都位在『/usr/share/applications/』這個目錄中。修改的方法也很簡單:

一、編輯『應用程式鏈結』設定檔

啟動「MATE 終端機」再切換成 root 身分,用熟悉的「文字編輯器」編輯設定檔,以「MATE 桌面」所附的「文字編輯器」pluma 為例,開啟「GNOME 桌面」的「終端機」鏈結設定檔,
[root@Celeron-D ~]# plume /usr/share/applications/gnome-terminal.desktop
找一列以『 Exec= 』為首的設定,
 . . . . .
Keywords[zh_TW]=shell;prompt;command;commandline;提示;指令;命令列;
TryExec=gnome-terminal
Exec=gnome-terminal
Icon=utilities-terminal
Type=Application
X-GNOME-DocPath=gnome-terminal/index.html
 . . . . .
在附近找個喜歡的位置,插入不顯示鏈結的設定列。設定的方式有兩種:
  • 『不顯示』在「MATE 桌面」
  • 『只顯示』在「GNOME 桌面」或其它「桌面」
筆者較常用第一種,詳細設定請繼續參考下一步驟。

:筆者習慣將新設定插在『 Exec= ... 』附近,方便以後查找。

二.a 設定為『不顯示』在「MATE 桌面」環境

若在「MATE 桌面」已附有這個程式,可以用這個設定方式。設定後將限制這個『程式鏈結』,使其不顯示在「MATE 桌面」的程式選單中。加上設定後的結果如下:
 . . . . .
Keywords[zh_TW]=shell;prompt;command;commandline;提示;指令;命令列;
TryExec=gnome-terminal
Exec=gnome-terminal
Icon=utilities-terminal
Type=Application
NotShowIn=MATE;
X-GNOME-DocPath=gnome-terminal/index.html
 . . . . .
上例中的『NotShowIn=MATE;』就是新加入的設定列。

:有時設定檔中已有『NotShowIn=???;』時,只能在其後加上『MATE;』。如下:
 . . . . .
Keywords[zh_TW]=shell;prompt;command;commandline;提示;指令;命令列;
TryExec=gnome-terminal
Exec=gnome-terminal
Icon=utilities-terminal
Type=Application
NotShowIn=KDE;MATE;
X-GNOME-DocPath=gnome-terminal/index.html
 . . . . .
不可有兩列『NotShowIn=???;』的設定,否則只有一個會有作用。

二.b 設定為『只顯示』在「GNOME 桌面」環境

若在「MATE 桌面」也未附有這個程式,但是此『應用程式』已知為其它桌面專用(如:「GNOME 桌面」或「KDE 桌面」)。可以用這個設定方式。設定後將限制這個『程式鏈結』,只顯示在指定的「桌面環境」的程式選單中。加上設定後的結果如下:
 . . . . .
Keywords[zh_TW]=shell;prompt;command;commandline;提示;指令;命令列;
TryExec=gnome-terminal
Exec=gnome-terminal
Icon=utilities-terminal
Type=Application
OnlyShowIn=GNOME;
X-GNOME-DocPath=gnome-terminal/index.html
 . . . . .
上例中的『OnlyShowIn=GNOME;』就是新加入的設定列,限制只顯示在「GNOME 桌面」。

已測試版本:

  • Fedora: 19, 20, 21

參考資料:

沒有留言:

張貼留言

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)