diff --git a/packages/calamares-extensions/config/modules/finished.conf b/packages/calamares-extensions/config/modules/finished.conf index c1f7164..bd7788b 100644 --- a/packages/calamares-extensions/config/modules/finished.conf +++ b/packages/calamares-extensions/config/modules/finished.conf @@ -1,34 +1,7 @@ # SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # -# Configuration for the "finished" page, which is usually shown only at -# the end of the installation (successful or not). --- -# Behavior of the "restart system now" button. -# -# There are four usable values: -# - never -# Does not show the button and does not restart. -# This matches the old behavior with restartNowEnabled=false. -# - user-unchecked -# Shows the button, defaults to unchecked, restarts if it is checked. -# This matches the old behavior with restartNowEnabled=true and restartNowChecked=false. -# - user-checked -# Shows the button, defaults to checked, restarts if it is checked. -# This matches the old behavior with restartNowEnabled=true and restartNowChecked=true. -# - always -# Shows the button, checked, but the user cannot change it. -# This is new behavior. -# -# The three combinations of legacy values are still supported. restartNowMode: always - -# If the checkbox is shown, and the checkbox is checked, then when -# Calamares exits from the finished-page it will run this command. -# If not set, falls back to "shutdown -r now". restartNowCommand: "systemctl -i reboot" - -# When the last page is (successfully) reached, send a DBus notification -# to the desktop that the installation is done. This works only if the -# user as whom Calamares is run, can reach the regular desktop session bus. notifyOnFinished: true diff --git a/packages/calamares-extensions/config/modules/locale.conf b/packages/calamares-extensions/config/modules/locale.conf index ac0a47b..2993d11 100644 --- a/packages/calamares-extensions/config/modules/locale.conf +++ b/packages/calamares-extensions/config/modules/locale.conf @@ -2,99 +2,9 @@ # SPDX-License-Identifier: CC0-1.0 # --- -# This settings are used to set your default system time zone. -# Time zones are usually located under /usr/share/zoneinfo and -# provided by the 'tzdata' package of your Distribution. -# -# Distributions using systemd can list available -# time zones by using the timedatectl command. -# timedatectl list-timezones -# -# The starting timezone (e.g. the pin-on-the-map) when entering -# the locale page can be set through keys *region* and *zone*. -# If either is not set, defaults to America/New_York. -# -region: "Europe" -zone: "Brussels" - - -# System locales are detected in the following order: -# -# - /usr/share/i18n/SUPPORTED -# - localeGenPath (defaults to /etc/locale.gen if not set) -# - 'locale -a' output -# -# Enable only when your Distribution is using an -# custom path for locale.gen -# -#localeGenPath: "PATH_TO/locale.gen" - -# GeoIP based Language settings: Leave commented out to disable GeoIP. -# -# GeoIP needs a working Internet connection. -# This can be managed from `welcome.conf` by adding -# internet to the list of required conditions. -# -# The configuration -# is in three parts: a *style*, which can be "json" or "xml" -# depending on the kind of data returned by the service, and -# a *url* where the data is retrieved, and an optional *selector* -# to pick the right field out of the returned data (e.g. field -# name in JSON or element name in XML). -# -# The default selector (when the setting is blank) is picked to -# work with existing JSON providers (which use "time_zone") and -# Ubiquity's XML providers (which use "TimeZone"). -# -# If the service configured via *url* uses -# a different attribute name (e.g. "timezone") in JSON or a -# different element tag (e.g. "") in XML, set this -# string to the name or tag to be used. -# -# In JSON: -# - if the string contains "." characters, this is used as a -# multi-level selector, e.g. "a.b" will select the timezone -# from data "{a: {b: "Europe/Amsterdam" } }". -# - each part of the string split by "." characters is used as -# a key into the JSON data. -# In XML: -# - all elements with the named tag (e.g. all TimeZone) elements -# from the document are checked; the first one with non-empty -# text value is used. -# -# -# An HTTP(S) request is made to *url*. The request should return -# valid data in a suitable format, depending on *style*; -# generally this includes a string value with the timezone -# in / format. For services that return data which -# does not follow the conventions of "suitable data" described -# below, *selector* may be used to pick different data. -# -# Note that this example URL works, but the service is shutting -# down in June 2018. -# -# Suitable JSON data looks like -# ``` -# {"time_zone":"America/New_York"} -# ``` -# Suitable XML data looks like -# ``` -# Europe/Brussels -# ``` -# -# To accommodate providers of GeoIP timezone data with peculiar timezone -# naming conventions, the following cleanups are performed automatically: -# - backslashes are removed -# - spaces are replaced with _ -# -# Legacy settings "geoipStyle", "geoipUrl" and "geoipSelector" -# in the top-level are still supported, but I'd advise against. -# -# To disable GeoIP checking, either comment-out the entire geoip section, -# or set the *style* key to an unsupported format (e.g. `none`). -# Also, note the analogous feature in src/modules/welcome/welcome.conf. -# +region: "Europe" +zone: "Brussels" geoip: - style: "json" - url: "https://geoip.kde.org/v1/calamares" - selector: "" # leave blank for the default + style: "json" + url: "https://geoip.kde.org/v1/calamares" + selector: "" diff --git a/packages/calamares-extensions/config/modules/mount.conf b/packages/calamares-extensions/config/modules/mount.conf index 52f7741..cbb8752 100644 --- a/packages/calamares-extensions/config/modules/mount.conf +++ b/packages/calamares-extensions/config/modules/mount.conf @@ -1,62 +1,27 @@ # SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # -# Mount filesystems in the target (generally, before treating the -# target as a usable chroot / "live" system). Filesystems are -# automatically mounted from the partitioning module. Filesystems -# listed here are **extra**. The filesystems listed in *extraMounts* -# are mounted in all target systems. --- -# Extra filesystems to mount. The key's value is a list of entries; each -# entry has five keys: -# - device The device node to mount -# - fs (optional) The filesystem type to use -# - mountPoint Where to mount the filesystem -# - options (optional) An array of options to pass to mount -# - efi (optional) A boolean that when true is only mounted for UEFI installs -# -# The device is not mounted if the mountPoint is unset or if the fs is -# set to unformatted. -# extraMounts: - - device: proc - fs: proc - mountPoint: /proc - - device: sys - fs: sysfs - mountPoint: /sys - - device: /dev - mountPoint: /dev - options: [ bind ] - - device: tmpfs - fs: tmpfs - mountPoint: /run - - device: /run/udev - mountPoint: /run/udev - options: [ bind ] - - device: efivarfs - fs: efivarfs - mountPoint: /sys/firmware/efi/efivars - efi: true - -# The mount options used to mount each filesystem. -# -# filesystem contains the name of the filesystem or on of three special -# values, "default", efi" and "btrfs_swap". The logic is applied in this manner: -# - If the partition is the EFI partition, the "efi" entry will be used -# - If the fs is btrfs and the subvolume is for the swapfile, -# the "btrfs_swap" entry is used -# - If the filesystem is an exact match for filesystem, that entry is used -# - If no match is found in the above, the default entry is used -# - If there is no match and no default entry, "defaults" is used -# - If the mountOptions key is not present, "defaults" is used -# -# Each filesystem entry contains 3 keys, all of which are optional -# options - An array of mount options that is used on all disk types -# ssdOptions - An array of mount options combined with options for ssds -# hddOptions - An array of mount options combined with options for hdds -# If combining these options results in an empty array, "defaults" is used -# + - device: proc + fs: proc + mountPoint: /proc + - device: sys + fs: sysfs + mountPoint: /sys + - device: /dev + mountPoint: /dev + options: [ bind ] + - device: tmpfs + fs: tmpfs + mountPoint: /run + - device: /run/udev + mountPoint: /run/udev + options: [ bind ] + - device: efivarfs + fs: efivarfs + mountPoint: /sys/firmware/efi/efivars + efi: true mountOptions: - - filesystem: efi - options: [ fmask=0077, dmask=0077 ] + - filesystem: efi + options: [ fmask=0077, dmask=0077 ] diff --git a/packages/calamares-extensions/config/modules/partition.conf b/packages/calamares-extensions/config/modules/partition.conf index 721e117..3670f70 100644 --- a/packages/calamares-extensions/config/modules/partition.conf +++ b/packages/calamares-extensions/config/modules/partition.conf @@ -1,6 +1,7 @@ # SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # +--- efi: mountPoint: "/boot" recommendedSize: 1024MiB diff --git a/packages/calamares-extensions/config/modules/umount.conf b/packages/calamares-extensions/config/modules/umount.conf index fa4df9c..6c61aa4 100644 --- a/packages/calamares-extensions/config/modules/umount.conf +++ b/packages/calamares-extensions/config/modules/umount.conf @@ -1,45 +1,6 @@ # SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # -### Umount Module -# -# This module represents the last part of the installation, the unmounting -# of partitions used for the install. It is also the last place where it -# is possible to copy files to the target system, thus the best place to -# copy an installation log. -# -# This module has two configuration keys: -# srcLog location in the live system where the log is -# destLog location in the target system to copy the log -# -# You can either use the default source path (which is -# `/root/.cache/calamares/session.log` ) to copy the regular log, -# or if you want to use the full output of `sudo calamares -d` you will need -# to redirect standard output, for instance in a launcher script or -# in the desktop file. -# -# Example launcher script: -# -# ``` -# #!/bin/sh -# sudo /usr/bin/calamares -d > installation.log -# ``` -# -# Example desktop line: -# -# ``` -# Exec=sudo /usr/bin/calamares -d > installation.log -# ``` -# -# If no source and destination are set, no copy is attempted. If the -# copy fails for some reason, a warning is printed but the installation -# does not fail. - --- -# example when using the normal Calamares log: -srcLog: "/home/nixos/.cache/calamares/session.log" -destLog: "/var/log/Calamares.log" - -# example when using a log created by `sudo calamares -d`: -#srcLog: "/home/live/installation.log" -#destLog: "/var/log/installation.log" +srcLog: "/home/nixos/.cache/calamares/session.log" +destLog: "/var/log/Calamares.log" diff --git a/packages/calamares-extensions/config/modules/users.conf b/packages/calamares-extensions/config/modules/users.conf index f56d31c..d069de6 100644 --- a/packages/calamares-extensions/config/modules/users.conf +++ b/packages/calamares-extensions/config/modules/users.conf @@ -1,145 +1,23 @@ # SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # -# Configuration for the one-user-system user module. -# -# Besides these settings, the users module also places the following -# keys into the Global Storage area, based on user input in the view step. -# -# - hostname -# - username -# - password (obscured) -# - autologinUser (if enabled, set to username) -# -# These Global Storage keys are set when the configuration for this module -# is read and when they are modified in the UI. --- -### GROUPS CONFIGURATION -# -# The system has groups of uses. Some special groups must be -# created during installation. Optionally, there are special -# groups for users who can use sudo and for supporting autologin. - -# Used as default groups for the created user. -# Adjust to your Distribution defaults. -# -# Each entry in the *defaultGroups* list is either: -# - a string, naming a group; this is a **non**-system group -# which does not need to exist in the target system; if it -# does not exist, it will be created. -# - an entry with subkeys *name*, *must_exist* and *system*; -# if the group *must_exist* and does not, an error is thrown -# and the installation fails. -# -# The group is created if it does not exist, and it is -# created as a system group (GID < 1000) or user group -# (GID >= 1000) depending on the value of *system*. defaultGroups: - - users - - networkmanager - - wheel - -### ROOT AND SUDO -# -# Some distributions have a root user enabled for login. Others -# rely entirely on sudo or similar mechanisms to raise privileges. - -# Setting this to false, causes the root account to be disabled. -# When disabled, hides the "Use the same password for administrator" -# checkbox. Also hides the "Choose a password" and associated text-inputs. + - users + - networkmanager + - wheel setRootPassword: false - - -### PASSWORDS AND LOGIN -# -# Autologin is convenient for single-user systems, but depends on -# the location of the machine if it is practical. "Password strength" -# measures measures might improve security by enforcing hard-to-guess -# passwords, or might encourage a post-it-under-the-keyboard approach. -# Distributions are free to steer their users to one kind of password -# or another. Weak(er) passwords may be allowed, may cause a warning, -# or may be forbidden entirely. - -# You can control the initial state for the 'autologin checkbox' here. -# Possible values are: -# - true to check or -# - false to uncheck -# These set the **initial** state of the checkbox. -doAutologin: true - - -# User settings -# -# The user can enter a username, but there are some other -# hidden settings for the user which are configurable in Calamares. -# -# Key *user* has the following sub-keys: -# -# - *shell* Shell to be used for the regular user of the target system. -# There are three possible kinds of settings: -# - unset (i.e. commented out, the default), act as if set to /bin/bash -# - empty (explicit), don't pass shell information to useradd at all -# and rely on a correct configuration file in /etc/default/useradd -# - set, non-empty, use that path as shell. No validation is done -# that the shell actually exists or is executable. -# - *forbidden_names* Login names that may not be used. This list always -# contains "root" and "nobody", but may be extended to list other special -# names for a given distro (eg. "video", or "mysql" might not be a valid -# end-user login name). +doAutologin: true user: shell: /run/current-system/sw/bin/bash forbidden_names: [ root ] - - -# Hostname settings -# -# The user can enter a hostname; this is configured into the system -# in some way. There are settings for how a hostname is guessed (as -# a default / suggestion) and where (or how) the hostname is set in -# the target system. -# -# Key *hostname* has the following sub-keys: -# -# - *location* How the hostname is set in the target system: -# - *None*, to not set the hostname at all -# - *EtcFile*, to write to `/etc/hostname` directly -# - *Etc*, identical to above -# - *Hostnamed*, to use systemd hostnamed(1) over DBus -# - *Transient*, to remove `/etc/hostname` from the target -# The default is *EtcFile*. Setting this to *None* or *Transient* will -# hide the hostname field. -# - *writeHostsFile* Should /etc/hosts be written with a hostname for -# this machine (also adds localhost and some ipv6 standard entries). -# Defaults to *true*. -# - *template* Is a simple template for making a suggestion for the -# hostname, based on user data. The default is "${first}-${product}". -# This is used only if the hostname field is shown. KMacroExpander is -# used; write `${key}` where `key` is one of the following: -# - *first* User's first name (whatever is first in the User Name field, -# which is first-in-order but not necessarily a "first name" as in -# "given name" or "name by which you call someone"; beware of western bias) -# - *name* All the text in the User Name field. -# - *login* The login name (which may be suggested based on User Name) -# - *product* The hardware product, based on DMI data -# - *product2* The product as described by Qt -# - *cpu* CPU name -# - *host* Current hostname (which may be a transient hostname) -# Literal text in the template is preserved. Calamares tries to map -# `${key}` values to something that will fit in a hostname, but does not -# apply the same to literal text in the template. Do not use invalid -# characters in the literal text, or no suggeston will be done. -# - *forbidden_names* lists hostnames that may not be used. This list -# always contains "localhost", but may list others that are unsuitable -# or broken in special ways. hostname: location: None writeHostsFile: false forbidden_names: [ localhost ] presets: - fullName: - # value: "OEM User" - editable: true - loginName: - # value: "oem" - editable: true + fullName: + editable: true + loginName: + editable: true diff --git a/packages/calamares-extensions/config/modules/welcome.conf b/packages/calamares-extensions/config/modules/welcome.conf index 29a9407..0dfd554 100644 --- a/packages/calamares-extensions/config/modules/welcome.conf +++ b/packages/calamares-extensions/config/modules/welcome.conf @@ -1,116 +1,21 @@ # SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # -# Configuration for the welcome module. The welcome page -# displays some information from the branding file. -# Which parts it displays can be configured through -# the show* variables. -# -# In addition to displaying the welcome page, this module -# can check requirements for installation. --- -# Display settings for various buttons on the welcome page. -# The URLs themselves come from `branding.desc`. Each button -# is show if the corresponding *show* setting -# here is "true". If the setting is "false", the button is hidden. -# Empty or not-set is interpreted as "false". -# -# TODO:3.3 Remove the URL fallback here; URLs only in `branding.desc` -# -# The setting can also be a full URL which will then be used -# instead of the one from the branding file. -showSupportUrl: true -showKnownIssuesUrl: false -showReleaseNotesUrl: false - -# Requirements checking. These are general, generic, things -# that are checked. They may not match with the actual requirements -# imposed by other modules in the system. +showSupportUrl: true +showKnownIssuesUrl: false +showReleaseNotesUrl: false requirements: - # Amount of available disk, in GiB. Floating-point is allowed here. - # Note that this does not account for *usable* disk, so it is possible - # to satisfy this requirement, yet have no space to install to. - requiredStorage: 64 - - # Amount of available RAM, in GiB. Floating-point is allowed here. - requiredRam: 4.0 - - # To check for internet connectivity, Calamares does a HTTP GET - # on this URL; on success (e.g. HTTP code 200) internet is OK. - # Use a privacy-respecting URL here, preferably in your distro's domain. - # - # The URL is only used if "internet" is in the *check* list below. - internetCheckUrl: [ https://nixup.io, https://cache.nixos.org/ ] - - # List conditions to check. Each listed condition will be - # probed in some way, and yields true or false according to - # the host system satisfying the condition. - # - # This sample file lists all the conditions that are known. - # - # Note that the last three checks are for testing-purposes only, - # and shouldn't be used in production (they are only available - # when building Calamares in development mode). There are five - # special checks: - # - *false* is a check that is always false (unsatisfied) - # - *true* is a check that is always true (satisfied) - # - *slow-false* takes 3 seconds, and then is false; use this one to - # show off the waiting-spinner before the first results come in - # - *slow-true* takes 3 seconds, and then is true - # - *snark* is a check that is only satisfied once it has been checked - # at least three times ("what I tell you three times is true"). - # Keep in mind that "true" and "false" are YAML keywords for - # boolean values, so should be quoted. - check: - - storage - - ram - - power - - internet - - screen - # List conditions that **must** be satisfied (from the list - # of conditions, above) for installation to proceed. - # If any of these conditions are not met, the user cannot - # continue past the welcome page. - required: - - storage - - ram - - internet - -# GeoIP checking -# -# This can be used to pre-select a language based on the country -# the user is currently in. It *assumes* that there's internet -# connectivity, though. Configuration is like in the locale module, -# but remember to use a URL that returns full data **and** to -# use a selector that will pick the country, not the timezone. -# -# To disable GeoIP checking, either comment-out the entire geoip section, -# or set the *style* key to an unsupported format (e.g. `none`). -# Also, note the analogous feature in `src/modules/locale/locale.conf`, -# which is where you will find complete documentation. -# -# For testing, the *style* may be set to `fixed`, any URL that -# returns data (e.g. `http://example.com`) and then *selector* -# sets the data that is actually returned (e.g. "DE" to simulate -# the machine being in Germany). -# -# NOTE: the *selector* must pick the country code from the GeoIP -# data. Timezone, city, or other data will not be recognized. -# -# geoip: -# style: "none" -# url: "https://geoip.kde.org/v1/ubiquity" # extended XML format -# selector: "CountryCode" # blank uses default, which is wrong - -# User interface -# -# The "select language" icon is an international standard, but it -# might not theme very well with your desktop environment. -# Fill in an icon name (following FreeDesktop standards) to -# use that named icon instead of the usual one. -# -# Leave blank or unset to use the international standard. -# -# Known icons in this space are "set-language" and "config-language". -# -# languageIcon: set-language + requiredStorage: 64 + requiredRam: 4.0 + internetCheckUrl: [ https://nixup.io, https://cache.nixos.org/ ] + check: + - storage + - ram + - power + - internet + - screen + required: + - storage + - ram + - internet diff --git a/packages/calamares-extensions/modules/desk_os_installation/main.py b/packages/calamares-extensions/modules/desk_os_installation/main.py index 55a1c8c..65a789b 100644 --- a/packages/calamares-extensions/modules/desk_os_installation/main.py +++ b/packages/calamares-extensions/modules/desk_os_installation/main.py @@ -178,7 +178,7 @@ configuration_tail = """ """ def pretty_name(): - return _("Installing deskOS.") + return _("Installing deskOS") status = pretty_name()