GNOME 3 应用程序菜单的定制
GNOME 3 因其革新幅度较大,一些应用程序显然未能跟得上形势,alacarte 这个在 GNOME 2 时代用于定制 GNOME 应用程序菜单的主要工具就是个例子,它不仅依然重度依赖几个 GNOME 2 的核心库,而且尚未与较新的 gnome-menus 库取得兼容 [1]。目前定制 GNOME 3 应用程序菜单比较好的方法是 gmenu-simple-editor 与 lxmed 这两个工具的配合使用。
gmenu-simple-editor 这个工具是 gnome-menus 库附带的工具,其功能比较简单,仅能用于显示/隐藏部分菜单项。如下图所示:
之所以说 gmenu-simple-editor 仅能用于部分菜单项的定制,是因为它有许多盲点。例如上图所示的『Sound & Video』分类中,我还有一个 OsdLyrics 的菜单未被显示。
可以弥补 gmenu-simple-editor 缺陷的工具是 lxmed。我承认,这句话理解起来非常别扭,像是班里一个优等生是为了去弥补差生的缺陷而存在一样。
lxmed [2] 是面向 LXDE 桌面的菜单定制工具,但是它兼容 freedesktop.org 所制定的桌面菜单规范,所以可以使用它来定制 GNOME 3 的大部分菜单。之所以说是『大部分』而不是全部,是因为 lxmed 也有盲点,只是没 gmenu-simple-editor 那么多而已。
lxmed 的功能类似于 alacarte,可以增加、修改、删除菜单项,其工作界面如下图所示。眼光锐利一些的 Linux 桌面用户也许会鄙夷道:“Java 写的……”。
lxmed 的确是采用 Java 实现的,所以我在我的 Gentoo 系统中安装了 icedtea 来运行它。之所以是 icedtea 而不是 sun-jdk,是因为 Java 现任东家 Oracle 更改了 Java 分发协议,在 Gentoo 中安装 sun-jdk 时需要同意这个协议,然后手动去网络上下载 sun-jdk 软件包,然后才可以安装。这个过程有点繁琐,所以就用上了 icedtea。
对于中文用户而言,Java 程序在 Linux 桌面上有个老问题,那就是提醒我们不要忘记汉字是方块字,所以便显示许多方块。如果你未见过这番景象,那么可以观瞻下面对话框中按扭上的字符。
如果所用的 Linux 发行版未能配备好 Java 的中文字体,便只好自己动手。由于各个 Linux 发行版的 Java 安装路径不尽相同,下面以 JAVA_HOME 这个变量表示 Java 安装目录。例如 Gentoo 是将 icedtea 安装在 /opt 目录,JAVA_HOME 的值为“/opt/icedtea6-bin-1.10.4”。
配置中文字体的过程其实很简单,就是在 $JAVA_HOME/jre/lib 目录中创建 fonts 目录,然后在 fonts 目录中建立一个指向系统中包含中文字体目录的连接 fallback。详见以下步骤:
$ cd $JAVA_HOME/jre/lib $ sudo mkdir -p fonts $ cd fonts $ sudo ln -s /usr/share/fonts/你的中文字体目录 fallback
至此,lxmed 的中文显示问题便解决了。
后面的事情就是使用 lxmed 来调整 GNOME 3 的菜单项,遇到它的盲点,便让 gmenu-simple-editor 来帮忙。
参考资料
转载时,希望不要链接文中图片,另外请保留本文原始出处:http://garfileo.is-programmer.com
2011年10月26日 23:39
不错,可是我运行gmenu-simple-editor提示错误……
self.get_value(child_iter, self.COLUMN_ID) == child_item.get_desktop_file_id ():
AttributeError: 'NoneType' object has no attribute 'get_desktop_file_id'
郁闷,索性不调节啦
2012年5月13日 18:37
唔...
那alacarte呢?