me
/
guix
Archived
1
0
Fork 0
Commit Graph

158 Commits (e05b284dc2fbf9d69989339f9ccc5897b8939d82)

Author SHA1 Message Date
Mathieu Othacehe 62a3756bd9
installer: Skip the backtrace page on user abort.
When the user aborts the installation because a core dump is discovered or the
installation command failed, displaying the abort backtrace doesn't make much
sense. Hide it when the abort condition is &user-abort-error and skip directly
to the dump page.

* gnu/installer/steps.scm (&user-abort-error): New variable.
(user-abort-error?): New procedure.
* gnu/installer/newt/final.scm (run-install-failed-page): Raise a
user-abort-error.
* gnu/installer/newt/welcome.scm (run-welcome-page): Ditto.
* gnu/installer.scm (installer-program): Hide the backtrace page and directly
propose to dump the report when the a &user-abort-error is raised.
2022-11-02 15:52:19 +01:00
Mathieu Othacehe 80387bc7c3
installer: Add core dump support.
Fixes: <https://issues.guix.gnu.org/58733>

* gnu/installer.scm (installer-program): Enable core dump generation.
* gnu/installer/dump.scm (%core-dump): New variable.
(prepare-dump): Copy the core dump file.
* gnu/installer/newt/welcome.scm (run-welcome-page): Propose to report an
installation that previously generated a core dump.
2022-11-02 15:52:19 +01:00
pelzflorian (Florian Pelz) 682639c107
installer: welcome: Warn when uvesafb gets used.
There will be false positives: Because the Guix installer uses the
kernel argument modprobe.blacklist=radeon,amdgpu and some AMD graphics
actually work okay according to h-node, these users will get a
false alarm.

* gnu/installer/newt/welcome.scm (run-welcome-page): Warn before showing
the welcome page.
2022-10-25 10:55:33 +02:00
Mathieu Othacehe 00ff6f7c39
installer: Add a missing confirmation page before formatting.
This is a follow-up of: <https://issues.guix.gnu.org/57232>

* gnu/installer/newt/partition.scm (run-label-page): Add a confirmation page
when dealing with an EFI installation.
2022-10-20 17:28:11 +02:00
Mathieu Othacehe 2a5c2a6184
installer: Propose the user to report a "guix system init" failure.
* gnu/installer/newt/final.scm (run-install-failed-page): Add a "Report the
failure" button.
2022-10-20 10:50:50 +02:00
Andrew Tropin 883fb8f41b
installer: Factorize url-alive? in internet check.
* gnu/installer/newt/network.scm (wait-service-online): Factorize url-alive?
in internet check.
2022-10-17 16:34:07 +04:00
aleksandr barakin 094b357783
installer: Relax internet check availability criteria.
Checks the availability of the mirror bordeaux.guix.gnu.org in addition to
ci.guix.gnu.org.  This allows to proceed the installation if the
ci.guix.gnu.org is unavailable.

* gnu/installer/newt/network.scm (wait-service-online): Relax internet check
availability criteria.

Signed-off-by: Andrew Tropin <andrew@trop.in>
2022-10-17 10:22:15 +04:00
Julien Lepiller 82b0f3755d
guix: Fix typos.
These typos were found and reported through weblate.

* gnu/packages/audio.scm (wildmidi)[description]: Fix typo.
* gnu/packages/games.scm (cgoban)[description]: Fix typo.
* gnu/services/version-control.scm (gitolite-service-type)[description]:
  Fix typo.
* gnu/installer/newt/substitutes.scm (run-substitutes-page): Remove full
  stop at end of title.
* gnu/machine/ssh.scm (machine-ssh-configuration-system): Move
  punctuation outside of quotes.
* guix/scripts/home.scm (process-action): Remove trailing space before
  newline.
* guix/scripts/system.scm (show-help): Fix typo.
* guix/scripts/environment.scm (with-store/maybe): Fix typo.
2022-10-17 07:29:09 +02:00
Mathieu Othacehe 91d817cc17
installer: partition: Add a confirmation page before formatting.
Fixes: <https://issues.guix.gnu.org/57232>.

