LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 390|回复: 3

怎么让gnome的菜单显示程序的命令名而不是描述?

[复制链接]
发表于 2012-2-19 06:11:21 | 显示全部楼层 |阅读模式
kde也存在这个问题。

比如nautilus,在菜单里显示的是"File“。
evince显示的是"Document Viewer"。
totem的是"Movie Player"。
kmplayer和kaffiene显示的都是"Movie Player"。

但是也有很多程序的显示符合我的想法。
比如cheese,显示的是"Cheese"。
firefox,显示的是"Mozilla Firefox"
发表于 2012-2-19 07:49:11 | 显示全部楼层
GNOME不清楚, KDE是可以控制的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2012-2-19 07:58:11 | 显示全部楼层
菜单项的名字不是GNOME/KDE指定的,而是各个软件包自己指定的。GNOME和KDE的菜单应该是通过读取各个软件包安装在/usr/share/applications下的*.desktop实现的。如果您需要修改某个菜单项的名字,就要或者在用户的$XDG_DATA_DIRS中逐个创建菜单项,或者直接修改/usr/share/applications/*.desktop中的Name / Name[LOCALE](每次emerge这些包后就会变回来...),或者使用有图形界面的菜单修改软件(x11-misc/alacarte ?)逐个修改,或者修改GNOME/KDE的源码,或者在/etc/portage/bashrc中加一段自动修改.desktop文件的代码,再重新emerge所有提供了菜单项的包... 总之相当繁琐。

可以参考的资料:
http://library.gnome.org/admin/s ... structure-2.html.en
https://wiki.archlinux.org/index.php/GNOME_Tips#Menu_Editing

当然,另外一种可能是选择使用手动创建的菜单配置文件的WM/Panel,例如Openbox、fvwm之流,不过这样就要麻烦您继续手动编写菜单项了...
回复 支持 反对

使用道具 举报

发表于 2012-2-19 14:08:33 | 显示全部楼层
一个自动修改.desktop文件的脚本,将它们的“Name"栏全部变成"Exec"栏的主程序名称。如果您使用非en_US locale请自行修改倒数第二行的sed。
使用方法是用root身份执行SCRIPT_NAME /usr/share/applications 。必须在使用前备份/usr/share/applications,否则后果自负。这个script需要libpcre才能工作。
另外有一个严重问题,如果多个.desktop文件有相同的主程序名称的话,它们的菜单项名称也会相同,最明显的例子是LibreOffice/OpenOffice的各个菜单项。DESKTOP_MOD_EXCLUDE是一个用来指定不应转换的.desktop文件名称的Perl正则表达式。

  1. #!/bin/sh

  2. DESKTOP_MOD_EXCLUDE='libreoffice'
  3. find $1 -name '*.desktop' | pcregrep -v "${DESKTOP_MOD_EXCLUDE}" \
  4.                 | while read -r i; do
  5.         name=$( sed -n 's/^[[:space:]]*Exec=\(.*\)/\1/p' < "$i" )
  6.         name=( $name )
  7.         name=$( basename "${name[0]}" )
  8.         [ -n "$name" ] && sed -i "s/^\(Name=\).*/\1${name}/" "$i"
  9. done
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表