symbolic links are blinking with byobu
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| byobu |
Undecided
|
Unassigned | ||
| byobu (Ubuntu) |
High
|
Unassigned |
Bug Description
Test Case
1. Run byobu
2. ln -s . test_symlink
3. ls -d test_symlink
Actual result
test_symlink is blinking.
Expected result
test_symlink is not blinking with the default settings applied.
ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: gnome-terminal 3.27.90-1ubuntu1
ProcVersionSign
Uname: Linux 4.13.0-32-generic x86_64
ApportVersion: 2.20.8-0ubuntu10
Architecture: amd64
CurrentDesktop: ubuntu:GNOME
Date: Wed Feb 28 16:02:01 2018
InstallationDate: Installed on 2013-09-03 (1638 days ago)
InstallationMedia: Ubuntu 13.10 "Saucy Salamander" - Alpha amd64 (20130902)
ProcEnviron:
TERM=screen-
PATH=(custom, no user)
XDG_RUNTIME_
LANG=fr_FR.UTF-8
SHELL=/bin/bash
SourcePackage: gnome-terminal
UpgradeStatus: Upgraded to bionic on 2018-01-26 (33 days ago)
Related branches
- Dustin Kirkland : Pending requested 2018-03-08
-
Diff: 12 lines (+1/-1)1 file modifiedusr/share/byobu/profiles/dircolors (+1/-1)
Launchpad Janitor (janitor) wrote : | #2 |
Changed in byobu (Ubuntu): | |
status: | New → Confirmed |
Changed in gnome-terminal (Ubuntu): | |
status: | New → Confirmed |
Egmont Koblinger (egmont-gmail) wrote : | #4 |
byobu sets up the LS_COLORS environment variable based on /usr/share/
4 stands for underlined, 5 for blinking and 37 for white foreground, so the terminal emulator does what it is asked to do. I'm pretty sure this is not what byobu authors meant, so this is a bug in byobu.
The same issue is also reproducible in xterm.
The bug probably freshly appeared to you because gnome-terminal, as shipped by Ubuntu, only started supporting blinking text a couple of days ago with the 3.27.90 update. Before that, this parameter was silently ignored, so you should have seen underlined and white (but steady) text.
(You can disable blinking in gnome-terminal's preferences, but that's a terrible workaround; byobu's dircolors file should be fixed instead.)
Egmont Koblinger (egmont-gmail) wrote : | #5 |
Using the color 30 or 37 (black or white foreground) without setting the background, or similarly, 40 or 47 (black or white background) without setting the foreground is a pretty bad idea, since, without knowing the terminal's color scheme (which is often white on black, or black on white), it might easily result in unreadable text.
I don't see why links would be underlined, so I assume that 4 is also a bug.
One possible explanation would be that it wanted to be 40 instead (white text on black background), it's at least readable, although potentially ugly, still doesn't explain that 5, and also the order of the three numbers is really weird then.
My best guess is that that 4 is meant to be 48 (or even better, 38), to use extended colors. In that case 5 is an additional parameter to that (that is, no blinking), and 37 is yet another additional parameter (the color index from the 256-color palette), resulting in a cyan-ish color.
This guess is also supported by the presence of "DIR 38;5;5" and "EXEC 38;5;202" in the file, which mean to use color index 5 (magenta) or 202 (bright red) for the foreground.
Note, however, that the use of such extended colors is also buggy, since they are under TERM declarations that don't claim to support 256 colors. "38;5;xx" and "48;5;xx" should only be allowed under sections of "TERM whatever-256color".
"DIR 38;5;5" could simply be replaced by "DIR 35", it's the same color, but terminals that don't support 256 colors cannot be expected to understand the long format. For "EXEC 38;5;202" the best (simplest) is probably to find a color from the legacy 8-color palette. Or reorganize the entire file so that terminals with 256-color support have different values.
Egmont Koblinger (egmont-gmail) wrote : | #6 |
But maybe the key problem is: What makes byobu think that overriding the behavior of my apps is a good idea? Shouldn't it just leave LS_COLORS alone?
tags: | removed: rls-bb-incoming |
no longer affects: | gnome-terminal (Ubuntu) |
Iain Lane (laney) wrote : | #7 |
Thanks for the analysis Egmont. Agreed that this sounds like a bug in byobu then - Dustin, can you have a look please?
Changed in byobu: | |
status: | New → Confirmed |
Changed in byobu (Ubuntu): | |
importance: | Undecided → High |
status: | Confirmed → Triaged |
Jean-Baptiste Lallement (jibel) wrote : | #8 |
I proposed a patch to change the color attribute of symlinks from blinking to underlined.
Egmont Koblinger (egmont-gmail) wrote : | #9 |
Nitpicking: you enable underlined mode twice with that "4;4" in "4;4;37". It's harmless, but will look suspicious to anyone looking at the code. A simple "4;37" is the same.
See also comment #5 for why that 37 is a bad idea. It no longer blinks, and looks okay with Ubuntu's default terminal colors, but is unreadable with black-on-white color scheme.
Egmont Koblinger (egmont-gmail) wrote : | #10 |
Of course it might be reasonable to say that now you're fixing blinking only, the rest should go to a different bugreport.
Jean-Baptiste Lallement (jibel) wrote : | #11 |
You're right. I adjusted the MP to use a dark cyan foreground and no attribute. It's readable on the default themes available on Ubuntu and close to the default link color without byobu.
Changed in byobu: | |
status: | Confirmed → Fix Committed |
Changed in byobu (Ubuntu): | |
status: | Triaged → Fix Committed |
Launchpad Janitor (janitor) wrote : | #12 |
This bug was fixed in the package byobu - 5.125-0ubuntu1
---------------
byobu (5.125-0ubuntu1) bionic; urgency=medium
[ Jean-Baptiste Lallement ]
* usr/share/
- fix blinking symlinks
[ Chow Loong Jin ]
* usr/lib/
- Fix cull_zombies() so that we properly cull zombies of sessions that
have non-numeric session names
- Allow the dynamic session-creation behaviour to be disabled by
creating ~/.byobu/
[ Dustin Kirkland ]
* debian/control:
- need sensible-utils
-- Dustin Kirkland <email address hidden> Mon, 04 Dec 2017 07:46:48 -0600
Changed in byobu (Ubuntu): | |
status: | Fix Committed → Fix Released |
Changed in byobu: | |
status: | Fix Committed → Fix Released |
Status changed to 'Confirmed' because the bug affects multiple users.