question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Bar flickering in vertical mode

See original GitHub issue

The issue:

Qtile version: 0.21.0

My qtile bar flickers in vertical mode. This might be related to #3062, but the bar behaves normally in horizontal mode for me. Also the fixes in that issue have already been applied to my relatively recent build of Qtile.

https://user-images.githubusercontent.com/8607532/174957846-5fe9465c-e184-4287-a113-264c7bba453e.mp4

There are actually two behaviors here:

  1. The bottom segment(s) of the bar (the clock and battery widgets in my case) simply vanish. This is persistent. They reappear for a couple of seconds when I switch desktops but then disappear again. This happens no matter what the bottom widget is.

  2. The entire bar flickers whenever something visual happens in an application (such as opening a new tab in a browser, or when changing desktops).

I’ve tried the following things without success:

  1. Ensure that all widgets in the bar support a vertical bar orientation (no groupbox etc)
  2. Remove all the multibyte fontawesome icons from the bar, as well as the image widget, leaving only text.
  3. Try different monospaced fonts
  4. Disable each widget in turn (assuming some misbehaving widget is responsible for this)
  5. Initialize the bar with no margin, no border_width
  6. Reverse the order of the bar widgets

Here is a simplified version of my bar config that displays the flickering behavior:

colors = [["#172030", "#172030"], # panel background
          ["#273a43", "#273a43"], # background for current screen tab
          ["#e8e9eb", "#e8e9eb"], # font color for group names
          ["#db6e8f", "#db6e8f"], # border line color for current tab
          ["#1f2a3f", "#1f2a3f"], # border line color for 'other tabs' and color for 'odd widgets'
          ["#0e131d", "#0e131d"], # for the 'even widgets'
          ["#b16e75", "#1f2a3f"], # window name
          # ["#0e131d", "#c6797e"], #
          ["#34262D", "#c6797e"], #
          ["#7d7f7b", "#7d7f7b"]] # background for inactive screens

terminal = "st"

def sep(cf,cb):
    __box = widget.Sep(
        linewidth = 0,
        padding = 4,
        foreground = colors[cf],
        background = colors[cb],
    )
    return __box

widget_defaults = dict(
    font='Monospace Extrabold',
    fontsize=22,
    background=colors[2][0],
    padding=12,
)

extension_defaults = widget_defaults.copy()
tasklist_focused_markup = "<span weight=\"bold\">{}</span>"

def init_widgets_list():
    widgets_list = [
        widget.Sep(
            linewidth = 0,
            padding = 6,
            foreground = colors[2],
            background = colors[0]
        ),
        widget.Sep(
            linewidth = 0,
            padding = 6,
            foreground = colors[2],
            background = colors[0]
        ),
        widget.Prompt(
            prompt = prompt,
            padding = 10,
            foreground = colors[3],
            background = colors[1]
        ),
        widget.Sep(
            linewidth = 0,
            padding = 40,
            foreground = colors[2],
            background = colors[0]
        ),
        widget.WindowTabs(
            fontsize = 20,
            foreground = colors[6][0],
            background = colors[0],
            border = colors[6][::-1], # was colors[1]
            highlight_method = 'block',
            markup_focused = tasklist_focused_markup,
            max_title_width = 150,
            margin = 1,
            padding = 5,
        ),
        widget.Systray(
            background = colors[0],
            padding = 5
        ),
        sep(0,4),
        widget.Bluetooth(
            foreground = colors[2],
            background = colors[5],
            fmt = '{}',
            padding = 5, max_chars = 9,
            hci = '/dev_88_D0_39_F9_15_0A',
            mouse_callbacks = {'Button1': lambda: qtile.cmd_spawn('dmenu-bluetooth')}
        ),
        sep(5,4),
        widget.Backlight(
            foreground = colors[2],
            background = colors[4],
            padding = 2,
            step = 4,
            update_interval = 1.0,
            backlight_name = "amdgpu_bl0"
        ),
        sep(4,5),
        widget.CPU(
            foreground = colors[2],
            background = colors[5],
            padding = 2,
            format = "{load_percent:2.0f}%",
            update_interval = 2.0,
            mouse_callbacks = {'Button1': lambda: qtile.cmd_spawn(terminal + ' -t dropdown_cpu -e btm')},
        ),
        sep(5,4),
        widget.Battery(
            foreground = colors[2],
            background = colors[4],
            padding = 3,
            low_percentage=0.20,
            low_foreground=colors[3],
            update_delay=15,
            format='{percent:.0%}', # '{watt:.1f}W'
        ),
        widget.Clock(
            foreground = colors[2],
            background = colors[5],
            format =  "%a %d/%m %R", #"%A, %B %d - %H:%M ",
            mouse_callbacks = {'Button1': lambda: send_notification('calendar',' "$(cal -3)"')},
        ),
            ]
    return list(widgets_list)

def init_screens():
    return [Screen(left=bar.Bar(widgets=init_widgets_list(), opacity=1.0, size=40, margin=[0,5,0,0])),
            Screen(left=bar.Bar(widgets=init_widgets_list(), opacity=1.0, size=40, margin=[0,5,0,0]))]

There’s nothing in my qtile log except some restart messages:

2022-06-22 11:59:07,922 WARNING libqtile lifecycle.py:_atexit():L33 Restarting Qtile with os.execv(...)
2022-06-22 11:59:34,592 WARNING libqtile lifecycle.py:_atexit():L33 Restarting Qtile with os.execv(...)
2022-06-22 12:09:48,848 WARNING libqtile lifecycle.py:_atexit():L33 Restarting Qtile with os.execv(...)

(I don’t know what hook to subscribe to with what function to get relevant messages in the log for this bug.)

Required:

  • I have searched past issues to see if this bug has already been reported.

Issue Analytics

  • State:open
  • Created a year ago
  • Comments:10 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
karthinkcommented, Jul 26, 2022

I still observe flickering in vertical qtile bars in both a regular session and in Xephyr. I haven’t had time to create a minimal config to reproduce this yet, please leave this issue open for a bit longer.

elParaguayo @.***> writes:

@karthink any update on this?

– Reply to this email directly or view it on GitHub: https://github.com/qtile/qtile/issues/3652#issuecomment-1186153319 You are receiving this because you were mentioned.

Message ID: @.***>

0reactions
elParaguayocommented, Jul 16, 2022

@karthink any update on this?

Read more comments on GitHub >

github_iconTop Results From Across the Web

Vertical flickering line on screen - Apple Support Communities
Vertical flickering line on screen. Hi Team, I've MacBook Pro2019 , while working on laptop all sudden I got vertical lines across screen....
Read more >
Vertical bar of flickering pixels just randomly appeared : r/OLED
While watching a video on YouTube today a vertical bar popped up on the side. It's slightly off color from the rest of...
Read more >
Why am I getting a vertical flashing bar on the ri... - 9359687
Hello, Need help figuring out why there is a line of pixels that are bouncing vertically on the very far right frame of...
Read more >
Windows 10 - screen flashing/vertical lines/horizontal gray
So, I upgraded from Windows 7, and ever since it's been nothing but a pain in the neck. So far I have reinstalled...
Read more >
U2414H Intermittent Flickering Vertical Bars on Display - Dell
U2414H Intermittent Flickering Vertical Bars on Display. Here is the best video of it I could capture. Apparently 50mb was too big for...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found