symbolic links are blinking with byobu

Bug #1752352 reported by Jean-Baptiste Lallement on 2018-02-28
This bug affects 5 people
Affects Status Importance Assigned to Milestone
byobu (Ubuntu)

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
ProcVersionSignature: Ubuntu 4.13.0-32.35-generic 4.13.13
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)
 PATH=(custom, no user)
SourcePackage: gnome-terminal
UpgradeStatus: Upgraded to bionic on 2018-01-26 (33 days ago)

Related branches

Jean-Baptiste Lallement (jibel) wrote :
tags: added: rls-bb-incoming
description: updated
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in byobu (Ubuntu):
status: New → Confirmed
Changed in gnome-terminal (Ubuntu):
status: New → Confirmed
Egmont Koblinger (egmont-gmail) wrote :

byobu sets up the LS_COLORS environment variable based on /usr/share/byobu/profiles/dircolors which contains "LINK 4;5;37".

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 :

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 :

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?

Will Cooke (willcooke) on 2018-03-06
tags: removed: rls-bb-incoming
no longer affects: gnome-terminal (Ubuntu)
Iain Lane (laney) wrote :

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 :

I proposed a patch to change the color attribute of symlinks from blinking to underlined.

Egmont Koblinger (egmont-gmail) wrote :

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.

Of course it might be reasonable to say that now you're fixing blinking only, the rest should go to a different bugreport.

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 :

This bug was fixed in the package byobu - 5.125-0ubuntu1

byobu (5.125-0ubuntu1) bionic; urgency=medium

  [ Jean-Baptiste Lallement ]
  * usr/share/byobu/profiles/dircolors: LP: #1752352
    - fix blinking symlinks

  [ Chow Loong Jin ]
  * usr/lib/byobu/include/
   - 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/.reuse-session

  [ 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
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers