Watch command failed to display special characters

Hi, I am a beginner of NixOS.
watch command failed to display special characters like Japanese, Korean and Chinese.

I think the easiest way to reproduce it is that it cannot even display some special character in lsblk

Something like this in lsblk

nvme0n1
├─nvme0n1p1
└─nvme0n1p2
  └─enc

Become like this in watch lsblk

nvme0n1
nvme0n1p1
nvme0n1p2
  enc

Only watch command have this problem, those special characters are displayed perfectly fine elsewhere.

I know this may not be NixOS specific but I haven’t encountered this problem in other distros.

1 Like

Is it something related to the missing --enable-watch8bit configureFlags in procps?
I tried to overlay it to add it back, but suddenly it has more than thousands of derivations needed to be recompiled, so I gave up to test it.

That looks right to me. You can test it with:

nix-shell \
  --packages 'procps.overrideAttrs (a: {
    configureFlags = a.configureFlags ++ [ "--enable-watch8bit" ];
  })' \
  --run 'watch echo ✓'

I’d recommend opening an issue in nixpkgs to add this flag by default. Debian, Arch, and Red Hat already do in their packaging.

1 Like