keepassxreboot / keepassxc

KeePassXC is a cross-platform community-driven port of the Windows application “Keepass Password Safe”.
https://keepassxc.org/
Other
21.33k stars 1.47k forks source link

Add ability to scroll open database tabs or multiline tabs #11164

Open osfpaul opened 3 months ago

osfpaul commented 3 months ago

Summary

I would like to see an easier way to manage open database tabs when more are open than the visible area. The current scroll buttons (in the mac version) are hard to get to when trying to get to a particular database. Having the ability to either horizontally scroll through the tabs, or have the tabs on multiple lines (so they are all visible) would be great

Examples

keepass

Context

I quite often have a large number of databases open and need to scroll back and forth when try to get to the correct db to retrieve a password.

droidmonkey commented 3 months ago

This is a qt managed control so our options may be limited without excessive coding.

osfpaul commented 3 months ago

Yeah i was wondering if that was the case. pity

droidmonkey commented 3 months ago

After some research, this is not a feature qt has out of the box. I'll investigate styling the scroll arrows so they are more usable.

osfpaul commented 3 months ago

Yeah even just making the scrolling buttons slightly wider would make them easier to click on.

shbitsus commented 1 month ago

I would also love to see easier tab navigation. Currently have 30 (out of over 100) databases open. I've begun dragging them into alphabetic order, but when there are 30, that can be like 3 to 5 scroll/move operations. I acknowledge the mentioned qt limitations. Any of the following would be an improvement:

droidmonkey commented 1 month ago

100 databases!? Surely there is a better way for you to organize your credentials?

right-click tab to get a pop-up selection box listing all tabs.

This is actually a popular recommendation for Qt since you can add a widget to the tab bar which effectively allows this. That might be a proper compromise when there are more than 5 databases open

shbitsus commented 1 month ago

re: 100 databases: I'm sure we'll outgrow Keepass at some point, but today I trust it more than the alternatives. We're a small IT services organization serving small businesses. One database per client: allows us to sync with a client copy, and/or hand over everything, should the client outgrow us and bring their IT in-house.

droidmonkey commented 1 month ago

You could create one master database and use keeshare to import the client databases in. Can also use auto open, but not actually auto open, use the kdbx:// syntax so you can click open as needed.

https://keepassxc.org/docs/KeePassXC_UserGuide#_automatic_database_opening

shbitsus commented 1 month ago

For ease of sync'ing of just one client, and for not putting all the eggs in one basket, we'll stick with separate databases. To be honest, I could survive with having a maximum of 5 open tabs. I choose to leave them showing to remind there may be follow up needed. Thanks for sharing Autoopen. When we first started using (D.Reichl)Keepass on Windows, we used something similar that offered one-click open of other databases. It may have been when I switched to Linux for my desktop (7 years ago), breaking all the paths, that I gave up maintaining that feature. I don't miss it. With the fantastic search, both for password-entries, and open-file dialog, I can copy password and open a database pretty quickly. I like it's not point-n-click. Especially when I'm in the field, only database that is unlocked is the one I've used in the past few minutes. That said (an other feature maybe): when I'm in a more secure location, would love to be able to unlock a recently unlocked database more quickly. Example: opened with two factors ten minutes ago, but it locked itself after 5 minutes idle. Perhaps a lower bar to re-open. Location dependent.

droidmonkey commented 1 month ago

Ok no problem. Just to be clear, the keeshare suggestion keeps your individual databases but allows you to access them "through" a single (or perhaps a few) master databases. Each subgroup would be a keeshare to one of your client's specific databases.