3
0
Fork 0
forked from mirrors/nixpkgs

Revert "nixos/console: detect unicode properly"

This reverts commit 05958b228b.

Issue https://github.com/NixOS/nixpkgs/issues/188998 is concerns quite a
few NixOS users with full disk encryption and custom keymap.
Since there hasn't been a proper fix agreed upon and merged, I am
reverting this.
The changes can be applied again, when it is ensured that they do not
break custom keymaps in initrd.
This commit is contained in:
Yureka 2022-09-08 23:11:45 +02:00
parent c881fdb059
commit bb5b6029aa
No known key found for this signature in database
GPG key ID: B95AE06334AFF6BA

View file

@ -8,23 +8,14 @@ let
makeColor = i: concatMapStringsSep "," (x: "0x" + substring (2*i) 2 x);
isUnicode = '' \
LOCALE_ARCHIVE=${config.i18n.glibcLocales}/lib/locale/locale-archive \
LANG=${config.i18n.defaultLocale} \
LC_IDENTIFICATION=${config.i18n.defaultLocale} \
locale -k identification-codeset | grep -i UTF-8 \
'';
isUnicode = hasSuffix "UTF-8" (toUpper config.i18n.defaultLocale);
optimizedKeymap = pkgs.runCommand "keymap" {
nativeBuildInputs = with pkgs.buildPackages; [ kbd locale ];
nativeBuildInputs = [ pkgs.buildPackages.kbd ];
LOADKEYS_KEYMAP_PATH = "${consoleEnv pkgs.kbd}/share/keymaps/**";
preferLocalBuild = true;
} ''
if ${isUnicode} ; then
loadkeys -b -u "${cfg.keyMap}" > $out
else
loadkeys -b "${cfg.keyMap}" > $out
fi
loadkeys -b ${optionalString isUnicode "-u"} "${cfg.keyMap}" > $out
'';
# Sadly, systemd-vconsole-setup doesn't support binary keymaps.
@ -139,7 +130,7 @@ in
})
(mkIf setVconsole (mkMerge [
{ environment.systemPackages = with pkgs; [ kbd locale ];
{ environment.systemPackages = [ pkgs.kbd ];
# Let systemd-vconsole-setup.service do the work of setting up the
# virtual consoles.
@ -148,13 +139,8 @@ in
environment.etc.kbd.source = "${consoleEnv pkgs.kbd}/share";
boot.initrd.preLVMCommands = mkIf (!config.boot.initrd.systemd.enable) (mkBefore ''
if ${isUnicode} ; then
kbd_mode -u -C /dev/console
printf "\033%%G" >> /dev/console
else
kbd_mode -a -C /dev/console
printf "\033%%@" >> /dev/console
fi
kbd_mode ${if isUnicode then "-u" else "-a"} -C /dev/console
printf "\033%%${if isUnicode then "G" else "@"}" >> /dev/console
loadkmap < ${optimizedKeymap}
${optionalString cfg.earlySetup ''