keepassxreboot / keepassxc

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

Very large group and entry icons #5870

Closed KimHono closed 3 years ago

KimHono commented 3 years ago

Too big icons

Since last update, I noticed that opening my habitual database gives a different appearance:

My system is : KeePassXC - Version 2.6.2 Revision: e9b9582

Qt 5.15.2 Debugging mode is disabled.

Operating system: Arch Linux CPU architecture: x86_64 Kernel: linux 5.9.14-arch1-1

phoerious commented 3 years ago

Please post a screenshot (without showing sensitive information).

droidmonkey commented 3 years ago

From the View menu choose "Compact Mode"

x1h0 commented 3 years ago

I ran into the same behavior. The icons are way too big (with or without "Compact Mode", the icons will not change).

toobigicons

My system is: KeepassXC - Version 2.6.2 (e9b9582) - also tested with: 2.7.0-snapshot (37dab85) Qt 5.15.2

OS: Arch Linux Kernel: 5.10.2 Arch: x86_64

droidmonkey commented 3 years ago

That is absurd! Lol. Clearly not what our display is supposed to look like. Please post the output of env | grep QT_

You might also be missing a required library for qt?

x1h0 commented 3 years ago

There is only one env var to fix another application crash. Deactivating / removing this variable does not change the behavior either.

# env | grep QT_
QT_QPA_PLATFORMTHEME=qt5ct

These qt packages are installed:

qt5-base
qt5-declarative
qt5-graphicaleffects
qt5-imageformats
qt5-location
qt5-multimedia
qt5-quickcontrols
qt5-quickcontrols2
qt5-script
qt5-sensors
qt5-speech
qt5-svg
qt5-tools
qt5-translations
qt5-wayland
qt5-webchannel
qt5-webengine
qt5-websockets
qt5-x11extras
phoerious commented 3 years ago

How did you deactivate it?

Try starting KeePassXC like so:

QT_QPA_PLATFORMTHEME= keepassxc
x1h0 commented 3 years ago

How did you deactivate it?

Try starting KeePassXC like so:

QT_QPA_PLATFORMTHEME= keepassxc

I tried it exactly like that.

herbetom commented 3 years ago

Also just noticed that with KeepassXC 2.6.2

Everything looks normal, exept the Icons of the Entries and Folders are to big.

Distro: Manjaro Qt: 5.15.2 Kernel: 5.10.2-2-MANJARO

[tom@pc ~]$ env | grep QT_
QT_SCREEN_SCALE_FACTORS=DisplayPort-0=1;HDMI-0=1;DVI-0=1;
QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1
QT_AUTO_SCREEN_SCALE_FACTOR=0

Toggling the "Compact Mode" doesn't seem to do anything for me.

QT_QPA_PLATFORMTHEME= keepassxc also doesn't help.

I think this issue should be opened again as their didn't seem to be a current fix.

herbetom commented 3 years ago

Interestingly, custom icons do not seem to be affected. If they are just one among many, their row is also too big, but the icon itself has the proper size. And if you have only custom icons, everything looks corret:

image

droidmonkey commented 3 years ago

This is very clearly a failure of SVG scaling. Custom icons are stored as PNG's.

phoerious commented 3 years ago

Do you have any buggy high dpi settings on your system? It looks like a bug caused by your system which we cannot really do anything about without silly edge case workarounds.

herbetom commented 3 years ago

I currently only use 1920x1080 Displays with the default (100 %) scaling. My assumption is that it should work with that setup (as it did before the Updates i did yesterday).

On my Laptop with relatively similar software (also 1920x1080, 100%) i don't see this issue.

Since their was no current KeepassXC or qt Update i don't know what Update caused this. But somthing did happen. And since KeepassXC is currently the only application where i noticed that somthing looks "off" my guess would be that maybe some option in the SVG Scaling (in KeepassXC) is set not as it "should" be, and now something else broke it. But since my knowledge in this area is limited, i don't really know where to look.

