I switched over from KeePassX and one difference that I noticed was how the search operates. In KeePassXC, if you start typing in the search bar, it only shows you results from whatever group is selected and its subgroups. In KeePassX, searching would always return results from your entire database which I find to be much more useful. I don't know if this difference is intentional or a bug (I'm running this on macOS), but it'd be nice if this could be configurable.
Thanks for your report!" This was changed intentionally (#118) and unless there is very popular user demand, it's unlikely we change it back.
Ah ok. If I tried to submit a pull request that added such an option (or maybe one that allowed for global results but with the current results listed first), what is the likelihood of it being accepted? Just trying to gauge if it's worth relearned C++ to do this.
Sincerely I think you should wait for https://github.com/keepassxreboot/keepassxc/issues/239 to be implemented, then you can set group to Root for all your search (as a trade-off)
Didn't see that issue. That would work too. Thanks for letting me know.
Scoped search is very useful for large database. If you want to search everything just select the root group.
With that said, i would entertain a PR that adds a checked item for "Search everywhere" under the search icon submenu.
I'm regularly tripped up by search being non-global. I guess I'm well trained by the behavior of KeepassX.
In the past I used seldom the mouse with KeepassX because search was working globally on KeepassX. Now everytime I select a group or created a new key the search is kind of broken for me (and I have to move the mouse to root for global search). I have no use case for non global search because I'm not a strict/tidied up person "this in this group, this in this group"... in a 2017 Google influenced time I expect to search everything I want and not a subtree.
Make it at least a shortcut like e.g. cmd+shift+f (mac) although the old KeepassX behaviour is much more appreciated for me.
Is there a chance of maybe introducing a keybind for going to root level and laucnhing search?
For example, regular search is launched via ^f while root-levele search could be bound to ^F
This wouldn't break the existing flow, but keyboard-heavy users would get a direct solution to their problem.
Not a bad idea at all
Maybe the new shortcut can insert the #239 keyword for global search @droidmonkey
I'll make these things my next contribution
Ok so i implemented the option to perform a global search. Works great. Some implementation questions:
@droidmonkey My reasoning for doing _1_ and _2_ the way you outlined would be the following:
Given that the user is now in a nested folder (_root → scope [selected]_) it would seem natural that the user needs to perform more work (ie press an extra modifier) to move out of the said scope - because _root_ is farther away.
@droidmonkey I think that 1 and 2 should be Yes and 3 should be No.
Also how do you want to implement the remember scope? If you use CTRL+F for the last form of search and CTRL+SHIFT+F for the global-only, how do you set back the scoped search?
Using CTRL+F for the last form and CTRL+SHIFT+F for the other one (if last is global, the other is scoped) ?
I think this will be a pain for users, using fixed shortcut (without changing their "action") will be more stable and coherent.
(sorry for the hard words):
Original KeepassX used option 3 and I would love that KeepassXC behaves the same. It is the best for all adopters of original KeepassX because you don't break existing workflows. I have no problem with breaking changes in new features or if it increases security but please don't touch my search workflow I use since my (long long time ago) Windows times where I used Keepass 1.x program (searching should never be complicated).
BTW: I uninstalled KeepassXC only because of this issue. Also pressing extra shift key just only for KeepassXC (no other program I know uses Ctrl+Shift+F) is extra cumbersome.. and I ask myself why I should do that only for my password manager.
@therealmarv I understand your point of view but think of a modern file manager, if you are in a folder and search you will only find element inside your folder, not all elements from the root or C:/ drive. That's the points in having folders.
Maybe we can add an option for global search in the Find icon dropdown (that now is used for case sensitive) that can be enabled/disabled and remembered. @droidmonkey
BTW: You proposed using Ctrl+Shift+F :smile:
@TheZ3ro yes I know. I proposed Ctrl+Shift+F but I changed my mind about it. It was like a quick solution/workaround but this program "the Keepass family tree" has some history and now I think this should not have be changed in the first place. It's bad for KeepassXC to behave at that point different to KeepassX and Keepass.
Maybe use Ctrl+F for global search and Ctrl+Shift+F for explicit scoped search?
Forgive me if this topic has already been discussed in detail, but I'd like
to dig a little more to make sure we are considering all the aspects...
before going to decide how to solve I'd want to define well what is the
real issue.
So can somebody give some user case where a global search by default is
not recommended?
These days any search would be trans-folder, as someone pointed out
already, and I am trying (without success) to devise a scenario where this
is not useful, in the context of a password manager...
Really IMHO searching in a specific group if a group is selected is the natural behaviour, like stated in #16
In a modern file manager if you are in a specific folder and you search you get only file from inside that folder. On google if you set language to French you get only french result.
I don't see why selecting a group (that is essentially a filter) and searching mean that you want to search globally. If you want to search globally you set the filter to global (selecting the Root group) and search.
Then we can discuss the implementation for a shortcut that clear the currently selected group and search (like Ctrl+Shift+F)
my 2 cent
I can understand why you would want to search across all folders. It happened to me a couple of times that I selected a folder, copied a password, hid the password manager, opened it again and wanted to search something else, but still had the old folder selected. In those cases, restricted search can be quite annoying.
I think we should always put things into context. My experience with
password managers so far, for example, are that folders are useless when
all I need is already provided, which is a search capability onto all the
fields of a record. I use them only if I want to split a db so as to group
the records that I need to move.
As a counterexample, 'locate' command in Linux does not limit itself to the
folder you are invoking, but I find it useful that on Ubuntu the file
manager search is bound to the current folder. And I find it useful,
beware, just because it would be too long to wait for a complete scan of
the filesystem.
My 1 cent :smile: is that using the 'usual' mindset about folders is
misleading here.
User case: I know I want that particular email account. I should just need
to input its name or maybe some keyword stored in a 'Note' field for better
search results (uniqueness), regardless that a minute ago I surfed into the
bank accounts folder.
By the way, just to comment what I read on #16 just now (if I had read at
the time I would have commented): Keepass2Android has a global search, and
there are other app examples which have this approach (DGT GTD/soda is a
good one)
Regards
Just some examples against filtered search first is natural and default on tree view styles:
this is not a tree really:
So beside Windows 10 Explorer search-bar no program I know has filtered search first.
@seatedscribe I can provide you an use case against global search, for example:
I have multiple account on a single website (like multiple mail or Twitter account or such), one account is in the Personal group and others are in different group. I'm in the Personal group and search for "Twitter" or "email" and now I get a bunch of account that I don't need. (Note: Also items in the RecycleBin are displayed in global search)
@therealmarv Currently KeePassXC default behavior is always global unless you select a group. And for making it global again simply select the Root group
(Note: Also items in the RecycleBin are displayed in global search)
Only if you have enabled search for the recycle bin, which should be off by default.
@therealmarv Currently KeePassXC default behavior is always global unless you select a group. And for making it global again simply select the Root group
This is not normal nowadays to speak in the language of https://github.com/keepassxreboot/keepassxc/issues/16#issue-180562663 It's not how UX works nowadays in the year 2017.
Here some more examples where you have global search first no matter in which group/tree level/sublevel you are:
Example where search is based on group/tree level/sublevel:
There are for sure many other examples... but for most of the programs and services I use I see global search first no matter what group you select. So why does KeepassXC thinks in the way of UX of Windows Explorer and Amazon and not like for comparison the big Email providers? 😁
This reminds me of a XKCD https://xkcd.com/1172/
So the alternatives are:

