我整理了此解决方案来解决您的问题,并在KDE和XFCE上通过打开文本文件和字体文件对其进行了测试。这是一个通用解决方案,应适用于任何数量的桌面环境和mime类型。它的工作方式是有一个名为custom-open的简单python脚本,该脚本将针对不同的桌面环境使用不同的应用程序打开文件。这些是设置解决方案的步骤:
- 将自定义打开脚本保存在计算机上,最好在路径上,但不一定要保存。
- 将.custom-open.ini保存在主目录〜/ .custom-open.ini中
- 将自定义打开设置为您要处理的任何文件类型的默认应用程序。
定制开放
#!/usr/bin/env python
import traceback, sys, os, ConfigParser, os.path
from subprocess import Popen, check_output
from gtk import MessageDialog, MESSAGE_ERROR, BUTTONS_CLOSE
try:
file, desktop = sys.argv[1], os.environ['DESKTOP_SESSION']
mime = check_output(['file', '--mime-type', file]).strip().split(': ')[1]
config = ConfigParser.RawConfigParser()
config.read(os.path.expanduser('~/.custom-open.ini'))
cmd = config.get(desktop, mime)
Popen([cmd] + sys.argv[1:])
except:
msg = "CUSTOM OPEN ERROR\n\n" + traceback.format_exc()
MessageDialog(None, 0, MESSAGE_ERROR, BUTTONS_CLOSE, msg).run()
.custom-open.ini
[gnome]
text/plain = gedit
application/x-font-ttf = gnome-font-viewer
[xubuntu]
text/plain = leafpad
application/x-font-ttf = gnome-font-viewer
[kde-plasma]
text/plain = kate
application/x-font-ttf = kfontview
因此,此解决方案的优点在于,您可以根据需要添加任意数量的新桌面环境,并可以添加任意数量的mime类型。要检查应为桌面环境提供的名称,请在终端中运行以下命令。
env | grep -i DESKTOP_SESSION
要检查文件的确切mime类型,请运行:
file --mime-type filename
编辑:符号链接的需要已被删除,这将使其更易于使用。我还添加了图形错误处理程序,如果发生错误,它将发出警报。