* gnu/installer/newt/partition.scm (run-label-confirmation-page): New
procedure.
(run-label-page): Call the above procedure before proceeding.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-10-13 10:48:08 +02:00
Josselin Poiret 2e8b4f9bfa
installer: Exit console-services page with abort-to-prompt.
* gnu/installer/newt/services.scm (run-console-services-cbt-page): Do it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-22 16:28:12 +02:00
Josselin Poiret d77612a91b
installer: Return partitions with crypt password as step result.
* gnu/installer/newt/partition.scm (run-partitioning-page): Do it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-22 16:00:44 +02:00
Josselin Poiret 4814ec284f
installer: Move <secret> to utils and use it for crypt passwords.
* gnu/installer/user.scm (<secret>, secret?, make-secret, secret-content): Move
to utils.scm.
* gnu/installer/utils.scm (<secret>, secret?, make-secret, secret-content):
Moved from user.scm.
* gnu/installer/newt/partition.scm (prompt-luks-passwords): Make password a
<secret>.
* gnu/installer/parted.scm (luks-format-and-open): Unwrap secret.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-22 16:00:29 +02:00
Mathieu Othacehe 2bfb27af56
installer: user: Forbid root user creation.
Forbid root user creation as it could lead to a system without any
non-priviledged user accouts.

Fixes: <https://issues.guix.gnu.org/54666>.

* gnu/installer/newt/user.scm (run-user-add-page): Forbid it.
2022-04-06 21:19:07 +02:00
Josselin Poiret ad55ccf9b1
installer: Make dump archive creation optional and selective.
* gnu/installer.scm (installer-program): Let the installer customize
the dump archive.
* gnu/installer/dump.scm (prepare-dump, make-dump): Split make-dump in
prepare-dump, which copies the files necessary for the dump, and
make-dump which creates the archive.
* gnu/installer/record.scm (installer): Add report-page field.  Change
documented return value of exit-error.
* gnu/installer/newt.scm (exit-error): Change arguments to be a string
containing the error.  Let the user choose between exiting and
initiating a dump.
(report-page): Add new variable.
* gnu/installer/newt/page.scm (run-dump-page): New variable.
* gnu/installer/newt/dump.scm: Delete it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02 16:46:44 +01:00
Josselin Poiret 112ef30b84
installer: Turn passwords into opaque records.
* gnu/installer/user.scm (<secret>, secret?, make-secret,
secret-content): Add opaque <secret> record that boxes its contents,
with a custom printer that doesn't display anything.
* gnu/installer/newt/user.scm (run-user-add-page, run-user-page): Box
it.
* gnu/installer/final.scm (create-user-database): Unbox it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02 16:46:44 +01:00
Josselin Poiret 7cbd95a9f6
installer: Add error page when running external commands.
* gnu/installer/newt.scm (newt-run-command): Add it.
* gnu/installer/newt/page.scm (%ok-button, %exit-button,
%default-buttons, make-newt-buttons, run-textbox-page): Add them.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02 16:46:44 +01:00
Josselin Poiret 726d0bd2f3
installer: Use named prompt to abort or break installer steps.
* gnu/installer/steps.scm (run-installer-steps): Set up
'installer-step prompt.
* gnu/installer/newt/ethernet.scm (run-ethernet-page)
* gnu/installer/newt/final.scm (run-config-display-page,
run-install-failed-page)
* gnu/installer/newt/keymap.scm (run-layout-page, run-variant-page)
* gnu/installer/newt/locale.scm (run-language-page,
run-territory-page, run-codeset-page, run-modifier-page,
run-locale-page)
* gnu/installer/newt/network.scm (run-technology-page,
wait-service-online)
* gnu/installer/newt/page.scm (run-listbox-selection-page,
run-checkbox-tree-page)
* gnu/installer/newt/partition.scm (button-exit-action)
* gnu/installer/newt/services.scm (run-desktop-environments-cbt-page,
run-networking-cbt-page, run-other-services-cbt-page,
run-network-management-page)
* gnu/installer/newt/timezone.scm (run-timezone-page)
* gnu/installer/newt/user.scm (run-user-page)
* gnu/installer/newt/welcome.scm (run-menu-page)
* gnu/installer/newt/wifi.scm (run-wifi-page): Use the 'installer-step
prompt to abort.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02 16:46:44 +01:00
Josselin Poiret ed6567abbf
installer: Replace run-command by invoke in newt/page.scm.
* gnu/installer/newt/page.scm (edit-file): Replace it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02 16:46:43 +01:00
Josselin Poiret dad9a1c0b2
installer: Fix run-file-textbox-page when edit-button is #f.
* gnu/installer/newt/page.scm (run-file-textbox-page): Check if
edit-button is #f.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02 16:46:43 +01:00
Josselin Poiret 4f2fd33b4f
installer: Use new installer-log-line everywhere.
* gnu/installer.scm (installer-program)
* gnu/installer/final.scm (install-locale)
* gnu/installer/newt.scm (init)
* gnu/installer/newt/final.scm (run-final-page)
* gnu/installer/newt/page.scm (run-form-with-clients)
* gnu/installer/newt/partition.scm (run-partitioning-page)
* gnu/installer/parted.scm (eligible-devices, mkpart,
luks-format-and-open, luks-close, mount-user-partitions,
umount-user-partitions, free-parted):
* gnu/installer/steps.scm (run-installer-steps):
* gnu/installer/utils.scm (run-command, send-to-clients): Use it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-02-02 16:46:43 +01:00
Mathieu Othacehe 0d37a5df7e
installer: Add crash dump upload support.
Suggested-by: Josselin Poiret <dev@jpoiret.xyz>

