{"id":1749,"date":"2026-05-12T13:28:21","date_gmt":"2026-05-12T13:28:21","guid":{"rendered":"https:\/\/www.woodcentral.com\/-\/peter\/?p=1749"},"modified":"2026-05-24T11:28:09","modified_gmt":"2026-05-24T11:28:09","slug":"fixing-webp-and-avif-support-on-cachyos-with-lxqt","status":"publish","type":"post","link":"https:\/\/www.woodcentral.com\/-\/peter\/fixing-webp-and-avif-support-on-cachyos-with-lxqt\/","title":{"rendered":"Fixing WebP and AVIF support on CachyOS with LXQt"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">If you&#8217;ve landed on CachyOS with the LXQt desktop and found that <code>.webp<\/code> or <code>.avif<\/code> images aren&#8217;t opening, showing thumbnails, or are being misidentified by the file manager \u2014 you&#8217;re not alone. Neither format works fully out of the box. Here&#8217;s how to fix both in one go.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">The problem<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">CachyOS LXQt ships without the codec plugins needed for WebP and AVIF. Symptoms include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PCManFM-Qt shows no thumbnails for <code>.webp<\/code> or <code>.avif<\/code> files<\/li>\n\n\n\n<li>Double-clicking them does nothing, or the wrong app opens<\/li>\n\n\n\n<li><code>file --mime-type<\/code> returns something incorrect like <code>application\/octet-stream<\/code><\/li>\n\n\n\n<li>LXImage-Qt and KolourPaint refuse to open AVIF files entirely<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">The fix<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1 \u2014 Install the required packages<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Run this single command to install everything needed for both formats:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo pacman -S qt5-imageformats qt6-imageformats kimageformats libavif libwebp\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">What each package does:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>qt5-imageformats \/ qt6-imageformats<\/strong> \u2014 adds WebP (and TIFF, etc.) support to Qt applications including PCManFM-Qt and LXImage-Qt<\/li>\n\n\n\n<li><strong>kimageformats<\/strong> \u2014 KDE&#8217;s extended image plugin library; adds AVIF support to <em>any<\/em> Qt app, including LXImage-Qt and KolourPaint<\/li>\n\n\n\n<li><strong>libavif<\/strong> \u2014 the underlying AVIF codec (required by kimageformats for AVIF)<\/li>\n\n\n\n<li><strong>libwebp<\/strong> \u2014 the underlying WebP codec<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Note on AVIF:<\/strong> Neither <code>qt5-imageformats<\/code> nor <code>qt6-imageformats<\/code> includes AVIF. That support comes exclusively from <code>kimageformats<\/code> + <code>libavif<\/code>. LXImage-Qt and KolourPaint have no native AVIF support on their own \u2014 they depend entirely on this plugin being present.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2 \u2014 Update the MIME database<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This ensures the system correctly identifies <code>.webp<\/code> and <code>.avif<\/code> files by type:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo update-mime-database \/usr\/share\/mime\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3 \u2014 Set default applications<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tell the system which app to use when you double-click these files:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>xdg-mime default lximage-qt.desktop image\/webp\nxdg-mime default lximage-qt.desktop image\/avif\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Alternatively, right-click a file in PCManFM-Qt \u2192 <strong>Open With<\/strong> \u2192 select LXImage-Qt \u2192 check <strong>Set as default<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4 \u2014 Log out and back in<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">PCManFM-Qt needs a full restart to pick up the new plugins and begin generating thumbnails. A log out\/in is the most reliable way to do this, or you can restart the desktop component via <strong>LXQt Session Settings \u2192 Desktop<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Verifying it worked<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Check MIME type recognition:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>file --mime-type yourimage.webp\n# Should return: image\/webp\n\nfile --mime-type yourimage.avif\n# Should return: image\/avif\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Check the AVIF plugin is loaded:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls \/usr\/lib\/qt6\/plugins\/imageformats\/ | grep avif\n# Should show: kimg_avif.so\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Check default app assignments:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>xdg-mime query default image\/webp\nxdg-mime query default image\/avif\n# Both should return: lximage-qt.desktop\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Why KolourPaint and LXImage-Qt don&#8217;t support AVIF natively<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Both apps delegate all image format handling to Qt&#8217;s plugin system \u2014 they don&#8217;t bundle their own codecs. WebP support arrives via <code>qt6-imageformats<\/code>, but AVIF was never added to that package. Instead, AVIF landed in KDE&#8217;s <code>kimageformats<\/code> library in early 2021. Because <code>kimageformats<\/code> registers itself as a standard Qt image plugin, any Qt application on the system \u2014 including non-KDE ones like LXImage-Qt and KolourPaint \u2014 automatically gains AVIF support once it&#8217;s installed alongside <code>libavif<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Quick feference<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Format<\/th><th>Viewer\/Thumbnails<\/th><th>Key Package<\/th><\/tr><\/thead><tbody><tr><td>WebP<\/td><td>PCManFM-Qt, LXImage-Qt, KolourPaint<\/td><td><code>qt6-imageformats<\/code><\/td><\/tr><tr><td>AVIF<\/td><td>PCManFM-Qt, LXImage-Qt, KolourPaint<\/td><td><code>kimageformats<\/code> + <code>libavif<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Tested on CachyOS with LXQt desktop (Arch-based). The same fix applies to other Arch-based distributions using LXQt.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you&#8217;ve landed on CachyOS with the LXQt desktop and found that .webp or .avif images aren&#8217;t opening, showing thumbnails, or are being misidentified by the file manager \u2014 you&#8217;re not alone. Neither format works fully out of the box. Here&#8217;s how to fix both in one go. The problem CachyOS LXQt ships without the &#8230; <a title=\"Fixing WebP and AVIF support on CachyOS with LXQt\" class=\"read-more\" href=\"https:\/\/www.woodcentral.com\/-\/peter\/fixing-webp-and-avif-support-on-cachyos-with-lxqt\/\" aria-label=\"Read more about Fixing WebP and AVIF support on CachyOS with LXQt\">Read more<\/a><\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1749","post","type-post","status-publish","format-standard","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/posts\/1749","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/comments?post=1749"}],"version-history":[{"count":0,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/posts\/1749\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/media?parent=1749"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/categories?post=1749"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/tags?post=1749"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}