|
发表于 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正则表达式。
- #!/bin/sh
- DESKTOP_MOD_EXCLUDE='libreoffice'
- find $1 -name '*.desktop' | pcregrep -v "${DESKTOP_MOD_EXCLUDE}" \
- | while read -r i; do
- name=$( sed -n 's/^[[:space:]]*Exec=\(.*\)/\1/p' < "$i" )
- name=( $name )
- name=$( basename "${name[0]}" )
- [ -n "$name" ] && sed -i "s/^\(Name=\).*/\1${name}/" "$i"
- done
复制代码 |
|