Denys Nykula wrote 2 years ago
(address . guix-patches@gnu.org)(name . Denys Nykula)(address . vegan@libre.net.ua)
Partially-Fixes: https://issues.guix.gnu.org/64006
* gnu/installer/services.scm (system-services->configuration): When the
LANGUAGE environment variable matches a known native console font, wrap the
%desktop-services or %base-services with modify-services, configuring
console-font-service-type to set the native console font on every tty instead
of the default console font.
---
This makes console messages, such as errors and help texts, readable (like they
were in Guix System 1.4.0) if the user chooses the Belarusian, Bulgarian,
Greek, Esperanto, Kazakh, Kyrgyz, Macedonian, Mongolian, Russian, Serbian,
Tajik or Ukrainian language at the beginning of a new installation. For other
languages, this keeps the default font, which is Unifont-APL8x16 in the latest
development snapshots. Thanks to Florian Pelz and Josselin Poiret for tips
about editing the installer and testing it using a virtual machine.
gnu/installer/services.scm | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
Toggle diff (50 lines)
diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm
index d08bab47fd..fb66f2248c 100644
--- a/gnu/installer/services.scm
+++ b/gnu/installer/services.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2023 Denys Nykula <vegan@libre.net.ua>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -23,6 +24,7 @@
(define-module (gnu installer services)
#:use-module (guix records)
#:use-module (guix read-print)
+ #:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:export (system-service?
system-service-name
@@ -156,9 +158,22 @@ (define (system-services->configuration services)
(let* ((snippets (append-map system-service-snippet services))
(packages (append-map system-service-packages services))
(desktop? (find desktop-system-service? services))
- (base (if desktop?
- '%desktop-services
- '%base-services))
+ (base-with-default-console-font (if desktop?
+ '%desktop-services
+ '%base-services))
+ (native-console-font (match (getenv "LANGUAGE")
+ ((or "be" "bg" "el" "eo" "kk" "ky"
+ "mk" "mn" "ru" "sr" "tg" "uk")
+ "LatGrkCyr-8x16.psfu.gz")
+ (_ #f)))
+ (base (if native-console-font
+ `(modify-services
+ ,base-with-default-console-font
+ (console-font-service-type
+ config => (map (lambda (tty)
+ (cons (car tty) ,native-console-font))
+ config)))
+ base-with-default-console-font))
(service-heading (list (vertical-space 1)
(comment (G_ "\
;; Below is the list of system services. To search for available
base-commit: b24a05830d11e3011eee4bc5f60a41e26188cde1
--
2.40.1