* gnu/installer/dump.scm: New file.
* gnu/installer/newt/dump.scm: New file.
* gnu/local.mk (INSTALLER_MODULES): Add them.
* gnu/installer/record.scm (<installer>)[dump-page]: New field.
* gnu/installer/steps.scm (%current-result): New variable.
(run-installer-steps): Update it.
* gnu/installer.scm (installer-program): Add tar and gip to the installer
path. Add guile-webutils and gnutls to the Guile extensions. Generate and send
the crash dump report.
* gnu/installer/newt.scm (exit-error): Add a report argument. Display the
report id.
(dump-page): New procedure.
(newt-installer): Update it.
2022-02-02 16:46:42 +01:00
Mathieu Othacehe ee897e5f51
installer: Check if ci.guix.gnu.org can be reached.
* gnu/installer.scm (installer-program): Add gnutls extension.
* gnu/installer/newt/network.scm (wait-service-online): Check if the CI server
can be reached.
2022-01-14 14:29:08 +01:00
Mathieu Othacehe c6910baf36
installer: Ignore small devices.
Filter the devices that are smaller than 2GiB in the device selection list.

* gnu/installer/parted.scm (%min-device-size): New variable.
(non-install-devices): Rename it ...
(eligible-devices): ... this way. Filter the install device as well as the
small devices.
* gnu/installer/newt/partition.scm (run-partitioning-page): Adapt it.
2022-01-14 14:29:08 +01:00
Leo Famulari 2842a42b51
installer: Recommend 'ntp-service-type' for non-graphical systems.
We had several bug reports with a root cause of "the clock was
incorrect" from users who used the installer to install a non-graphical
Guix System.

* gnu/installer/services.scm (%system-services): Add the ntp-service-type.
* gnu/installer/newt/services.scm (run-system-administration-cbt-page): New
variable.
(run-services-page): Use run-system-administration-cbt-page when not
installing a desktop.
* gnu/installer/tests.scm (choose-services): Add and use a
choose-misc-service?  procedure.
* gnu/tests/install.scm (installation-target-os-for-gui-tests)<services>: Add
ntp-service-type.
2021-12-28 15:26:39 -05:00
Leo Famulari 029f8d7c12
installer: Offer the CUPS printing service on a dedicated page.
Currently, the installer page RUN-OTHER-SERVICES-CBT-PAGE offers to the user all
installer services that are not of the types 'desktop', 'network-management', or
'networking'. Concretely, this means that it offers the CUPS printing service,
because that is the only service of a different type defined in the installer.

In later commits, we will add some services of a new type, and we only want them
to be offered when the user is installing a non-graphical system.

At least one of these new services (NTP) is part of %DESKTOP-SERVICES. If it
was also offered on RUN-OTHER-SERVICES-CBT-PAGE, and the user had configured a
system using %DESKTOP-SERVICES, the user could accidentally add NTP to their
services twice, which is an error and would break installation.

