Please bring back type-ahead search option for the desktop

As a user who switched to Linux to escape the “forced workflows” of Windows 11, I am disappointed to see the removal of Type-ahead selection in Plasma 6.

The Problem: Pressing a key no longer jumps focus to the corresponding icon. This breaks 30 years of muscle memory and forces a “filter-only” or “search-only” behavior.

The Request: Please provide a toggle to choose between “Filter-as-you-type” and “Type-ahead selection.”

Linux is defined by user choice. Removing established navigation patterns feels like the same “presumptive design” found in Windows 11. Users should have the agency to decide how they navigate their own desktop.

1 Like

Welcome!

I’m sorry to tell you this, and I may get banned for saying it (though I’m not picking on KDE specifically), but this, in a way, is worse in Linux than on Windows. Linux (FOSS) development has always been, and still largely is, “developer-centric”. This is slowly changing but attention to “user satisfaction” was never historically a top devs priority. Decades of “if you don’t like my software, then write your own” attitude is hard to change.

No, this is still largely a myth, unless you consider developer is also the user. Linux has always been defined by developers’ choice who code for themselves and for like-minded people, that’s why there are so many distros and so many software forks, everybody has different ideas and makes what they think is best. Yes, it is changing, there are distros like Nobara and CachyOS that are more aware of and more focused on the general user’s needs or apps like Fooyin when the developer cares about what people want. But any progress in Linux is very slow.

So, asides from nearly constant flow bugs and accidental regressions, features are changed or removed at a developer’s whim or fancy, because “they had an idea”, without much consideration given to any potential side effects, user’s preferences or impact on user’s space. Then many Linux devs have an Apple-like attitude that they know better what users need (Linux Mint, looking at you!). On top of that, the attention to backwards compatibility is still abysmal on Linux.

Despite Linus Torvalds constantly repeating “not to break the user’s space”, few care and this is one of my biggest issues with Linux and one of the reasons I’m still on Windows, delaying my switch in hopes that Linux will improve enough before Windows becomes unusable, but the progress is very slow.

KDE is pretty good, I like Plasma, it’s on a whole different level above other Linux DEs and desktop software, but it’s still not entirely free of this problem. In the last two years that I’ve been messing with KDE Plasma and apps I have seen UI issues like this cropping up regularly when stuff is changed or broken for no apparent reason other than “I thought it was a good idea” or lack of testing.

I’m confused by this post.

I just opened dolphin to test it, and pressing ‘A’ repeatedly takes me to an ‘A’ file, pressing it another few times takes me through other ‘A***’ files and folders.

Isn’t this what’s meant by ‘Type-ahead selection’?

In other news - when it comes to menus, I would expect ‘filter as you type’.

Apart from Windows 11, you didn’t actually mention what you’re running though, which is extremely important given that there are many applications and desktop variations - and ‘LINUX’ is just the name of many kernels…

kinfo would be the bare minimum you should offer in a post.

Presumptive Design

This appears to be something you disapprove of, as opposed to ‘user choice’. Yet I have witnessed some hot debates over the years where KDE Developers have been pushed into taking decisions based on USER CHOICE as opposed to their assumptions at what theoretically should be better.

Presumptive design is the default and expected operating model for Microsoft and Apple. They are the ultimate top-down authorities - they spend fortunes and conduct extensive research to get information about what the average user does, then they build their operating sytem to fit that average…

So your comment is rather a reverse of the truth of the matter in my experience.

With KDE Plasma, you’ll find that Presumptive Design is actually the exception - not the rule.

The entire system is built on a foundation of choice, diversity, freedom, and user empowerment. This has always been the “Linux Way”.

The most dizzying aspect of Plasma is the incredible complexity - it means I can often find at least 2, 3, or even more ways of doing even the most simple task… so in the end I choose whichever one suits myself.

Often when I tell folks the ‘best’ way to do it, they say ‘oh, no, I do it the other way’… It is chaotic and insanely complicated… yet it seems to produce a very (and genuinely) user friendly desktop.

Though it is occasionally fussy about the actual ‘user’…

Anyway, you need to be more specific - give a concrete example - rather than giving us a vague rant.

