2012年8月15日 星期三

將常用程式收在 GNOME 的「應用程式」選單

將常用的程式在桌面建立「捷徑」,需要時點一下就啟動很是方便。但是,當桌面上有愈來愈多的「捷徑」,就不是那麼方便。甚至有些桌面系統 (例:GNOME 3) 也預設不能將檔案、捷徑放在桌面上,對於用慣這些功能的人,需要其它的解決方法。
    若能在「應用程式」選單中加入你常用的程式「捷徑」,不但可以分類,也不用擔心被執行中的程式畫面遮著。步驟如下:

一、切換成 root 身份

以下操作都需先切換成 root 身份,請參考 "在 Linux 中,切換為 root 身分以操作、設定系統" 一文。

二、相關檔案

在這個操作過程中相關設定的檔案共有四個:
檔案名稱說             明
 應用程式選單 「應用程式選單」的目錄結構所在,要加入「選單目錄」時修改此檔案。
選單目錄屬性 要加入的「選單目錄」之屬性,如:名稱、圖示等。
程式捷徑屬性 常用程式的「程式捷徑」,內有啟動程式的指令、圖示、所在目錄等。
程式捷徑圖示 加入的目錄、程式捷徑都可以設定自己的圖示,以方便區別。
其中的「選單目錄屬性」、「程式捷徑屬性」當需要較多分類時,可增加檔案數。當增加「選單目錄屬性檔」時,「桌面應程程式選單」也要修改。
    各檔案的設定細節,將在以下步驟中詳細說明。

三、修改「應用程式選單」定義檔

這個檔案相當於「桌面應用程式選單」的根目錄,因為待會要加入一個常用程式的子選單,要先修改這個檔案,GNOME 桌面系統才知道要增加什麼子選單。
[root@Celeron-D ~]# gedit /etc/xdg/menus/applications.menu
注意:這一個步驟在 GNOME3 中修改這個檔案,只有「後備模式」有用,「完整模式」還要在同目錄的另一個檔案 "applications-gnome.menu",做相同的修改。

先在檔案裏找一段文字
<Menu>

  <Name>Applications</Name>
  <Directory>X-GNOME-Menu-Applications.directory</Directory>
  . . . . .
</Menu> <!-- End Applications -->
從 <Menu> 到 </Menu> 就是「應用程式」這個選單的描述,在兩個 Menu 之間往下找
  <!-- Accessories submenu -->
  <Menu>
    <Name>Accessories</Name>
    <Directory>Utility.directory</Directory>
    . . . . .
  </Menu> <!-- End Accessories -->
這是「附屬應用程式」這個選單的描述,雖然是第一個子選單的描述,但是 GNOME 在將它放入選單時,不一定照這個順序。所以,你想加入的子選單就放在這個描述之前,也比較方便找。先複製這整個子選單再修改,例:
  <!-- SibsFavor submenu -->
  <Menu>
    <Name>SiBsFavor</Name>
    <Directory>SiBsFavor.directory</Directory>
    <Include>
      <And>
        <Category>SiBsFavor</Category>
        <Not>
          <Category>System</Category>
        </Not>
      </And>
    </Include>
  </Menu> <!-- End SibsFavor -->
這一來 "/etc/xdg/menu/applications.menu" 這個檔案看起來就像
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
 "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">

<Menu>
      <Name>Applications</Name>
           . . . . .
      <!-- SibsFavor submenu -->
      <Menu>
           . . . . .
      </Menu> <!-- End SibsFavor -->

      <!-- Accessories submenu -->
      <Menu>
          . . . . .
      </Menu> <!-- End Accessories -->
    . . . . .
</Menu> <!-- End Applications -->

四、增加「選單目錄」的屬性檔

上個步驟的例子中目錄屬性的檔案名稱已設定為 "SibsFavor.directory" ,要編輯一個位在 "/usr/share/desktop-directories" 目錄中的新檔,
[root@Celeron-D ~]# gedit /usr/share/desktop-directories/SiBsFavor.directory
應該是空白的,不知道該如何下乎,就複製「附屬應用程式」的子選單目錄屬性檔(Utility.directory)來修改,
[Desktop Entry]
Name=SiB's Favor Programs
. . . . .
Name[zh_TW]=SiB 的常用程式
Comment=A collection of SiB's Favor Programs for convenience.
. . . . .
Comment[zh_TW]=將 SiB 的常用程式作個整理,方便使用。
Icon=SiB
Type=Directory
Encoding=UTF-8

五、增加「程式捷徑」的屬性檔

接著要在 "/usr/share/applications" 這個目錄中,新增加一個程式「捷徑」,
[root@Celeron-D ~]# gedit /usr/share/applications/SiBsFavor1.desktop
當然複製另一個程式捷徑來修改比較方便,挑一個比較類似的來改,
[Desktop Entry]
Name=SiBsFavor1
Name[zh_TW]=SiB的常用程式1
Comment=The first favor program for SiB
Comment[zh_TW]=SiB 的第1個常用程式
Exec=firefox %u
Icon=firefox
Terminal=false
Type=Application
StartupWMClass=Firefox-bin
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
Categories=SiBsFavor;Network;WebBrowser;
X-Desktop-File-Install-Version=0.19
注意一:如果只是將常用程式放在同一目錄方便使用,只要將 SiBsFavor; 加在 Categories 那一行最後,不需大幅修改,即
Categories=Network;WebBrowser;SiBsFavor;
注意一:在 Fedora 17 (可能 15, 16 也是如此) 若「程式捷徑」的屬性檔中的 Categories 那一行有 System 這個類別時,要把它註記掉,或是把 System 去掉。不能只加有 SiBsFavor ,否則不會被收錄到「SiB 的常用程式」那個分類中。例:gnome-terminal.desktop 就是此類,
Categories=GNOME;GTK;Utility;TerminalEmulator;#System;SiBsFavor;

六、修改「程式捷徑」的「圖示」

如果要給「程式捷徑」不同的圖示,只要修改上一步驟的 Icon 那一列的圖示名稱即可,
Icon=SiB
若要用自己設計的圖示,要使用繪圖軟體編輯 (目前只測試過 140x130 的 PNG 檔),並將之存在 "/usr/share/icons" 這個目錄。

七、修改設定檔的模式

前面步驟中新增檔案的模式,在讓 GNOME 系統使用以前,要先做設定才可以,
[root@Celeron-D ~]# chmod 644 /usr/share/desktop-directories/SiBsFavor.directory
[root@Celeron-D ~]# chmod 644 /usr/share/applications/SiBsFavor1.desktop
[root@Celeron-D ~]# chmod 644 /usr/share/icons/SiB.png

八、使用新加入的「常用程式」選單

原本的「桌面應用程式」選單如下:
新增自己的「常用程式」選單後為
上例中,將 Firefox (只加入分類) 及「終端機」(改變名稱、說明等)。

後記補充:


已測試版本:

  • Fedora: 14  +  GNOME 2.32
  • Fedora: 17  +  GNOME 3.4.x

沒有留言:

張貼留言

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