So, this commit makes the RUN-OTHER-SERVICES-CBT-PAGE be more specific about
what services to offer. This makes it easier to discriminate between desktop and
non-desktop installations, in terms of when a given service is offered.

* gnu/installer/newt/services.scm (RUN-OTHER-SERVICES-CBT-PAGE): Rename to ...
(RUN-PRINTING-SERVICES-CBT-PAGE): ... new variable, and select only 'document' services.
(RUN-SERVICES-PAGE): Adjust accordingly.
* gnu/installer/tests.scm (CHOOSE-SERVICES): Adjust accordingly.
2021-12-28 15:26:39 -05:00
Tobias Geerinckx-Rice 3a7504cbc4
installer: Reorder file system type listbox.
Recommending ext4 over btrfs is probably ill-advised nowadays.  See the
regular bug reports about running out of /gnu/store directory entries,
for which the documented fix then breaks booting with GRUB.

Instead, just list regular file systems alphabetically.  We can bikeshed
bcachefs later ;-)

Move second-class file systems like NTFS to their own section at the end
of the list.

* gnu/packages/package-management.scm (run-fs-type-page): Reorder the
LISTBOX-ITEMS.
2021-10-21 22:08:24 +02:00
Tobias Geerinckx-Rice f34b808741
installer: Support XFS.
* gnu/installer/newt/partition.scm (run-fs-type-page): Add ‘xfs’ to the
list box.
* gnu/installer/parted.scm (user-fs-type-name, user-fs-type->mount-type)
(partition-filesystem-user-type): Add ‘xfs’ mapping.
(create-xfs-file-system): New procedure.
(format-user-partitions): Use it.
* gnu/installer.scm (set-installer-path): Add xfsprogs.
2021-09-23 18:17:18 +02:00
Tobias Geerinckx-Rice 6f13881f1e
installer: Offer the CUPS printing service.
* gnu/installer/services.scm (%system-services): Add CUPS.
* gnu/installer/newt/services.scm (run-other-services-cbt-page):
New procedure.
(run-services-page): Call it last.
2021-06-30 21:34:26 +02:00
Mathieu Othacehe e2ff126588
installer: Fix crash when deleting a free space partition.
Fixes: <https://issues.guix.gnu.org/49126>.

* gnu/installer/newt/partition.scm (run-disk-page): Fix the return value when
removing a free space partition.
2021-06-29 20:44:23 +02:00
Mathieu Othacehe f5d9d6ec68
installer: Check partitions UUIDs.
* gnu/installer/parted.scm (&cannot-read-uuid): New condition.
(cannot-read-uuid?, cannot-read-uuid-partition): New procedures.
(check-user-partitions): Check that all user-partitions have a valid UUID,
raide the above condition otherwise.
* gnu/installer/newt/partition.scm (run-disk-page): Run an error page if the
&cannot-read-uuid condition is raised.
2021-06-12 09:31:33 +02:00
Mathieu Othacehe 1a0a18d0cc
installer: Print user partitions.
* gnu/installer/newt/partition.scm (run-partitioning-page): Print
user-partitions to syslog.
2021-06-12 09:31:33 +02:00
Mathieu Othacehe 3f8ea83e2a
installer: Force GPT disk label when UEFI is supported.
* gnu/installer/newt/partition.scm (run-label-page): Force the GPT disk label
when UEFI is supported.
2021-04-28 15:49:53 +02:00
Tobias Geerinckx-Rice d09831fe52
installer: Edit desktop selection prompt.
* gnu/installer/newt/services.scm (run-desktop-environments-cbt-page):
Fix and clarify the #:info-text.
2021-01-31 17:08:17 +01:00
Mathieu Othacehe bb4e67415e
installer: Fix crash in parameters menu.
Fixes: <https://issues.guix.gnu.org/45378>.

