GNOME Bugzilla – Bug 330152
should learn from my behavior, to shorten # of keystrokes
Last modified: 2006-02-22 15:04:31 UTC
The vast majority of the time I use the deskbar applet it is to launch the same 5-6 apps. The applet should learn that when I type 'm', 95% of the time I mean 'muine', and autocomplete faster than it does. (Ditto that 'g' 75% of of the time is 'gedit', etc.) This is what quicksilver does, which means that my mac-using friends can usually launch their favorite apps by typing one letter, once they've used a new box for a few hours. Which is pretty slick, and we should have that :)
Indeed, we must come up with some clever algorithm for it.
We had a "priority" system around the time of version 0.6ish, where frequently hit matches would bubble up the list, towards the top-most position, which was the the default-action-on-enter. This didn't work for me, because as the order of things changed, certain actions weren't bankable in my muscle memory as reliably always two down-arrows away, but instead I had to stop every time and examine the popup to see where my result was this particular time around. Just MHO. :) Perhaps we could have a separate Handler which keeps track of and offers popular matches, and Luis could enable it and drag it to the top of his list of Handlers?
<shrug> I can't speak directly to the muscle memory issue, I just know that every time a mac person asks me 'does linux have something like quicksilver' I say 'deskbar', they say 'does it learn my favorites', I say 'no', and the conversation ends quickly thereafter with them spouting off interminably about the patheticness of linux and the superiority of mac.
> does linux have something like quicksilver you say deskbar and not gnome-launch-box? mmm... moment of smugness. :) Another idea (just while I think of it, not saying it's a good one) is to have a preference (yuk) that says Order results (o) Alphabetically ( ) by Frequency of Use
One is, you know, 'developed', and the other, you know, 'freezes on startup for me while grabbing my keys'.
I don't want to sound stupid here, but since 2.13.90 we have new handler called 'History' which does a bit like what you want, it will for show (if prioritized above all other handlers) the matches *in your history* (~favorites) for which the entered string is matching the beginning of the history item. Let's say you launch 'gedit' -> Execute gedit<enter> Now try to type 'g' it will show, as first match, the history item 'Execute gedit' since 'gedit' starts with 'g'. Same for 'evolution --force-shutdown' -> Execute %s Now type 'e', it will show as first match 'Execute evolution --force-shutdown'. Is this similar, or should it be more clever than what you want ?
As for nigel comments, for the moment we have no framework for storing 'frequencies' of each used matches (as matches are created dynamically on each query). In fact we have a similar framwork used to persist matches for the persitant history, and it could be adapted to also be used to store frequencies of matches. Could be per-handler or globally..but is it really necessary, as nigel pointed out he would probably patch it out, or make it optional..
The history item is rougly what I want, except (1) it should be the default top entry and (2) it doesn't work here; the history entry doesn't appear until I've typed all of 'gedit'; it should appear when I type 'g'. (Ditto muine/m).
Allright i spotted a bug in the code which prevented this expected behavior. Fixing..
I comitted a fix in CVS. Is this a sufficienbehavior, or should we count each time an action is used, and put the actions sorted by frequency of use ?
I'd think that in the history mode, most recent and/or most extensive usage (perhaps someone has written up quicksilver's algorithm?) should be the primary algorithm. I guess outside of the history option, whatever you're doing now probably makes sense. Might ask the usability folks, though...
For the moment matches outside history are ordered according to 1. Handler priority defined by the preferences 2. Alphabetic order Matches inside history are ordered according to: 1. Chronological order I don't know if quicksilver is open source to see how they do their favorite thing, but i suspect the only way is simply counting the number of time you access each action..
Closing this as it seems to be good enough ;)