As I said, I just opened Dolphin in a busy folder, and I find that it works with type ahead - I need to press my / key to get the filter up.

1 Like

Iḿ talking about the folder view in desktop, not other dolphin windows. If desktop is focused you can no longer select an icon by pressing a key with the first letter of the icon. It applies to any distro as long as it has plasma 6.xx

when i just start typing on the desktop, i get krunner on plasma 5

are you not getting krunner on plasma 6

btw, krunner does find the files, folders or applications on your desktop if you have those plugins enabled.

1 Like

I do not want that, I want files in the desktop to become selected just like in any other folder, not a search. It used to be an option in plasma 5 and before, they removed it in 6.

you can deactivate krunner in the plasma search settings, but doing so just means typing onto the desktop results in no action what so ever.

are you saying there was a time when it did?

because i’m on plasma 5, so it had to have been before that.

Yes, in the past the behaviour to select an icon with a name starting with the pressed key was available I thing in 5.26 was removed but it was optional before.

1 Like

Ok, that’s specific to you - most folks have it set that if they start typing on the desktop they get krunner… though it does appear that some other folks have brought up a request for ‘type ahead’ on the desktop.

Just be aware that you can just as easily use krunner (because it will include the contents of the Desktop folder) to find things… but that Dolphin still remains the best tool for handling files on the desktop.

The desktop is not a file browser, it’s not supposed to work in the same way as a file browser.

That is the default behaviour in windows and used to be an option in KDE for over a decade so I would not say it’s specific to me. What the desktop is and how to use it should be up for the user to decide you are allowed to your opinion but so does everyone else.It makes sense for Folder View to work like Folders do.

It used to be an option in plasma 5 and before, they removed it in 6.

I’m afraid this isn’t the case. No feature was removed; it was rather simply never implemented on the desktop in the first place.

The feature request is tracked with https://bugs.kde.org/show_bug.cgi?id=427961.

1 Like

Nate please do not cause confusion by answering without proper investigation, it was available since KDE 3, it was removed after KDE 5.25, you could press a key to select an icon from the desktop that started with the corresponding character, you could choose between that behaviour and search, but the choice was removed and you can no longer choose.

Nate I see you were trying to help so I apologize if I sounded rude, did not mean to, but It was there in KDE3 for real. Maybe It was removed sooner than what I’ve read. In any case letting the users choose the behaviour would be wonderful, in particular now that so many people are leaving windows and looking for a desktop they can feel comfortable with. Thanks.

It’s possible it was removed in the transition from 3 to 4 or even 4 to 5. Those were before my time (and notably, ended more than a decade ago at the minimum). But I’m quite confident that Plasma 5 never had this feature.

Regardless, someone who cares enough just needs to implement it. That’s how things get done around here.

1 Like

Yes, I suppose I could try. Any tips on what component or file to look into? KDE is huge, I suppose it would have to be the Desktop Folder View but no Idea which part of the code deals with it.
there must be a component that catches the keypresses and sends them to KRunner or something.

So there are two things here. First of all you need to make KRunner stop intercepting keystrokes. There’s already a setting for that, but it lives in KRunner’s own config window.

Next, when this setting is turned off, you need for Folder View to handle those keystrokes. This would probably be in containments/desktop/package/contents/ui/FolderView.qml · master · Plasma / Plasma Desktop · GitLab

Then, ideally the setting for what to do when typing on the desktop would be moved out of KRunner’s config window and into the Folder View settings. containments/desktop/package/contents/ui/ConfigIcons.qml · master · Plasma / Plasma Desktop · GitLab might be reasonable, but this may rquire some UI design to find a sensible place for it that people will actually find.

Best of luck!

1 Like

Thanks Nate!!

I’ve implemented the feature but changed only FolderView, made it configurable there under the Icons configuration. Can you review it?

Created merge request in invent but can not paste link in post so: plasma/plasma-desktop/-/merge_requests/3599

I’ve tested it against my environment and works fine but as I do not have a Master branch up to date environment I’d need help for testing.

What I did was

# Create the local directory
mkdir -p ~/.local/share/plasma/plasmoids/

