Keepassxc: Support vector graphics for entries

Created on 17 Apr 2019  路  14Comments  路  Source: keepassxreboot/keepassxc

Summary

It would be nice to support vector graphics format for entries.

Desired Behavior

This should be transparent for the user. The icon picker should filter the current supported formats + SVG format. I don't know if the favicon downloader would have impacts since I'm not sure if SVGs could be used as favicons.

Possible Solution

On the original KeePass FAQ, the supported formats are BMP, EMF, GIF, ICO, JPEG, PNG, TIFF and WMF. We would probably need to make them support it before KeePassXC.

However, it seems KeePassXC already have differences about icon support. This chart shows the supported format when we try to import a custom icon:

| Format | KeePass v2.41 | KeePassXC v2.4.1 |
| ----- | ----- | ----- |
| .bmp | 鉁旓笍 | 鉁旓笍 |
| .cur | | 鉁旓笍 |
| .emf | 鉁旓笍 | |
| .gif | 鉁旓笍 | 鉁旓笍 |
| .icns | | 鉁旓笍 |
| .ico | 鉁旓笍 | 鉁旓笍 |
| .jfi | 鉁旓笍 | |
| .jfif | 鉁旓笍 | |
| .jif | 鉁旓笍 | |
| .jpe | 鉁旓笍 | |
| .jpeg | 鉁旓笍 | |
| .jpg | 鉁旓笍 | |
| .pbm | | 鉁旓笍 |
| .pgm | | 鉁旓笍 |
| .png | 鉁旓笍 | 鉁旓笍 |
| .ppm | | 鉁旓笍 |
| .tif | 鉁旓笍 | |
| .tiff | 鉁旓笍 | |
| .wmf | 鉁旓笍 | |
| .xbm | | 鉁旓笍 |
| .xpm | | 鉁旓笍 |

I know, some of those are the same like .ico and .cur. But KeePassXC doesn't support JPEG family formats, and KeePass doesn't support .xbm or .xpm formats. So... why not include SVG? 鈽猴笍

If it's not possible, as a workaround, the SVG could be rasterized at import time to have sharper icons.

Context

The result would be cleaner and sharper icons for entries.

Besides, my DB is currently ~160 kB and I'm afraid to make it significantly bigger if I use raster graphics/bitmat. Using vector graphics can significantly limit the size of the DB. For instance, https://github.com/edent/SuperTinyIcons claim their icons are "under 1KB each" (vs several kB for bitmap icons).

bug distribution Windows

All 14 comments

SVG may already be possible. The file type filters do not necessarily reflect the supported image formats as those are determined by the available Qt plugins.

SVG is supported on Windows. If you are Ubuntu you probably need to install: https://packages.ubuntu.com/cosmic/libqt5svg5

Well, when I opened the issue, I didn't even tried. I've just tried now and the following message with a red background is displayed:

No icons were loaded
The following icon failed:
C:/Users/morgan/Downloads/google.svg

Source of the file

We commented at the same time. To be sure you see my message, let me bump the thread.

SVG is supported on Windows. If you are Ubuntu you probably need to install: https://packages.ubuntu.com/cosmic/libqt5svg5

No, it doesn't seem. Should I open a new issue?

Windows 10 1607 v14393.2906
KeePassXC v2.4.1 portable (from scoop)

I downloaded your source SVG and added it as a custom icon to my entry. I am running 2.4.1 (installed) on Windows 10.

I just added the SVG icon using Win64 Portable 2.4.1 as well.

Make sure you are extracting the ENTIRE contents of the portable zip before running.

Here is what I've done:

  1. Open my DB
  2. Edit an existing entry
  3. On the left menu, click _Icon_
  4. Click _Add custom icon_
  5. Select _All files_ in the filter
  6. Select the mentioned SVG file

The error message is displayed.

AH I must apologize, I just saw that my instance of KeePassXC was using my MSYS2 directory to load plugins. Hmmmmmm

AH I must apologize, I just saw that my instance of KeePassXC was using my MSYS2 directory to load plugins. Hmmmmmm

No problem 鈽猴笍

I just added the SVG icon using Win64 Portable 2.4.1 as well.

Just tried with KeePassXC-2.4.1-Win64-portable.zip. I still have the same problem.

on macos I see the following list when attempting to "add custom icon":

graphical:

keepassxc 2 4 1 on macos - supported image types for custom icons

textual:

bmp, cur, gif, heic, heif, icns, ico, jp2, jpeg, jpg, pbm, pgm, png, ppm, svg, svgz, tga, tif, tiff, wbmp, webp, xbm, xpm

And it worked fine to add the sample.svg file as a custom icon.

Debug Info

KeePassXC - Version 2.4.1
Revision: 7bafe65

Qt 5.12.2
Debugging mode is disabled.

Operating system: macOS Mojave (10.14)
CPU architecture: x86_64
Kernel: darwin 18.5.0

Enabled extensions:

  • Auto-Type
  • Browser Integration
  • SSH Agent
  • KeeShare (only unsigned sharing)
  • YubiKey
  • TouchID

Cryptographic libraries:
libgcrypt 1.8.4

Got a fix for this coming in 2.4.2. Thank you for pointing this out!

Ah, it comes back to me now. I think we had issues with QtSvg on Windows in the past when we tried to deploy it ourselves, so we left it out intentionally. windeployqt should bundle QtSvg and all its dependencies properly now.

Was this page helpful?
0 / 5 - 0 ratings