Custom and autogenerated icon support
What can be improved? Icons can be used for easier item differentiation, yet currently KeePassium icon use is very basic, which makes me willing to hide them completely due to wasting space and giving no feedback. There are several ways to make it better, which I outlined below.
The solution you'd like
-
Procedural generation:
- Icons can be (optionally) generated based on the first letters of the entry name
- Icon colours may (optionally) be chosen based on the first letters of the entry name
This is how it looks in 1Password:
Cy, IS, PA are the first two letters of the entry name. I believe keeping the same or similar colour for matching icons would also help to notice similar entries more quickly. 1Password uses similar, but not the same colours.I would like both features to be optional though enabled by default, because on smaller screens having icons with text may not work great, and some people may consider colours distracting.
-
Icon autodetection:
- Known websites (e.g. google.com) should get specialised icons based on the icon database.
- Fuzzy-matched websites (e.g. wiki.mydomain.com, store.test.com) should (optionally) get specialised icons based on the icon database.
- There should be a way to update all the existing entries or at least selected entries (currently it is impossible to select multiple items) with the icons from the icon database.
I understand the desire to restrict application connections to zero as mentioned in https://github.com/keepassium/KeePassium/issues/164, and I fully support this decision. There is no adequate reason for the password manager to connect to the internet. However, I disagree with the decision. The icon database can be distributed separately and installed by the user manually or applied one-time to update the icons of the existing entries. This will let the app remain having no internet access.
While some icons can be drawn manually like the current Apple or Wiki icons, for the majority of the icons I would go with the generation route. To generate such a database I can imagine a git repository containing text files with the lists of domain names and cached icon files. GitHub Actions could trigger on schedule, check the
faviconupdates, download them if necessary, and then postprocess to fit the dimensions and optimise file size.Afterwards the user can download the whole repository in a form of a zip archive or there can be artifacts. The list of the websites can be community-maintained here on github and/or locally be edited by the users themselves to download the icons they need.
-
Easy icon copying:
- Browse custom icon file should trigger file browser on macOS. I do not believe browsing Photos album is of any use, although if you believe it is important, it can be made optional.
- Copying icns or png file should let me paste it into the icon field of the entry.
- Dragging image should let me drop it onto the icon field of the entry.
Alternatives you've considered
- At least some would suggest using unicode to render icons. I am not sure it is a good idea, but mentioning it for completeness reasons.
- Completely disabling icons might also be a thing.
Additional context I will provide a separate issue regarding item grouping with e.g. date as shown on the screenshot above.