mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-25 20:19:18 -05:00
services: console-font: A single service handles all the VTs.
* gnu/services/base.scm (%default-console-font): New variable. (console-font-shepherd-services): New procedure. (console-font-service-type): Change to use 'service-type'. (console-font-service): Rewrite using 'simple-service'. (%base-services): Use a single CONSOLE-FONT-SERVICE-TYPE instance. * gnu/system/install.scm (installation-services): Likewise.
This commit is contained in:
parent
71654dfdda
commit
4a84a48742
2 changed files with 52 additions and 40 deletions
|
@ -58,6 +58,8 @@ (define-module (gnu services base)
|
||||||
session-environment-service-type
|
session-environment-service-type
|
||||||
host-name-service
|
host-name-service
|
||||||
console-keymap-service
|
console-keymap-service
|
||||||
|
%default-console-font
|
||||||
|
console-font-service-type
|
||||||
console-font-service
|
console-font-service
|
||||||
|
|
||||||
udev-configuration
|
udev-configuration
|
||||||
|
@ -635,37 +637,51 @@ (define (console-keymap-service . files)
|
||||||
"Return a service to load console keymaps from @var{files}."
|
"Return a service to load console keymaps from @var{files}."
|
||||||
(service console-keymap-service-type files))
|
(service console-keymap-service-type files))
|
||||||
|
|
||||||
(define console-font-service-type
|
(define %default-console-font
|
||||||
(shepherd-service-type
|
|
||||||
'console-font
|
|
||||||
(match-lambda
|
|
||||||
((tty font)
|
|
||||||
(let ((device (string-append "/dev/" tty)))
|
|
||||||
(shepherd-service
|
|
||||||
(documentation "Load a Unicode console font.")
|
|
||||||
(provision (list (symbol-append 'console-font-
|
|
||||||
(string->symbol tty))))
|
|
||||||
|
|
||||||
;; Start after mingetty has been started on TTY, otherwise the settings
|
|
||||||
;; are ignored.
|
|
||||||
(requirement (list (symbol-append 'term-
|
|
||||||
(string->symbol tty))))
|
|
||||||
|
|
||||||
(start #~(lambda _
|
|
||||||
(and #$(unicode-start device)
|
|
||||||
(zero?
|
|
||||||
(system* (string-append #$kbd "/bin/setfont")
|
|
||||||
"-C" #$device #$font)))))
|
|
||||||
(stop #~(const #t))
|
|
||||||
(respawn? #f)))))))
|
|
||||||
|
|
||||||
(define* (console-font-service tty #:optional (font "LatGrkCyr-8x16"))
|
|
||||||
"Return a service that sets up Unicode support in @var{tty} and loads
|
|
||||||
@var{font} for that tty (fonts are per virtual console in Linux.)"
|
|
||||||
;; Note: 'LatGrkCyr-8x16' has the advantage of providing three common
|
;; Note: 'LatGrkCyr-8x16' has the advantage of providing three common
|
||||||
;; scripts as well as glyphs for em dash, quotation marks, and other Unicode
|
;; scripts as well as glyphs for em dash, quotation marks, and other Unicode
|
||||||
;; codepoints notably found in the UTF-8 manual.
|
;; codepoints notably found in the UTF-8 manual.
|
||||||
(service console-font-service-type (list tty font)))
|
"LatGrkCyr-8x16")
|
||||||
|
|
||||||
|
(define (console-font-shepherd-services tty+font)
|
||||||
|
"Return a list of Shepherd services for each pair in TTY+FONT."
|
||||||
|
(map (match-lambda
|
||||||
|
((tty . font)
|
||||||
|
(let ((device (string-append "/dev/" tty)))
|
||||||
|
(shepherd-service
|
||||||
|
(documentation "Load a Unicode console font.")
|
||||||
|
(provision (list (symbol-append 'console-font-
|
||||||
|
(string->symbol tty))))
|
||||||
|
|
||||||
|
;; Start after mingetty has been started on TTY, otherwise the settings
|
||||||
|
;; are ignored.
|
||||||
|
(requirement (list (symbol-append 'term-
|
||||||
|
(string->symbol tty))))
|
||||||
|
|
||||||
|
(start #~(lambda _
|
||||||
|
(and #$(unicode-start device)
|
||||||
|
(zero?
|
||||||
|
(system* (string-append #$kbd "/bin/setfont")
|
||||||
|
"-C" #$device #$font)))))
|
||||||
|
(stop #~(const #t))
|
||||||
|
(respawn? #f)))))
|
||||||
|
tty+font))
|
||||||
|
|
||||||
|
(define console-font-service-type
|
||||||
|
(service-type (name 'console-fonts)
|
||||||
|
(extensions
|
||||||
|
(list (service-extension shepherd-root-service-type
|
||||||
|
console-font-shepherd-services)))
|
||||||
|
(compose concatenate)
|
||||||
|
(extend append)))
|
||||||
|
|
||||||
|
(define* (console-font-service tty #:optional (font "LatGrkCyr-8x16"))
|
||||||
|
"This procedure is deprecated in favor of @code{console-font-service-type}.
|
||||||
|
|
||||||
|
Return a service that sets up Unicode support in @var{tty} and loads
|
||||||
|
@var{font} for that tty (fonts are per virtual console in Linux.)"
|
||||||
|
(simple-service (symbol-append 'console-font- (string->symbol tty))
|
||||||
|
console-font-service-type `((,tty . ,font))))
|
||||||
|
|
||||||
(define %default-motd
|
(define %default-motd
|
||||||
(plain-file "motd" "This is the GNU operating system, welcome!\n\n"))
|
(plain-file "motd" "This is the GNU operating system, welcome!\n\n"))
|
||||||
|
@ -1497,12 +1513,10 @@ (define %base-services
|
||||||
;; Convenience variable holding the basic services.
|
;; Convenience variable holding the basic services.
|
||||||
(list (login-service)
|
(list (login-service)
|
||||||
|
|
||||||
(console-font-service "tty1")
|
(service console-font-service-type
|
||||||
(console-font-service "tty2")
|
(map (lambda (tty)
|
||||||
(console-font-service "tty3")
|
(cons tty %default-console-font))
|
||||||
(console-font-service "tty4")
|
'("tty1" "tty2" "tty3" "tty4" "tty5" "tty6")))
|
||||||
(console-font-service "tty5")
|
|
||||||
(console-font-service "tty6")
|
|
||||||
|
|
||||||
(mingetty-service (mingetty-configuration
|
(mingetty-service (mingetty-configuration
|
||||||
(tty "tty1")))
|
(tty "tty1")))
|
||||||
|
|
|
@ -313,12 +313,10 @@ (define (normal-tty tty)
|
||||||
(cow-store-service)
|
(cow-store-service)
|
||||||
|
|
||||||
;; Install Unicode support and a suitable font.
|
;; Install Unicode support and a suitable font.
|
||||||
(console-font-service "tty1")
|
(service console-font-service-type
|
||||||
(console-font-service "tty2")
|
(map (lambda (tty)
|
||||||
(console-font-service "tty3")
|
(cons tty %default-console-font))
|
||||||
(console-font-service "tty4")
|
'("tty1" "tty2" "tty3" "tty4" "tty5" "tty6")))
|
||||||
(console-font-service "tty5")
|
|
||||||
(console-font-service "tty6")
|
|
||||||
|
|
||||||
;; To facilitate copy/paste.
|
;; To facilitate copy/paste.
|
||||||
(gpm-service)
|
(gpm-service)
|
||||||
|
|
Loading…
Reference in a new issue