2016年2月21日 星期日

將常用程式收在「MATE 桌面」的「應用程式」選單

最近想將一些應用程式放在自定的目錄,參考前文〝將常用程式收在 GNOME 的「應用程式」選單〞操作,卻不成功。原來是「MATE 桌面」和「GNOME 桌面」間的差異造成的,只要在前文所述的步驟中做點小修改即可。
  Fedora 中的「MATE 桌面」可能為了
  • 和「GNOME 桌面」有些差異性,方便「程式選單」的修改
  • 避免和「GNOME 桌面」的設定衝突,減少修正的複雜度
比對各檔案的設定細節,只有一個步驟要修改,其它都可以沿用前文的步驟。為方便讀者參考,前兩步驟請參考前文說明,第三步驟以後修改如下:

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

這個檔案相當於「桌面應用程式選單」的根目錄,因為待會要加入一個常用程式的子選單,要先修改這個檔案,「MATE 桌面」系統才知道要增加什麼子選單。
[root@Core-i7 ~]# pluma /etc/xdg/menus/mate-applications.menu
先在檔案裏找這段文字,大概就是扣除前面幾行後的整個檔案。
<Menu>

    <Name>Applications</Name>
    <Directory>mate-menu-applications.directory</Directory>
      . . . . .
</Menu> <!-- End Applications -->
從 <Menu> 到 </Menu> 就是「應用程式」這個選單的描述,在兩個 Menu 之間往下找其『次級選單』
    <!-- Accessories submenu -->
    <Menu>
        <Name>Accessories</Name>
        <Directory>Utility.directory</Directory>
          . . . . .
    </Menu> <!-- End Accessories -->
這是「附屬應用程式」這個選單的描述,雖然是第一個子選單的描述,但是 MATE 在將它放入選單時,不一定照這個順序。所以,你想加入的子選單就放在這個描述之前,也比較方便找。先複製這整個子選單再修改,例:
    <!-- 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/mate-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@Core-i7 ~]# pluma /usr/share/desktop-directories/SiBsFavor.directory
應該是空白的,不知道該如何下乎,就複製「附屬應用程式」的子選單目錄屬性檔(Utilities.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@Core-i7 ~]# pluma /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@Core-i7 ~]# chmod 644 /usr/share/desktop-directories/SiBsFavor.directory
[root@Core-i7 ~]# chmod 644 /usr/share/applications/SiBsFavor1.desktop
[root@Core-i7 ~]# chmod 644 /usr/share/icons/SiB.png

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

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

已測試版本:

  • Fedora: 23

參考資料:

沒有留言:

張貼留言

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