cp -r /usr/share/plasma/plasmoids/org.kde.desktopcontainment ~/.local/share/plasma/plasmoids/

For Testing:
rm -rf ~/.cache/plasmashell/qmlcache/*
plasmashell --replace &

/home/administrador/.local/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderView.qml
//Replaced function Keys.onPressed adding icon handling (in master code is upgrades but change is basically the same)
// Properties for Dolphin-style type-ahead search
property string searchString: “”
Timer {
id: typeAheadTimer
interval: 1000 // Resets search string after 1 second of inactivity
onTriggered: gridView.searchString = “”
}

Keys.onPressed: function(event) {
// We don’t set event.accepted = true globally anymore.
// We only accept it if we actually use the key.

// 1. Handle Standard shortcuts (Control, Shift, etc.)
if (event.key === Qt.Key_Control) {
event.accepted = true;
ctrlPressed = true;
} else if (event.key === Qt.Key_Shift) {
event.accepted = true;
shiftPressed = true;
if (currentIndex !== -1) { anchorIndex = currentIndex; }
} else if (event.key === Qt.Key_Home) {
event.accepted = true;
currentIndex = 0;
updateSelection(event.modifiers);
} else if (event.key === Qt.Key_End) {
event.accepted = true;
currentIndex = count - 1;
updateSelection(event.modifiers);
} else if (event.matches(StandardKey.Copy)) {
event.accepted = true;
dir.copy();
} else if (event.matches(StandardKey.Paste)) {
event.accepted = true;
dir.paste();
} else if (event.matches(StandardKey.Cut)) {
event.accepted = true;
dir.cut();
} else if (event.matches(StandardKey.SelectAll)) {
event.accepted = true;
positioner.setRangeSelected(0, count - 1);
}

// 2. Handle Type-Ahead Logic
else if (event.text.length === 1 && event.modifiers === Qt.NoModifier) {

// CONFIG CHECK: If disabled, let the event pass through to KRunner
if (!Plasmoid.configuration.useTypeAhead) {
event.accepted = false;
return;
}

// If enabled, we “consume” the event so KRunner doesn’t see it
event.accepted = true;
typeAheadTimer.restart();
var charPressed = event.text.toLowerCase();

// Sequence search logic
if (searchString.length >= 1 && searchString.indexOf(charPressed) !== 0) {
searchString += charPressed;
} else if (searchString !== charPressed) {
searchString = charPressed;
}

var matches = [];
for (var i = 0; i < gridView.count; i++) {
var itemData = positioner.data(positioner.index(i, 0), Qt.DisplayRole);
if (itemData && itemData.toLowerCase().indexOf(searchString) === 0) {
matches.push(i);
}
}

if (matches.length > 0) {
var nextIdx = matches[0];
if (searchString.length === 1) {
for (var j = 0; j < matches.length; j++) {
if (matches[j] > gridView.currentIndex) {
nextIdx = matches[j];
break;
}
}
}
currentIndex = nextIdx;
dir.clearSelection();
dir.setSelected(positioner.map(nextIdx));
} else {
searchString = charPressed;
}
}

// 3. Fallback for everything else (Escape, Enter, etc.)
else {
event.accepted = false;
}
}

/home/administrador/.local/share/plasma/plasmoids/org.kde.desktopcontainment/contents/config/main.xml

Inside the section, add the following:

Use type-ahead to select desktop icons in Folder View. true

/usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/ConfigIcons.qml

A. Add the alias (top of the file)
Find the long list of property alias lines (around line 30) and add this one:

property alias cfg_useTypeAhead: useTypeAhead.checked

B. Add the CheckBox (near the bottom)
Scroll down to the “Features section” (around line 245). I recommend placing it right after the Popup checkbox so it’s grouped with other interaction behaviors:

// — ADD THIS BLOCK —

Item {
Kirigami.FormData.isSection: true
}

CheckBox {
id: useTypeAhead
Kirigami.FormData.label: i18n(“Keyboard Navigation:”)
text: i18n(“Enable type-ahead search (disables KRunner)”)
}
// ----------------------