Bar flickering in vertical mode
See original GitHub issueThe 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:
-
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.
-
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:
- Ensure that all widgets in the bar support a vertical bar orientation (no groupbox etc)
- Remove all the multibyte fontawesome icons from the bar, as well as the image widget, leaving only text.
- Try different monospaced fonts
- Disable each widget in turn (assuming some misbehaving widget is responsible for this)
- Initialize the bar with no margin, no border_width
- 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:
- Created a year ago
- Comments:10 (5 by maintainers)
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?