As the screenshot shows other Icons in KeepassXC appear to be have the normal size (i would guess that the "Open Database" Icon is for example also an SVG).

TheCroconut commented 3 years ago

I found a very simple "homemade" solution for the problem on my old Lenovo ThinkCentre with Manjaro-Linux OS. I changed in the settings to custom icons. Look in the KeePassXC User Guide for icons: https://keepassxc.org/docs/KeePassXC_UserGuide.html#_icons I use 32x32 custom icons for the entries and groups and the problem is done. For many of your entries you can download favicons in Keepass icon settings, that's a great feature. And on my machine for example i found a great number of suitable icons in the themes. The changed icons are stored in the database (.kdbx) file and i think they will work as well in new Keepass versions.

My system is : KeePassXC - Version 2.6.2 Operating system: Manjaro (Arch Linux based) with XFCE-Desktop CPU architecture: x86_64 Kernel: linux 5.10.2-2 Monitor resolution: 2560x1440

Btw: on my old Sony Laptop, with exactly the same Manjaro too, the problem doesn't appear.

example_Keepass_list

lumagi commented 3 years ago

I am experiencing the same issue. The issue first occurred after an update a couple of days ago. Compact Mode and disabling QT variables also does not mitigate the issue.

Since the issue occurred after an update, I calculated the intersection of updated packages and transient dependencies of keepassxc. Since this seems to mostly affect Arch Linux derivates, here is the code if anyone else would like to try this (after adjusting the date in the grep):

cat /var/log/pacman.log | grep '\[2020-12-29.*\] upgraded' | awk '{print $4}' > upd_pkts
pactree -lu keepassxc > req_deps
sort req_deps upd_pkts | uniq -d

This yields a set of several packages, of which I would assume qt5-base to likely be the culprit:

bash
ca-certificates-mozilla
glib2
gmp
harfbuzz
icu
libevdev
libgpg-error
libp11-kit
libwacom
libx11
libxml2
md4c
mesa
openssl
p11-kit
pcre2
qt5-base
systemd
systemd-libs
tzdata

Unfortunately, I wasn't able to fully roll back the update to confirm this assumption.

Lastly, my system stats are:

KeePassXC - Version 2.6.2 Revision: e9b9582

Qt 5.15.2 Debugging mode is disabled.

Operating system: Arch Linux CPU architecture: x86_64 Kernel: linux 5.10.3-arch1-1

droidmonkey commented 3 years ago

It's probably a bug in qt 5.15.2

droidmonkey commented 3 years ago

This change in 5.15.0 is the only one from the changelogs of 5.15.0/1/2 that would make sense to me: https://codereview.qt-project.org/c/qt/qtbase/+/266286

We don't set an explicit size on the row height which, on Linux only it would seem, can cause the row height to assume some arbitrary height that the SVG-based icon wants to assume...

droidmonkey commented 3 years ago

What desktop environment are you all using? I cannot replicate this on the latest Manjaro using Qt 5.15.2 and KeePassXC 2.6.2 using the default xfce desktop or Gnome3.

herbetom commented 3 years ago

I'm using KDE Plasma. But as mentioned above on my Desktop i have the problem, on my Laptop not. Both are up to date and both have 1920x1080 Screens and run at 100 % scaling. So currently i also don't know how it can be replicated.

I ran the commands of @lumagi on my Desktop and got the following result:

Click to expand! ``` audit avahi bash bashrc-manjaro ca-certificates-mozilla curl gcc-libs glib2 gnutls libcap-ng libldap libp11-kit libproxy libseccomp libtirpc libwacom libx11 libxml2 linux-latest linux-latest-r8168 linux-latest-virtualbox-host-modules llvm-libs lz4 manjaro-system mesa nftables openssl p11-kit pam pcre2 readline sqlite systemd systemd-libs util-linux util-linux-libs vulkan-icd-loader xcb-proto ```

qt5-base is not among them.

KimHono commented 3 years ago

From the View menu choose "Compact Mode"

Unfortunately, I'm already using the compact mode. And as written above, QT_QPA_PLATFORMTHEME= keepassxc doesn't help.

