[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/02: bootloader: grub: Refactor eye-candy a bit.
From: |
guix-commits |
Subject: |
02/02: bootloader: grub: Refactor eye-candy a bit. |
Date: |
Tue, 17 Mar 2020 23:30:37 -0400 (EDT) |
apteryx pushed a commit to branch master
in repository guix.
commit 6794653e1b0fce8981eb179b9d4cab4a0c5f926f
Author: Maxim Cournoyer <address@hidden>
AuthorDate: Wed Feb 19 15:59:06 2020 -0500
bootloader: grub: Refactor eye-candy a bit.
* gnu/bootloader/grub.scm (eye-candy)[setup-gfxterm-body]: Define the
GFXMODE
binding using AND-LET* instead of chained AND=>. Add a comment about
supporting graphical mode on other systems than x86. Generate configuration
string using FORMAT rather than STRING-APPEND.
---
gnu/bootloader/grub.scm | 37 ++++++++++++++++++++-----------------
1 file changed, 20 insertions(+), 17 deletions(-)
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index 36a964e..28e6cb1 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -36,6 +36,7 @@
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-2)
#:export (grub-image
grub-image?
grub-image-aspect-ratio
@@ -149,24 +150,26 @@ STORE-MOUNT-POINT is its mount point; these are used to
determine where the
background image and fonts must be searched for. SYSTEM must be the target
system string---e.g., \"x86_64-linux\"."
(define setup-gfxterm-body
- ;; Intel and EFI systems need to be switched into graphics mode, whereas
- ;; most other modern architectures have no other mode and therefore don't
- ;; need to be switched.
- (if (string-match "^(x86_64|i[3-6]86)-" system)
- (string-append
- "
-"
- (let ((gfxmode (and=>
- (and=> config bootloader-configuration-theme)
- grub-gfxmode)))
- (if gfxmode
- (string-append "set gfxmode=" (string-join gfxmode ";"))
- "# Leave 'gfxmode' to 'auto'."))
- "
+ (let ((gfxmode
+ (or (and-let* ((theme (bootloader-configuration-theme config))
+ (gfxmode (grub-gfxmode theme)))
+ (string-join gfxmode ";"))
+ "auto")))
+
+ ;; Intel and EFI systems need to be switched into graphics mode, whereas
+ ;; most other modern architectures have no other mode and therefore
+ ;; don't need to be switched.
+
+ ;; XXX: Do we really need to restrict to x86 systems? We could imitate
+ ;; what the GRUB default configuration does and decide based on whether
+ ;; a user provided 'gfxterm' in the terminal-outputs field of their
+ ;; bootloader-configuration record.
+ (if (string-match "^(x86_64|i[3-6]86)-" system)
+ (format #f "
+ set gfxmode=~a
insmod all_video
- insmod gfxterm
-")
- ""))
+ insmod gfxterm~%" gfxmode)
+ "")))
(define (setup-gfxterm config font-file)
(if (memq 'gfxterm (bootloader-configuration-terminal-outputs config))