I personally vote for option 4
I see it this way: you're either the type that organizes your stuff into folders (to make it easier to find) or you're more free-form with lots of entries in a few big buckets (and the hope that you'll get organized someday :smile:).
If you're well-organized, your folders are logically named and nested, with only a few entries in each. In such cases, search-within-a-folder is largely irrelevant because you can quickly drill down to the right folder and scan the few entries within. However, when you do need to search, you'll probably want to do a global search.
If you're not well-organized, you'll have poorly named folders in an ad-hoc or disorganized hierarchy. Some folders will contain few entries while others will be overstuffed. Finding entries by drilling down will rarely be quick & simple. When you search, you'll probably want a global search.
Either way, global search seems to me to be what most people will want to do most of the time. That argues for it being the default, with scoped search being the exception requiring special steps.
On 23 Mar 2017 13:44, "TheZ3ro" notifications@github.com wrote:
>
@seatedscribe I can provide you an use case against global search, for
example:
I have multiple account on a single website (like multiple mail or
Twitter account or such), one account is in the Personal group and others
are in different group. I'm in the Personal group and search for "Twitter"
or "email" and now I get a bunch of account that I don't need.
@thezero this is easily handled already in KXC, and global search only make
it even frictionless!
Try this use case, which is extreme by purpose to underline my reasons for
a global search:
1 - in an empty database create a record as you like
2 - create a second record with the same exact field values
Every search now can give either zero or two records.
Now this is usually improbable as one would put an unique attribute on the
title (as per your example: 'Twitter normal' and 'Twitter batman') and
search for the unique word to have a single result. Nevertheless, with our
extreme user case we can still reach our goal simply by
3 - add an unique word on the 'Notes' field, notably 'batman'.
Every time you need to twit as batman, simply open up KXC, ^f, start typing
'bat' until you have a single result, game over regardless of the selected
folder. N.B. Important: no mouse involved!
;)
@skypanther as I said before if you are not well-organized you can click on Root group and search globally.
Someone can have 4-5 groups with many entries inside. One group for personal things, one for work, etc. If I want to search for my personal email and I have the Personal group selected and I simpy search for "Gmail".
I don't care about my work gmail account when I'm at home with my Personal group selected.
Global search is not disabled, since we are currently using scope search you have to select the parent group.
By enforcing global search and reverting #16 instead you are completely disabling scoped search
How about showing both results?
I.e. having a category in the search result called 'local matches' and after that a category called 'global matches' or 'matches in other groups'.
please take a look at https://github.com/keepassxreboot/keepassxc/issues/296#issuecomment-288720610 and comment what would you like to have in KeePassXC, eventually propose other alternatives. Thanks
I am for the alternative n. 4, as @thezero is, but with the 'limit search to group' option disabled by default.
No. 4 is good for me! 👍
@seatedscribe yes, 4 is "Global default"
@seatedscribe pls stop tagging me, you're talking to @TheZ3ro :)
Doh, replying by mail means no tag hints and relying only on my poor memory, @thezero. Ooops, I did it again (only to reach to you and ask for your forgiveness, I swear!) :smile:
If you're well-organized, your folders are logically named and nested, with only a few entries in each.
This approach doesn't scale well. I have hundreds of passwords. I can't possibly keep them all organized in little sub groups, especially since most of them are simply web service logins of some kind. Dividing them into subgroups doesn't make any sense and I can only remember where I put a specific password for a very limited number of them.
I vote for @TheZ3ro's suggestion No. 4 with default to global search.
No. 4 sounds good.
Without global search, I (who am often disorganised) will sometimes search for a website, go to the containing folder (not always but from time to time), copy and paste credentials as necessary (if I am not autotyping) and then continue with my task.
Some time later I return to Keepass for a completely separate "password event" and search again, only to get no results because the scope is restricted to within sub-folders or my present location. This usually confuses me and then I have to remember to go back to the top level.
It doesn't seem appropriate to have the scope change based on time, so for me at least, a default global scope would be the best approach.
I will implement num 4, and not implement CTRL+SHIFT+F as it is wonky.
I will propose a new shortcut for those that don't want to enable global search always: CTRL+R. select the root group
Closed in #654
Most helpful comment
@seatedscribe pls stop tagging me, you're talking to @TheZ3ro :)