If it can help, here is the result of env | grep QT_ command: QT_LOGGING_RULES=*.debug=false QT_QPA_PLATFORMTHEME=qt5ct QT_STYLE_OVERRIDE=gtk QT_QPA_PLATFORM= QT_DBL_CLICK_DIST=15 QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1 QT_SCALE_FACTOR_ROUNDING_POLICY=PassThrough QT_SELECT=qt5

carlphilipp commented 3 years ago

I do have the same issue on my desktop (Arch Linux) and on my laptop (Manjaro). Both are on XFCE.

As a workaround I start the app using:

env QT_SCALE_FACTOR=1.01 keepassxc

It scales down the icons on the left. I thought it was an issue with QT on my desktop, until it appeared too on Manjaro, which always lag behind in updates.

droidmonkey commented 3 years ago

Hmmmm this reminds me of the time we fixed the broken "PassThrough" for HiDPI scaling ratio. Try unsetting 1.01 and setting QT_SCALE_FACTOR_ROUNDING_POLICY=Round

florianhofhammer commented 3 years ago

I can confirm that setting QT_SCALE_FACTOR=1.01 as suggested by @carlphilipp fixes the issue for me (Manjaro stable, all available updates applied). QT_SCALE_FACTOR_ROUNDING_POLICY=Round on the other hand unfortunately doesn't result in any change of icon size.

lumagi commented 3 years ago

I can also confirm that QT_SCALE_FACTOR=1.01 fixes the issue for me (Arch Linux, KDE Plasma 5.20.4-2), however QT_SCALE_FACTOR_ROUNDING_POLICY=Round does not.

droidmonkey commented 3 years ago

Try a policy of PassThrough. There are many options for this policy: Round, Ceil, Floor, RoundPreferFloor, PassThrough. This has been known to cause issues on Linux.

lumagi commented 3 years ago

I tried all policies you mentioned with QT_SCALE_FACTOR_ROUNDING_POLICY=<policy> keepassxc but none of the values have an effect.

droidmonkey commented 3 years ago

OK great good to know. I will submit a bug report with Qt.

denysvitali commented 3 years ago

I can confirm that editing /usr/share/applications/org.keepassxc.KeePassXC.desktop and replacing Exec=keepassxc %f with Exec=env QT_SCALE_FACTOR=1.01 keepassxc %f solves the issue on Arch Linux, with KeePassXC 2.6.2 and the following QT5 packages:

$ sudo pacman -Q | grep '^qt5'
qt5-3d 5.15.2-1
qt5-base 5.15.2-2
qt5-charts 5.15.2-1
qt5-declarative 5.15.2-1
qt5-graphicaleffects 5.15.2-1
qt5-imageformats 5.15.2-1
qt5-location 5.15.2-2
qt5-multimedia 5.15.2-1
qt5-networkauth 5.15.2-1
qt5-quickcontrols 5.15.2-1
qt5-quickcontrols2 5.15.2-1
qt5-script 5.15.2-1
qt5-sensors 5.15.2-1
qt5-serialport 5.15.2-1
qt5-speech 5.15.2-1
qt5-svg 5.15.2-1
qt5-tools 5.15.2-1
qt5-wayland 5.15.2-1
qt5-webchannel 5.15.2-1
qt5-webengine 5.15.2-3
qt5-webkit 5.212.0alpha4-9
qt5-x11extras 5.15.2-1
qt5-xmlpatterns 5.15.2-1

Other useful info:

phoerious commented 3 years ago

Please try this AppImage build and see if the issue still persists: https://snapshot.keepassxc.org/build-68395/

herbetom commented 3 years ago

@phoerious Looks good for me! :+1:

carlphilipp commented 3 years ago

@phoerious works for me too!

droidmonkey commented 3 years ago

Given this was fixed with changes we made, I am not opening a Qt bug report.

phoerious commented 3 years ago

The AppImage does use 5.15.2 (you might want to check this), but if someone could test a custom build on their Arch that'd be great.

