Curses rendering broken / overflowing
shayne opened this issue · comments
Changing BAR_ON to "." fixes the issue. I guess my terminal is not rendering a monopace square? Using termite.
The font I'm using is PragmataPro (which was working fine until recently). Tried changing it to Droid Sans Mono with the same results. Tried gnome-terminal with the same results too.
Seeing how changing BAR_ON from large square (2B1B, Unicode 5.1) fixes the issue there are 2 things I can think of:
len('⬛')
returns something other than 1, but with Python 3 this should never be the case.- Something somewhere in your system has been updated/changed. This would also explain why pulsemixer was working fine a few days ago and why this bug is so tricky to reproduce.
In any case, this symbol has proved to be very troublesome. On some terminals/fonts it doesn't display correctly, on others it is simply missing or causing issues similar to this one.
Replacing it would be the way to go. ▮ (25AE) should look close enough and be more reliable as it was introduced in one of the first versions of Unicode. But I need you to test it for me before pushing.
I am encountering the exact same issue using xfce4-terminal. The issue does not appear in xterm or urxvt. I also have not yet found a font where this issue does not appears, but the xfce terminal just uses the character from a different font, if the current font does not have it, so it is very difficult to figure out which font is the culprit.
For now, I will just export a PULSEMIXER_BAR_STYLE
with a different symbol for BAR_ON
.
EDIT: I just realized, the reason why the issue does not appear in xterm and urxvt is because they do not use fallback fonts and just show a dotted square:
Doesn't look like the problem is in the pulsemixer itself, but likely in some updated dependency. So for now I'm simply changing default BAR_ON from 2B1B to 25AE.