<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dolphin on KDE Blogs</title><link>https://blogs.kde.org/categories/dolphin/</link><description>Recent content in Dolphin on KDE Blogs</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sun, 03 May 2026 11:42:37 +0200</lastBuildDate><atom:link href="https://blogs.kde.org/categories/dolphin/index.xml" rel="self" type="application/rss+xml"/><item><title>Dolphin 26.04 release</title><link>https://blogs.kde.org/2026/05/03/dolphin-26.04-release/</link><pubDate>Sun, 03 May 2026 00:00:00 +0000</pubDate><author>Méven Car</author><guid>https://blogs.kde.org/2026/05/03/dolphin-26.04-release/</guid><description>&lt;p&gt;I want to highlight a few changes that came to Dolphin 26.04 and add some nuance to the release announcement.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://kde.org/announcements/gear/26.04.0/"&gt;the KDE Gear 26.04 release announcement&lt;/a&gt; mentions:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In version 26.04, Dolphin lets you add keyboard shortcuts to nearly any option in any menu, plugin or extension.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This refers to this MR: &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1167"&gt;Add keyboard shortcut support for service menu actions&lt;/a&gt;.
This change made it possible to add shortcuts to the &lt;a href="https://store.kde.org/browse?cat=102&amp;amp;ord=latest"&gt;beloved&lt;/a&gt; &lt;a href="https://develop.kde.org/docs/apps/dolphin/service-menus/"&gt;service menus&lt;/a&gt; and closed a &lt;a href="https://bugs.kde.org/260266"&gt;highly-requested feature&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In other words, this allows you to add shortcuts to custom actions that can be run on currently-selected files or folders in Dolphin.&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Shortcut edition for context menu custom actions" src="https://blogs.kde.org/2026/05/03/dolphin-26.04-release/context-menu-shortcuts.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;This was implemented by a new contributor &lt;a href="https://invent.kde.org/mitalbert"&gt;Albert Mkhitaryan&lt;/a&gt;, who also did the necessary &lt;a href="https://invent.kde.org/frameworks/kio/-/merge_requests/2135"&gt;library work&lt;/a&gt; with my assistance. Kudos to Albert.&lt;/p&gt;
&lt;p&gt;Most of Dolphin's UI could already benefit from shortcuts with some &lt;a href="https://discuss.kde.org/t/keyboard-shortcut-for-dolphins-file-create-new-empty-file-and-similar/46458/6"&gt;caveats&lt;/a&gt; and the new feature does not apply to &lt;a href="https://api.kde.org/kabstractfileitemactionplugin.html"&gt;context menu plugins&lt;/a&gt;, such as Ark's &amp;quot;Extract here&amp;quot; or Dolphin's &amp;quot;Set Folder Icon&amp;quot;.&lt;/p&gt;
&lt;p&gt;Additionally, &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1122"&gt;context menus options are reloaded&lt;/a&gt; as they are modified thanks to &lt;a href="https://invent.kde.org/zhangpan"&gt;Pan Zhang&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://invent.kde.org/xiota"&gt;xi ota&lt;/a&gt; added an &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1152"&gt;option to pick the tab width&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There was an &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1171"&gt;important fix&lt;/a&gt; for split view users by &lt;a href="https://invent.kde.org/marisn"&gt;Māris Nartišs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I made a &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1192"&gt;small improvement&lt;/a&gt; to the layout of the Settings dialog.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://invent.kde.org/syriusz"&gt;Rafał Lichwała&lt;/a&gt; improved &lt;a href="https://invent.kde.org/frameworks/kio/-/merge_requests/2134"&gt;dragging and dropping&lt;/a&gt; from &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1165"&gt;the Places panel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Of course a few bugfixes (not exhaustive list):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://bugs.kde.org/show_bug.cgi?id=514209"&gt;514209&lt;/a&gt; preventted flickrering when holding F5 key, by Ritchie Frodomar,&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bugs.kde.org/show_bug.cgi?id=510829"&gt;510829&lt;/a&gt; improved the rendering of gif/animated images in hidpi context, by me.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bugs.kde.org/show_bug.cgi?id=453262"&gt;453262&lt;/a&gt; refreshing the image preview in the information panel after a file is renamed, by me.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And we &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1190"&gt;reverted a dreaded change&lt;/a&gt; to the Create New Folder shortcut.&lt;/p&gt;
&lt;p&gt;Another thing worth mentioning is the &lt;a href="https://nicolasfella.de/posts/detecting-leaks-in-kde-ci/"&gt;memory leak detection effort&lt;/a&gt; started by &lt;a href="https://nicolasfella.de/"&gt;Nicolas Fella&lt;/a&gt;, as this allowed me to find a couple of uncommon &lt;a href="https://invent.kde.org/frameworks/kio/-/merge_requests/2188"&gt;mem leaks&lt;/a&gt;. The work is not complete as KIO CI tests don't pass under LSAN scrutiny yet. I have been &lt;a href="https://invent.kde.org/frameworks/kio/-/merge_requests/2196"&gt;working on it&lt;/a&gt; and only a couple of hard cases remain to be solved - help welcome.&lt;/p&gt;
&lt;p&gt;Next will be activating LSAN for Dolphin tests and CI for further stability but that is &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1227"&gt;already&lt;/a&gt; &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1210"&gt;fruitfull&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Having stopped my personal blog, I am now using kde-blogs.&lt;/p&gt;
&lt;p&gt;That's all, folks.&lt;/p&gt;</description></item><item><title>Use `ripgrep-all` / `ripgrep` to improve search in Dolphin</title><link>https://blogs.kde.org/2024/10/02/use-ripgrep-all-/-ripgrep-to-improve-search-in-dolphin/</link><pubDate>Wed, 02 Oct 2024 10:30:35 +0000</pubDate><author>Jin Liu</author><guid>https://blogs.kde.org/2024/10/02/use-ripgrep-all-/-ripgrep-to-improve-search-in-dolphin/</guid><description>&lt;p&gt;In the next release of Dolphin, the search backend (when Baloo indexing is disabled)
will be faster and support more file types, by using external projects
&lt;a href="https://github.com/phiresky/ripgrep-all"&gt;ripgrep-all&lt;/a&gt; and
&lt;a href="https://github.com/BurntSushi/ripgrep"&gt;ripgrep&lt;/a&gt; to do the search.
&lt;a href="https://invent.kde.org/network/kio-extras/-/merge_requests/374"&gt;Merge Request&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="what-are-ripgrep-and-ripgrep-all"&gt;What are &lt;code&gt;ripgrep&lt;/code&gt; and &lt;code&gt;ripgrep-all&lt;/code&gt;?&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/BurntSushi/ripgrep"&gt;ripgrep&lt;/a&gt; is a fast text search tool that uses
various optimizations including multi-threading (compared to &lt;code&gt;grep&lt;/code&gt; and Dolphin's
internal search backend which are single-threaded).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/phiresky/ripgrep-all"&gt;ripgrep-all&lt;/a&gt;, quote its homepage, is
&amp;quot;ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc.&amp;quot;.&lt;/p&gt;
&lt;h2 id="how-to-enable-it"&gt;How to enable it&lt;/h2&gt;
&lt;p&gt;Install the &lt;code&gt;ripgrep-all&lt;/code&gt; package from your distribution's package manager (which should
also install &lt;code&gt;ripgrep&lt;/code&gt;). Then Dolphin will automatically use it for content search, when
Baloo is disabled.&lt;/p&gt;
&lt;p&gt;If your distribution doesn't provide &lt;code&gt;ripgrep-all&lt;/code&gt;, you can also try installing &lt;code&gt;ripgrep&lt;/code&gt;. Then
Dolphin will use it for content search, but without the additional file type support.&lt;/p&gt;
&lt;h2 id="limitations"&gt;Limitations&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;It only works in content search mode, and when Baloo content indexing is disabled. File name search still uses
the internal backend.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It only works in local directories. When searching in remote directories (e.g. Samba, ssh),
the internal search backend is used. Although we can run &lt;code&gt;ripgrep&lt;/code&gt; in remote directories through
the &lt;code&gt;kio-fuse&lt;/code&gt; plugin, testing shows it can be 3 times slower than the internal backend,
so it's not used.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It doesn't work on Windows. Although both &lt;code&gt;ripgrep&lt;/code&gt; and &lt;code&gt;ripgrep-all&lt;/code&gt; have releases for Windows,
I personally don't have Windows experience to integrate them. Merge request to enable it
on Windows is welcome.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="customization"&gt;Customization&lt;/h2&gt;
&lt;p&gt;You can change the command line with which Dolphin calls the external tools. Copy
&lt;code&gt;/usr/share/kio_filenamesearch/kio-filenamesearch-grep&lt;/code&gt; to &lt;code&gt;~/.local/share/kio_filenamesearch/&lt;/code&gt;,
and modify the script there. The script contains comments on the calling convention between Dolphin
and it, and explanations on the command line options.&lt;/p&gt;
&lt;p&gt;One option you might want to remove is &lt;code&gt;-j2&lt;/code&gt;. It limits the number of threads &lt;code&gt;ripgrep&lt;/code&gt;
(and &lt;code&gt;ripgrep-all&lt;/code&gt;) uses to 2. Using more threads can make the search much slower in hard disks (HDD).
I tried to detect HDD automatically, but it's not reliable, so I went with a conservative default. It's
still faster than the internal backend, but if you have an SSD, you can remove the option to unlock the
full speed of &lt;code&gt;ripgrep&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can also use a different external tool. (E.g. the silver search (ag). Or a full-text search engine
other than Baloo) Just make sure it outputs paths separated by &lt;code&gt;NUL&lt;/code&gt;. Usually a &lt;code&gt;-0&lt;/code&gt; option will do that.&lt;/p&gt;
&lt;h2 id="more-customization"&gt;More customization&lt;/h2&gt;
&lt;p&gt;You can even modify the script so that you can specify different external tools in the search string.
For example, you can insert the following code before the original code that calls &lt;code&gt;ripgrep-all&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;...&lt;span class="o"&gt;(&lt;/span&gt;line 1-33&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --run&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;test&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$2&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;@git&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;exec&lt;/span&gt; sh -c &lt;span class="s1"&gt;&amp;#39;git status -s -z|cut -c 4- -z&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then if you search for &amp;quot;@git&amp;quot; in a git directory, it will show you changed files.&lt;/p&gt;
&lt;h2 id="faq"&gt;FAQ&lt;/h2&gt;
&lt;h3 id="but-what-if-a-malicious-app-creates-localsharekio_filenamesearchkio-filenamesearch-grep-that-deletes-all-my-files-when-i-search"&gt;But what if a malicious app creates &lt;code&gt;~/.local/share/kio_filenamesearch/kio-filenamesearch-grep&lt;/code&gt; that deletes all my files when I search?&lt;/h3&gt;
&lt;p&gt;If a malicious app can write to &lt;code&gt;~/.local/share/kio_filenamesearch/&lt;/code&gt;, it probably can just delete all
files in you home directory, without involving Dolphin at all. A script executed by Dolphin doesn't
have more power than a script executed by the malicious app itself.&lt;/p&gt;
&lt;p&gt;Also, there are already a lot of places in your home directory that a malicious app can create a script in,
and it will be executed later without you noticing. E.g., &lt;code&gt;~/.bashrc&lt;/code&gt;, &lt;code&gt;~/.config/systemd/user&lt;/code&gt;,
&lt;code&gt;~/.config/autostart&lt;/code&gt;, to name a few.&lt;/p&gt;
&lt;p&gt;The threat is real, but I believe the solution is to prevent apps from writing to arbitrary places in your
home directory without your consent. If your apps are sandboxed (e.g. via Flatpak) so they can't write to
&lt;code&gt;~/.config&lt;/code&gt; or &lt;code&gt;~/.local&lt;/code&gt; by default, and you only use trusted apps like Dolphin and Kate to manage files
in these places (so you trust them to not modify files behind your back), then the scenario in the
question is unlikely to happen.&lt;/p&gt;
&lt;h2 id="future-works"&gt;Future works&lt;/h2&gt;
&lt;p&gt;There are quite a lot to improve in Dolphin's search (when not using Baloo). The content search should
also search in file names. The search string is currently interpreted as a regular expression, but a
fuzzy match or shell globbing seems to be a more sensible default (probably with regexp as an option).
Hopefully future works will address these issues.&lt;/p&gt;</description></item></channel></rss>