* gnu/installer/newt/keymap.scm (run-layout-page): Return false when
"Continue" button is pressed.
(run-keymap-page): Do not try to compute variants if layout is false. Also do
not try to format the result if layout is false.
* gnu/installer.scm (compute-keymap-step): Do not apply keymap if
"run-keymap-page" returns false.
2021-01-12 16:40:27 +01:00
Mathieu Othacehe 8361817bf6
install: Discover local substitute servers.
* gnu/installer/substitutes.scm: New file.
* gnu/installer/newt/substitutes.scm: New file.
* gnu/local.mk (INSTALLER_MODULES): Add them.
* po/guix/POTFILES.in: Add gnu/installer/newt/substitutes.scm.
* gnu/installer/proxy.scm (with-silent-shepherd): Move to ...
* gnu/installer/utils.scm: ... here.
* gnu/installer/record.scm (<installer>)[substitutes-page]: New field.
* gnu/installer/newt.scm (substitutes-page): New procedure,
(newt-installer): register it.
* gnu/installer.scm (installer-steps): Add "substitutes-page" step.
* gnu/system/install.scm (%installation-services): Add avahi-service-type and
enable substitute server discover in guix-service-type.
[<name-service-switch>]: Set it to %mdns-host-lookup-nss.
2020-12-11 21:37:07 +01:00
Mathieu Othacehe c2396ceb6e
installer: parameters: Add a reboot button.
Suggested by: zimoun <zimon.toutoune@gmail.com>.

* gnu/installer/newt/parameters.scm (run-parameters-page): Add a reboot
button.
2020-11-07 18:17:32 +01:00
Mathieu Othacehe 6dcbbcdab7
installer: Edit partitioning warning message.
* gnu/installer/newt/partition.scm (draw-formatting-page): Add an extra new
line.
2020-11-07 13:19:25 +01:00
Mathieu Othacehe 8338d414b3
installer: Limit listbox height.
Fixes: <https://issues.guix.gnu.org/44428>.

* gnu/installer/newt.scm (init): Print screen size.
* gnu/installer/newt/page.scm (default-listbox-height): New variable.
(run-listbox-selection-page): Use it.
* gnu/installer/newt/wifi.scm (wifi-listbox-height): Ditto.
* gnu/installer/newt/network.scm (run-technology-page): Set the maximum
listbox height to 5.
* gnu/installer/newt/ethernet.scm (run-ethernet-page): Ditto.
* gnu/installer/newt/final.scm (run-config-display-page): Change listbox
height.
* gnu/installer/newt/partition.scm (run-disk-page): Ditto.
* gnu/installer/newt/welcome.scm (display-logo?): New procedure.
(run-menu-page): Use it.
* gnu/installer/steps.scm (%configuration-file-width): Remove it.
2020-11-07 13:19:25 +01:00
Miguel Ángel Arruga Vivas bc9e66f0fe
installer: Report to the user the formatted partitions.
* gnu/installer/newt/partitions.scm (define-module): Use (ice-9 format).
(draw-formatting-page): Add parameter partitions and provide the list of
formatted partitions to the user.
(run-partitioning-page): Provide user-partitions to draw-formatting-page.
2020-11-02 03:42:08 +01:00
Ludovic Courtès 1c6d985331
installer: Use UUIDs in the 'swap-devices' field.
Note: This change requires an updated 'guix' package that contains
Linux-swap support in (gnu build file-systems).

* gnu/installer/parted.scm (user-partitions->configuration): Use UUIDs
in the 'swap-devices' field.
* gnu/installer/newt/final.scm (run-final-page)[wait-for-clients]: New
procedure.   Use it.
* gnu/installer/tests.scm (choose-partitioning): Wait for
'starting-final-step' message and move configuration file dialog
handling to...
(conclude-installation): ... here.  Send over PORT the reply
corresponding to 'starting-final-step'.
* gnu/tests/install.scm (gui-test-program): When ENCRYPTED? is false,
invoke 'swaplabel' in the marionette.
(installation-target-os-for-gui-tests): When ENCRYPTED? is false, except
a fixed UUID.
2020-10-30 01:14:21 +01:00
Ludovic Courtès 6d1fd37182
installer: Log partition formatting.
* gnu/installer/newt/partition.scm (run-partitioning-page): Add 'syslog' call.
2020-10-28 16:24:47 +01:00
Ludovic Courtès bfb65a6768
installer: Make the network management selection window tighter.
* gnu/installer/newt/services.scm (run-network-management-page): Pass
 #:listbox-height.
2020-10-23 16:35:38 +02:00
Jan (janneke) Nieuwenhuizen 1197b8b20f
installer: Add Emacs EXWM desktop environment.
Suggested by zenny via IRC.

