Hi Ludo, On Mon, 26 Feb 2018 18:09:53 +0100 l...@gnu.org (Ludovic Courtès) wrote:
> 1. status quo, i.e., tcsetattr without %G in the ‘term-ttyN’ services; > > 2. remove the tcsetattr call, write “1” to > /sys/module/vt/parameters/default_utf8; > > 3. do nothing (no tcsetattr, no /sys, no %G). > > It seems that systemd does everything: %G, tcsetattr, and /sys. We have the following options as a distribution: (a) Hope that the user sets up everything as he should - iff they set up the kernel as non-utf8, they also must set up an non-utf-8 console font. (b) Force their hand by decreeing that GuixSD is utf-8 only. That's what we are doing now I think - and a lot of projects (GNOME etc) assume UTF-8 nowadays anyway. Since we just want to fix the bug and leave everything else as it is (b), I'd vote for your (2.). (2.) needs to be done early before the VTs are actually there. default_utf8 is a default, and it will be read only when defaulting, so in this case it will be read when Linux is constructing a tty. %base-services contain both console-font-service and mingetty-service which both access the ttys. Linux VTs are created on demand. Once the VTs are created, us setting default_utf8 is too late. We should set default_utf8 before anyone touches tty[123456]. Where will that be? Should we just set it in boot-system ? That's probably a nice way - also since I think this setting is quite Linux-specific.