Mou*_*inX 5 kde mime-types plasma5
我正在运行 Arch Linux 和 KDE,我正在探索 mime 类型在我的系统上的行为(和行为不端)。
考虑这个 mime 类型的文件关联。以下控制台输出显示我有 mime-type xml 定义文件,并且.pub
文件和 mime-type之间存在关联application/vnd.ms-publisher
。
$ xdg-mime query filetype ~/.ssh/id_rsa_test.pub
application/vnd.ms-publisher
$ less mimeapps.list
[Added Associations]
application/vnd.ms-publisher=org.kde.kate.desktop;
# find /usr -name vnd.ms-publisher.xml
/usr/share/mime/application/vnd.ms-publisher.xml
# less /usr/share/mime/application/vnd.ms-publisher.xml
<?xml version="1.0" encoding="utf-8"?>
<mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="application/vnd.ms-publisher">
<!--Created automatically by update-mime-database. DO NOT EDIT!-->
<sub-class-of type="application/x-ole-storage"/>
<glob pattern="*.pub"/>
</mime-type>
Run Code Online (Sandbox Code Playgroud)
(我不喜欢 ms-publisher 与我的 Linux 系统上的公钥相关联的事实,但这是另一个问题的主题。)
从上面可以看出,一切都井然有序。
接下来我决定为 Kate(文本编辑器)添加一个关联来处理.pub
公钥文件。我使用 KDE 系统设置 > 应用程序 > 文件关联创建了这个。
这个屏幕截图显示了我所做的。当我单击“应用”时,进度对话框会短暂出现,并且操作似乎已成功。
然而,在重新访问同一个对话时,我刚刚添加的 Kate 关联消失了。“申请优先顺序”下的框是空的。
我的问题是:是什么导致此文件关联无法保存,我该如何解决?
检查journalctl -r
我发现以下消息(以相反的顺序)。所有行都以前缀 simlarl to 开头,Jan 31 17:24:18 laptop systemsettings5[20318]
但我删除了大部分以节省空间。
Jan 31 17:24:19 laptop systemsettings5[20318]: Mimetype Comment Dirty: old= "Kindle book document" m_comment= "Amazon KF8 ebook format"
Jan 31 17:24:19 laptop systemsettings5[20318]: Mimetype Comment Dirty: old= "ODB database" m_comment= "OpenDocument Database"
Jan 31 17:24:19 laptop systemsettings5[20318]: kf5.kservice.services: KMimeTypeTrader: mimeType "application/vnd.ms-publisher" not found
Jan 31 17:24:19 laptop systemsettings5[20318]: kf5.kservice.services: KMimeTypeTrader: mimeType "application/vnd.ms-publisher" not found
Jan 31 17:24:19 laptop systemsettings5[20318]: ("services", "servicetypes", "xdgdata-mime", "apps")
...
Jan 31 17:24:18 laptop systemsettings5[20318]: "application/vnd.ms-publisher" hasDefinitionFile: false
kf5.kservice.sycoca: Service type not found: "audio/x-xm"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.presentation-template"
kf5.kservice.sycoca: Service type not found: "text/x-rst"
kf5.kservice.sycoca: Service type not found: "application/pdf"
kf5.kservice.sycoca: Service type not found: "application/x-bzip"
kf5.kservice.sycoca: Service type not found: "application/x-cue"
kf5.kservice.sycoca: Service type not found: "image/x-rgb"
kf5.kservice.sycoca: Service type not found: "application/x-gzpdf"
kf5.kservice.sycoca: Service type not found: "application/x-cmakecache"
kf5.kservice.sycoca: Service type not found: "image/x-sigma-x3f"
kf5.kservice.sycoca: Service type not found: "application/x-tellico"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.spreadsheet-flat-xml"
kf5.kservice.sycoca: Service type not found: "application/x-mswrite"
kf5.kservice.sycoca: Service type not found: "application/x-t602"
kf5.kservice.sycoca: Service type not found: "image/x-nikon-nef"
kf5.kservice.sycoca: Service type not found: "video/x-flic"
kf5.kservice.sycoca: Service type not found: "x-content/video-vcd"
kf5.kservice.sycoca: Service type not found: "audio/flac"
kf5.kservice.sycoca: Service type not found: "application/xspf+xml"
kf5.kservice.sycoca: Service type not found: "image/svg+xml"
kf5.kservice.sycoca: Service type not found: "application/x-tar"
kf5.kservice.sycoca: Service type not found: "image/x-xpixmap"
kf5.kservice.sycoca: Service type not found: "application/vnd.sun.xml.calc"
kf5.kservice.sycoca: Service type not found: "application/gzip"
kf5.kservice.sycoca: Service type not found: "application/x-zip-compressed-fb2"
kf5.kservice.sycoca: Service type not found: "application/x-compressed-tar"
kf5.kservice.sycoca: Service type not found: "audio/x-wavpack"
kf5.kservice.sycoca: Service type not found: "video/vnd.rn-realvideo"
kf5.kservice.sycoca: Service type not found: "image/x-pic"
kf5.kservice.sycoca: Service type not found: "application/vnd.sun.xml.draw"
kf5.kservice.sycoca: Service type not found: "audio/x-pn-realaudio-plugin"
kf5.kservice.sycoca: Service type not found: "application/x-kexi-connectiondata"
kf5.kservice.sycoca: Service type not found: "application/x-mobipocket-ebook"
kf5.kservice.sycoca: Service type not found: "audio/ac3"
kf5.kservice.sycoca: Service type not found: "application/vnd.openofficeorg.extension"
kf5.kservice.sycoca: Service type not found: "image/x-win-bitmap"
kf5.kservice.sycoca: Service type not found: "application/vnd.kde.okular-archive"
kf5.kservice.sycoca: Service type not found: "application/x-zstd-compressed-tar"
kf5.kservice.sycoca: Service type not found: "audio/mpeg"
kf5.kservice.sycoca: Service type not found: "video/mlt-playlist"
kf5.kservice.sycoca: Service type not found: "image/x-kde-raw"
kf5.kservice.sycoca: Service type not found: "application/x-7z-compressed"
kf5.kservice.sycoca: Service type not found: "audio/vnd.rn-realaudio"
kf5.kservice.sycoca: Service type not found: "image/x-panasonic-rw"
kf5.kservice.sycoca: Service type not found: "text/x-patch"
kf5.kservice.sycoca: Service type not found: "application/x-kdenlivetitle"
kf5.kservice.sycoca: Service type not found: "application/vnd.lotus-1-2-3"
kf5.kservice.sycoca: Service type not found: "x-content/blank-cd"
kf5.kservice.sycoca: Service type not found: "application/vnd.ms-asf"
kf5.kservice.sycoca: Service type not found: "video/quicktime"
kf5.kservice.sycoca: Service type not found: "image/vnd.djvu"
kf5.kservice.sycoca: Service type not found: "video/x-anim"
kf5.kservice.sycoca: Service type not found: "text/plain"
kf5.kservice.sycoca: Service type not found: "application/x-java-keystore"
kf5.kservice.sycoca: Service type not found: "application/x-archive"
kf5.kservice.sycoca: Service type not found: "application/x-sv4crc"
kf5.kservice.sycoca: Service type not found: "application/vnd.appimage"
kf5.kservice.sycoca: Service type not found: "application/vnd.visio"
kf5.kservice.sycoca: Service type not found: "image/x-tga"
kf5.kservice.sycoca: Service type not found: "application/x-zoom"
kf5.kservice.sycoca: Service type not found: "image/heif"
kf5.kservice.sycoca: Service type not found: "image/rle"
kf5.kservice.sycoca: Service type not found: "text/csv"
kf5.kservice.sycoca: Service type not found: "application/vnd.ms-cab-compressed"
kf5.kservice.sycoca: Service type not found: "application/vnd.lotus-wordpro"
kf5.kservice.sycoca: Service type not found: "application/x-xar"
kf5.kservice.sycoca: Service type not found: "audio/aac"
kf5.kservice.sycoca: Service type not found: "application/vnd.openxmlformats-officedocument.presentationml.template"
kf5.kservice.sycoca: Service type not found: "image/x-icns"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.presentation"
kf5.kservice.sycoca: Service type not found: "audio/x-tta"
kf5.kservice.sycoca: Service type not found: "application/x-cbt"
kf5.kservice.sycoca: Service type not found: "image/tiff"
kf5.kservice.sycoca: Service type not found: "application/ogg"
kf5.kservice.sycoca: Service type not found: "application/vnd.ms-wpl"
kf5.kservice.sycoca: Service type not found: "image/x-pentax-pef"
kf5.kservice.sycoca: Service type not found: "image/x-olympus-orf"
kf5.kservice.sycoca: Service type not found: "application/vnd.ms-excel"
kf5.kservice.sycoca: Service type not found: "application/pgp-keys"
kf5.kservice.sycoca: Service type not found: "image/x-jng"
kf5.kservice.sycoca: Service type not found: "application/x-lz4-compressed-tar"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.text-master"
kf5.kservice.sycoca: Service type not found: "application/vnd.sun.xml.impress.template"
kf5.kservice.sycoca: Service type not found: "application/x-font-pcf"
kf5.kservice.sycoca: Service type not found: "application/xhtml+xml"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.text"
kf5.kservice.sycoca: Service type not found: "application/x-java"
kf5.kservice.sycoca: Service type not found: "image/x-sgi"
kf5.kservice.sycoca: Service type not found: "audio/basic"
kf5.kservice.sycoca: Service type not found: "application/x-executable"
kf5.kservice.sycoca: Service type not found: "text/spreadsheet"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.spreadsheet-template"
kf5.kservice.sycoca: Service type not found: "audio/x-ms-wma"
kf5.kservice.sycoca: Service type not found: "image/x-fuji-raf"
kf5.kservice.sycoca: Service type not found: "application/x-compress"
kf5.kservice.sycoca: Service type not found: "audio/vnd.dts"
kf5.kservice.sycoca: Service type not found: "image/fits"
kf5.kservice.sycoca: Service type not found: "application/x-xz"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.formula-template"
kf5.kservice.sycoca: Service type not found: "image/gif"
kf5.kservice.sycoca: Service type not found: "audio/x-ms-asx"
kf5.kservice.sycoca: Service type not found: "video/x-mng"
kf5.kservice.sycoca: Service type not found: "image/x-gimp-gbr"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.chart-template"
kf5.kservice.sycoca: Service type not found: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
kf5.kservice.sycoca: Service type not found: "application/x-bzpdf"
kf5.kservice.sycoca: Service type not found: "image/png"
kf5.kservice.sycoca: Service type not found: "application/x-gzdvi"
kf5.kservice.sycoca: Service type not found: "application/mxf"
kf5.kservice.sycoca: Service type not found: "application/x-wpg"
kf5.kservice.sycoca: Service type not found: "image/x-xwindowdump"
kf5.kservice.sycoca: Service type not found: "image/x-dcraw"
kf5.kservice.sycoca: Service type not found: "audio/x-mpegurl"
kf5.kservice.sycoca: Service type not found: "x-content/audio-player"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.text-web"
kf5.kservice.sycoca: Service type not found: "x-content/blank-dvd"
kf5.kservice.sycoca: Service type not found: "image/cgm"
kf5.kservice.sycoca: Service type not found: "application/x-fictionbook+xml"
kf5.kservice.sycoca: Service type not found: "application/vnd.palm"
kf5.kservice.sycoca: Service type not found: "video/webm"
kf5.kservice.sycoca: Service type not found: "image/wmf"
kf5.kservice.sycoca: Service type not found: "text/tab-separated-values"
kf5.kservice.sycoca: Service type not found: "application/x-pagemaker"
kf5.kservice.sycoca: Service type not found: "application/vnd.comicbook-rar"
kf5.kservice.sycoca: Service type not found: "image/openraster"
kf5.kservice.sycoca: Service type not found: "application/illustrator"
kf5.kservice.sycoca: Service type not found: "application/vnd.ms-publisher"
kf5.kservice.sycoca: Service type not found: "application/msword"
kf5.kservice.sycoca: Service type not found: "application/x-krita"
kf5.kservice.sycoca: Service type not found: "application/x-dvi"
kf5.kservice.sycoca: Service type not found: "image/x-portable-bitmap"
kf5.kservice.sycoca: Service type not found: "audio/AMR"
kf5.kservice.sycoca: Service type not found: "application/x-cpio"
kf5.kservice.sycoca: Service type not found: "image/webp"
kf5.kservice.sycoca: Service type not found: "application/vnd.sun.xml.writer"
kf5.kservice.sycoca: Service type not found: "text/css"
kf5.kservice.sycoca: Service type not found: "image/x-adobe-dng"
kf5.kservice.sycoca: Service type not found: "image/x-eps"
kf5.kservice.sycoca: Service type not found: "application/vnd.sun.xml.draw.template"
kf5.kservice.sycoca: Service type not found: "image/x-compressed-xcf"
kf5.kservice.sycoca: Service type not found: "application/x-bzip-compressed-tar"
kf5.kservice.sycoca: Service type not found: "application/x-quattropro"
kf5.kservice.sycoca: Service type not found: "application/x-ms-dos-executable"
kf5.kservice.sycoca: Service type not found: "application/vnd.ms-access"
kf5.kservice.sycoca: Service type not found: "application/vnd.ms-powerpoint"
kf5.kservice.sycoca: Service type not found: "application/x-sv4cpio"
kf5.kservice.sycoca: Service type not found: "audio/mp4"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.chart"
kf5.kservice.sycoca: Service type not found: "application/x-lrzip-compressed-tar"
kf5.kservice.sycoca: Service type not found: "application/vnd.comicbook+zip"
kf5.kservice.sycoca: Service type not found: "application/vnd.sun.xml.writer.global"
kf5.kservice.sycoca: Service type not found: "application/vnd.apple.mpegurl"
kf5.kservice.sycoca: Service type not found: "application/x-xojpp"
kf5.kservice.sycoca: Service type not found: "application/x-bzdvi"
kf5.kservice.sycoca: Service type not found: "image/x-gimp-pat"
kf5.kservice.sycoca: Service type not found: "image/x-gimp-gih"
kf5.kservice.sycoca: Service type not found: "application/vnd.sun.xml.math"
kf5.kservice.sycoca: Service type not found: "image/vnd.zbrush.pcx"
kf5.kservice.sycoca: Service type not found: "video/x-flv"
kf5.kservice.sycoca: Service type not found: "x-content/audio-cdda"
kf5.kservice.sycoca: Service type not found: "image/jpeg"
kf5.kservice.sycoca: Service type not found: "application/vnd.sun.xml.calc.template"
kf5.kservice.sycoca: Service type not found: "image/x-sony-arw"
kf5.kservice.sycoca: Service type not found: "image/emf"
kf5.kservice.sycoca: Service type not found: "image/x-sony-srf"
kf5.kservice.sycoca: Service type not found: "image/x-panasonic-rw2"
kf5.kservice.sycoca: Service type not found: "application/prs.plucker"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.graphics-flat-xml"
kf5.kservice.sycoca: Service type not found: "video/dv"
kf5.kservice.sycoca: Service type not found: "application/x-trash"
kf5.kservice.sycoca: Service type not found: "application/pgp-encrypted"
kf5.kservice.sycoca: Service type not found: "image/x-dds"
kf5.kservice.sycoca: Service type not found: "image/x-xcursor"
kf5.kservice.sycoca: Service type not found: "audio/midi"
kf5.kservice.sycoca: Service type not found: "image/x-kodak-dcr"
kf5.kservice.sycoca: Service type not found: "application/vnd.rn-realmedia"
kf5.kservice.sycoca: Service type not found: "application/smil+xml"
kf5.kservice.sycoca: Service type not found: "application/x-font-bdf"
kf5.kservice.sycoca: Service type not found: "application/octet-stream"
kf5.kservice.sycoca: Service type not found: "application/x-k3b"
kf5.kservice.sycoca: Service type not found: "audio/x-it"
kf5.kservice.sycoca: Service type not found: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
kf5.kservice.sycoca: Service type not found: "application/x-bzpostscript"
kf5.kservice.sycoca: Service type not found: "application/vnd.amazon.mobi8-ebook"
kf5.kservice.sycoca: Service type not found: "application/vnd.rar"
kf5.kservice.sycoca: Service type not found: "application/vnd.sun.xml.impress"
kf5.kservice.sycoca: Service type not found: "audio/x-musepack"
kf5.kservice.sycoca: Service type not found: "image/x-sun-raster"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.graphics-template"
kf5.kservice.sycoca: Service type not found: "application/pgp-signature"
kf5.kservice.sycoca: Service type not found: "application/zip"
kf5.kservice.sycoca: Service type not found: "application/x-cd-image"
kf5.kservice.sycoca: Service type not found: "application/x-rpm"
kf5.kservice.sycoca: Service type not found: "application/mathml+xml"
kf5.kservice.sycoca: Service type not found: "image/x-xcf"
kf5.kservice.sycoca: Service type not found: "video/x-nsv"
kf5.kservice.sycoca: Service type not found: "audio/x-scpls"
kf5.kservice.sycoca: Service type not found: "audio/x-speex"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.presentation-flat-xml"
kf5.kservice.sycoca: Service type not found: "application/x-shorten"
kf5.kservice.sycoca: Service type not found: "audio/x-wav"
kf5.kservice.sycoca: Service type not found: "image/x-canon-cr2"
kf5.kservice.sycoca: Service type not found: "application/epub+zip"
kf5.kservice.sycoca: Service type not found: "image/x-photo-cd"
kf5.kservice.sycoca: Service type not found: "audio/x-adpcm"
kf5.kservice.sycoca: Service type not found: "font/ttf"
kf5.kservice.sycoca: Service type not found: "application/vnd.stardivision.writer"
kf5.kservice.sycoca: Service type not found: "image/jp2"
kf5.kservice.sycoca: Service type not found: "x-content/video-svcd"
kf5.kservice.sycoca: Service type not found: "application/javascript"
kf5.kservice.sycoca: Service type not found: "image/bmp"
kf5.kservice.sycoca: Service type not found: "image/x-portable-anymap"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.text-master-template"
kf5.kservice.sycoca: Service type not found: "application/vnd.ms-htmlhelp"
kf5.kservice.sycoca: Service type not found: "audio/x-gsm"
kf5.kservice.sycoca: Service type not found: "video/mp4"
kf5.kservice.sycoca: Service type not found: "application/sdp"
kf5.kservice.sycoca: Service type not found: "image/x-xbitmap"
kf5.kservice.sycoca: Service type not found: "application/xml"
kf5.kservice.sycoca: Service type not found: "image/x-bzeps"
kf5.kservice.sycoca: Service type not found: "application/vnd.oasis.opendocument.text-template"
kf5.kservice.sycoca: Service type not found: "video/x-msvideo"
kf5.kservice.sycoca: Service type not found: "application/x-xpinstall"
kf5.kservice.sycoca: Service type not found: "image/svg+xml-compressed"
kf5.kservice.sycoca: Service type not found: "application/x-iwork-keynote-sffkey"
kf5.kservice.sycoca: Service type not found: "application/vnd.debian.binary-package"
kf5.kservice.sycoca: Service type not found: "application/x-matroska"
kf5.kservice.sycoca: Service type not found: "audio/x-s3m"
kf5.kservice.sycoca: Service type not found: "application/x-ksysguard"
kf5.kservice.sycoca: Service type not found: "application/x-keepass2"
kf5.kservice.sycoca: Service type not found: "audio/mp2"
kf5.kservice.sycoca: Service type not found: "image/x-kodak-k25"
kf5.kservice.sycoca: Service type not found: "x-content/blank-hddvd"
kf5.kservice.sycoca: Service type not found: "text/x-google-video-pointer"
kf5.kservice.sycoca: Service type not found: "application/vnd.sun.xml.writer.template"
kf5.kservice.sycoca: Service type not found: "x-content/blank-bd"
kf5.kservice.sycoca: Service type not found: "text/html"
kf5.kservice.sycoca: Service type not found: "application/vnd.ms-works"
kf5.kservice.sycoca: Service type not found: "application/vnd.openxmlformats-officedocument.presentationml.slide"
kf5.kservice.sycoca: Service type not found: "audio/x-flac+ogg"
kf5.kservice.sycoca: Service type not found: "application/x-gzpostscript"
kf5.kservice.sycoca: Service type not found: "text/vcard"
kf5.kservice.sycoca: Service type not found: "image/x-sony-sr2"
kf5.kservice.sycoca: Service type not found: "inode/directory"
kf5.kservice.sycoca: Service type not found: "application/x-xopp"
kf5.kservice.sycoca: Service type not found: "application/x-kdenlive"
kf5.kservice.sycoca: Service type not found: "application/vnd.corel-draw"
kf5.kservice.sycoca: Service type not found: "application/vnd.wordperfect"
kf5.kservice.sycoca: Service type not found: "image/x-minolta-mrw"
kf5.kservice.sycoca: Service type not found: "application/vnd.sqlite3"
kf5.kservice.sycoca: Service type not found: "image/x-portable-pixmap"
kf5.kservice.sycoca:
以下是调试 mimetype 关联问题的分步方法。
确定文件的 mime 类型。
$ xdg-mime query filetype ~/.ssh/id_rsa.pub
application/vnd.ms-publisher
Run Code Online (Sandbox Code Playgroud)确定 mimetype 的默认处理程序。
$ xdg-mime query default application/vnd.ms-publisher
libreoffice-writer.desktop
Run Code Online (Sandbox Code Playgroud)
添加XDG_UTILS_DEBUG_LEVEL=2
环境变量以获取更多信息。
$ XDG_UTILS_DEBUG_LEVEL=2 xdg-mime query default application/vnd.ms-publisher
Running KDE trader query "application/vnd.ms-publisher" mimetype and "Application" servicetype
libreoffice-writer.desktop
Run Code Online (Sandbox Code Playgroud)用于xdg-mime
更改默认关联。
$ XDG_UTILS_DEBUG_LEVEL=2 xdg-mime default org.kde.kate.desktop application/vnd.ms-publisher
make_default_kde: No kde runtime detected
make_default_generic org.kde.kate.desktop application/vnd.ms-publisher
Updating /home/nathaniel/.config/mimeapps.list
Run Code Online (Sandbox Code Playgroud)
这也可以通过图形程序(例如 Dolphin)来完成。正如我们将看到的,结果并不总是相同的。
检查是否更改了默认处理程序。
如果xdg-mime
成功的话,它将如下所示:
$ xdg-mime query default application/vnd.ms-publisher
org.kde.kate.desktop
Run Code Online (Sandbox Code Playgroud)
如果它不起作用,你会再次看到这个。
$ xdg-mime query default application/vnd.ms-publisher
libreoffice-writer.desktop
Run Code Online (Sandbox Code Playgroud)如果xdg-mime
不起作用,就到了调试时间。首先检查这个文件:
~/.config/mimeapps.list
它有以下部分:[Added Associations]
、[Default Applications]
和[Removed Associations]
。
让我们快速grep
看看发生了什么。
$ grep 'application/vnd.ms-publisher' ~/.config/mimeapps.list
application/vnd.ms-publisher=libreoffice-writer.desktop;libreoffice-draw.desktop;
application/vnd.ms-publisher=org.kde.kate.desktop;
Run Code Online (Sandbox Code Playgroud)
嗯,这看起来不对。如果我们进一步检查该文件,我们会看到xdg-mime
在下面添加了 kate [Default Applications]
,但没有添加[Added Associations]
。如果我们使用 Dolphin / 更改 mimetype keditfiletype5 application/vnd.ms-publisher
,我们会观察到它会org.kde.kate.desktop;
在之前添加到libreoffice-writer.desktop;
下[Added Associations]
。
不过,根据FreeDesktop 规范,这应该不重要;[Default Applications]
即使未在 中列出,下面的任何内容都应该是默认值[Added Associations]
。
[默认应用程序] 组指示用于给定 mimetype 的默认应用程序。例如,双击文件管理器中的文件时将启动该程序。如果不再安装该应用程序,则会尝试列表中的下一个应用程序,依此类推。
所以这可能是 KDE 中的一个错误,并且它似乎已在上游修复:
将 mimeapps.list 中的“默认应用程序”设置为首选应用程序
https://phabricator.kde.org/D26690
这可能也是中的一个错误xdg-mime
,这是一个巨大的 shell 脚本,由于需要完成顶级工作而没有得到足够的关注。
无论如何,让我们修复该行,使其改为:
application/vnd.ms-publisher=org.kde.kate.desktop;libreoffice-writer.desktop;libreoffice-draw.desktop;
Run Code Online (Sandbox Code Playgroud)
让我们看看这是否有帮助。
$ xdg-mime query default application/vnd.ms-publisher
libreoffice-writer.desktop
Run Code Online (Sandbox Code Playgroud)
嗯,为什么没用?
这是因为它xdg-mime
不会自行检查,而是调用桌面使用的任何工具。在 KDE 上,它是诸如kmimetypefinder5
、ktraderclient5
、 和 之类的东西kbuildsycoca5
。最后一项很重要,因为这是 KDE 构建其 mimetype 关联缓存的方式。
请注意,这不是 处的缓存,尽管这也是 mimetype 缓存,因为该位置在最新规范中~/.local/share/applications/mimeinfo.cache
被列为“出于兼容性考虑,已弃用” 。
正确的方法是重建 KDE 的 mimetype,如下所示:
$ kbuildsycoca5
Run Code Online (Sandbox Code Playgroud)
但我们也可以直接删除它:
$ rm ~/.cache/ksycoca5_*
Run Code Online (Sandbox Code Playgroud)
然后再试一次:
$ xdg-mime query default application/vnd.ms-publisher
org.kde.kate.desktop
Run Code Online (Sandbox Code Playgroud)
这看起来很有希望。现在让我们尝试打开一个实际的文件:
$ xdg-open ~/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)
在 KDE 上,这基本上与:
$ kde-open5 ~/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)
这应该在 Kate 文本编辑器中打开。成功!
如果还是不行怎么办?
在 KDE Plasma 5 上,xdg-mime query default
只需调用ktraderclient5 --mimetype
. 因此ktraderclient5 --mimetype application/vnd.ms-publisher
将提供有用的信息,尽管输出可能会很大。
添加XDG_UTILS_DEBUG_LEVEL=2
到xdg-*
命令可能会提供更好的调试输出。
在 KDE 上启用日志记录以获取qDebug
输出也可能有所帮助。
$ if ! test -f ~/.config/QtProject/qtlogging.ini; then printf '[Rules]\n*.debug=true\nqt.*.debug=false\n' > ~/.config/QtProject/qtlogging.ini; else printf 'Error: ~/.config/QtProject/qtlogging.ini already exists.\n'; fi;
Run Code Online (Sandbox Code Playgroud)
另外,检查您的应用程序正在使用什么文件。xdg-open
使用kde-open5
,但您的应用程序的行为可能有所不同。例如,它可能正在查看旧的、已弃用的 mimetype 关联文件位置:
~/.local/share/applications/mimeapps.list
或者可能是更旧的位置:
~/.local/share/applications/defaults.list
您可能必须深入研究源代码或使用它strace
来找出应用程序实际使用的文件。
如果您使用自定义 mimetypes 或自定义桌面文件,情况会变得更加复杂。
小智 5
在完全不同的系统上也是如此。以普通用户身份执行此操作:
mkdir -p $HOME/.local/share/mime/packages
update-mime-database $HOME/.local/share/mime
Run Code Online (Sandbox Code Playgroud)
(mkdir
如果目录已经存在,则可能不需要此步骤)。
如果您需要完全重置,请执行以下操作:
cd $HOME/.local/share/
mv mime mime2
mkdir -p mime/packages
update-mime-database $HOME/.local/share/mime
Run Code Online (Sandbox Code Playgroud)
这将重置所有 mime 损坏的设置,但它会继续工作。目前 KDE 在进行更改后不会调用更新数据库,从而导致此问题。
归档时间: |
|
查看次数: |
779 次 |
最近记录: |