* gnu/installer/services.scm (%system-services): Add emacs, emacs-exwm,
emacs-desktop-environment.
* etc/release-manifest.scm (%system-packages): Likewise.
* gnu/system/examples/lightweight-desktop.tmpl: Likewise.
* gnu/tests/install.scm (installation-target-desktop-os-for-gui-tests)
[packages]: Likewise
* gnu/installer/newt/services.scm (run-desktop-environments-cbt-page): Make
one entry taller.
2020-10-13 21:17:40 +02:00
Tobias Geerinckx-Rice 5e17ae7fbd
installer: Rename RUN-PARTIONING-PAGE.
* gnu/installer/newt/partition.scm (run-partioning-page): Rename to
run-partitioning-page.  Adjust all callers.
2020-09-21 00:31:15 +02:00
Tobias Geerinckx-Rice e1f3788944
installer: Fix docstring typoes.
* gnu/installer/connman.scm (connman-state, run-locale-page)
(start-swapping, stop-swapping, run-installer-steps): Fix typo in
docstring.
2020-09-21 00:31:15 +02:00
Mathieu Othacehe 8ce6f4dc28
installer: Run the installation inside a container.
When the store overlay is mounted, other processes such as kmscon, udev
and guix-daemon may open files from the store, preventing the
underlying install support from being umounted. See:
https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00161.html.

To avoid this situation, mount the store overlay inside a container,
and run the installation from within that container.

* gnu/build/shepherd.scm (fork+exec-command/container): New procedure.
* gnu/services/base.scm (guix-shepherd-service): Support an optional PID
argument passed to the "start" method. If that argument is passed, ensure that
guix-daemon enters the given PID MNT namespace by using
fork+exec-command/container procedure.
* gnu/installer/final.scm (umount-cow-store): Remove it,
(install-system): run the installation from within a container.
* gnu/installer/newt/final.scm (run-install-shell): Remove the display hack.
2020-09-02 17:05:23 +02:00
Mathieu Othacehe 218a67dfab
installer: Add NTFS support.
This adds support for creating and editing NTFS partitions. It is however not
possible yet to create root NTFS partitions, as overlaying on top of a fuse
partition does not seem supported.

* gnu/installer.scm (installer-program): Add "ntfs-3g" to the inputs.
* gnu/installer/parted.scm (user-fs-type-name, user-fs-type->mount-type,
partition-filesystem-user-type, create-ntfs-file-system,
format-user-partitions): Add NTFS support.
* gnu/installer/newt/partition.scm (run-fs-type-page): Add NTFS support.
2020-07-26 18:35:10 +02:00
Mathieu Othacehe 876a8d9870
installer: final: Make sure 'bold' font files are loaded.
* gnu/installer/newt/final.scm (run-install-shell): Force kmscon to open
'bold' font files, before the cow-store overlay is mounted.
2020-06-14 17:42:36 +02:00
Florian Pelz 7bc71025cc
installer: Include empty variant in keyboard layout selection.
Previously for Azerbaijani, no Latin layout but only the Cyrillic variant
could be selected.

* gnu/installer/newt/keymap.scm (add-empty-variant): New procedure.
(run-keymap-page): Use it to insert an empty variant.
2020-04-09 03:45:22 +00:00
Florian Pelz 91c231a222
installer: Allow Alt+Shift toggle from non-Latin keyboard layouts.
Fixes <https://bugs.gnu.org/40493>.

* gnu/installer/newt/keymap.scm (%non-latin-layouts): New variable.
(%non-latin-variants): New variable.
(%latin-layout+variants): New variable.
(toggleable-latin-layout): New procedure to compute combined layouts.
(run-keymap-page): Use it.
(keyboard-layout->configuration): Apply it in config.scm.
(run-layout-page): Mention Alt+Shift.
* gnu/installer/keymap.scm (kmscon-update-keymap): Pass on XKB options.
* gnu/installer/record.scm (<installer>): Adjust code comments.
* gnu/installer.scm (apply-keymap): Pass on XKB options.
(installer-steps): Adjust code comments.
* gnu/packages/patches/kmscon-runtime-keymap-switch.patch: Apply XKB options.
2020-04-09 02:42:54 +00:00