pogobanane commented 3 years ago

As of v2.6.3 the issue still persists for me (archlinux, KDE). It can be worked around with QT_SCALE_FACTOR=1.01 keepassxc. Is there a specific commit i should build and try?

droidmonkey commented 3 years ago

No this is a qt problem

Ricardo-Simoes commented 3 years ago

I confirm that QT_SCALE_FACTOR=1.01 fixed the issue for me too, and QT_SCALE_FACTOR_ROUNDING_POLICY had no effect.

KeePassXC - Version 2.6.3 Revision: beae186

Qt 5.15.2 Debugging mode is disabled.

Operating system: Manjaro Linux CPU architecture: x86_64 Kernel: linux 5.4.89-1-MANJARO

Enabled extensions:

Cryptographic libraries:

ghost commented 3 years ago

I had to use env QT_AUTO_SCREEN_SCALE_FACTOR=0

I got this tip from a VirtualBox forum as when VBox 6.0 came out I had the same QT5 problem and had to do the same thing.

phoerious commented 3 years ago

Please try 2.6.4 and report back if the problem still exists.

herbetom commented 3 years ago

Just tried the KeePassXC-2.6.4-x86_64.AppImage. It works for me. Thanks to whoever solved it! :+1:

droidmonkey commented 3 years ago

Woohoo!

phoerious commented 3 years ago

Yay. Backport was double worth it.

Edit: wait, don't try the AppImage, that one was immune anyway. Need to verify if native packages work a well.

herbetom commented 3 years ago

Oops, you're right @phoerious, built it myself and it still showed the error.

phoerious commented 3 years ago

😢

lumagi commented 3 years ago

Ok, so I noticed something strange: When I dynamically link the regular keepassxc binary against a fresh installation root directory, the issue does not occur. To make this more concise, given a virtual root directory at $chroot, I get the following results (notice that I use the regular keepassxc binary):

Since both my regular root and the chroot were created from the same packages, the shared libs should be equal. I also verified the md5 hashes and they check out. Judging from this and the fact that the issue does not occur with a fresh installation, there must be some file or setting present for historical reasons that causes this issue. My next idea would be to investigate this further by stracing the executions, but that is a lot of data to dig through. Do you have a hunch as to what might be the reason?

phoerious commented 3 years ago

DPI scaling. QTableView/QListView doesn't request proper dimensions. But why exactly that is, I do not know.

stschindler commented 3 years ago

I'm as well having the issue, version 2.6.4.

% env | grep QT_
QT_QPA_PLATFORMTHEME=qt5ct

Unsetting does not help, as well as the other solutions posted here. Only QT_SCALE_FACTOR with a value greather than 1 helps.

OS is Arch Linux fully updated.

KimHono commented 3 years ago

Hi @stschindler ! Surprising... I'm also on Arch 5.10.16-arch1-1, with qt5ct. Just using the solution detailed by @denysvitali definitely works...

(Keepassxc 2.6.4-1 version)

herbetom commented 3 years ago

@KimHono Yes, the approach from @denysvitali "works" if you like blurry applications. For me, it's pretty hard on my eyes (and that's why I don't use it). I would like to see this problem solved the right way.

w3333 commented 3 years ago

Same issue. A few days ago it was ok, now the monster icons. So annoying... V2.6.4., Manjaro Cinnamon. The workaround mentioned above with "env QT_SCALE_FACTOR=1.01 keepassxc" works. It gives this error message, but starts keepassxc anyway:

qt.qpa.xcb: QXcbConnection: XCB error: 5 (BadAtom), sequence: 491, resource id: 0, major code: 20 (GetProperty), minor code: 0

stschindler commented 3 years ago

It's resolved for me now, still on version 2.6.4. Did a full system upgrade yesterday (Arch), and now the problem is gone. Seems like there was indeed something borked within Qt?

herbetom commented 3 years ago

Just updated my Manjaro and it is also gone. I had forgotten how much you can show an a screen :smile: :+1: