commit 4f7e9f19d14ae332fdc17b134f7d3575a6d9ea43 Author: komeil Parseh Date: Thu Jul 7 19:01:43 2022 +0430 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b739055 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +*.tar +*.tar.* +*.jar +*.exe +*.msi +*.zip +*.tgz +*.log +*.log.* +*.sig + +pkg/ +src/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..4474048 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# parch-calamares +parch calamares configuration diff --git a/etc/calamares/branding/parchlinux/branding.desc b/etc/calamares/branding/parchlinux/branding.desc new file mode 100644 index 0000000..6599926 --- /dev/null +++ b/etc/calamares/branding/parchlinux/branding.desc @@ -0,0 +1,223 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# Product branding information. This influences some global +# user-visible aspects of Calamares, such as the product +# name, window behavior, and the slideshow during installation. +# +# Additional styling can be done using the stylesheet.qss +# file, also in the branding directory. +--- +componentName: parchlinux + + +### WELCOME / OVERALL WORDING +# +# These settings affect some overall phrasing and looks, +# which are most visible in the welcome page. + +# This selects between different welcome texts. When false, uses +# the traditional "Welcome to the %1 installer.", and when true, +# uses "Welcome to the Calamares installer for %1." This allows +# to distinguish this installer from other installers for the +# same distribution. +welcomeStyleCalamares: false + +# Should the welcome image (productWelcome, below) be scaled +# up beyond its natural size? If false, the image does not grow +# with the window but remains the same size throughout (this +# may have surprising effects on HiDPI monitors). +welcomeExpandingLogo: true + +### WINDOW CONFIGURATION +# +# The settings here affect the placement of the Calamares +# window through hints to the window manager and initial +# sizing of the Calamares window. + +# Size and expansion policy for Calamares. +# - "normal" or unset, expand as needed, use *windowSize* +# - "fullscreen", start as large as possible, ignore *windowSize* +# - "noexpand", don't expand automatically, use *windowSize* +windowExpanding: normal + +# Size of Calamares window, expressed as w,h. Both w and h +# may be either pixels (suffix px) or font-units (suffix em). +# e.g. "800px,600px" +# "60em,480px" +# This setting is ignored if "fullscreen" is selected for +# *windowExpanding*, above. If not set, use constants defined +# in CalamaresUtilsGui, 800x520. +windowSize: 1100px,520px + +# Placement of Calamares window. Either "center" or "free". +# Whether "center" actually works does depend on the window +# manager in use (and only makes sense if you're not using +# *windowExpanding* set to "fullscreen"). +windowPlacement: center + +### PANELS CONFIGURATION +# +# Calamares has a main content area, and two panels (navigation +# and progress / sidebar). The panels can be controlled individually, +# or switched off. If both panels are switched off, the layout of +# the main content area loses its margins, on the assumption that +# you're doing something special. + +# Kind of sidebar (panel on the left, showing progress). +# - "widget" or unset, use traditional sidebar (logo, items) +# - "none", hide it entirely +# - "qml", use calamares-sidebar.qml from branding folder +# In addition, you **may** specify a side, separated by a comma, +# from the kind. Valid sides are: +# - "left" (if not specified, uses this) +# - "right" +# - "top" +# - "bottom" +# For instance, "widget,right" is valid; so is "qml", which defaults +# to putting the sidebar on the left. Also valid is "qml,top". +# While "widget,top" is valid, the widgets code is **not** flexible +# and results will be terrible. +sidebar: widget + +# Kind of navigation (button panel on the bottom). +# - "widget" or unset, use traditional navigation +# - "none", hide it entirely +# - "qml", use calamares-navigation.qml from branding folder +# In addition, you **may** specify a side, separated by a comma, +# from the kind. The same sides are valid as for *sidebar*, +# except the default is *bottom*. +navigation: widget + + +### STRINGS, IMAGES AND COLORS +# +# This section contains the "branding proper" of names +# and images, rather than global-look settings. + +# These are strings shown to the user in the user interface. +# There is no provision for translating them -- since they +# are names, the string is included as-is. +# +# The four Url strings are the Urls used by the buttons in +# the welcome screen, and are not shown to the user. Clicking +# on the "Support" button, for instance, opens the link supportUrl. +# If a Url is empty, the corresponding button is not shown. +# +# bootloaderEntryName is how this installation / distro is named +# in the boot loader (e.g. in the GRUB menu). +# +# These strings support substitution from /etc/os-release +# if KDE Frameworks 5.58 are available at build-time. When +# enabled, @{var-name} is replaced by the equivalent value +# from os-release. All the supported var-names are in all-caps, +# and are listed on the FreeDesktop.org site, +# https://www.freedesktop.org/software/systemd/man/os-release.html +# Note that ANSI_COLOR and CPE_NAME don't make sense here, and +# are not supported (the rest are). Remember to quote the string +# if it contains substitutions, or you'll get YAML exceptions. +# +# The *Url* entries are used on the welcome page, and they +# are visible as buttons there if the corresponding *show* keys +# are set to "true" (they can also be overridden). +strings: + productName: "@{NAME}" + shortProductName: Parch Linux + version: 2021-07 + #shortVersion: + versionedName: Parch Linux + shortVersionedName: Parch Linux + bootloaderEntryName: Parch Linux + productUrl: https://parch-os.github.io/ + #supportUrl: https://github.com/calamares/calamares/wiki + #knownIssuesUrl: https://github.com/calamares/calamares/issues + #releaseNotesUrl: https://calamares.io/news/ + #donateUrl: https://kde.org/community/donations/index.php + +# These images are loaded from the branding module directory. +# +# productBanner is an optional image, which if present, will be shown +# on the welcome page of the application, above the welcome text. +# It is intended to have a width much greater than height. +# It is displayed at 64px height (also on HiDPI). +# Recommended size is 64px tall, and up to 460px wide. +# productIcon is used as the window icon, and will (usually) be used +# by the window manager to represent the application. This image +# should be square, and may be displayed by the window manager +# as small as 16x16 (but possibly larger). +# productLogo is used as the logo at the top of the left-hand column +# which shows the steps to be taken. The image should be square, +# and is displayed at 80x80 pixels (also on HiDPI). +# productWallpaper is an optional image, which if present, will replace +# the normal solid background on every page of the application. +# It can be any size and proportion, +# and will be tiled to fit the entire window. +# For a non-tiled wallpaper, the size should be the same as +# the overall window, see *windowSize* above (800x520). +# productWelcome is shown on the welcome page of the application in +# the middle of the window, below the welcome text. It can be +# any size and proportion, and will be scaled to fit inside +# the window. Use `welcomeExpandingLogo` to make it non-scaled. +# Recommended size is 320x150. +# +# These filenames can also use substitutions from os-release (see above). +images: + #productBanner: "banner.png" + productIcon: "install.png" + productLogo: "logo.png" + productWallpaper: "wallpaper.png" + productWelcome: "icon.png" + +# Colors for text and background components. +# +# - sidebarBackground is the background of the sidebar +# - sidebarText is the (foreground) text color +# - sidebarTextHighlight sets the background of the selected (current) step. +# Optional, and defaults to the application palette. +# - sidebarSelect is the text color of the selected step. +# +# These colors can **also** be set through the stylesheet, if the +# branding component also ships a stylesheet.qss. Then they are +# the corresponding CSS attributes of #sidebarApp. +style: + sidebarBackground: "#292F34" + sidebarText: "#FFFFFF" + sidebarTextSelect: "#292F34" + sidebarTextHighlight: "#00CED1" + #sidebarTextHighlight: "#D35400" + #--strong orange + #sidebarTextHighlight: "#9b870c" + +### SLIDESHOW +# +# The slideshow is displayed during execution steps (e.g. when the +# installer is actually writing to disk and doing other slow things). + +# The slideshow can be a QML file (recommended) which can display +# arbitrary things -- text, images, animations, or even play a game -- +# during the execution step. The QML **is** abruptly stopped when the +# execution step is done, though, so maybe a game isn't a great idea. +# +# The slideshow can also be a sequence of images (not recommended unless +# you don't want QML at all in your Calamares). The images are displayed +# at a rate of 1 every 2 seconds during the execution step. +# +# To configure a QML file, list a single filename: +# slideshow: "show.qml" +# To configure images, like the filenames (here, as an inline list): +# slideshow: [ "/etc/calamares/slideshow/0.png", "/etc/logo.png" ] +slideshow: "show.qml" + +# There are two available APIs for a QML slideshow: +# - 1 (the default) loads the entire slideshow when the installation- +# slideshow page is shown and starts the QML then. The QML +# is never stopped (after installation is done, times etc. +# continue to fire). +# - 2 loads the slideshow on startup and calls onActivate() and +# onLeave() in the root object. After the installation is done, +# the show is stopped (first by calling onLeave(), then destroying +# the QML components). +# +# An image slideshow does not need to have the API defined. +slideshowAPI: 2 + diff --git a/etc/calamares/branding/parchlinux/icon.png b/etc/calamares/branding/parchlinux/icon.png new file mode 100644 index 0000000..5110278 Binary files /dev/null and b/etc/calamares/branding/parchlinux/icon.png differ diff --git a/etc/calamares/branding/parchlinux/install.png b/etc/calamares/branding/parchlinux/install.png new file mode 100644 index 0000000..5110278 Binary files /dev/null and b/etc/calamares/branding/parchlinux/install.png differ diff --git a/etc/calamares/branding/parchlinux/lang/calamares-default_ar.ts b/etc/calamares/branding/parchlinux/lang/calamares-default_ar.ts new file mode 100644 index 0000000..3c4fe09 --- /dev/null +++ b/etc/calamares/branding/parchlinux/lang/calamares-default_ar.ts @@ -0,0 +1,17 @@ + + + + + show + + + This is a second Slide element. + عرض الثاني + + + + This is a third Slide element. + عرض الثالث + + + diff --git a/etc/calamares/branding/parchlinux/lang/calamares-default_en.ts b/etc/calamares/branding/parchlinux/lang/calamares-default_en.ts new file mode 100644 index 0000000..b02dbd5 --- /dev/null +++ b/etc/calamares/branding/parchlinux/lang/calamares-default_en.ts @@ -0,0 +1,17 @@ + + + + + show + + + This is a second Slide element. + + + + + This is a third Slide element. + + + + diff --git a/etc/calamares/branding/parchlinux/lang/calamares-default_eo.ts b/etc/calamares/branding/parchlinux/lang/calamares-default_eo.ts new file mode 100644 index 0000000..7d1ef4e --- /dev/null +++ b/etc/calamares/branding/parchlinux/lang/calamares-default_eo.ts @@ -0,0 +1,17 @@ + + + + + show + + + This is a second Slide element. + Ĉi tio estas la dua gliteja. + + + + This is a third Slide element. + Ĉi tio estas la tria gliteja. + + + diff --git a/etc/calamares/branding/parchlinux/lang/calamares-default_fr.ts b/etc/calamares/branding/parchlinux/lang/calamares-default_fr.ts new file mode 100644 index 0000000..ec5e041 --- /dev/null +++ b/etc/calamares/branding/parchlinux/lang/calamares-default_fr.ts @@ -0,0 +1,17 @@ + + + + + show + + + This is a second Slide element. + Ceci est la deuxieme affiche. + + + + This is a third Slide element. + La troisième affice ce trouve ici. + + + diff --git a/etc/calamares/branding/parchlinux/lang/calamares-default_nl.ts b/etc/calamares/branding/parchlinux/lang/calamares-default_nl.ts new file mode 100644 index 0000000..19fd583 --- /dev/null +++ b/etc/calamares/branding/parchlinux/lang/calamares-default_nl.ts @@ -0,0 +1,17 @@ + + + + + show + + + This is a second Slide element. + Dit is het tweede Dia element. + + + + This is a third Slide element. + Dit is het derde Dia element. + + + diff --git a/etc/calamares/branding/parchlinux/logo.png b/etc/calamares/branding/parchlinux/logo.png new file mode 100644 index 0000000..5110278 Binary files /dev/null and b/etc/calamares/branding/parchlinux/logo.png differ diff --git a/etc/calamares/branding/parchlinux/show.qml b/etc/calamares/branding/parchlinux/show.qml new file mode 100644 index 0000000..4815508 --- /dev/null +++ b/etc/calamares/branding/parchlinux/show.qml @@ -0,0 +1,124 @@ +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2015 Teo Mrnjavac + * SPDX-FileCopyrightText: 2018 Adriaan de Groot + * SPDX-FileCopyrightText: DemonKiller of Arch Linux GUI + * SPDX-License-Identifier: GPL-3.0-or-later + * + * Calamares is Free Software: see the License-Identifier above. + * + */ + +import QtQuick 2.0; +import calamares.slideshow 1.0; + +Presentation +{ + id: presentation + + function nextSlide() { + console.log("QML Component (default slideshow) Next slide"); + presentation.goToNextSlide(); + } + + Timer { + id: advanceTimer + interval: 10000 + running: presentation.activatedInCalamares + repeat: true + onTriggered: nextSlide() + } + + + Slide + { + anchors.fill: parent + anchors.verticalCenterOffset: 0 + + Image + { + id: background1 + source: "slide1.png" + width: parent.width; height: parent.height + horizontalAlignment: Image.AlignCenter + verticalAlignment: Image.AlignTop + fillMode: Image.Stretch + anchors.fill: parent + } + } + + Slide + { + anchors.fill: parent + anchors.verticalCenterOffset: 0 + + Image + { + id: background2 + source: "slide2.png" + width: parent.width; height: parent.height + horizontalAlignment: Image.AlignCenter + verticalAlignment: Image.AlignTop + fillMode: Image.Stretch + anchors.fill: parent + } + } + + + Slide + { + anchors.fill: parent + anchors.verticalCenterOffset: 0 + + Image + { + id: background3 + source: "slide3.png" + width: parent.width; height: parent.height + horizontalAlignment: Image.AlignCenter + verticalAlignment: Image.AlignTop + fillMode: Image.Stretch + anchors.fill: parent + } + } + + Slide + { + anchors.fill: parent + anchors.verticalCenterOffset: 0 + + Image + { + id: background4 + source: "slide4.png" + width: parent.width; height: parent.height + horizontalAlignment: Image.AlignCenter + verticalAlignment: Image.AlignTop + fillMode: Image.Stretch + anchors.fill: parent + } + } + + Slide + { + anchors.fill: parent + anchors.verticalCenterOffset: 0 + + + + // When this slideshow is loaded as a V1 slideshow, only + // activatedInCalamares is set, which starts the timer (see above). + // + // In V2, also the onActivate() and onLeave() methods are called. + // These example functions log a message (and re-start the slides + // from the first). + function onActivate() { + console.log("QML Component (default slideshow) activated"); + presentation.currentSlide = 0; + } + + function onLeave() { + console.log("QML Component (default slideshow) deactivated"); + } + +} diff --git a/etc/calamares/branding/parchlinux/slide1.png b/etc/calamares/branding/parchlinux/slide1.png new file mode 100644 index 0000000..b47bd2f Binary files /dev/null and b/etc/calamares/branding/parchlinux/slide1.png differ diff --git a/etc/calamares/branding/parchlinux/slide2.png b/etc/calamares/branding/parchlinux/slide2.png new file mode 100644 index 0000000..314d835 Binary files /dev/null and b/etc/calamares/branding/parchlinux/slide2.png differ diff --git a/etc/calamares/branding/parchlinux/slide3.png b/etc/calamares/branding/parchlinux/slide3.png new file mode 100644 index 0000000..25d25c0 Binary files /dev/null and b/etc/calamares/branding/parchlinux/slide3.png differ diff --git a/etc/calamares/branding/parchlinux/slide4.png b/etc/calamares/branding/parchlinux/slide4.png new file mode 100644 index 0000000..7222351 Binary files /dev/null and b/etc/calamares/branding/parchlinux/slide4.png differ diff --git a/etc/calamares/branding/parchlinux/stylesheet.qss b/etc/calamares/branding/parchlinux/stylesheet.qss new file mode 100644 index 0000000..5c36738 --- /dev/null +++ b/etc/calamares/branding/parchlinux/stylesheet.qss @@ -0,0 +1,96 @@ +/* + * SPDX-FileCopyrightText: no + * SPDX-License-Identifier: CC0-1.0 + */ + +/* +A branding component can ship a stylesheet (like this one) +which is applied to parts of the Calamares user-interface. +In principle, all parts can be styled through CSS. +Missing parts should be filed as issues. + +The IDs are based on the object names in the C++ code. +You can use the Debug Dialog to find out object names: + - Open the debug dialog + - Choose tab *Tools* + - Click *Widget Tree* button +The list of object names is printed in the log. + +Documentation for styling Qt Widgets through a stylesheet +can be found at + https://doc.qt.io/qt-5/stylesheet-examples.html + https://doc.qt.io/qt-5/stylesheet-reference.html +In Calamares, styling widget classes is supported (e.g. +using `QComboBox` as a selector). + +This example stylesheet has all the actual styling commented out. +The examples are not exhaustive. + +*/ + +/*** Generic Widgets. + * + * You can style **all** widgets of a given class by selecting + * the class name. Some widgets have specialized sub-selectors. + */ + +/* +QPushButton { background-color: green; } +*/ + +/*** Main application window. + * + * The main application window has the sidebar, which in turn + * contains a logo and a list of items -- note that the list + * can **not** be styled, since it has its own custom C++ + * delegate code. + */ + +/* +#mainApp { } +#sidebarApp { } +#logoApp { } +*/ + +/*** Welcome module. + * + * There are plenty of parts, but the buttons are the most interesting + * ones (donate, release notes, ...). The little icon image can be + * styled through *qproperty-icon*, which is a little obscure. + * URLs can reference the QRC paths of the Calamares application + * or loaded via plugins or within the filesystem. There is no + * comprehensive list of available icons, though. + */ + +/* +QPushButton#aboutButton { qproperty-icon: url(:/data/images/release.svg); } +#donateButton, +#supportButton, +#releaseNotesButton, +#knownIssuesButton { qproperty-icon: url(:/data/images/help.svg); } +*/ + +/*** Partitioning module. + * + * Many moving parts, which you will need to experiment with. + */ + +/* +#bootInfoIcon { } +#bootInfoLable { } +#deviceInfoIcon { } +#defineInfoLabel { } +#scrollAreaWidgetContents { } +#partitionBarView { } +*/ + +/*** Licensing module. + * + * The licensing module paints individual widgets for each of + * the licenses. The item can be collapsed or expanded. + */ + +/* +#licenseItem { } +#licenseItemFullText { } +*/ diff --git a/etc/calamares/branding/parchlinux/wallpaper.png b/etc/calamares/branding/parchlinux/wallpaper.png new file mode 100644 index 0000000..4ed9550 Binary files /dev/null and b/etc/calamares/branding/parchlinux/wallpaper.png differ diff --git a/etc/calamares/launch.sh b/etc/calamares/launch.sh new file mode 100644 index 0000000..d8ef775 --- /dev/null +++ b/etc/calamares/launch.sh @@ -0,0 +1,11 @@ +#!/usr/bin/bash + +DIR="/etc/calamares" +KERNEL=`uname -r` + +if [[ -d "/run/archiso/copytoram" ]]; then + sudo sed -i -e 's|/run/archiso/bootmnt/arch/x86_64/airootfs.sfs|/run/archiso/copytoram/airootfs.sfs|g' "$DIR"/modules/unpackfs.conf + sudo sed -i -e "s|/run/archiso/bootmnt/arch/boot/x86_64/vmlinuz-linux|/usr/lib/modules/$KERNEL/vmlinuz|g" "$DIR"/modules/unpackfs.conf +fi + +sudo pkexec calamares diff --git a/etc/calamares/modules/displaymanager.conf b/etc/calamares/modules/displaymanager.conf new file mode 100644 index 0000000..2061022 --- /dev/null +++ b/etc/calamares/modules/displaymanager.conf @@ -0,0 +1,30 @@ +# Configure one or more display managers (e.g. SDDM) +# with a "best effort" approach. +--- +#The DM module attempts to set up all the DMs found in this list, in that precise order. +#It also sets up autologin, if the feature is enabled in globalstorage. +#The displaymanagers list can also be set in globalstorage, and in that case it overrides anything set up here. +displaymanagers: + - slim + - sddm + - lightdm + - gdm + - mdm + - lxdm + - kdm + - tdm + - tdm-trinity + +#Enable the following settings to force a desktop environment in your displaymanager configuration file: +#defaultDesktopEnvironment: +# executable: "startkde" +# desktopFile: "plasma" + +#If true, try to ensure that the user, group, /var directory etc. for the +#display manager are set up correctly. This is normally done by the distribution +#packages, and best left to them. Therefore, it is disabled by default. +basicSetup: false + +#If true, setup autologin for openSUSE. This only makes sense on openSUSE +#derivatives or other systems where /etc/sysconfig/displaymanager exists. +sysconfigSetup: false diff --git a/etc/calamares/modules/initcpio.conf b/etc/calamares/modules/initcpio.conf new file mode 100644 index 0000000..34729b0 --- /dev/null +++ b/etc/calamares/modules/initcpio.conf @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +#This file is part of calamares installer for Arch Linux GUI +# Run mkinitcpio(8) with the given preset value +--- +# This key defines the kernel to be loaded. +kernel: linux + +be_unsafe: false diff --git a/etc/calamares/modules/mount.conf b/etc/calamares/modules/mount.conf new file mode 100644 index 0000000..2ad02c0 --- /dev/null +++ b/etc/calamares/modules/mount.conf @@ -0,0 +1,39 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# +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 + +extraMountsEfi: + - device: efivarfs + fs: efivarfs + mountPoint: /sys/firmware/efi/efivars + +# Btrfs subvolumes to create if root filesystem is on btrfs volume. +# If mountpoint is mounted already to another partition, it is ignored. +# Separate subvolume for swapfile is handled separately and automatically. + +btrfsSubvolumes: + - mountPoint: / + subvolume: /@ + - mountPoint: /home + subvolume: /@home + - mountPoint: /var/cache + subvolume: /@cache + - mountPoint: /var/log + subvolume: /@log diff --git a/etc/calamares/modules/packages.conf b/etc/calamares/modules/packages.conf new file mode 100644 index 0000000..160e2ae --- /dev/null +++ b/etc/calamares/modules/packages.conf @@ -0,0 +1,126 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +#This file is part of calamares installer for Arch Linux GUI +--- +backend: pacman + +skip_if_no_internet: false +update_db: true +update_system: false + +num_retries: 0 +disable_download_timeout: false +needed_only: false + + +operations: + - try_remove: + - calamares + - alg-pure-cala-config + - kconfig + - kcoreaddons + - kiconthemes + - ki18n + - kio + - solid + - yaml-cpp + - kpmcore + - mkinitcpio-openswap + - boost-libs + - ckbcomp + - hwinfo + - qt5-svg + - polkit-qt5 + - gtk-update-icon-cache + - plasma-framework + - qt5-xmlpatterns + - squashfs-tools + - mkinitcpio-archiso + - arch-install-scripts + - b43-fwcutter + - bind-tools + - brltty + - broadcom-wl + - btrfs-progs + - clonezilla + - cloud-init + - crda + - darkhttpd + - ddrescue + - dhclient + - dhcpcd + - diffutils + - dmraid + - dnsmasq + - dosfstools + - e2fsprogs + - edk2-shell + - espeakup + - ethtool + - exfatprogs + - f2fs-tools + - fatresize + - fsarchiver + - gnu-netcat + - gpart + - gpm + - gptfdisk + - grml-zsh-config + - hdparm + - ipw2100-fw + - ipw2200-fw + - irssi + - iw + - iwd + - jfsutils + - less + - lftp + - libfido2 + - libusb-compat + - linux-atm + - livecd-sounds + - lsscsi + - lvm2 + - mc + - mdadm + - memtest86+ + - mkinitcpio-archiso + - mkinitcpio-nfs-utils + - modemmanager + - mtools + - nbd + - ndisc6 + - nfs-utils + - nilfs-utils + - nmap + - ntfs-3g + - nvme-cli + - openconnect + - openvpn + - partclone + - partimage + - pcsclite + - ppp + - pptpclient + - reiserfsprogs + - rp-pppoe + - screen + - sdparm + - sg3_utils + - smartmontools + - sof-firmware + - squashfs-tools + - syslinux + - systemd-resolvconf + - tcpdump + - testdisk + - tpm2-tss + - udftools + - usb_modeswitch + - usbmuxd + - usbutils + - vpnc + - wireless-regdb + - wvdial + - xfsprogs + - xl2tpd diff --git a/etc/calamares/modules/partition.conf b/etc/calamares/modules/partition.conf new file mode 100644 index 0000000..2e9286d --- /dev/null +++ b/etc/calamares/modules/partition.conf @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 + +efiSystemPartition: "/boot/efi" +efiSystemPartitionSize: 100M + +userSwapChoices: + - none # Create no swap, use no swap + - small # Up to 4GB + - suspend # At least main memory size + - file # To swap file instead of partition + +drawNestedPartitions: false + +alwaysShowPartitionLabels: true + +initialPartitioningChoice: none + +initialSwapChoice: none + +defaultFileSystemType: "ext4" + +availableFileSystemTypes: ["ext4","btrfs","f2fs","jfs","reiser","xfs"] diff --git a/etc/calamares/modules/removeuser.conf b/etc/calamares/modules/removeuser.conf new file mode 100644 index 0000000..14755f5 --- /dev/null +++ b/etc/calamares/modules/removeuser.conf @@ -0,0 +1,13 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# Removes a single user (with userdel) from the system. +# This is typically used in OEM setups or if the live user +# spills into the target system. +# +# The module never fails; if userdel fails, this is logged +# but the module still reports success and installation / setup +# continues as normal. +--- +# Username in the target system to be removed. +username: liveuser diff --git a/etc/calamares/modules/shellprocess-alg-mkinitcpio.conf b/etc/calamares/modules/shellprocess-alg-mkinitcpio.conf new file mode 100644 index 0000000..121c529 --- /dev/null +++ b/etc/calamares/modules/shellprocess-alg-mkinitcpio.conf @@ -0,0 +1,11 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# Configuration for the shell process job. + +--- +dontChroot: false +timeout: 10 +script: + - "-mv -v @@ROOT@@/etc/mkinitcpio.d/alg @@ROOT@@/etc/mkinitcpio.d/linux.preset" + diff --git a/etc/calamares/modules/shellprocess-remove-livecd.conf b/etc/calamares/modules/shellprocess-remove-livecd.conf new file mode 100644 index 0000000..5b6e53a --- /dev/null +++ b/etc/calamares/modules/shellprocess-remove-livecd.conf @@ -0,0 +1,18 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# Configuration for the shell process job. + +i18n: + name: "Finalizing your installation" + +dontChroot: false +timeout: 20 +script: + - "-rm -rvf @@ROOT@@/etc/sudoers.d/g_wheel" + - "-rm -rvf @@ROOT@@/etc/systemd/system/getty@tty1.service.d" + - "-rm -rvf @@ROOT@@/etc/systemd/system/etc-pacman.d-gnupg.mount" + - "-rm -rvf @@ROOT@@/root/.automated_script.sh" + - "-rm -rvf @@ROOT@@/root/.zlogin" + - "-rm -rvf @@ROOT@@/etc/sddm.conf.d/autologin.conf" + #- "-rm @@ROOT@@/home/*/*/calamares.desktop" diff --git a/etc/calamares/modules/unpackfs.conf b/etc/calamares/modules/unpackfs.conf new file mode 100644 index 0000000..1108991 --- /dev/null +++ b/etc/calamares/modules/unpackfs.conf @@ -0,0 +1,16 @@ + +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# Unsquash / unpack a filesystem. Multiple sources are supported, and +# they may be squashed or plain filesystems. +# + + +unpack: + - source: "/run/archiso/bootmnt/arch/x86_64/airootfs.sfs" + sourcefs: "squashfs" + destination: "" + - source: "/run/archiso/bootmnt/arch/boot/x86_64/vmlinuz-linux" + sourcefs: "file" + destination: "/boot/vmlinuz-linux" diff --git a/etc/calamares/modules/users.conf b/etc/calamares/modules/users.conf new file mode 100644 index 0000000..3e2919f --- /dev/null +++ b/etc/calamares/modules/users.conf @@ -0,0 +1,173 @@ +# 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. +--- +# 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: + - name: users + must_exist: true + system: true + - lp + - video + - network + - storage + - name: wheel + must_exist: false + system: true + - audio + +# Some Distributions require a 'autologin' group for the user. +# Autologin causes a user to become automatically logged in to +# the desktop environment on boot. +# Disable when your Distribution does not require such a group. +autologinGroup: autologin +# 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: false + +# When *sudoersGroup* is set to a non-empty string, Calamares creates a +# sudoers file for the user. This file is located at: +# `/etc/sudoers.d/10-installer` +# Remember to add the (value of) *sudoersGroup* to *defaultGroups*. +# +# If your Distribution already sets up a group of sudoers in its packaging, +# remove this setting (delete or comment out the line below). Otherwise, +# the setting will be duplicated in the `/etc/sudoers.d/10-installer` file, +# potentially confusing users. +sudoersGroup: wheel + +# 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. +setRootPassword: true + +# You can control the initial state for the 'reuse password for root' +# checkbox here. Possible values are: +# - true to check or +# - false to uncheck +# +# When checked, the user password is used for the root account too. +# +# NOTE: *doReusePassword* requires *setRootPassword* to be enabled. +doReusePassword: false + +# These are optional password-requirements that a distro can enforce +# on the user. The values given in this sample file set only very weak +# validation settings. +# +# - nonempty rejects empty passwords +# - there are no length validations +# - libpwquality (if it is enabled at all) has no length of class +# restrictions, although it will still reject palindromes and +# dictionary words with these settings. +# +# Checks may be listed multiple times; each is checked separately, +# and no effort is done to ensure that the checks are consistent +# (e.g. specifying a maximum length less than the minimum length +# will annoy users). +# +# The libpwquality check relies on the (optional) libpwquality library. +# Its value is a list of configuration statements that could also +# be found in pwquality.conf, and these are handed off to the +# libpwquality parser for evaluation. The check is ignored if +# libpwquality is not available at build time (generates a warning in +# the log). The Calamares password check rejects passwords with a +# score of < 40 with the given libpwquality settings. +# +# (additional checks may be implemented in CheckPWQuality.cpp and +# wired into UsersPage.cpp) +# +# - To disable specific password validations: +# comment out the relevant 'passwordRequirements' keys below. +# - To disable all password validations: +# set both 'allowWeakPasswords' and 'allowWeakPasswordsDefault' to true. +# (That will show the box *Allow weak passwords* in the user- +# interface, and check it by default). + +passwordRequirements: + nonempty: true + minLength: 1 # Password at least this many characters + maxLength: -1 # Password at most this many characters + #libpwquality: + # - minlen=0 + # - minclass=0 + allowWeakPasswords: true + allowWeakPasswordsDefault: true + +# You can control the visibility of the 'strong passwords' checkbox here. +# Possible values are: +# - true to show or +# - false to hide (default) +# the checkbox. This checkbox allows the user to choose to disable +# password-strength-checks. By default the box is **hidden**, so +# that you have to pick a password that satisfies the checks. +allowWeakPasswords: false +# You can control the initial state for the 'strong passwords' checkbox here. +# Possible values are: +# - true to uncheck or +# - false to check (default) +# the checkbox by default. Since the box is labeled to enforce strong +# passwords, in order to **allow** weak ones by default, the box needs +# to be unchecked. +allowWeakPasswordsDefault: false + +# 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. +userShell: /bin/bash + +# Hostname setting +# +# The user can enter a hostname; this is configured into the system +# in some way; pick one of: +# - *None*, to not set the hostname at all +# - *EtcFile*, to write to `/etc/hostname` directly +# - *Hostnamed*, to use systemd hostnamed(1) over DBus +# The default is *EtcFile*. +setHostname: EtcFile + +# Should /etc/hosts be written with a hostname for this machine +# (also adds localhost and some ipv6 standard entries). +# Defaults to *true*. +writeHostsFile: true + +presets: + fullName: + # value: "OEM User" + editable: true + loginName: + # value: "oem" + editable: true + diff --git a/etc/calamares/modules/welcome.conf b/etc/calamares/modules/welcome.conf new file mode 100644 index 0000000..6fb94da --- /dev/null +++ b/etc/calamares/modules/welcome.conf @@ -0,0 +1,105 @@ +# 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: true +#showReleaseNotesUrl: false +# TODO:3.3 Move to branding, keep only a bool here +#showDonateUrl: https://kde.org/community/donations/ + +# 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. +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: 5.5 + + # Amount of available RAM, in GiB. Floating-point is allowed here. + requiredRam: 1.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: http://example.com + + # 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. + check: + - storage + - ram + - power + - internet + - root + - 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 + # - root + +# 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 diff --git a/etc/calamares/settings.conf b/etc/calamares/settings.conf new file mode 100644 index 0000000..72f7d7b --- /dev/null +++ b/etc/calamares/settings.conf @@ -0,0 +1,62 @@ +#Arch-Linux-GUI Calamares settings configuration file + + # Configuration file for Calamares +# Syntax is YAML 1.2 +--- + +modules-search: [ local ] + +instances: +- id: algmkinitcpio + module: shellprocess + config: shellprocess-alg-mkinitcpio.conf +- id: remove-livecd + module: shellprocess + config: shellprocess-remove-livecd.conf + +sequence: +- show: + - welcome + - locale + - keyboard + - partition + - users + - summary +- exec: + - partition + - mount + - unpackfs + - machineid + - fstab + - locale + - keyboard + - localecfg + - luksbootkeyfile + - luksopenswaphookcfg + - shellprocess@algmkinitcpio + - initcpiocfg + - initcpio + - removeuser + - users + - displaymanager + - networkcfg + - hwclock + - services-systemd + - packages + - grubcfg + - bootloader + - shellprocess@remove-livecd + - umount +- show: + - finished + + +branding: parchlinux + +prompt-install: false + +dont-chroot: false + +disable-cancel: false + +disable-cancel-during-exec: false