Qt6 version of Bitcoin Core (bitcoin-qt) flickers on Wayland #903

issue diegoviola openend this issue on October 14, 2025
  1. diegoviola commented at 2:18 pm on October 14, 2025: contributor
    • I still think this issue should be opened here

    Report

    So I’ve just tried the v30.0 release and I have it up and running on Arch Linux, bitcoin-qt is running natively on Wayland (sway).

    After using the GUI for a while, I have noticed that the whole window would flicker, e.g. when switching between “Overview” and “Transactions”.

    This never happened before, and I think the reason for that is because the app would use Xwayland prior to Qt 6.

    So yes, one way of avoiding this problem is to start bitcoin-qt with QT_QPA_PLATFORM=xcb, however, I would very much like this to work with the Wayland native plugin, which is used by default.

    I did some small experimentation and have found that when commenting the following line, the problem is gone:

    https://github.com/bitcoin/bitcoin/blob/v30.0/src/qt/guiutil.cpp#L411

    Thanks!

  2. hebasto commented at 2:25 pm on October 14, 2025: member

    After using the GUI for a while, I have noticed that the whole window would flicker, e.g. when switching between “Overview” and “Transactions”.

    Does it look similar to https://github.com/bitcoin/bitcoin/issues/33432?

  3. diegoviola commented at 2:38 pm on October 14, 2025: contributor

    Does it look similar to bitcoin/bitcoin#33432?

    Yes, it does look like the same issue.

  4. hebasto commented at 2:44 pm on October 14, 2025: member

    So I’ve just tried the v30.0 release and I have it up and running on Arch Linux, bitcoin-qt is running natively on Wayland (sway).

    Could you please share the first 10 lines of your debug log file?

  5. diegoviola commented at 2:48 pm on October 14, 2025: contributor

    So I’ve just tried the v30.0 release and I have it up and running on Arch Linux, bitcoin-qt is running natively on Wayland (sway).

    Could you please share the first 10 lines of your debug log file?

    02025-10-14T14:47:07Z Bitcoin Core version v30.0 (release build)
    12025-10-14T14:47:07Z Qt 6.10.0 (dynamic), plugin=wayland
    22025-10-14T14:47:07Z No static plugins.
    32025-10-14T14:47:07Z Style: fusion / QFusionStyle
    42025-10-14T14:47:07Z System: Arch Linux, x86_64-little_endian-lp64
    52025-10-14T14:47:07Z Screen: HDMI-A-1 1920x1200, pixel ratio=1.0
    62025-10-14T14:47:07Z Using the 'x86_shani(1way;2way)' SHA256 implementation
    72025-10-14T14:47:07Z Using RdSeed as an additional entropy source
    82025-10-14T14:47:07Z Using RdRand as an additional entropy source
    92025-10-14T14:47:07Z Default data directory /home/diego/.bitcoin
    
  6. hebasto commented at 4:17 pm on October 14, 2025: member
    02025-10-14T14:47:07Z Qt 6.10.0 (dynamic), plugin=wayland
    12025-10-14T14:47:07Z No static plugins.
    

    Could you please try the release binary from https://bitcoincore.org/bin/bitcoin-core-30.0/ or build a statically linked binary with depends?

    EDIT: Both options have only the XCB plugin built in and do not use Wayland. I just want to ensure that release binaries are not affected on your system.

  7. diegoviola commented at 4:33 pm on October 14, 2025: contributor
    02025-10-14T14:47:07Z Qt 6.10.0 (dynamic), plugin=wayland
    12025-10-14T14:47:07Z No static plugins.
    

    Could you please try the release binary from https://bitcoincore.org/bin/bitcoin-core-30.0/ or build a statically linked binary with depends?

    EDIT: Both options have only the XCB plugin built in and do not use Wayland. I just want to ensure that release binaries are not affected on your system.

    Sure, I just tried the latest release (v30.0) from bitcoincore.org, here is the log:

     02025-10-14T16:28:38Z Bitcoin Core version v30.0.0 (release build)
     12025-10-14T16:28:38Z Qt 6.7.3 (static), plugin=xcb
     22025-10-14T16:28:38Z Static plugins:
     32025-10-14T16:28:38Z  QMinimalIntegrationPlugin, version 395008
     42025-10-14T16:28:38Z  QXcbIntegrationPlugin, version 395008
     52025-10-14T16:28:38Z Style: fusion / QFusionStyle
     62025-10-14T16:28:38Z System: Arch Linux, x86_64-little_endian-lp64
     72025-10-14T16:28:38Z Screen: HDMI-A-1 1920x1200, pixel ratio=1.0
     82025-10-14T16:28:38Z Using the 'x86_shani(1way;2way)' SHA256 implementation
     92025-10-14T16:28:38Z Using RdSeed as an additional entropy source
    102025-10-14T16:28:38Z Using RdRand as an additional entropy source
    112025-10-14T16:28:38Z Default data directory /home/diego/.bitcoin
    

    No issues with this release build, presumably because it’s using plugin=xcb.

  8. hebasto added the label Wayland on Oct 14, 2025
  9. diegoviola commented at 5:29 pm on October 14, 2025: contributor

    @hebasto @pablomartin4btc can we just get rid of the problematic code in this case? According to this comment: https://github.com/swaywm/sway/issues/4739#issuecomment-555965289

    “Qt.WindowStaysOnTopHint won’t work on Wayland. Clients don’t get to dictate whether they stay on top or not.”.

  10. pablomartin4btc commented at 9:13 pm on October 14, 2025: contributor

    can we just get rid of the problematic code in this case?

    I’ll take a look…

  11. diegoviola referenced this in commit 4daf53b12e on Oct 16, 2025
  12. diegoviola commented at 7:41 am on October 16, 2025: contributor

    I’ll take a look…

    Appreciate you planning to look into that, I managed to track down the cause and submitted a fix in #904. Let me know if you have any questions during the review. Thanks!


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/gui. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-10-18 14:20 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me