added initial online installer config

This commit is contained in:
Sohrab Behdani 2024-05-11 14:01:40 +03:30
parent ceff932e51
commit 3320d742b8
78 changed files with 3999 additions and 0 deletions

0
README Normal file
View file

View file

@ -0,0 +1,23 @@
import QtQuick 2.5
Item {
id: imageslide
visible: false
anchors.fill: parent
property bool isSlide: true;
property string notes;
property string src;
Image {
id: image
source: src
anchors.centerIn: parent
}
}

View file

@ -0,0 +1,41 @@
---
componentName: parchlinux
welcomeStyleCalamares: false
welcomeExpandingLogo: true
windowExpanding: fullscreen
windowPlacement: center
sidebar: none
navigation: widget
strings:
productName: ParchLinux
shortProductName: Parch
version: Rolling
shortVersion: Rolling
versionedName: Parch Linux Rolling
shortVersionedName: ParchLinux
images:
productIcon: "logo.png"
productLogo: "squid.png"
productWelcome: "idioma.png"
style:
sidebarBackground: "#FFFFFF"
sidebarText: "#292F34"
sidebarTextSelect: "#ffffff"
sidebarTextHighlight: "#2093d1"
slideshow: "show.qml"
slideshowAPI: 2
uploadServer :
type : "fiche"
url : "http://termbin.com:9999"

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ar">
<context>
<name>show</name>
<message>
<location filename="../show.qml" line="64"/>
<source>This is a second Slide element.</source>
<translation>عرض الثاني</translation>
</message>
<message>
<location filename="../show.qml" line="68"/>
<source>This is a third Slide element.</source>
<translation>عرض الثالث</translation>
</message>
</context>
</TS>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en">
<context>
<name>show</name>
<message>
<location filename="../show.qml" line="64"/>
<source>This is a second Slide element.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../show.qml" line="68"/>
<source>This is a third Slide element.</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="eo">
<context>
<name>show</name>
<message>
<location filename="../show.qml" line="64"/>
<source>This is a second Slide element.</source>
<translation>Ĉi tio estas la dua gliteja.</translation>
</message>
<message>
<location filename="../show.qml" line="68"/>
<source>This is a third Slide element.</source>
<translation>Ĉi tio estas la tria gliteja.</translation>
</message>
</context>
</TS>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en">
<context>
<name>show</name>
<message>
<location filename="../show.qml" line="64"/>
<source>This is a second Slide element.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../show.qml" line="68"/>
<source>This is a third Slide element.</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="fr">
<context>
<name>show</name>
<message>
<location filename="../show.qml" line="64"/>
<source>This is a second Slide element.</source>
<translation>Ceci est la deuxieme affiche.</translation>
</message>
<message>
<location filename="../show.qml" line="68"/>
<source>This is a third Slide element.</source>
<translation>La troisième affice ce trouve ici.</translation>
</message>
</context>
</TS>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="nl">
<context>
<name>show</name>
<message>
<location filename="../show.qml" line="64"/>
<source>This is a second Slide element.</source>
<translation>Dit is het tweede Dia element.</translation>
</message>
<message>
<location filename="../show.qml" line="68"/>
<source>This is a third Slide element.</source>
<translation>Dit is het derde Dia element.</translation>
</message>
</context>
</TS>

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

View file

@ -0,0 +1,53 @@
import QtQuick 2.0;
import calamares.slideshow 1.0;
import io.calamares.ui 1.0 // Calamares internals: Branding
Presentation
{
id: presentation
Timer {
interval: 30000
running: presentation.activatedInCalamares
repeat: true
onTriggered: presentation.goToNextSlide()
}
function onActivate() { }
function onLeave() { }
Rectangle {
id: mybackground
anchors.fill: parent
color: Branding.styleString(Branding.SidebarBackground)
z: -1
}
ImageSlide {
src: "slide01.png"
}
ImageSlide {
src: "slide02.png"
}
ImageSlide {
src: "slide03.png"
}
ImageSlide {
src: "slide04.png"
}
ImageSlide {
src: "slide05.png"
}
ImageSlide {
src: "slide06.png"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

View file

@ -0,0 +1,253 @@
/* ########## MAIN APPLICATION WINDOW ########## */
#mainApp {
}
#mainText{
font : bold 16px;
}
#sidebarApp {
}
#logoApp {
}
#sidebarMenuApp {
padding: 0px;
background-color: none;
}
QWidget {
font: 16px;
}
QTextEdit, QListView {
}
QDialogButtonBox {
}
QAbstractSpinBox {
}
QListWidget::item:alternate {
}
#debugButton {
font: bold 8px;
color: #292F34;
}
/* ########## TOOLTIP ########## */
QPushButton {
font : 16px;
}
QDialogButtonBox {
dialogbuttonbox-buttons-have-icons: 0;
}
/* ########## QLIST VIEW ########## */
QListView {
font: 16px;
}
/* ########## QLINE EDIT ########## */
QLineEdit#LE_TestKeyboard {
font: 16px;
}
QLineEdit#m_passphraseLineEdit, QLineEdit#vgName,
QLineEdit#m_confirmLineEdit {
font: 16px;
}
QLineEdit#textBoxUserVerifiedPassword, QLineEdit#textBoxVerifiedRootPassword {
font: 16px;
}
QLineEdit#textBoxFullName, QLineEdit#textBoxLoginName, QLineEdit#textBoxHostName,
QLineEdit#textBoxUserPassword, QLineEdit#textBoxRootPassword {
font: 16px;
}
#textBoxFullName, #textBoxLoginName, #textBoxHostName, #textBoxUserPassword,
#textBoxRootPassword, #textBoxAutoLogin, #vgName {
font: 16px;
}
#textBoxUserVerifiedPassword, #textBoxVerifiedRootPassword,
#LE_TestKeyboard, #m_confirmLineEdit, #m_passphraseLineEdit {
font: 16px;
}
/* ##########PARTITION ########## */
#partResizerWidget {
font: 16px;
}
/* ########## PAGE_USERSETUP ########## */
#labelWhatIsYourName {
font: 16px;
}
#textBoxFullName {
font: 16px;
}
#labelFullName {
font: 16px;
}
#labelFullNameError {
font: 16px;
}
#username_label_2 {
font: 16px;
}
#textBoxLoginName {
font: 16px;
}
#labelUsername {
font: 16px;
}
#labelUsernameError {
font: 16px;
}
#hostname_label_2 {
font: 16px;
}
#textBoxHostName {
font: 16px;
}
#labelHostname {
font: 16px;
}
#labelHostnameError {
font: 16px;
}
#password_label_2 {
font: 16px;
}
#textBoxUserPassword {
font: 16px;
}
#textBoxUserVerifiedPassword {
font: 16px;
}
#labelUserPassword {
font: 16px;
}
#labelUserPasswordError {
font: 16px;
}
#checkBoxRequireStrongPassword {
font: 16px;
}
#checkBoxDoAutoLogin {
font: 16px;
}
#checkBoxReusePassword {
font: 16px;
}
#labelChooseRootPassword {
font: 16px;
}
#textBoxRootPassword {
font: 16px;
}
#textBoxVerifiedRootPassword {
font: 16px;
}
#labelRootPassword {
font: 16px;
}
#labelRootPasswordError {
font: 16px;
}
/* ########## COMBO BOX ########## */
QComboBox {
font: 16px;
}
#mountPointComboBox::drop-down {
font: 16px;
}
/* ########## SPIN BOX ########## */
QSpinBox {
font: 16px;
}
QLineEdit {
font: 16px;
}
/* ########## TREE VIEW ########## */
QTreeView {
font: 16px;
show-decoration-selected: 0;
}
QTreeView::item {
padding: 2px;
}
QTreeView::branch:has-siblings:!adjoins-item {
}
QTreeView::branch:has-siblings:adjoins-item {
}
QTreeView::branch:!has-children:!has-siblings:adjoins-item {
}
QTreeView::branch:has-children:!has-siblings:closed,
QTreeView::branch:closed:has-children:has-siblings {
}
QTreeView::branch:open:has-children:!has-siblings,
QTreeView::branch:open:has-children:has-siblings {
}
/* ########## CHECK BOX ########## */
QCheckBox {
}
QCheckBox::indicator:unchecked {
}
QCheckBox::indicator:checked {
}
QItemSelectionModel::Select {
}
/* ########## HEADER VIEW ########## */
QHeaderView::section {
font : 16px;
}
#debugButton {
background-color: none;
font: 12px;
color: #edecf0;
height: 32px;
border: none;
}
#debugButton:hover {
color: #ff7f7f;
}
#aboutButton {
background-color: none;
font: 12px;
color: #292F34;
height: 32px;
border: none;
}

11
etc/calamares/launch.sh Executable file
View file

@ -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 -E calamares

View file

@ -0,0 +1,76 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Bootloader configuration. The bootloader is installed to allow
# the system to start (and pick one of the installed operating
# systems to run).
#
# Take note that Debian-derivatives that use unmodified GRUB EFI packages
# should specifically set *efiBootloaderId* to "debian" because that is
# hard-coded in `grubx64.efi`.
---
# A variable from global storage which overrides the value of efiBootLoader
#efiBootLoaderVar: "packagechooser_bootloader"
# Define which bootloader you want to use for EFI installations
# Possible options are 'grub', 'sb-shim' and 'systemd-boot'.
efiBootLoader: "grub"
# systemd-boot configuration files settings, set kernel search path, kernel name
# and amount of time before default selection boots
kernelSearchPath: "/usr/lib/modules"
kernelName: "vmlinuz"
timeout: "10"
# systemd-boot and refind support custom kernel params
kernelParams: [ "quiet" ]
# A list of kernel names that refind should accept as kernels
#refindKernelList: [ "linux","linux-lts","linux-zen","linux-hardened" ]
# GRUB 2 binary names and boot directory
# Some distributions (e.g. Fedora) use grub2-* (resp. /boot/grub2/) names.
# These names are also used when using sb-shim, since that needs some
# GRUB functionality (notably grub-probe) to work. As needed, you may use
# complete paths like `/usr/bin/efibootmgr` for the executables.
#
grubInstall: "grub-install"
grubMkconfig: "grub-mkconfig"
grubCfg: "/boot/grub/grub.cfg"
grubProbe: "grub-probe"
efiBootMgr: "efibootmgr"
# Optionally set the bootloader ID to use for EFI. This is passed to
# grub-install --bootloader-id.
#
# If not set here, the value from bootloaderEntryName from branding.desc
# is used, with problematic characters (space and slash) replaced.
#
# The ID is also used as a directory name within the EFI environment,
# and the bootloader is copied from /boot/efi/EFI/<dirname>/ . When
# setting the option here, keep in mind that the name is sanitized
# (problematic characters, see above, are replaced).
#
# There are some special words possible at the end of *efiBootloaderId*:
# ${SERIAL} can be used to obtain a uniquely-numbered suffix
# that is added to the Id (yielding, e.g., `dirname1` or `dirname72`)
# ${RANDOM} can be used to obtain a unique 4-digit hex suffix
# ${PHRASE} can be used to obtain a unique 1-to-3-word suffix
# from a dictionary of space-themed words
# These words must be at the **end** of the *efiBootloaderId* value.
# There must also be at most one of them. If there is none, no suffix-
# processing is done and the *efiBootloaderId* is used unchanged.
#
# NOTE: Debian derivatives that use the unmodified Debian GRUB EFI
# packages may need to set this to "debian" because that is
# hard-coded in `grubx64.efi`.
#
# efiBootloaderId: "dirname"
# Optionally install a copy of the GRUB EFI bootloader as the EFI
# fallback loader (either bootia32.efi or bootx64.efi depending on
# the system). This may be needed on certain systems (Intel DH87MC
# seems to be the only one). If you set this to false, take care
# to add another module to optionally install the fallback on those
# boards that need it.
installEFIFallback: false

View file

@ -0,0 +1,62 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configuration for the contextual process job.
#
# Contextual processes are based on **global** configuration values.
# When a given global value (string) equals a given value, then
# the associated command is executed.
#
# Configuration consists of keys for global variable names (except
# *dontChroot* and *timeout*), and the sub-keys are strings to compare
# to the variable's value. If the variable has that particular value, the
# corresponding value (script) is executed. The top-level keys *dontChroot*
# and *timeout* are not global variable names. They have
# meaning just like in shellprocess.conf, that is they
# determine **where** the command runs and how long it has.
#
# The variable **may** contain dots, in which case the dot is used
# to select into maps inside global storage, e.g.
#
# - *firmwareType* is a simple global name
# - *branding.bootloader* is the *bootloader* value in the *branding* map
#
# Only a few global storage entries have well-defined sub-maps;
# branding is one of them, and *filesystem_use* is another. Note that
# variable names with dots **must** be quoted, or you will get a YAML error.
#
#
# You can check for an empty value with "".
#
# As a special case, the value-check "*" matches any value, but **only**
# if no other value-check matches. Use it as an *else* form for value-
# checks. Take care to put the asterisk in quotes. The value-check "*"
# **also** matches a literal asterisk as value; a confusing corner case
# is checking for an asterisk **and** having a wildcard match with
# different commands. This is currently not possible.
#
# Global configuration variables are not checked in a deterministic
# order, so do not rely on commands from one variable-check to
# always happen before (or after) checks on another
# variable. Similarly, the value-equality checks are not
# done in a deterministic order, but all of the value-checks
# for a given variable happen together. As a special case, the
# value-check for "*" (the *else* case) happens after all of the
# other value-checks, and only matches if none of the others do.
#
# The values after a value sub-keys are the same kinds of values
# as can be given to the *script* key in the shellprocess module.
# See shellprocess.conf for documentation on valid values.
---
dontChroot: false
firmwareType:
efi:
- "-pkg remove efi-firmware"
- command: "-mkinitramfsrd -abgn"
timeout: 120 # This is slow
bios: "-pkg remove bios-firmware"
"": "/bin/false no-firmware-type-set"
"*": "/bin/false some-other-firmware-value"
"branding.shortVersion":
"2020.2": "/bin/false february"
"2019.4": "/bin/true april"

View file

@ -0,0 +1,35 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configure one or more display managers (e.g. SDDM)
# with a "best effort" approach.
#
# This module also sets up autologin, if the feature is enabled in
# globalstorage (where it would come from the users page).
---
displaymanagers:
- sddm
- lightdm
- gdm
- lxdm
sysconfigSetup: false
# Some DMs have specific settings. These can be customized here.
#
# greetd has configurable user and group; the user and group is created if it
# does not exist, and the user is set as default-session user.
#
# Some greeters for greetd (e.g gtkgreet or regreet) have support for a user's GTK CSS style to change appearance.
#
# lightdm has a list of greeters to look for, preferring them in order if
# they are installed (if not, picks the alphabetically first greeter that is installed).
#
greetd:
greeter_user: "tom_bombadil"
greeter_group: "wheel"
greeter_css_location: "/etc/greetd/style.css"
lightdm:
preferred_greeters: ["lightdm-greeter.desktop", "slick-greeter.desktop"]
sddm:
configuration_file: "/etc/sddm.conf"

View file

@ -0,0 +1,11 @@
# 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).
---
restartNowMode: user-unchecked
restartNowCommand: "systemctl -i reboot"
notifyOnFinished: false

View file

@ -0,0 +1,36 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configuration for the "finishedq" page, which is usually shown only at
# the end of the installation (successful or not).
#
# See the documentation for the "finished" module for a full explanation
# of the configuration options; the description here applies primarily
# to the use that the QML makes of them.
---
# Behavior of the "restart system now" button.
#
# The example QML for this module offers a "Restart Now" button,
# which the user can click on. It calls directly to the restart
# function. If the user closes the installer in some other way,
# (the "Done" button or close-window) a restart **might** happen:
#
# - never
# Do not restart (this will also block the "Restart Now" button,
# so it is not very useful)
# - user-unchecked
# Do not restart on other ways of closing the window. No checkbox
# is shown in the example QML, so there is no way for the user to
# express a choice -- except by clicking the "Restart Now" button.
# - user-checked
# Do restart on other ways of closing the window. This makes close
# and "Restart Now" do the same thing. No checkbox is shown by the QML,
# so the machine will **always** restart.
# - always
# Same as above.
#
# For the **specific** example QML included with this module, only
# *user-unchecked* really makes sense.
restartNowMode: user-unchecked
restartNowCommand: "systemctl -i reboot"
notifyOnFinished: false

View file

@ -0,0 +1,40 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Module that resizes a single FS to fill the entire (rest) of
# a device. This is used in OEM situations where an image is
# flashed onto an SD card (or similar) and used to boot a device,
# after which the FS should expand to fill the SD card.
#
# Example: a distro produces a 6GiB large image that is
# written to an 8GiB SD card; the FS should expand to take
# advantage of the unused 2GiB. The FS should expand much
# more if the same image is written to a 16GiB card.
---
# Which FS needs to be grown? Choose one way to identify it:
# - *fs* names a mount point which should already be mounted
# in the system.
# - *dev* names a device
fs: /
# dev: /dev/mmcblk0p1
# How much of the total remaining space should the FS use?
# The only sensible amount is "all of it". The value is
# in percent, so set it to 100. Perhaps a fixed size is
# needed (that would be weird though, since you don't know
# how big the card is), use MiB as suffix in that case.
# If missing, then it's assumed to be 0, and no resizing
# will happen.
#
# Percentages apply to **available space**.
size: 100%
# When *atleast* is not zero, then the resize may be
# recommended (the default) or **required**. If the
# resize is required and cannot be carried out (because
# there's not enough space), then that is a fatal
# error for the installer. By default, resize is only
# recommended and it is not an error for no resize to be
# carried out.
required: false

View file

@ -0,0 +1,19 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Creates /etc/fstab and /etc/crypttab in the target system.
# Also creates mount points for all the filesystems.
#
# When creating fstab entries for a filesystem, this module
# uses the options previously defined in the mount module
---
crypttabOptions: luks
tmpOptions:
default:
tmpfs: false
options: ""
ssd:
tmpfs: true
options: "defaults,noatime,mode=1777"

View file

@ -0,0 +1,38 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Create, overwrite or update /etc/default/grub in the target system.
#
# Write lines to /etc/default/grub (in the target system) based
# on calculated values and the values set in the *defaults* key
# in this configuration file.
#
# Calculated values are:
# - GRUB_DISTRIBUTOR, branding module, *bootloaderEntryName* (this
# string is sanitized, and see also setting *keep_distributor*)
# - GRUB_ENABLE_CRYPTODISK, based on the presence of filesystems
# that use LUKS
# - GRUB_CMDLINE_LINUX_DEFAULT, adding LUKS setup and plymouth
# support to the kernel.
---
overwrite: false
prefer_grub_d: false
keep_distributor: false
kernel_params:
- "nowatchdog"
- "nvme_load=YES"
- "zswap.enabled=0"
defaults:
GRUB_TIMEOUT: 5
GRUB_DEFAULT: "saved"
GRUB_DISABLE_SUBMENU: false
GRUB_DISABLE_RECOVERY: true
# Set to true to force defaults to be used even when not overwriting
always_use_defaults: true

View file

@ -0,0 +1,8 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Run mkinitcpio(8) with the given preset value
---
kernel: all
be_unsafe: false

View file

@ -0,0 +1,11 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# The initcpiocfg module is responsible for the configuration of mkinitcpio.conf. Typically this
# module is used in conjunction with the initcpio module to generate the boot image when using mkinitcpio
---
#
# Determines if the systemd versions of the hooks should be used. This is false by default.
#
# Please note that using the systemd hooks result in no access to the emergency recovery shell
useSystemdHook: false

View file

@ -0,0 +1,39 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
## initramfs module
#
# This module is specific to Debian based distros. Post installation on Debian
# the initramfs needs to be updated so as to not interrupt the boot process
# with a error about fsck.ext4 not being found.
#
## Debian specific notes
#
# If you're using live-build to build your ISO and setup the runtime env
# make sure that you purge the live-\* packages on the target system
# before running this module, since live-config dpkg-diverts update-initramfs
# and can cause all sorts of fun issues.
---
# There is only one configuration item for this module,
# the kernel to be loaded. This can have the following
# values:
# - empty or unset, interpreted as "all"
# - the literal string "$uname" (without quotes, with dollar),
# which will use the output of `uname -r` to determine the
# running kernel, and use that.
# - any other string.
#
# Whatever is set, that string is passed as *version* argument to the
# `-k` option of *update-initramfs*. Take care that both "$uname" operates
# in the host system, and might not be correct if the target system is
# updated (to a newer kernel) as part of the installation.
#
# The default is empty/unset, leading to the behavior from Calamares
# 3.2.9 and earlier which passed "all" as version.
kernel: "all"
# Set this to true to turn off mitigations for lax file
# permissions on initramfs (which, in turn, can compromise
# your LUKS encryption keys, CVS-2019-13179).
be_unsafe: false

View file

@ -0,0 +1,17 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# The interactive terminal provides a konsole (terminal) window
# during the installation process. The terminal runs in the
# host system, so you will need to change directories to the
# target system to examine the state there.
#
# The one configuration key *command*, if defined, is passed
# as a command to run in the terminal window before any user
# input is accepted. The user must exit the terminal manually
# or click *next* to proceed to the next installation step.
#
# If no command is defined, no command is run and the user
# gets a plain terminal session.
---
command: "echo Hello"

View file

@ -0,0 +1,33 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# NOTE: you must have ckbcomp installed and runnable
# on the live system, for keyboard layout previews.
---
# The name of the file to write X11 keyboard settings to
# The default value is the name used by upstream systemd-localed.
# Relative paths are assumed to be relative to /etc/X11/xorg.conf.d
xOrgConfFileName: "/etc/X11/xorg.conf.d/00-keyboard.conf"
# The path to search for keymaps converted from X11 to kbd format.
# Common paths for this are:
# - /lib/kbd/keymaps/xkb
# - /usr/share/kbd/keymaps/xkb
# Leave this empty if the setting does not make sense on your distribution.
#
convertedKeymapPath: "/lib/kbd/keymaps/xkb"
# Write keymap configuration to /etc/default/keyboard, usually
# found on Debian-related systems.
# Defaults to true if nothing is set.
#writeEtcDefaultKeyboard: true
# Use the Locale1 service instead of directly managing configuration files.
# This is the modern mechanism for configuring the systemwide keyboard layout,
# and works on Wayland compositors to set the current layout.
# Defaults to false on X11 and true otherwise.
#useLocale1: true
# Guess the default layout from the user locale. If false, keeps the current
# OS keyboard layout as the default (useful if the layout is pre-configured).
#guessLayout: true

View file

@ -0,0 +1,19 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# NOTE: you must have ckbcomp installed and runnable
# on the live system, for keyboard layout previews.
---
# The name of the file to write X11 keyboard settings to
# The default value is the name used by upstream systemd-localed.
# Relative paths are assumed to be relative to /etc/X11/xorg.conf.d
xOrgConfFileName: "/etc/X11/xorg.conf.d/00-keyboard.conf"
# The path to search for keymaps converted from X11 to kbd format
# Leave this empty if the setting does not make sense on your distribution.
convertedKeymapPath: "/lib/kbd/keymaps/xkb"
# Write keymap configuration to /etc/default/keyboard, usually
# found on Debian-related systems.
# Defaults to true if nothing is set.
#writeEtcDefaultKeyboard: true

View file

@ -0,0 +1,53 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configuration file for License viewmodule, Calamares
# Syntax is YAML 1.2
---
# Define a list of licenses which may / must be accepted before continuing.
#
# Each entry in this list has the following keys:
# - id Entry identifier, must be unique. Not user visible. YAML: string.
# - name Pretty name for the software product, user visible and untranslatable. YAML: string.
# - vendor Pretty name for the software vendor, user visible and untranslatable. YAML: string, optional, default is empty.
# - type Package type identifier for presentation, not user visible but affects user visible strings. YAML: string.
# values: driver, gpudriver, browserplugin, codec, package, software; optional, default is software.
# - required If set to true, the user cannot proceed without accepting this license. YAML: boolean, optional, default is false.
# - url A URL for the license; a remote URL is not shown in Calamares, but a link
# to the URL is provided, which opens in the default web browser. A local
# URL (i.e. file:///) assumes that the contents are HTML or plain text, and
# displays the license in-line. YAML: string, mandatory.
# - expand A boolean value only relevant for **local** URLs. If true,
# the license text is displayed in "expanded" form by
# default, rather than requiring the user to first open it up.
# YAML: boolean, optional, default is false.
entries:
- id: nvidia
name: Nvidia
vendor: Nvidia Corporation
type: driver
url: http://developer.download.nvidia.com/cg/Cg_3.0/license.pdf
required: false
- id: amd
name: Catalyst
vendor: "Advanced Micro Devices, Inc."
type: gpudriver
url: http://support.amd.com/en-us/download/eula
required: false
- id: flashplugin
name: Adobe Flash
vendor: Adobe Systems Incorporated
type: browserplugin
url: http://www.adobe.com/products/eulas/pdfs/PlatformClients_PC_WWEULA_Combined_20100108_1657.pdf
required: true
# This example uses a file: link. This example uses a relative link, which
# is relative to where you run Calamares. Assuming you run it from build/
# as part of your testing, you'll get the LICENSE text for Calamares
# (which is the text of the GPLv3, not proprietary at all).
- id: mine_mine
name: Calamares Proprietary License
vendor: Calamares, Inc.
type: software
required: true
url: file:../LICENSE
expand: true

View file

@ -0,0 +1,131 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
---
# These 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.
#
# Note that useSystemTimezone and GeoIP settings can change the
# starting time zone.
#
region: "America"
zone: "New_York"
# Instead of using *region* and *zone* specified above,
# you can use the system's notion of the timezone, instead.
# This can help if your system is automatically configured with
# a sensible TZ rather than chasing a fixed default.
#
# The default is false.
#
# useSystemTimezone: true
# Should changing the system location (e.g. clicking around on the timezone
# map) immediately reflect the changed timezone in the live system?
# By default, installers (with a target system) do, and setup (e.g. OEM
# configuration) does not, but you can switch it on here (or off, if
# you think it's annoying in the installer).
#
# Note that not all systems support live adjustment.
#
# adjustLiveTimezone: true
# 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 a
# custom path for locale.gen
#
#localeGenPath: "/etc/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 welcome
# module can also do its own GeoIP lookups, independently
# of the lookup done here. The lookup in the welcome module
# is used to establish language; this one is for timezone).
#
# 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. "<Time_Zone>") in XML, set the
# selector 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.
# Special case:
# - the *style* "fixed" is also supported. This ignores the data
# returned from the URL (but the URL must still be valid!)
# and just returns the value of the *selector*.
#
# 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 <region>/<zone> 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.
#
# Suitable JSON data looks like
# ```
# {"time_zone":"America/New_York"}
# ```
# Suitable XML data looks like
# ```
# <Response><TimeZone>Europe/Brussels</TimeZone></Response>
# ```
#
# 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 _
#
# 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.
#
geoip:
style: "json"
url: "https://geoip.kde.org/v1/calamares"
selector: "" # leave blank for the default
# For testing purposes, you could use *fixed* style, to see how Calamares
# behaves in a particular zone:
#
# geoip:
# style: "fixed"
# url: "https://geoip.kde.org/v1/calamares" # Still needs to be valid!
# selector: "America/Vancouver" # this is the selected zone
#

View file

@ -0,0 +1,100 @@
# SPDX-FileCopyrightText: no
# 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: "America"
zone: "New_York"
# 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. "<Time_Zone>") 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 <region>/<zone> 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
# ```
# <Response><TimeZone>Europe/Brussels</TimeZone></Response>
# ```
#
# 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.
#
geoip:
style: "json"
url: "https://geoip.kde.org/v1/calamares"
selector: "" # leave blank for the default

View file

@ -0,0 +1,14 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Luksbootkeyfile configuration. A key file is created for the
# LUKS encrypted devices.
---
# Set Password-Based Key Derivation Function (PBKDF) algorithm
# for LUKS keyslot.
#
# There are three usable specific values: pbkdf2, argon2i or argon2id.
# There is one value equivalent to not setting it: default
#
# When not set (or explicitly set to "default"), the cryptsetup default is used
luks2Hash: default

View file

@ -0,0 +1,7 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Writes an openswap configuration with LUKS settings to the given path
---
# Path of the configuration file to write (in the target system)
configFilePath: /etc/openswap.conf

View file

@ -0,0 +1,30 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Machine-ID and other random data on the target system.
#
# This module can create a number of "random" things on the target:
# - a systemd machine-id file (hence the name of the Calamares module)
# with a random UUID.
# - a dbus machine-id file (or, optionally, link to the one from systemd)
# - an entropy file
#
---
systemd: true
# If systemd is true, the kind of /etc/machine-id to create in the target
# - uuid (default) generates a UUID
# - systemd alias of uuid
# - blank creates the file but leaves it empty at 0 bytes
# - none alias of blank (use `systemd: false` if you don't want one at all)
# - literal-uninitialized creates the file and writes the string "uninitialized\n"
systemd-style: uuid
dbus: true
dbus-symlink: true
entropy-copy: false
entropy-files:
- /var/lib/urandom/random-seed
- /var/lib/systemd/random-seed

View file

@ -0,0 +1,62 @@
# 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.
---
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
btrfsSubvolumes:
- mountPoint: /
subvolume: /@
- mountPoint: /home
subvolume: /@home
- mountPoint: /root
subvolume: /@root
- mountPoint: /srv
subvolume: /@srv
- mountPoint: /var/cache
subvolume: /@cache
- mountPoint: /var/tmp
subvolume: /@tmp
- mountPoint: /var/log
subvolume: /@log
mountOptions:
- filesystem: default
options: [ defaults, noatime ]
- filesystem: efi
options: [ defaults, umask=0077 ]
- filesystem: btrfs
options: [ defaults, noatime, compress=zstd, space_cache=v2, commit=120 ]
- filesystem: btrfs_swap
options: [ defaults, noatime ]
- filesystem: ext4
options: [ defaults, noatime, commit=60 ]
- filesystem: xfs
options: [ defaults, lazytime, noatime, attr2, inode64, logbsize=256k, noquota ]
- filesystem: f2fs
options: [ defaults, compress_algorithm=lz4, compress_chksum, gc_merge, lazytime ]

View file

@ -0,0 +1,28 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# sets default netinstall package groups list, first fetches from the net.
# second will be used as fallback if fetching fails
---
groupsUrl:
- https://raw.githubusercontent.com/parchlinux/calamares-parch-net/etc/calamares/modules/netinstall.yaml
- file:///etc/calamares/modules/netinstall.yaml
required: true
label:
sidebar: "Packages"
sidebar[de]: "Pakete"
sidebar[fi]: "Paketit"
sidebar[fr]: "Paquets"
sidebar[it]: "Pacchetti"
sidebar[sp]: "Paquetes"
sidebar[ru]: "Пакеты"
sidebar[zh_CN]: "软件包"
sidebar[ja]: "パッケージ"
sidebar[sv]: "Paket"
sidebar[pt_BR]: "Pacotes"
sidebar[ir]: "بسته‌ها"
title: "Additional packages"
title[ru]: "Доп. пакеты"
title[ir]: "بسته‌های اختیاری"

View file

@ -0,0 +1,766 @@
description: "needed ParchLinux packages"
hidden: true
selected: true
critical: true
packages:
- parch-branding
- parch-pacman
- parch-emoji-ios
- fastfetch
- paru
- parch-grub
- reflector-simple
- parch-plymouth
- base-devel
- name: "ParchLinux Packages"
description: "needed ParchLinux packages"
hidden: false
selected: true
critical: true
packages:
- firefox
- name: "Base-devel + Common packages"
description: "Recommended. Don't change unless you know what you're doing (generic)."
hidden: false
selected: true
critical: true
subgroups:
- name: "X-system"
description: "Default X-system"
selected: true
packages:
- libwnck3
- mesa-utils
- xf86-input-libinput
- xorg-xdpyinfo
- xorg-server
- xorg-xinit
- xorg-xinput
- xorg-xkill
- xorg-xrandr
- name: "Network"
description: "Network apps drivers and tools"
selected: true
packages:
- b43-fwcutter
- broadcom-wl-dkms
- dhclient
- dnsmasq
- dnsutils
- ethtool
- iwd
- modemmanager
- networkmanager
- networkmanager-openvpn
- nss-mdns
- usb_modeswitch
- wpa_supplicant
- xl2tpd
- name: "Browser and Proxy"
description: "Some Browsers and stuff"
selected: true
packages:
- falkon
- epiphany
- chromium
- vivaldi
- angelfish
- torbrowser-launcher
- windscribe-v2-bin
- carburetor
- dnsch
- name: "firewall"
description: "Firewall support"
selected: true
packages:
- firewalld
- python-pyqt5
- python-capng
- name: "bluetooth"
description: "Bluetooth support"
selected: true
packages:
- bluez
- bluez-hid2hci
- bluez-libs
- bluez-utils
- name: "packages management"
description: "Packages tools"
selected: true
packages:
- pacman-contrib
- pkgfile
- rebuild-detector
- name: "desktop integration"
description: "Useful helper tools and libs for desktop usage"
selected: true
packages:
- accountsservice
- bash-completion
- ffmpegthumbnailer
- gst-libav
- gst-plugin-pipewire
- gst-plugins-bad
- gst-plugins-ugly
- libdvdcss
- libgsf
- libopenraw
- mlocate
- poppler-glib
- xdg-user-dirs
- xdg-utils
- name: "filesystem"
description: "Filesystem tools and apps"
selected: true
packages:
- efitools
- haveged
- nfs-utils
- nilfs-utils
- ntp
- smartmontools
- unrar
- unzip
- xz
- name: "fonts"
description: "ParchLinux font selection"
selected: true
packages:
- adobe-source-han-sans-cn-fonts
- adobe-source-han-sans-jp-fonts
- adobe-source-han-sans-kr-fonts
- awesome-terminal-fonts
- noto-fonts-emoji
- noto-color-emoji-fontconfig
- cantarell-fonts
- freetype2
- noto-fonts
- opendesktop-fonts
- ttf-bitstream-vera
- ttf-dejavu
- ttf-liberation
- ttf-opensans
- ttf-meslo-nerd
- noto-fonts-cjk
- estedad-fonts
- mikhak-fonts
- name: "audio"
description: "Audio handling tools apps and libs"
selected: true
packages:
- alsa-firmware
- alsa-plugins
- alsa-utils
- pavucontrol
- pipewire-pulse
- wireplumber
- pipewire-alsa
- pipewire-jack
- rtkit
- name: "hardware"
description: "Hardware support libs and firmware"
selected: true
packages:
- dmidecode
- dmraid
- hdparm
- hwdetect
- lsscsi
- mtools
- sg3_utils
- sof-firmware
- linux-firmware
- name: "power"
description: "Powermanagement support"
selected: true
packages:
- cpupower
- power-profiles-daemon
- upower
- name: "Some applications selection"
description: "General tools and applications"
selected: true
packages:
- alacritty
- btop
- duf
- findutils
- fsarchiver
- git
- glances
- hwinfo
- inxi
- meld
- nano-syntax-highlighting
- neofetch
- fastfetch
- pcurses
- pv
- python-defusedxml
- python-packaging
- rsync
- sed
- vi
- wget
- ripgrep
- micro
- nano
- vim
- openssh
- name: "Kernel"
description: "Selection of Kernels to install"
hidden: false
selected: false
critical: true
packages:
- linux
- linux-headers
- linux-zen
- linux-zen-headers
- linux-lts
- linux-lts-headers
- name: "KDE-Desktop"
description: "KDE-Plasma Desktop - Simple by default, powerful when needed."
hidden: false
selected: false
critical: true
packages:
- parch-wallpapers
- ark
- bluedevil
- breeze-gtk
- dolphin
- egl-wayland
- gwenview
- konsole
- kate
- kdeconnect
- kde-gtk-config
- kdegraphics-thumbnailers
- ffmpegthumbs
- kinfocenter
- kinit
- kscreen
- kwallet-pam
- kwalletmanager
- plasma-desktop
- libplasma
- plasma-nm
- plasma-pa
- plasma-workspace
- plasma-integration
- plasma-firewall
- plasma-browser-integration
- plasma-systemmonitor
- plasma-thunderbolt
- powerdevil
- spectacle
- tokodon
- neochat
- sddm
- sddm-kcm
- qt6-wayland
- xsettingsd
- xdg-desktop-portal
- xdg-desktop-portal-kde
- phonon-qt6-vlc
- xwaylandvideobridge
- name: "GNOME-Desktop"
description: "GNOME Desktop - designed to put you in control and get things done."
hidden: false
selected: false
critical: true
packages:
- parch-gnome-backgrounds
- folio
- gnome-software-packagekit
- gnome-software-packagekit-plugin
- tuba
- fractal
- adwaita-icon-theme
- eog
- evince
- file-roller
- gdm
- gedit
- gnome-calculator
- gnome-control-center
- gnome-disk-utility
- gnome-keyring
- gnome-nettool
- gnome-power-manager
- gnome-screenshot
- gnome-shell
- gnome-terminal
- gnome-themes-extra
- gnome-tweaks
- gnome-usage
- gvfs
- gvfs-afc
- gvfs-gphoto2
- gvfs-mtp
- gvfs-nfs
- gvfs-smb
- nautilus
- nautilus-sendto
- sushi
- totem
- qt6-wayland
- xdg-user-dirs-gtk
- xdg-desktop-portal-gnome
- name: "Xfce4"
description: "Xfce is a lightweight desktop environment for UNIX-like operating systems. It aims to be fast and low on system resources, while still being visually appealing and user friendly."
hidden: false
selected: false
critical: true
packages:
- blueman
- file-roller
- galculator
- gvfs
- gvfs-afc
- gvfs-gphoto2
- gvfs-mtp
- gvfs-nfs
- gvfs-smb
- lightdm
- lightdm-gtk-greeter
- lightdm-gtk-greeter-settings
- network-manager-applet
- parole
- ristretto
- thunar-archive-plugin
- thunar-media-tags-plugin
- xdg-user-dirs-gtk
- xed
- xfce4
- xfce4-battery-plugin
- xfce4-datetime-plugin
- xfce4-mount-plugin
- xfce4-netload-plugin
- xfce4-notifyd
- xfce4-pulseaudio-plugin
- xfce4-screensaver
- xfce4-screenshooter
- xfce4-taskmanager
- xfce4-wavelan-plugin
- xfce4-weather-plugin
- xfce4-whiskermenu-plugin
- xfce4-xkb-plugin
- name: "bspwm"
description: "bspwm is a tiling window manager that represents windows as the leaves of a full binary tree. bspwm supports multiple monitors and is configured and controlled through messages."
hidden: false
selected: false
critical: true
packages:
- bspwm
- sxhkd
- polybar
- ly
- alacritty
- openssh
- name: "Budgie-Desktop"
description: "Budgie - an independent, familiar, and modern desktop."
hidden: false
selected: false
critical: true
packages:
- budgie-control-center
- budgie-desktop
- budgie-desktop-view
- budgie-extras
- budgie-screensaver
- eog
- evince
- file-roller
- gedit
- gnome-keyring
- gnome-screenshot
- gnome-terminal
- gvfs
- gvfs-afc
- gvfs-gphoto2
- gvfs-mtp
- gvfs-nfs
- gvfs-smb
- lightdm
- lightdm-slick-greeter
- nemo
- nemo-fileroller
- nemo-preview
- network-manager-applet
- sushi
- totem
- xdg-user-dirs-gtk
- name: "Cinnamon"
description: "Linux desktop which provides advanced innovative features and a traditional user experience."
hidden: false
selected: false
critical: true
packages:
- cinnamon
- system-config-printer
- gnome-keyring
- gnome-terminal
- blueberry
- metacity
- lightdm
- lightdm-gtk-greeter
- name: "CuteFish"
description: "CuteFish An Elegant, Beautiful and Easy-to-Use Linux Desktop."
hidden: false
selected: false
expanded: false
critical: true
packages:
- fishui
- cutefish-calculator
- cutefish-core
- cutefish-dock
- cutefish-filemanager
- cutefish-launcher
- cutefish-screenlocker
- cutefish-settings
- cutefish-statusbar
- cutefish-terminal
- cutefish-wallpapers
- cutefish-icons
- cutefish-qt-plugins
- libwnck3
- sddm
- xdg-desktop-portal
- xdg-desktop-portal-kde
- name: "i3-Window-Manager"
description: "i3 tiling window manager, primarily targeted at developers and advanced users."
hidden: false
selected: false
expanded: false
critical: true
packages:
- i3-wm
- i3blocks
- i3lock-color
- i3status
- rofi
- polybar
- ly
- dunst
- name: "Hyprland"
description: "Hyprland is a highly customizable dynamic tiling Wayland compositor that doesn't sacrifice on its looks."
hidden: false
selected: false
expanded: false
critical: true
packages:
- hyprland
- parch-hypr
- kvantum
- qt5ct
- sddm
- swaybg
- waybar
- xdg-desktop-portal-hyprland
- grimblast-git
- slurp
- mako
- wob
- pamixer
- rofi
- rofi-emoji
- wofi
- wlogout
- swappy
- wl-clipboard
- polkit-kde-agent
- bemenu
- bemenu-wayland
- xorg-xwayland
- capitaine-cursors
- kvantum-theme-nordic-git
- cachyos-nord-gtk-theme-git
- name: "LXDE-Desktop"
description: "The Lightweight Desktop Environment."
hidden: false
selected: false
critical: true
packages:
- celluloid
- file-roller
- galculator
- gnome-screenshot
- gpicview
- gvfs
- gvfs-afc
- gvfs-gphoto2
- gvfs-mtp
- gvfs-nfs
- gvfs-smb
- lxappearance-gtk3
- obconf
- lxde-common
- lxde-icon-theme
- lxhotkey-gtk3
- lxinput-gtk3
- lxlauncher-gtk3
- lxpanel-gtk3
- lxrandr-gtk3
- lxsession-gtk3
- lxtask-gtk3
- lxterminal
- lightdm
- lightdm-slick-greeter
- notification-daemon
- openbox
- pcmanfm-gtk3
- lxmusic
- network-manager-applet
- xdg-user-dirs-gtk
- xed
- name: "LXQT-Desktop"
description: "The Lightweight Qt Desktop Environment."
hidden: false
selected: false
critical: true
packages:
- audiocd-kio
- baka-mplayer
- breeze
- breeze-gtk
- featherpad
- gvfs
- gvfs-mtp
- kio-fuse
- libstatgrab
- libsysstat
- lm_sensors
- lxqt
- lxqt-archiver
- network-manager-applet
- oxygen-icons
- pavucontrol-qt
- print-manager
- qt5-translations
- sddm
- xdg-utils
- xscreensaver
- xsettingsd
- name: "MATE-Desktop"
description: "MATE Desktop - the continuation of GNOME 2"
hidden: false
selected: false
critical: true
packages:
- celluloid
- gvfs
- gvfs-afc
- gvfs-gphoto2
- gvfs-mtp
- gvfs-nfs
- gvfs-smb
- lightdm
- lightdm-slick-greeter
- mate
- mate-extra
- network-manager-applet
- xdg-user-dirs-gtk
- name: "Openbox"
description: "Openbox is a highly configurable, floating window manager with extensive standards support."
hidden: false
selected: false
critical: true
packages:
- obconf
- libwnck3
- acpi
- arandr
- archlinux-xdg-menu
- dex
- dmenu
- dunst
- feh
- gtk-engine-murrine
- gvfs
- gvfs-afc
- gvfs-gphoto2
- gvfs-mtp
- gvfs-nfs
- gvfs-smb
- jgmenu
- jq
- lightdm
- lightdm-slick-greeter
- lxappearance-gtk3
- mpv
- network-manager-applet
- nitrogen
- obconf
- openbox
- pasystray
- picom
- polkit-gnome
- rofi
- scrot
- slock
- sysstat
- thunar
- thunar-archive-plugin
- thunar-media-tags-plugin
- thunar-volman
- tint2
- ttf-nerd-fonts-symbols
- tumbler
- xbindkeys
- xcursor-neutral
- xdg-user-dirs-gtk
- xed
- xfce4-terminal
- name: "Qtile"
description: "Qtile is a X11 window manager that is configured with the Python programming language."
hidden: false
selected: false
critical: true
packages:
- ttf-nerd-fonts-symbols
- qtile
- ttf-cascadia-code
- wired
- rofi
- thunar
- polkit-gnome
- qt5ct
- noto-fonts
- flameshot
- gnome-themes-extra
- ttf-jetbrains-mono
- ttf-font-awesome
- picom
- ly
- name: "Sway"
description: "Sway is a tiling Wayland compositor and a drop-in replacement for the i3 window manager for X11. It works with your existing i3 configuration and supports most of i3's features, plus a few extras."
hidden: false
selected: false
critical: true
packages:
- parch-sway
- sway
- waybar
- wl-clipboard
- egl-wayland
- wayland-protocols
- wofi
- foot
- wmenu
- ly
- xorg-xwayland
- xdg-desktop-portal
- xdg-desktop-portal-wlr
- name: "UKUI"
description: "It is a lightweight desktop environment, which consumes few resources and works with older computers. It has been developed with GTK and Qt technologies. Its visual appearance is similar to Windows 7, making it easier for new users of Linux."
hidden: false
selected: false
critical: true
packages:
- sddm
- thunar
- thunar-archive-plugin
- thunar-volman
- peony
- xfce4-terminal
- qt5-ukui-platformtheme
- ukui-biometric-auth
- ukui-control-center
- ukui-interface
- ukui-media
- ukui-menu
- ukui-menus
- ukui-notebook
- ukui-panel
- ukui-power-manager
- ukui-screensaver
- ukui-session-manager
- ukui-settings-daemon
- ukui-sidebar
- ukui-system-monitor
- ukui-themes
- ukui-wallpapers
- ukui-window-switch
- mate-terminal
- mate-system-monitor
- mate-control-center
- redshift
- gnome-screenshot
- accountsservice
- gvfs
- qt5-quickcontrols
- name: "Wayfire"
description: "Wayfire is a wayland compositor based on wlroots. It aims to create a customizable, extendable and lightweight environment without sacrificing its appearance."
hidden: false
selected: false
expanded: false
critical: true
packages:
- wayfire-desktop
- egl-wayland
- wayland-protocols
- wofi
- ly
- xorg-xhost
- xorg-xwayland
- name: "CPU specific Microcode update packages"
description: "Microcode update image for AMD and Intel CPU"
hidden: false
selected: true
critical: false
packages:
- amd-ucode
- intel-ucode
- name: "Firefox and language package"
description: "Add firefox and language pack if possible"
hidden: false
selected: false
critical: false
packages:
- firefox
- firefox-i18n-$LOCALE
- name: "Printing-Support"
description: "Support for printing (Cups)"
hidden: false
selected: false
critical: true
packages:
- cups
- cups-filters
- cups-pdf
- foomatic-db
- foomatic-db-engine
- foomatic-db-gutenprint-ppds
- foomatic-db-nonfree
- foomatic-db-nonfree-ppds
- foomatic-db-ppds
- ghostscript
- gsfonts
- gutenprint
- splix
- system-config-printer
- name: "Support for HP Printer/Scanner"
description: "Extra Packages for HP Printer/Scanner"
hidden: false
selected: false
critical: true
packages:
- hplip
- python-pyqt5
- python-reportlab
- xsane
- cups
- cups-filters
- cups-pdf
- name: "Accessibility Tools"
description: "Screen reader and mouse tweaks (impaired vision)"
hidden: false
selected: false
critical: true
packages:
- espeak-ng
- mousetweaks
- orca

View file

@ -0,0 +1,43 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# The *notesqml* module can be used to display a QML file
# as an installer step. This is most useful for release-notes
# and similar somewhat-static content, but if you want to you
# can put SameGame in there as well.
#
# While the module compiles a QML file into a QRC for inclusion
# into the shared library, normal use will configure it with
# an external file, either from Calamares AppData directory or
# from the branding directory.
#
# ---
#
# QML modules can search for the QML inside the Qt resources
# (QRC) which are compiled into the module, or in the branding
# setup for Calamares, (or both of them, with branding taking
# precedence). This allows the module to ship a default UI and
# branding to optionally introduce a replacement file.
#
# Generally, leave the search method set to "both" because if
# you don't want to brand the UI, just don't ship a branding
# QML file for it.
#
# To support instanced QML modules, searches in the branding
# directory look for the full notesqml@instanceid name as well.
---
# Search mode. Valid values are "both", "qrc" and "branding"
qmlSearch: both
# Name of the QML file. If not set, uses the name of the instance
# of the module (e.g. if you list this module in `settings.conf`
# in the *instances* section, you get *id*, otherwise it would
# normally be "notesqml").
# qmlFilename: notesqml
# This is the name of the module in the progress-tree / sidebar
# in Calamares. To support multiple instances of the QML module,
# the name is configurable and translatable here.
qmlLabel:
notes: "Release Notes"
notes[nl]: "Opmerkingen"

View file

@ -0,0 +1,16 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# This is an OEM setup (phase-0) configuration file.
---
# The batch-identifier is written to /var/log/installer/oem-id.
# This value is put into the text box as the **suggested**
# OEM ID. If ${DATE} is included in the identifier, then
# that is replaced by the current date in yyyy-MM-dd (ISO) format.
#
# It is ok for the identifier to be empty.
#
# The identifier is written to the file as UTF-8 (this will be no
# different from ASCII, for most inputs) and followed by a newline.
# If the identifier is empty, only a newline is written.
batch-identifier: neon-${DATE}

View file

@ -0,0 +1,214 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configuration for the low-density software chooser
---
mode: required
method: netinstall-select
labels:
step: "Desktop"
step[de]: "Desktop"
step[fi]: "Työpöytä"
step[fr]: "Bureau"
step[it]: "Desktop"
step[es]: "Escritorio"
step[ru]: "Рабочий стол"
step[zh_CN]: "桌面"
step[ja]: "デスクトップ"
step[sv]: "Skrivbord"
step[pt_BR]: "Ambiente de Trabalho"
default: KDE-Desktop
items:
- id: ""
# packages: [] # This item installs no packages
name: "No Desktop"
name[nl]: "Geen desktop"
name[de]: "Kein Desktop"
description: "Please pick a desktop environment from the list. If you don't want to install a desktop, that's fine, your system will start up in text-only mode and you can install a desktop environment later."
description[de]: "Bitte wählen Sie eine Desktop-Umgebung aus der Liste. Wenn Sie keine Desktop-Umgebung installieren möchten, ist das in Ordnung. Ihr System wird im Nur-Text-Modus gestartet und Sie können später eine Desktop-Umgebung installieren."
description[nl]: "Kies eventueel een desktop-omgeving uit deze lijst. Als u geen desktop-omgeving wenst te gebruiken, kies er dan geen. In dat geval start het systeem straks op in tekst-modus en kunt u later alsnog een desktop-omgeving installeren."
- id: KDE-Desktop
name: "Plasma Desktop"
description: "Use Plasma to surf the web; keep in touch with colleagues, friends and family; manage your files, enjoy music and videos; and get creative and productive at work. Do it all in a beautiful environment that adapts to your needs, and with the safety, privacy-protection and peace of mind that the best Free Open Source Software has to offer."
description[de]: "Nutze Plasma, um im Internet zu surfen, mit Kollegen, Freunden und Familie in Kontakt zu bleiben, Verwalte deine Dateien, genieße Musik und Video und sei kreativ und produktiv bei der Arbeit. Tu das alles in einer schönen Umgebung, die sich Deinen Bedürfnissen anpasst, und mit der Sicherheit, dem Schutz der Privatsphäre und dem Seelenfrieden, den die beste Freie Open-Source-Software zu bieten hat."
description[fr]: "Utilisez Plasma pour surfer sur le web, rester en contact avec ses collègues, ses amis et sa famille, manager ses fichiers, profiter de sa musique et de ses vidéos et être créatif et productif au travail. Faites tout cela dans un bel environnement sadaptant à vos besoins et vous offrant une meilleure sécurité, la protection de votre vie privé et une tranquillité desprit."
description[it]: "Usa Plasma per navigare sul web; tieniti in contatto con colleghi, amici e famiglia; gestisci i tuoi file, goditi musica e video; e diventa creativo e produttivo al lavoro. Fai tutto questo in un bellissimo ambiente che si adatta alle tue esigenze, e con la sicurezza, la protezione della privacy e la tranquillità che il miglior software libero open source ha da offrire."
description[es]: "Use Plasma para navegar por la web; manténgase en contacto con sus colegas, amigos y familiares; administre sus archivos, disfrute de música y vídeos; y sea creativo y productivo durante el trabajo. Haga todo esto en un agradable entorno que se adapta a sus necesidades con seguridad, protección de su privacidad y con la tranquilidad que le proporciona el mejor software libre de código abierto."
description[ru]: "Используйте Plasma для серфинга в Интернете; поддерживайте связь с коллегами, друзьями и семьей; управляйте своими файлами, наслаждайтесь музыкой и видео; и проявляйте творческий подход и продуктивность на работе. Делайте все это в прекрасной среде, которая адаптируется к вашим потребностям, и с безопасностью, защитой конфиденциальности и спокойствием, которые может предложить лучшее бесплатное программное обеспечение с открытым исходным кодом."
description[zh_CN]: "您可以使用 Plasma 桌面环境轻松浏览网页,与同事、朋友和家人保持联系,管理文件,欣赏音乐和视频,并在工作中发挥创意和提高效率。 Plasma 是自由开源软件界的明星产品,它的界面美观、安全可靠、尊重隐私且可按需定制,让您可以安心愉悦地每日使用。"
description[ja]: "Plasma を使ってネットサーフィンをしたり、同僚や友人、家族と連絡を取ったり、ファイルを管理したり、音楽やビデオを楽しんだり、仕事で創造性や生産性を発揮することができます。そのすべてを、あなたのニーズに合わせた美しい環境と、最高のフリー・オープンソース・ソフトウェアが提供する安全性、プライバシー保護、安心感の中で行うことができるのです。"
- id: GNOME-Desktop
name: "GNOME"
description: "Get things done with ease, comfort, and control. An easy and elegant way to use your computer, GNOME is designed to help you have the best possible computing experience."
description[de]: "Erledigen Sie Ihre Aufgaben mit Leichtigkeit, Komfort und Kontrolle. GNOME ist eine einfache und elegante Art und Weise, Ihren Computer zu benutzen, und wurde entwickelt, um Ihnen das bestmögliche Computererlebnis zu bieten."
description[fr]: "Réalisez vos tâches avec facilité, confort et contrôle. Une façon simple et élégante d'utiliser votre ordinateur, GNOME est conçu pour vous aider à avoir la meilleure expérience informatique possible."
description[it]: "Fai le cose con facilità, comodità e controllo. Un modo semplice ed elegante di usare il tuo computer, GNOME è progettato per aiutarti ad avere la migliore esperienza informatica possibile."
description[es]: "Haga las cosas con facilidad, comodidad y control. Una forma fácil y elegante de usar su ordenador, GNOME está diseñado para ayudarle a tener la mejor experiencia informática posible."
description[ru]: "Делайте все с легкостью, комфортом и контролем. Простой и элегантный способ использования компьютера, GNOME создан для того, чтобы помочь вам получить наилучшие впечатления от работы на компьютере."
description[zh_CN]: "以轻松、舒适和控制的方式完成事情。作为使用计算机的一种简单而优雅的方式GNOME被设计用来帮助您获得最佳的计算体验。"
description[ja]: "簡単で、快適で、コントロールしやすい。コンピュータを使うための簡単でエレガントな方法である GNOME は、あなたが可能な限り最高のコンピュータ体験をできるように設計されています。"
- id: Xfce4
name: "Xfce4"
description: "Xfce is a lightweight desktop environment for UNIX-like operating systems. It aims to be fast and low on system resources, while still being visually appealing and user friendly."
description[de]: "Xfce ist eine leichtgewichtige Arbeitsumgebung für UNIX-ähnliche Betriebssysteme. Ziel ist es, schnell und ressourcenschonend, aber auch optisch ansprechend und benutzerfreundlich zu sein."
description[fr]: "Xfce est un environnement de bureau léger pour les systèmes dexploitation de type UNIX. Il vise à être rapide, peu gourmand en ressources système, tout en étant visuellement attrayant et convivial."
description[it]: "Xfce è un ambiente desktop leggero pensato per i sistemi operativi di tipo UNIX. Si prefigge di essere veloce e leggero, pur mantenendo usabilità e aspetto gradevole."
description[es]: "Xfce es un entorno de escritorio ligero para sistemas operativos tipo UNIX. Su objetivo es ser rápido y consumir pocos recursos del sistema, sin dejar de ser visualmente atractivo y fácil de usar."
description[ru]: "Xfce - это облегченная среда рабочего стола для UNIX-подобных операционных систем. Он нацелен на то, чтобы быть быстрым и экономить системные ресурсы, оставаясь при этом визуально привлекательным и удобным для пользователя."
description[zh_CN]: "Xfce 是类 UNIX 操作系统上的轻量级桌面环境。虽然它致力于快速与低资源消耗,但仍然具有视觉吸引力且易于使用。"
description[ja]: "Xfce は UNIX ライクなオペレーティングシステム用の軽量デスクトップ環境です。魅力的なヴィジュアルと使い勝手の良さを保ちつつ、高速でシステムリソースの使用が少ないことを目指しています。"
- id: bspwm
name: "bspwm"
description: "bspwm is a tiling window manager that represents windows as the leaves of a full binary tree. bspwm supports multiple monitors and is configured and controlled through messages."
description[de]: "bspwm ist ein Fenstermanager mit Kacheln, der Fenster als Blätter eines vollständigen Binärbaums darstellt. bspwm unterstützt mehrere Monitore und wird über Nachrichten konfiguriert und gesteuert."
description[fr]: "bspwm est un gestionnaire de fenêtres en mosaïque qui représente les fenêtres comme les feuilles d'un arbre binaire complet. bspwm prend en charge plusieurs moniteurs et est configuré et contrôlé via des messages."
description[it]: "bspwm è un gestore di finestre di piastrellatura che rappresenta le finestre come le foglie di un albero binario completo. bspwm supporta più monitor ed è configurato e controllato tramite messaggi."
description[es]: "bspwm es un administrador de ventanas en mosaico que representa las ventanas como las hojas de un árbol binario completo. bspwm admite varios monitores y se configura y controla mediante mensajes."
description[ru]: "bspwm - это тайлинговый оконный менеджер, который представляет окна как листья полного двоичного дерева. bspwm поддерживает несколько мониторов и настраивается и управляется с помощью сообщений."
description[zh_CN]: "bspwm 是一个平铺窗口管理器,它将窗口表示为完整二叉树的叶子。 bspwm 支持多个监视器,并通过消息进行配置和控制。"
description[ja]: "bspwmは、ウィンドウを完全な二分木の葉として表すタイル型ウィンドウマネージャーです。 bspwmは複数のモニターをサポートし、メッセージを介して構成および制御されます。"
- id: Budgie-Desktop
name: "Budgie"
description: "Budgie Desktop is a feature-rich, modern desktop. Budgie's design emphasizes simplicity, minimalism, and elegance."
description[de]: "Budgie Desktop ist ein funktionsreicher, moderner Desktop. Das Design von Budgie setzt auf Einfachheit, Minimalismus und Eleganz."
description[fi]: "Budgie Desktop on monipuolinen, moderni työpöytä. Budgien suunnittelussa korostuu yksinkertaisuus, minimalismi ja tyylikkyys."
description[fr]: "Budgie Desktop est un bureau moderne et riche en fonctionnalités. Le design de Budgie met l'accent sur la simplicité, le minimalisme et l'élégance."
description[it]: "Budgie Desktop è un desktop moderno e ricco di funzionalità. Il design di Budgie enfatizza la semplicità, il minimalismo e l'eleganza."
description[es]: "Budgie Desktop es un escritorio moderno y rico en funciones. El diseño de Budgie hace hincapié en la simplicidad, el minimalismo y la elegancia."
description[ru]: "Budgie Desktop - это многофункциональный, современный рабочий стол. Дизайн Budgie подчеркивает простоту, минимализм и элегантность."
description[zh_CN]: "Budgie桌面是一个功能丰富的现代桌面。Budgie的设计强调简单、简约和优雅。"
description[ja]: "Budgie Desktopは、機能豊富でモダンなデスクトップです。Budgieのデザインは、シンプルさ、ミニマリズム、そしてエレガンスを強調しています"
description[sv]: "Budgie Skrivbordet är ett funktionsrikt, modernert Skrivbord. Budgies design betonar enkelhet, minimalism och elegans."
description[pt_BR]: "Budgie Desktop é um ambiente moderno rico em funcionalidade. O design do Budgie enfatiza a simplicidade, o minimalismo e a elegância."
- id: Cinnamon
name: "Cinnamon"
description: "Cinnamon is a Linux desktop which provides advanced innovative features and a traditional user experience."
description[de]: "Cinnamon ist ein Linux-Desktop, der fortschrittliche innovative Funktionen und ein traditionelles Benutzererlebnis bietet."
description[fr]: "Cinnamon est un bureau Linux qui offre des fonctionnalités innovantes et une expérience utilisateur traditionnelle."
description[it]: "Cinnamon è un desktop Linux che offre funzionalità innovative avanzate e un'esperienza d'uso tradizionale."
description[es]: "Cinnamon es un escritorio Linux que ofrece funciones innovadoras avanzadas y una experiencia de usuario tradicional."
description[ru]: "Cinnamon - это рабочий стол Linux, который предоставляет передовые инновационные функции и традиционный пользовательский опыт."
description[zh_CN]: "Cinnamon是Linux桌面提供先进的创新功能和传统的用户体验。"
description[ja]: "Cinnamonは、先進的な革新的機能と伝統的なユーザーエクスペリエンスを提供するLinuxデスクトップです。"
- id: CuteFish
name: "CuteFish"
description: "CuteFish An Elegant, Beautiful and Easy-to-Use Linux Desktop."
description[de]: "CuteFish - Ein eleganter, schöner und einfach zu bedienender Linux-Desktop."
description[ru]: "CuteFish Элегантный, красивый и простой в использовании рабочий стол Linux."
- id: i3-Window-Manager
name: "i3 Window Manager"
description: "i3 is a tiling window manager designed for X11, inspired by wmii and written in C. It supports tiling, stacking, and tabbing layouts, which it handles dynamically. Configuration is achieved via plain text file and extending i3 is possible using its Unix domain socket and JSON based IPC interface from many programming languages."
description[de]: "i3 ist ein Tiling Window Manager für X11, inspiriert von wmii und geschrieben in C. Er unterstützt Tiling-, Stacking- und Tabbing-Layouts, die er dynamisch verarbeitet. Die Konfiguration erfolgt über eine einfache Textdatei, und die Erweiterung von i3 ist über den Unix-Domain-Socket und die JSON-basierte IPC-Schnittstelle von vielen Programmiersprachen aus möglich."
description[fr]: "i3 est un gestionnaire de fenêtres à tuiles conçu pour X11, inspiré de wmii et écrit en C. Il supporte les dispositions de tuiles, d'empilement et de tabulation, qu'il gère dynamiquement. La configuration est réalisée via un fichier texte simple et l'extension de i3 est possible en utilisant son socket du domaine Unix et son interface IPC basée sur JSON à partir de nombreux langages de programmation."
description[it]: "i3 è un gestore di finestre in tiling progettato per X11, ispirato da wmii e scritto in C. Supporta layout in tiling, stacking e tabbing, che gestisce dinamicamente. La configurazione si ottiene tramite file di testo semplice e l'estensione di i3 è possibile utilizzando il suo socket di dominio Unix e l'interfaccia IPC basata su JSON da molti linguaggi di programmazione."
description[es]: "i3 es un gestor de ventanas en mosaico diseñado para X11, inspirado en wmii y escrito en C. Soporta diseños de mosaico, apilamiento y tabulación, que maneja dinámicamente. La configuración se logra a través de un archivo de texto plano y es posible extender i3 utilizando su socket de dominio Unix y la interfaz IPC basada en JSON desde muchos lenguajes de programación."
description[ru]: "i3 - это тайлинговый оконный менеджер, разработанный для X11, вдохновленный wmii и написанный на C. Он поддерживает компоновку листов, укладку и табуляцию макетов, которые он обрабатывает динамически. Конфигурация достигается с помощью обычного текстового файла, а расширение i3 возможно с помощью его сокета домена Unix и интерфейса IPC на основе JSON со многих языков программирования."
description[zh_CN]: "i3是一个为X11设计的平铺式窗口管理器受wmii的启发用C语言编写。它支持平铺、堆叠和标签布局并动态处理。配置是通过纯文本文件实现的扩展i3可以使用它的Unix域套接字和基于JSON的IPC接口从许多编程语言。"
description[ja]: "i3 は X11 用に設計されたタイル型ウィンドウマネージャで、wmii に触発されて C で書かれています。 タイル型、スタック型、タブ型のレイアウトをサポートし、これらは動的に処理されます。設定はプレーンテキストファイルで行い、i3 の拡張は Unix ドメインソケットと JSON ベースの IPC インターフェースを用いて多くのプログラミング言語から行うことができます。"
- id: Hyprland
name: "Hyprland"
description: "Hyprland is a highly customizable dynamic tiling Wayland compositor that doesn't sacrifice on its looks."
description[de]: "Hyprland ist ein hochgradig anpassbarer dynamischer Wayland-Kompositor, der keine Abstriche beim Aussehen macht."
description[fr]: "Hyprland est un compositeur Wayland à tuiles dynamiques hautement personnalisable qui ne sacrifie pas son apparence."
description[it]: "Hyprland è un compositor Wayland a piastrelle dinamiche altamente personalizzabile che non rinuncia al suo aspetto."
description[es]: "Hyprland es un compositor Wayland de mosaico dinámico altamente personalizable que no sacrifica su aspecto."
description[ru]: "Hyprland - это очень настраиваемый динамический композитор Wayland, который не жертвует своим внешним видом."
description[zh_CN]: "Hyprland是一个高度可定制的动态平铺Wayland合成器并不牺牲其外观。"
description[ja]: "Hyprlandは、見た目を犠牲にすることなく、高度にカスタマイズ可能な動的タイリングのWaylandコンポジターです。"
- id: LXDE-Desktop
name: "LXDE"
description: "LXDE, which stands for Lightweight X11 Desktop Environment, is a desktop environment which is lightweight and fast. It is designed to be user friendly and slim, while keeping the resource usage low. LXDE uses less RAM and less CPU while being a feature rich desktop environment. Unlike other tightly integrated desktops LXDE strives to be modular, so each component can be used independently with few dependencies."
description[de]: "LXDE, die Abkürzung für Lightweight X11 Desktop Environment, ist eine leichtgewichtige und schnelle Desktop-Umgebung mit einem benutzerfreundlichen, schlanken Design und geringem Ressourcenverbrauch. Mit einem benutzerfreundlichen, schlanken Design und einer geringen Ressourcennutzung ist LXDE eine funktionsreiche Desktop-Umgebung, die weniger RAM und CPU benötigt. Im Gegensatz zu anderen fest integrierten Desktops ist LXDE modular aufgebaut, so dass jede Komponente unabhängig und mit wenig oder gar keinen Abhängigkeiten verwendet werden kann."
description[fi]: "LXDE (lyhenne sanoista Lightweight X11 Desktop Environment) on kevyt ja nopea työpöytäympäristö. Se on suunniteltu käyttäjäystävälliseksi ja ohueksi pitäen samalla resurssien käytön alhaisena. LXDE käyttää vähemmän RAM-muistia ja prosessoria, vaikka se on ominaisuuksiltaan rikas työpöytäympäristö. Toisin kuin muut tiukasti integroidut työpöydät, LXDE pyrkii olemaan modulaarinen, joten jokaista komponenttia voidaan käyttää itsenäisesti ja ilman suuria riippuvuuksia."
description[fr]: "LXDE, qui signifie Lightweight X11 Desktop Environment (environnement de bureau X11 léger), est un environnement de bureau léger et rapide, au design fin et convivial, qui utilise peu de ressources. Avec un design convivial et fin et une faible utilisation des ressources, LXDE est un environnement de bureau riche en fonctionnalités qui utilise moins de RAM et de CPU. Contrairement à d'autres environnements de bureau étroitement intégrés, LXDE se veut modulaire, de sorte que chaque composant peut être utilisé indépendamment avec peu ou pas de dépendance."
description[it]: "LXDE, che sta per Lightweight X11 Desktop Environment, è un ambiente desktop leggero e veloce con un design snello e user-friendly e un basso utilizzo delle risorse. Con un design user-friendly e sottile e un basso utilizzo di risorse, LXDE è un ambiente desktop ricco di funzionalità che utilizza meno RAM e CPU. A differenza di altri desktop strettamente integrati, LXDE mira ad essere modulare, così ogni componente può essere usato indipendentemente con poca o nessuna dipendenza."
description[es]: "LXDE, que significa Lightweight X11 Desktop Environment, es un entorno de escritorio ligero y rápido con un diseño delgado y fácil de usar y un bajo uso de recursos. Con un diseño delgado y fácil de usar y un bajo uso de recursos, LXDE es un entorno de escritorio rico en funciones que utiliza menos RAM y CPU. A diferencia de otros escritorios estrechamente integrados, LXDE pretende ser modular, por lo que cada componente puede ser utilizado de forma independiente con poca o ninguna dependencia."
description[ru]: "LXDE, что означает Lightweight X11 Desktop Environment, - это легкая и быстрая среда рабочего стола с удобным, тонким дизайном и низким потреблением ресурсов. Благодаря этому, LXDE - это многофункциональная среда рабочего стола, которая использует меньше оперативной памяти и процессора. В отличие от других тесно интегрированных рабочих столов, LXDE стремится быть модульным, поэтому каждый компонент может использоваться независимо, практически не завися от других."
description[zh_CN]: "LXDE是轻量级X11桌面环境的缩写是一个轻量级和快速的桌面环境具有用户友好、纤细的设计和低资源使用率。LXDE具有用户友好、纤细的设计和低资源占用率是一个功能丰富的桌面环境使用较少的内存和CPU。与其他紧密集成的桌面不同LXDE旨在实现模块化因此每个组件都可以独立使用几乎没有依赖性。"
description[ja]: "LXDEは、Lightweight X11 Desktop Environmentの略で、ユーザーフレンドリーでスリムなデザインと低リソース使用量を特徴とする軽量で高速なデスクトップ環境である。ユーザーフレンドリーでスリムなデザインと低リソース使用量を誇るLXDEは、機能豊富なデスクトップ環境でありながら、RAMやCPUの使用量が少なくて済みます。他の緊密に統合されたデスクトップとは異なり、LXDEはモジュール化を目指しているため、各コンポーネントはほとんど依存せず独立して使用することができます。"
description[sv]: "LXDE, som står för lättviktig X11 skrivbordsmiljö, är en skrivbordsmiljö som är lättviktig och snabb. Den är designad att vara användarvänlig och smal, samtidigt som resursanvändningen hålls låg. LXDE använder mindre RAM och mindre CPU samtidigt som det är en funktionsrik skrivbordsmiljö. Till skillnad från andra tätt integrerade stationära datorer strävar LXDE efter att vara modulärt, så varje komponent kan användas oberoende med få beroenden."
description[pt_BR]: "LXDE, que significa Lightweight X11 Desktop Environment (Ambiente de Trabalho Leve para X11), é um ambiente de trabalho que é leve e rápido. Ele foi projetado para ser fácil de usar e rápido, enquanto mantém o uso de recursos baixo. O LXDE usa menos memória RAM e menos CPU, ao mesmo tempo em que é um ambiente de trabalho rico em funcionalidade. Ao contrário de outros ambientes de trabalho firmemente integrados, o LXDE se esforça para ser modular, de modo que cada componente pode ser usado independentemente com poucas dependências."
- id: LXQT-Desktop
name: "LXQT"
description: "LXQt is a lightweight Qt desktop environment. It will not get in your way. It will not hang or slow down your system. It is focused on being a classic desktop with a modern look and feel. "
description[de]: "LXQt ist eine leichtgewichtige Qt-Desktop-Umgebung. Die nicht im Weg stehen wird. Es wird nicht stocken oder Dein System verlangsamen. Es ist darauf ausgerichtet, ein klassischer Desktop mit einem modernen Look and Feel zu sein."
description[fr]: "LXQt est un environnement de bureau Qt léger. Il ne vous gênera pas. Il ne bloquera pas et ne ralentira pas votre système. Il se concentre sur un bureau classique avec un look et une sensation modernes."
description[it]: "LXQt è un ambiente desktop Qt leggero. Non vi darà fastidio. Non si blocca o rallenta il vostro sistema. È focalizzato sull'essere un desktop classico con un look and feel moderno."
description[es]: "LXQt es un entorno de escritorio Qt ligero. No te estorbará. No se colgará ni ralentizará su sistema. Se centra en ser un escritorio clásico con un aspecto moderno."
description[ru]: "LXQt - это легкая среда рабочего стола Qt. Она не будет мешать вам. Она не будет зависать или замедлять работу вашей системы. Она ориентирована на то, чтобы быть классическим рабочим столом с современным внешним видом и ощущениями."
description[zh_CN]: "LXQt是一个轻量级的Qt桌面环境。它不会妨碍您的工作。它不会挂起或减慢您的系统。它专注于成为一个具有现代感的经典桌面。"
description[ja]: "LXQtは、軽量のQtデスクトップ環境です。邪魔になることはありません。ハングアップしたり、システムが遅くなったりすることはありません。モダンなルックフィールでクラシックなデスクトップであることに重点を置いています。"
- id: MATE-Desktop
name: "Mate"
description: "The MATE Desktop Environment is the continuation of GNOME 2. It provides an intuitive and attractive desktop environment using traditional metaphors for Linux and other Unix-like operating systems. MATE is under active development to add support for new technologies while preserving a traditional desktop experience.."
description[de]: "Die MATE-Arbeitsumgebung ist die Fortführung von GNOME 2. Sie bietet für Linux und andere Unix-artige Betriebssysteme eine intuitive und attraktive Arbeitsumgebung, die sich der traditionell verwendeten Metaphern bedient."
description[fi]: "MATE-työpöytäympäristö on jatkoa GNOME 2:lle. Se tarjoaa intuitiivisen ja houkuttelevan työpöytäympäristön, jossa käytetään Linuxin ja muiden Unixin kaltaisten käyttöjärjestelmien perinteisiä metaforia. MATEa kehitetään aktiivisesti, jotta se tukisi uusia tekniikoita ja säilyttäisi samalla perinteisen työpöytäkokemuksen."
description[fr]: "MATE est un fork de GNOME 2. Il fournit un environnement de bureau attractif et intuitif en se basant sur les métaphores traditionnelles pour GNU/Linux et d'autres systèmes d'exploitation similaires à Unix."
description[it]: "MATE è un derivato di GNOME 2. Esso fornisce un ambiente desktop intuitivo ed accattivante utilizzando le metafore tradizionali per Linux e gli altri sistemi operativi Unix-like."
description[es]: "El entorno de escritorio MATE es la continuación de GNOME 2. Provee un entorno intuitivo y atractivo usando las metáforas tradicionales de Linux y otros sistemas operativos estilo Unix."
description[ru]: "Среда рабочего стола MATE является продолжением GNOME 2. Она обеспечивает интуитивно понятную и привлекательную среду рабочего стола, используя традиционные метафоры для Linux и других Unix-подобных операционных систем."
description[zh_CN]: "MATE 桌面环境是 GNOME 2 的延续。通过传统的隐喻设计MATE 为 Linux 或其他类 Unix 操作系统提供直观且吸引人的桌面环境。"
description[ja]: "MATE デスクトップ環境は GNOME 2 開発の延長線上にあります。Linux や他の Unix ライクな OS 向けの伝統的な手法を用いた、直感的で魅力的なデスクトップ環境を提供します。"
description[sv]: "MATE Skrivbordsmiljö är en fortsättningen på GNOME 2. Den ger en intuitiv och attraktiv skrivbordsmiljö med traditionella metaforer för Linux och andra Unix-liknande operativsystem. MATE är under aktiv utveckling för att lägga till stöd för ny teknik samtidigt som en traditionell skrivbordsupplevelse bevaras.."
description[pt_BR]: "O MATE Desktop Environment é a continuação do GNOME 2. Ele fornece um ambiente de trabalho intuitivo e atraente usando convenções tradicionais de Linux e outros sistemas operacionais do tipo Unix"
- id: Openbox
name: "Openbox"
description: "Openbox is a highly configurable, floating window manager with extensive standards support."
description[de]: "Openbox ist ein hochgradig konfigurierbarer, floating Windowmanager mit umfassender Unterstützung von Standards."
description[fr]: "Openbox est un gestionnaire de fenêtres flottantes hautement configurable avec une prise en charge étendue des normes."
description[it]: "Openbox è un gestore di finestre mobile altamente configurabile con un ampio supporto di standard."
description[es]: "Openbox es un administrador de ventanas flotantes altamente configurable con un amplio soporte de estándares."
description[ru]: "Openbox - это легко настраиваемый диспетчер плавающих окон с обширной поддержкой стандартов."
description[zh_CN]: "Openbox 是一個高度可配置的浮動窗口管理器,具有廣泛的標準支持。"
description[ja]: "Openboxは、高度に構成可能なフローティングウィンドウマネージャーであり、広範な標準をサポートしています。"
- id: Qtile
name: "Qtile"
description: "Qtile is a X11 window manager that is configured with the Python programming language."
description[de]: "Qtile ist ein X11-Fenstermanager, der mit der Programmiersprache Python konfiguriert ist."
description[fr]: "Qtile est un gestionnaire de fenêtres X11 configuré avec le langage de programmation Python."
description[it]: "Qtile è un gestore di finestre X11 configurato con il linguaggio di programmazione Python."
description[es]: "Qtile es un gestor de ventanas X11 que se configura con el lenguaje de programación Python."
description[ru]: "Qtile - это оконный менеджер X11, настроенный на язык программирования Python."
description[zh_CN]: "Qtile是一个用Python编程语言配置的X11窗口管理器。"
description[ja]: "Qtileは、プログラミング言語Pythonで構成されるX11ウィンドウマネージャです。"
- id: Sway
name: "Sway"
description: "Sway is a tiling Wayland compositor and a drop-in replacement for the i3 window manager for X11. It works with your existing i3 configuration and supports most of i3's features, plus a few extras."
description[de]: "Sway ist ein kachelnder Wayland-Compositor und ein Drop-in-Ersatz für den i3-Fenstermanager für X11. Er arbeitet mit Ihrer bestehenden i3-Konfiguration und unterstützt die meisten Funktionen von i3, plus ein paar Extras."
description[ru]: "Sway - это тайлинговый Wayland композитор и встроенная замена оконному менеджеру i3 для X11. Он работает с вашей существующей конфигурацией i3 и поддерживает большинство функций i3, а также несколько дополнительных функций."
- id: UKUI
name: "UKUI"
description: "UKUI is a lightweight desktop environment, which consumes few resources and works with older computers. It has been developed with GTK and Qt technologies. Its visual appearance is similar to Windows 7, making it easier for new users of Linux."
description[de]: "UKUI ist eine leichtgewichtige Desktop-Umgebung, die wenig Ressourcen verbraucht und mit älteren Computern funktioniert. Sie wurde mit den Technologien GTK und Qt entwickelt. Ihr visuelles Erscheinungsbild ähnelt dem von Windows 7, was den Einstieg in Linux erleichtert."
description[fr]: "UKUI est un environnement de bureau léger, qui consomme peu de ressources et fonctionne avec les ordinateurs plus anciens. Il a été développé avec les technologies GTK et Qt. Son aspect visuel est similaire à celui de Windows 7, ce qui le rend plus facile pour les nouveaux utilisateurs de Linux."
description[it]: "UKUI è un ambiente desktop leggero, che consuma poche risorse e funziona anche con i computer più vecchi. È stato sviluppato con le tecnologie GTK e Qt. Il suo aspetto visivo è simile a quello di Windows 7, il che lo rende più facile per i nuovi utenti di Linux."
description[es]: "UKUI es un entorno de escritorio ligero, que consume pocos recursos y funciona con ordenadores antiguos. Ha sido desarrollado con tecnologías GTK y Qt. Su aspecto visual es similar al de Windows 7, lo que facilita su uso a los nuevos usuarios de Linux."
description[ru]: "UKUI - это легкая среда рабочего стола, которая потребляет мало ресурсов и работает на старых компьютерах. Она была разработана с использованием технологий GTK и Qt. Визуально она похожа на Windows 7, что делает ее более простой для новых пользователей Linux."
description[zh_CN]: "UKUI是一个轻量级的桌面环境它消耗的资源很少可以在老式电脑上使用。它是用GTK和Qt技术开发的。它的视觉外观与Windows 7相似使Linux的新用户更容易使用。"
description[ja]: "UKUIは軽量なデスクトップ環境であり、リソースをほとんど消費せず、古いコンピュータでも動作する。GTKとQtの技術で開発されています。その外観はWindows 7に似ており、Linuxの新規ユーザーにとって使いやすいものとなっています。"
- id: Wayfire
name: "Wayfire"
description: "Wayfire is a wayland compositor based on wlroots. It aims to create a customizable, extendable and lightweight environment without sacrificing its appearance."
description[de]: "Wayfire ist ein Wayland-Compositor, der auf wlroots basiert. Er zielt darauf ab, eine anpassbare, erweiterbare und leichtgewichtige Umgebung zu schaffen, ohne dabei sein Aussehen zu beeinträchtigen."
description[ru]: "Wayfire - это композитор wayland, основанный на wlroots. Он направлен на создание настраиваемой, расширяемой и легкой среды без ущерба для ее внешнего вида."

View file

@ -0,0 +1,66 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configuration for the low-density software chooser, QML implementation
#
# The example QML implementation uses single-selection, rather than
# a model for the available packages. That makes it simpler: the
# QML itself codes the available options, descriptions and images
# -- after all, this is **low density** selection, so a custom UI
# can make sense for the few choices that need to be made.
#
#
---
# Software installation method:
#
# - "legacy" or "custom" or "contextualprocess"
# When set to "legacy", writes a GlobalStorage value for the choice that
# has been made. The key is *packagechooser_<id>*. The module's
# instance name is used; see the *instances* section of `settings.conf`.
# If there is just one packagechooserq module, and no special instance is set,
# resulting GS key is probably *packagechooser_packagechooserq*.
# (Do note that the prefix of the GS key remains "packagechooser_")
#
# The GS value is a comma-separated list of the IDs of the selected
# packages, or an empty string if none is selected.
#
# With "legacy" installation, you should have a contextualprocess or similar
# module somewhere in the `exec` phase to process the GlobalStorage key
# and actually **do** something for the packages.
#
# - "packages"
# When set to "packages", writes GlobalStorage values suitable for
# consumption by the *packages* module (which should appear later
# in the `exec` section. These package settings will then be handed
# off to whatever package manager is configured there.
#
# There is no need to put this module in the `exec` section. There
# are no jobs that this module provides. You should put **other**
# modules, either *contextualprocess* or *packages* or some custom
# module, in the `exec` section to do the actual work.
#
method: legacy
# Human-visible strings in this module. These are all optional.
# The following translated keys are used:
# - *step*, used in the overall progress view (left-hand pane)
#
# Each key can have a [locale] added to it, which is used as
# the translated string for that locale. For the strings
# associated with the "no-selection" item, see *items*, below
# with the explicit item-*id* "".
#
labels:
step: "Packages"
step[nl]: "Pakketten"
# The *packageChoice* value is used for setting the default selection
# in the QML view; this should match one of the keys used in the QML
# module for package names.
#
# (e.g. the sample QML uses "no_office_suite", "minimal_install" and
# "libreoffice" as possible choices).
#
packageChoice: libreoffice

View file

@ -0,0 +1,15 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# sets pacman options for package handling.
---
backend: pacman
skip_if_no_internet: false
update_db: true
update_system: true
pacman:
num_retries: 6
disable_download_timeout: true
needed_only: true

View file

@ -0,0 +1,78 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
### pacstrap Module
#
# This module installs the base system and then copies files
# into the installation that will be used in the installed system
#
---
# basePackages is an array of package names to pass to pacstrap
#
basePackages:
- base
- base-devel
- btrfs-progs
- cachyos-fish-config
- cachyos-hooks
- cachyos-keyring
- cachyos-mirrorlist
- cachyos-v4-mirrorlist
- cachyos-v3-mirrorlist
- cachyos-rate-mirrors
- cachyos-settings
- cryptsetup
- device-mapper
- diffutils
- dosfstools
- e2fsprogs
- efibootmgr
- exfatprogs
- f2fs-tools
- inetutils
- iptables-nft
- jfsutils
- less
- linux-cachyos
- linux-cachyos-headers
- linux-firmware
- logrotate
- lsb-release
- lvm2
- man-db
- man-pages
- mdadm
- chwd
- mkinitcpio
- netctl
- os-prober
- perl
- python
- s-nail
- sudo
- sysfsutils
- texinfo
- usbutils
- which
- systemd-boot-manager
- xfsprogs
- plymouth
- cachyos-plymouth-theme
#
# postInstallFiles is an array of file names which will be copied into the system
#
# The paths should be relative to the host and the files will be copied to the
# location in the installed system
#
postInstallFiles:
- "/etc/pacman.conf"
- "/etc/pacman-more.conf"
- "/etc/default/grub"
- "/etc/mkinitcpio.conf"
- "/usr/local/bin/dmcheck"
- "/usr/local/bin/remove-nvidia"
- "/etc/calamares/scripts/try-v3"
- "/etc/calamares/scripts/remove-ucode"
- "/etc/calamares/scripts/install-gpu-drivers"

View file

@ -0,0 +1,61 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# This setting specifies the mount point of the EFI system partition. Some
# distributions (Fedora, Debian, Manjaro, etc.) use /boot/efi, others (KaOS,
# etc.) use just /boot.
#
# Defaults to "/boot/efi", may be empty (but weird effects ensue)
efiSystemPartition: "/boot"
efiSystemPartitionSize: 2048M
# efiSystemPartitionName: EFI
userSwapChoices:
- none # Create no swap, use no swap
# - small # Up to 4GB
# - suspend # At least main memory size
# - reuse # Re-use existing swap, but don't create any (unsupported right now)
# - file # To swap file instead of partition
# This setting specifies the LUKS generation (i.e LUKS1, LUKS2) used internally by
# cryptsetup when creating an encrypted partition.
#
# This option is set to luks1 by default, as grub doesn't support LUKS2 + Argon2id
# currently. On the other hand grub does support LUKS2 with PBKDF2 and could therefore be
# also set to luks2. Also there are some patches for grub and Argon2.
# See: https://aur.archlinux.org/packages/grub-improved-luks2-git
#
# Choices: luks1, luks2 (in addition, "luks" means "luks1")
#
# The default is luks1
#
luksGeneration: luks2
# This setting determines if encryption should be allowed when using zfs. This
# setting has no effect unless zfs support is provided.
#
# This setting is to handle the fact that some bootloaders(such as grub) do not
# support zfs encryption.
#
# The default is true
#
allowZfsEncryption: true
# Correctly draw nested (e.g. logical) partitions as such.
drawNestedPartitions: false
# Show/hide partition labels on manual partitioning page.
alwaysShowPartitionLabels: true
initialPartitioningChoice: none
initialSwapChoice: none
defaultFileSystemType: "ext4"
availableFileSystemTypes: ["xfs","ext4","f2fs","zfs"]
#enableLuksAutomatedPartitioning: true

View file

@ -0,0 +1,31 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Plymouth Configuration Module
#
# This module can be used to setup the default plymouth theme to
# be used with your distribution
#
# You should only use this module if the plymouth package is installed
# on the build configurations of your distribution & the plymouth
# theme you want to configure is installed as well. If the unpacked
# filesystem configures a plymouth theme already, there is no need
# to change it here.
---
# Leave this commented if you want to use the default theme
# shipped with your distribution configurations. Make sure that
# the theme exists in the themes directory of plymouth path.
# Debian / Ubuntu comes with themes "joy", "script", "softwaves",
# possibly others. Look in /usr/share/plymouth/themes for more.
#
# Specifying a non-existent theme will leave the plymouth
# configuration set to that theme. It is up to plymouth to
# deal with that.
plymouth_theme: parch

View file

@ -0,0 +1,70 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configuration for the preserve-files job
#
# The *files* key contains a list of files to preserve. Each element of
# the list should have one of these forms:
#
# - an absolute path (probably within the host system). This will be preserved
# as the same path within the target system (chroot). If, globally,
# *dontChroot* is true, then these items will be ignored (since the
# destination is the same as the source).
# - a map with a *dest* key. The *dest* value is a path interpreted in the
# target system (if the global *dontChroot* is true, then the host is the
# target as well). Relative paths are not recommended. There are two
# ways to select the source data for the file:
# - *from*, which must have one of the values, below; it is used to
# preserve files whose pathname is known to Calamares internally.
# - *src*, to refer to a path interpreted in the host system. Relative
# paths are not recommended, and are interpreted relative to where
# Calamares is being run.
# Exactly one of the two source keys (either *from* or *src*) must be set.
#
# Special values for the key *from* are:
# - *log*, for the complete log file (up to the moment the preservefiles
# module is run),
# - *config*, for a JSON dump of the contents of global storage.
# Note that this may contain sensitive information, and should be
# given restrictive permissions.
#
# A map with a *dest* key can have these additional fields:
# - *perm*, is a colon-separated tuple of <user>:<group>:<mode>
# where <mode> is in octal (e.g. 4777 for wide-open, 0400 for read-only
# by owner). If set, the file's ownership and permissions are set to
# those values within the target system; if not set, no permissions
# are changed.
# - *optional*, is a boolean; if this is set to `true` then failure to
# preserve the file will **not** be counted as a failure of the
# module, and installation will proceed. Set this for files that might
# not exist in the host system (e.g. nvidia configuration files that
# are created in some boot scenarios and not in others).
#
# The target path (*dest*) is modified as follows:
# - `@@ROOT@@` is replaced by the path to the target root (may be /).
# There is never any reason to use this, since the *dest* is already
# interpreted in the target system.
# - `@@USER@@` is replaced by the username entered by on the user
# page (may be empty, for instance if no user page is enabled)
#
#
#
dontChroot: true
files:
- from: log
dest: /var/log/Calamares.log
perm: root:wheel:600
- from: config
dest: /var/log/Calamares-install.json
perm: root:wheel:600
# - src: /var/log/nvidia.conf
# dest: /var/log/Calamares-nvidia.conf
# optional: true
# The *perm* key contains a default value to apply to all files listed
# above that do not have a *perm* key of their own. If not set,
# root:root:0400 (highly restrictive) is used.
#
# perm: "root:root:0400"

View file

@ -0,0 +1,32 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configuration for the rawfs module: raw filesystem copy to a block device
---
# To apply a custom partition layout, it has to be defined as a list of targets.
#
# For each target, the following attributes must be defined:
# * mountPoint: The mount point of the destination device on the installed system
# The corresponding block device will automatically be identified and used as the
# destination for the operation
# * source: The source filesystem; it can be the mount point of a locally (on the
# live system) mounted filesystem, a path to a disk image, or a block device
# * resize (optional): Expand the destination filesystem to fill the whole
# partition at the end of the operation; this works only with ext filesystems
# for now
targets:
- mountPoint: /
source: /
- mountPoint: /home
source: /images/home.img
resize: true
- mountPoint: /data
source: /dev/mmcblk0p3
# To support testing, set the *bogus* key to true. No actual work is done, but the
# module's logic is exercised.
# bogus: false

View file

@ -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

View file

@ -0,0 +1,66 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# handling systemd on target.
---
units:
- name: "NetworkManager"
action: "enable"
mandatory: false
- name: "cups"
action: "enable"
mandatory: false
- name: "avahi-daemon"
action: "enable"
mandatory: false
- name: "systemd-timesyncd"
action: "enable"
mandatory: false
- name: "vboxservice"
action: "enable"
mandatory: false
- name: "vmtoolsd"
action: "enable"
mandatory: false
- name: "vmware-vmblock-fuse"
action: "enable"
mandatory: false
- name: "firewalld"
action: "enable"
mandatory: false
- name: "zfs-import-cache"
action: "enable"
mandatory: false
- name: "zfs-mount"
action: "enable"
mandatory: false
- name: "zfs-import.target"
action: "enable"
mandatory: false
- name: "zfs.target"
action: "enable"
mandatory: false
- name: "fstrim"
action: "enable"
mandatory: false
- name: "pacman-init"
action: "disable"
mandatory: false
- name: "multi-user.target"
action: "disable"
mandatory: false

View file

@ -0,0 +1,44 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configuration for the shell process job.
#
# Executes a list of commands found under the key *script*.
# If the top-level key *dontChroot* is true, then the commands
# are executed in the context of the live system, otherwise
# in the context of the target system. In all of the commands,
# the following substitutions will take place:
# - `@@ROOT@@` is replaced by the root mount point of the **target**
# system from the point of view of the command (for chrooted
# commands, that will be */*).
# - `@@USER@@` is replaced by the username, set on the user page.
#
# The (global) timeout for the command list can be set with
# the *timeout* key. The value is a time in seconds, default
# is 10 seconds if not set.
#
# If a command starts with "-" (a single minus sign), then the
# return value of the command following the - is ignored; otherwise,
# a failing command will abort the installation. This is much like
# make's use of - in a command.
#
# The value of *script* may be:
# - a single string; this is one command that is executed.
# - a list of strings; these are executed one at a time, by
# separate shells (/bin/sh -c is invoked for each command).
# - an object, specifying a key *command* and (optionally)
# a key *timeout* to set the timeout for this specific
# command differently from the global setting.
---
i18n:
name: "Installing needed drivers for ParchLinux..."
name[de]: "Installation der benötigten Treiber für ParchLinux..."
name[fr]: "Installation des pilotes nécessaires pour ParchLinux..."
name[es]: "Instalación de los controladores necesarios para ParchLinux..."
name[ru]: "Устанавливаем необходимые драйвера для ParchLinux..."
dontChroot: false
timeout: 3600
script:
- command: "/etc/calamares/scripts/install-gpu-drivers"
- "-rm /etc/calamares/scripts/install-gpu-drivers"

View file

@ -0,0 +1,99 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configuration for the shell process job.
#
# Executes a list of commands found under the key *script*.
# If the top-level key *dontChroot* is true, then the commands
# are executed in the context of the live system, otherwise
# in the context of the target system. In all of the commands,
# the following variable expansions will take place:
# - `ROOT` is replaced by the root mount point of the **target**
# system from the point of view of the command (when run in the target
# system, e.g. when *dontChroot* is false, that will be `/`).
# - `USER` is replaced by the username, set on the user page.
# - `LANG` is replaced by the language chosen for the user-interface
# of Calamares, set on the welcome page. This may not reflect the
# chosen system language from the locale page.
#
# Variables are written as `${var}`, e.g. `${ROOT}`.
# Write `$$` to get a shell-escaped `\$` in the shell command.
# It is not possible to get an un-escaped `$` in the shell command
# (either the command will fail because of undefined variables, or
# you get a shell-escaped `\$`).
#
# The (global) timeout for the command list can be set with
# the *timeout* key. The value is a time in seconds, default
# is 30 seconds if not set. The timeout **must** be tuned, either
# globally or per-command (see below in the description of *script*),
# to the load or expected running-time of the command.
#
# - Setting a timeout of 30 for a `touch` command is probably exessive
# - Setting a timeout of 1 for a `touch` command might be low,
# on a slow disk where touch needs to be loaded from CDROM
# - Setting a timeout of 30 for a 1GB download is definitely low
# - Setting a timeout of 3600 for a 1GB download is going to leave
# the user in uncertainty for a loooong time.
#
# If a command starts with "-" (a single minus sign), then the
# return value of the command following the - is ignored; otherwise,
# a failing command will abort the installation. This is much like
# make's use of - in a command.
#
# The value of *script* may be:
# - a single string; this is one command that is executed.
# - a single object (see below).
# - a list of items; these are executed one at a time, by
# separate shells (/bin/sh -c is invoked for each command).
# Each list item may be:
# - a single string; this is one command that is executed.
# - a single object, specifying a key *command* and (optionally)
# a key *timeout* to set the timeout for this specific
# command differently from the global setting. An optional
# key *environment* is a list of strings to put into the
# environment of the command.
#
# Using a single object is not generally useful because the same effect
# can be obtained with a single string and a global timeout, except
# when the command needs environment-settings. When there are
# multiple commands to execute, one of them might have
# a different timeout than the others.
#
# The environment strings should all be "KEY='some value'" strings,
# as if they can be typed into the shell. Quoting the environment
# strings with "" in YAML is recommended. Adding the '' quotes ensures
# that the value will not be interpreted by the shell. Writing
# environment strings is the same as placing `export KEY='some value' ;`
# in front of the *command*.
#
# Calamares variable expansion is **also** done on the environment strings.
# Write `$$` to get a literal `$` in the shell command.
#
# To change the description of the job, set the *name* entries in *i18n*.
---
dontChroot: false
timeout: 3600
script:
- "-rm /home/${USER}/.xinitrc"
- "-rm /home/${USER}/.bash_profile"
- "-rm /etc/sudoers.d/g_wheel"
- "-rm -r /etc/systemd/system/getty@tty1.service.d"
- "-rm /etc/systemd/system/etc-pacman.d-gnupg.mount"
- "-rm /root/{.automated_script.sh,.zlogin,.xinitrc,.xsession,.xprofile,.wget-hsts,.screenrc,.ICEauthority}"
- "-rm /root/.config/{qt5ct,Kvantum,dconf}"
- "-rm /etc/polkit-1/rules.d/49-nopasswd_global.rules"
- "-rm /etc/polkit-1/rules.d/49-nopasswd-calamares.rules"
- "-rm /etc/systemd/system/display-manager.service"
- "-rm -r /etc/sddm.conf.d"
- "-mv /etc/sddm{-bk,}.conf"
- "-rm /etc/motd"
- command: "/usr/local/bin/dmcheck"
- "-rm /usr/local/bin/dmcheck"
- "-rm /usr/local/bin/remove-nvidia"
- "-rm /usr/local/bin/calamares-offline.sh"
- "-rm /usr/local/bin/calamares-online.sh"
- "-rm /etc/skel/.xinitrc"
- "-rm /etc/skel/.bash_profile"
- "-rm -rf /home/liveuser"
- '-runuser ${USER} -c "cp -rf /etc/skel/. /home/${USER}/."'
- '-runuser ${USER} -c "rm -rf /home/${USER}/{.xsession,.xprofile,.xinitrc}"'

View file

@ -0,0 +1,33 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# shellprocess_initialize_pacman.conf
# generate pacman keyring, mirrorlist and copy them into target system
---
dontChroot: true
script:
- command: "pacman -Sy --noconfirm archlinux-keyring"
timeout: 1200
- "chmod +x /etc/calamares/scripts/create-pacman-keyring"
- command: "bash /etc/calamares/scripts/create-pacman-keyring"
timeout: 1200
- command: "bash /etc/calamares/scripts/update-mirrorlist"
timeout: 3600
- "cp /etc/pacman.d/mirrorlist ${ROOT}/etc/pacman.d/"
- "cp -a /etc/pacman.d/gnupg ${ROOT}/etc/pacman.d/"
- "cp /etc/resolv.conf ${ROOT}/etc/"
i18n:
name: "initialize pacman ... ranking mirrors ... copy pacman mirrorlist and keyring to target ..."
name[de]: "Pacman initialisieren ... Mirrors ordnen ... Pacman-mirrorlist und Schlüsselbund kopieren ..."
name[fi]: "alusta pacman ,,, järjestä peilipalvelimet ... kopioi pacman:n peililista ja avaimet kohteeseen ..."
name[fr]: "initialiser pacman ... classement des miroirs ... copier la liste des miroirs pacman et le trousseau de clés vers la cible ..."
name[it]: "inizializza pacman ... classifica i mirror ... copia la lista dei mirror di pacman e il portachiavi sul target ..."
name[es]: "inicializar pacman ... ranking mirrors ... copiar pacman mirrorlist y llavero al objetivo ..."
name[ru]: "инициализировать pacman ... ранжировать зеркала ... скопировать список зеркал pacman и связку ключей в цель ..."
name[zh_CN]: "初始化 pacman ... 排名镜像 ... 将 pacman 镜像列表和密钥环复制到目标 ..."
name[ja]: "pacmanを初期化します...ミラーをランク付けします... pacmanミラーリストとキーリングをターゲットにコピーします..."
name[sv]: "initiera pacman ... rangordna speglar ... kopiera pacmans spegellista och nyckelring till mål ..."
name[pt_BR]: "Iniciar pacman... Classificar espelhos... Copiar lista de espelhos do pacman e chaveiro do alvo..."

View file

@ -0,0 +1,22 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# disables running mkinitcpio while install process, it will be called once with initcpio module
# enable_mk_hook needs to be run at the ende of install process in settings.conf to "reanable" 90-mkinitcpio-install.hook for installed system
# pacstrap needs the hook to be present on "host" but the script needs to be present inside chroot so we copy modified hook to host and script to chroot.
# for pacman installing DE/WM and common packages inside chroot it needs hook present in chroot so we copy that also inside.
---
dontChroot: true
script:
- "mkdir -p /etc/pacman.d/hooks/"
- "cp /etc/calamares/scripts/90-mkinitcpio-install.hook /etc/pacman.d/hooks/"
- "mkdir -p ${ROOT}/usr/share/libalpm/scripts/"
- "cp /etc/calamares/scripts/mkinitcpio-install-calamares ${ROOT}/usr/share/libalpm/scripts/"
- "chmod +x ${ROOT}/usr/share/libalpm/scripts/mkinitcpio-install-calamares"
- "mkdir -p ${ROOT}/etc/pacman.d/hooks/"
- "cp /etc/calamares/scripts/90-mkinitcpio-install.hook ${ROOT}/etc/pacman.d/hooks/"
i18n:
name: "modify 90-mkinitcpio-install.hook on host and chroot"

View file

@ -0,0 +1,12 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
---
dontChroot: false
script:
- "/etc/calamares/scripts/remove-ucode"
- "-rm /etc/calamares/scripts/remove-ucode"
i18n:
name: "Remove unneeded ucode"

View file

@ -0,0 +1,14 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# reanable running 90-mkinitcpio-install.hook for installed system
---
dontChroot: false
script:
- "rm /etc/pacman.d/hooks/90-mkinitcpio-install.hook"
- "rm /usr/share/libalpm/scripts/mkinitcpio-install-calamares"
i18n:
name: "reset 90-mkinitcpio-install.hook"

View file

@ -0,0 +1,14 @@
# 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. After this, there is no regular way
# to modify the target system anymore.
#
---
# Setting emergency to true will make it so this module is still run
# when a prior module fails
emergency: true

View file

@ -0,0 +1,96 @@
# 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.
#
# Configuration:
#
# from globalstorage: rootMountPoint
# from job.configuration: the path to where to mount the source image(s)
# for copying an ordered list of unpack mappings for image file <->
# target dir relative to rootMountPoint.
---
# Each list item is unpacked, in order, to the target system.
#
# Each list item has the following **mandatory** attributes:
# - *source* path relative to the live / intstalling system to the image
# - *sourcefs* the type of the source files; valid entries are
# - `ext4` (copies the filesystem contents)
# - `squashfs` (unsquashes)
# - `file` (copies a file or directory)
# - (may be others if mount supports it)
# - *destination* path relative to rootMountPoint (so in the target
# system) where this filesystem is unpacked. It may be an
# empty string, which effectively is / (the root) of the target
# system.
#
# Each list item **optionally** can include the following attributes:
# - *exclude* is a list of values that is expanded into --exclude
# arguments for rsync (each entry in exclude gets its own --exclude).
# - *excludeFile* is a single file that is passed to rsync as an
# --exclude-file argument. This should be a full pathname
# inside the **host** filesystem.
# - *weight* is useful when the entries take wildly different
# times to unpack (e.g. with a squashfs, and one single file)
# and the total weight of this module should be distributed
# differently between the entries. (This is only relevant when
# there is more than one entry; by default all the entries
# have the same weight, 1)
#
# EXAMPLES
#
# Usually you list a filesystem image to unpack; you can use
# squashfs or an ext4 image. An empty destination is equivalent to "/",
# the root of the target system. The destination directory must exist
# in the target system.
#
# - source: "/path/to/filesystem.sqfs"
# sourcefs: "squashfs"
# destination: ""
#
# Multiple entries are unpacked in-order; if there is more than one
# item then only the first must exist beforehand -- it's ok to
# create directories with one unsquash and then to use those
# directories as a target from a second unsquash.
#
# - source: "/path/to/another/filesystem.img"
# sourcefs: "ext4"
# destination: ""
# - source: "/path/to/another/filesystem2.img"
# sourcefs: "ext4"
# destination: "/usr/lib/extra"
#
# You can list filesystem source paths relative to the Calamares run
# directory, if you use -d (this is only useful for testing, though).
#
# - source: ./example.sqfs
# sourcefs: squashfs
# destination: ""
#
# You can list individual files (copied one-by-one), or directories
# (the files inside this directory are copied directly to the destination,
# so no "dummycpp/" subdirectory is created in this example).
# Do note that the target directory must exist already (e.g. from
# extracting some other filesystem).
#
# - source: ../CHANGES
# sourcefs: file
# destination: "/tmp/derp"
# - source: ../src/modules/dummycpp
# sourcefs: file
# destination: "/tmp/derp"
#
# The *destination* and *source* are handed off to rsync, so the semantics
# of trailing slashes apply. In order to *rename* a file as it is
# copied, specify one single file (e.g. CHANGES) and a full pathname
# for its destination name, as in the example below.
unpack:
- source: "/run/archiso/bootmnt/arch/x86_64/airootfs.sfs"
sourcefs: "squashfs"
destination: ""
- source: "/run/archiso/bootmnt/arch/boot/x86_64/vmlinuz-linux-cachyos"
sourcefs: "file"
destination: "/boot/vmlinuz-linux-cachyos"

View file

@ -0,0 +1,86 @@
# 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.
---
defaultGroups:
- wheel
- rfkill
- sys
- name: users
must_exist: true
system: true
- lp
- video
- network
- storage
- name: wheel
must_exist: false
system: true
- audio
doAutologin: false
sudoersGroup: wheel
setRootPassword: true
doReusePassword: true
passwordRequirements:
# nonempty: true
minLength: 4
# maxLength: -1 # Password at most this many characters
# libpwquality:
# - minlen=0
# - minclass=0
allowWeakPasswords: false
allowWeakPasswordsDefault: false
# 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).
user:
shell: /bin/fish
forbidden_names: [ root ]
hostname:
location: EtcFile
writeHostsFile: true
template: "cachyos-${cpu}"
forbidden_names: [ localhost ]
presets:
fullName:
# value: "OEM User"
editable: true
loginName:
# value: "oem"
editable: true

View file

@ -0,0 +1,44 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# For documentation see Users Module users.conf
#
---
# Used as default groups for the created user.
# Adjust to your Distribution defaults.
defaultGroups:
- users
- lp
- video
- network
- storage
- wheel
- audio
- lpadmin
autologinGroup: autologin
doAutologin: true
sudoersGroup: wheel
setRootPassword: true
doReusePassword: true
passwordRequirements:
minLength: -1
maxLength: -1
libpwquality:
- minlen=0
- minclass=0
allowWeakPasswords: false
allowWeakPasswordsDefault: false
userShell: /bin/bash
setHostname: EtcFile
writeHostsFile: true

View file

@ -0,0 +1,88 @@
# 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<buttonname>* setting
# here is "true". If the setting is "false", the button is hidden.
# Empty or not-set is interpreted as "false".
showSupportUrl: true
showKnownIssuesUrl: true
showReleaseNotesUrl: false
showDonateUrl: 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.
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: 8.0
# Amount of available RAM, in GiB. Floating-point is allowed here.
requiredRam: 2.5
# 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://wiki.parchlinux.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
- 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: "xml"
url: "https://geoip.kde.org/v1/ubiquity" # extended XML format
selector: "CountryCode" # blank uses default, which is wrong

View file

@ -0,0 +1,40 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configuration for the welcomeq module.
#
# The configuration for welcomeq is exactly the same
# as the welcome module, with the one exception of
# *qmlSearch* which governs QML loading.
#
# No documentation is given here: look in the welcome module.
---
# Setting for QML loading: use QRC, branding, or both sources of files
qmlSearch: both
# Everythin below here is documented in `welcome.conf`
showSupportUrl: true
showKnownIssuesUrl: true
showReleaseNotesUrl: true
# showDonateUrl: https://kde.org/community/donations/
requirements:
requiredStorage: 5.5
requiredRam: 1.0
internetCheckUrl: http://google.com
check:
- storage
- ram
- power
- internet
- root
- screen
required:
- ram
geoip:
style: "none"
url: "https://geoip.kde.org/v1/ubiquity" # extended XML format
selector: "CountryCode" # blank uses default, which is wrong
#languageIcon: languages

View file

@ -0,0 +1,33 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# The zfs module creates the zfs pools and datasets
#
#
#
---
poolName: zpcachyos
poolOptions: "-f -o ashift=12 -o autotrim=on -O mountpoint=none -O acltype=posixacl -O atime=off -O relatime=off -O xattr=sa -O normalization=formD -O dnodesize=auto"
datasetOptions: "-o compression=zstd"
datasets:
- dsName: ROOT
mountpoint: none
canMount: off
- dsName: ROOT/cos
mountpoint: none
canMount: off
- dsName: ROOT/cos/root
mountpoint: /
canMount: noauto
- dsName: ROOT/cos/home
mountpoint: /home
canMount: on
- dsName: ROOT/cos/varcache
mountpoint: /var/cache
canMount: on
- dsName: ROOT/cos/varlog
mountpoint: /var/log
canMount: on

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 KiB

View file

@ -0,0 +1,12 @@
[Trigger]
Type = Path
Operation = Install
Operation = Upgrade
Target = usr/lib/modules/*/vmlinuz
Target = usr/lib/initcpio/*
[Action]
Description = Updating linux initcpios...
When = PostTransaction
Exec = /usr/share/libalpm/scripts/mkinitcpio-install-calamares
NeedsTargets

View file

@ -0,0 +1,5 @@
#!/bin/bash
haveged -w 1024
pacman-key --init
pkill haveged
pacman-key --populate archlinux

View file

@ -0,0 +1,17 @@
#!/bin/bash
_check_nvidia_card="$(chwd --is_nvidia_card | grep -q 'NVIDIA card found!'; echo $?)"
if [[ "${_check_nvidia_card}" -eq 0 ]]; then
echo "NVIDIA CARD FOUND!"
chwd -a pci nonfree 0300
else
chwd -a pci free 0300
fi
# Check for hybrid graphics
if [[ $(lspci -d "*:*:0302") ]]; then
chwd -a pci nonfree 0302
fi
# vim:set ft=bash sw=2 sts=2 et:

View file

@ -0,0 +1,40 @@
#!/bin/bash -e
args=()
all=0
while read -r line; do
if [[ $line != */vmlinuz ]]; then
# triggers when it's a change to usr/lib/initcpio/*
all=1
continue
fi
if ! read -r pkgbase > /dev/null 2>&1 < "${line%/vmlinuz}/pkgbase"; then
# if the kernel has no pkgbase, we skip it
continue
fi
preset="/etc/mkinitcpio.d/${pkgbase}.preset"
if [[ ! -e $preset ]]; then
if [[ -e $preset.pacsave ]]; then
# move the pacsave to the template
mv "${preset}.pacsave" "$preset"
else
# create the preset from the template
sed "s|%PKGBASE%|${pkgbase}|g" /usr/share/mkinitcpio/hook.preset \
| install -Dm644 /dev/stdin "$preset"
fi
fi
# always install the kernel
install -Dm644 "${line}" "/boot/vmlinuz-${pkgbase}"
# compound args for each kernel
args+=(-p "${pkgbase}")
done
if (( all )) && compgen -G /etc/mkinitcpio.d/"*.preset" > /dev/null; then
# change to use all presets
args=(-P)
fi

View file

@ -0,0 +1,361 @@
#!/bin/bash
# auto mount removed since calamares already does the job, pacstrap-old get error "/proc already mounted" for example.
#
# Assumptions:
# 1) User has partitioned, formatted, and mounted partitions on /mnt
# 2) Network is functional
# 3) Arguments passed to the script are valid pacman targets
# 4) A valid mirror appears in /etc/pacman.d/mirrorlist
#
shopt -s extglob
# generated from util-linux source: libmount/src/utils.c
declare -A pseudofs_types=([anon_inodefs]=1
[autofs]=1
[bdev]=1
[bpf]=1
[binfmt_misc]=1
[cgroup]=1
[cgroup2]=1
[configfs]=1
[cpuset]=1
[debugfs]=1
[devfs]=1
[devpts]=1
[devtmpfs]=1
[dlmfs]=1
[efivarfs]=1
[fuse.gvfs-fuse-daemon]=1
[fusectl]=1
[hugetlbfs]=1
[mqueue]=1
[nfsd]=1
[none]=1
[pipefs]=1
[proc]=1
[pstore]=1
[ramfs]=1
[rootfs]=1
[rpc_pipefs]=1
[securityfs]=1
[sockfs]=1
[spufs]=1
[sysfs]=1
[tmpfs]=1)
# generated from: pkgfile -vbr '/fsck\..+' | awk -F. '{ print $NF }' | sort
declare -A fsck_types=([btrfs]=1
[cramfs]=1
[exfat]=1
[ext2]=1
[ext3]=1
[ext4]=1
[ext4dev]=1
[f2fs]=1
[jfs]=1
[minix]=1
[msdos]=1
[vfat]=1
[xfs]=1
[zfs]=1)
out() { printf "$1 $2\n" "${@:3}"; }
error() { out "==> ERROR:" "$@"; } >&2
warning() { out "==> WARNING:" "$@"; } >&2
msg() { out "==>" "$@"; }
msg2() { out " ->" "$@";}
die() { error "$@"; exit 1; }
ignore_error() {
"$@" 2>/dev/null
return 0
}
in_array() {
local i
for i in "${@:2}"; do
[[ $1 = "$i" ]] && return 0
done
return 1
}
chroot_add_mount() {
mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}")
}
chroot_maybe_add_mount() {
local cond=$1; shift
if eval "$cond"; then
chroot_add_mount "$@"
fi
}
chroot_setup() {
CHROOT_ACTIVE_MOUNTS=()
[[ $(trap -p EXIT) ]] && die '(BUG): attempting to overwrite existing EXIT trap'
trap 'chroot_teardown' EXIT
}
chroot_teardown() {
if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then
umount "${CHROOT_ACTIVE_MOUNTS[@]}"
fi
unset CHROOT_ACTIVE_MOUNTS
}
try_cast() (
_=$(( $1#$2 ))
) 2>/dev/null
valid_number_of_base() {
local base=$1 len=${#2} i=
for (( i = 0; i < len; i++ )); do
try_cast "$base" "${2:i:1}" || return 1
done
return 0
}
mangle() {
local i= chr= out=
local {a..f}= {A..F}=
for (( i = 0; i < ${#1}; i++ )); do
chr=${1:i:1}
case $chr in
[[:space:]\\])
printf -v chr '%03o' "'$chr"
out+=\\
;;
esac
out+=$chr
done
printf '%s' "$out"
}
unmangle() {
local i= chr= out= len=$(( ${#1} - 4 ))
local {a..f}= {A..F}=
for (( i = 0; i < len; i++ )); do
chr=${1:i:1}
case $chr in
\\)
if valid_number_of_base 8 "${1:i+1:3}" ||
valid_number_of_base 16 "${1:i+1:3}"; then
printf -v chr '%b' "${1:i:4}"
(( i += 3 ))
fi
;;
esac
out+=$chr
done
printf '%s' "$out${1:i}"
}
optstring_match_option() {
local candidate pat patterns
IFS=, read -ra patterns <<<"$1"
for pat in "${patterns[@]}"; do
if [[ $pat = *=* ]]; then
# "key=val" will only ever match "key=val"
candidate=$2
else
# "key" will match "key", but also "key=anyval"
candidate=${2%%=*}
fi
[[ $pat = "$candidate" ]] && return 0
done
return 1
}
optstring_remove_option() {
local o options_ remove=$2 IFS=,
read -ra options_ <<<"${!1}"
for o in "${!options_[@]}"; do
optstring_match_option "$remove" "${options_[o]}" && unset 'options_[o]'
done
declare -g "$1=${options_[*]}"
}
optstring_normalize() {
local o options_ norm IFS=,
read -ra options_ <<<"${!1}"
# remove empty fields
for o in "${options_[@]}"; do
[[ $o ]] && norm+=("$o")
done
# avoid empty strings, reset to "defaults"
declare -g "$1=${norm[*]:-defaults}"
}
optstring_append_option() {
if ! optstring_has_option "$1" "$2"; then
declare -g "$1=${!1},$2"
fi
optstring_normalize "$1"
}
optstring_prepend_option() {
local options_=$1
if ! optstring_has_option "$1" "$2"; then
declare -g "$1=$2,${!1}"
fi
optstring_normalize "$1"
}
optstring_get_option() {
local opts o
IFS=, read -ra opts <<<"${!1}"
for o in "${opts[@]}"; do
if optstring_match_option "$2" "$o"; then
declare -g "$o"
return 0
fi
done
return 1
}
optstring_has_option() {
local "${2%%=*}"
optstring_get_option "$1" "$2"
}
dm_name_for_devnode() {
read dm_name <"/sys/class/block/${1#/dev/}/dm/name"
if [[ $dm_name ]]; then
printf '/dev/mapper/%s' "$dm_name"
else
# don't leave the caller hanging, just print the original name
# along with the failure.
print '%s' "$1"
error 'Failed to resolve device mapper name for: %s' "$1"
fi
}
fstype_is_pseudofs() {
(( pseudofs_types["$1"] ))
}
fstype_has_fsck() {
(( fsck_types["$1"] ))
}
hostcache=0
copykeyring=1
copymirrorlist=1
usage() {
cat <<EOF
usage: ${0##*/} [options] root [packages...]
Options:
-C <config> Use an alternate config file for pacman
-c Use the package cache on the host, rather than the target
-G Avoid copying the host's pacman keyring to the target
-i Prompt for package confirmation when needed (run interactively)
-M Avoid copying the host's mirrorlist to the target
-h Print this help message
pacstrap installs packages to the specified new root directory. If no packages
are given, pacstrap defaults to the "base" group.
EOF
}
if [[ -z $1 || $1 = @(-h|--help) ]]; then
usage
exit $(( $# ? 0 : 1 ))
fi
(( EUID == 0 )) || die 'This script must be run with root privileges'
while getopts ':C:cdGiM' flag; do
case $flag in
C)
pacman_config=$OPTARG
;;
d)
# retired flag. does nothing.
;;
c)
hostcache=1
;;
i)
interactive=1
;;
G)
copykeyring=0
;;
M)
copymirrorlist=0
;;
:)
die '%s: option requires an argument -- '\''%s'\' "${0##*/}" "$OPTARG"
;;
?)
die '%s: invalid option -- '\''%s'\' "${0##*/}" "$OPTARG"
;;
esac
done
shift $(( OPTIND - 1 ))
(( $# )) || die "No root directory specified"
newroot=$1; shift
pacman_args=("${@:-base}")
if (( ! hostcache )); then
pacman_args+=(--cachedir="$newroot/var/cache/pacman/pkg")
fi
if (( ! interactive )); then
pacman_args+=(--noconfirm)
fi
if [[ $pacman_config ]]; then
pacman_args+=(--config="$pacman_config")
fi
[[ -d $newroot ]] || die "%s is not a directory" "$newroot"
# create obligatory directories
msg 'Creating install root at %s' "$newroot"
mkdir -m 0755 -p "$newroot"/var/{cache/pacman/pkg,lib/pacman,log} "$newroot"/{dev,run,etc/pacman.d}
mkdir -m 1777 -p "$newroot"/tmp
mkdir -m 0555 -p "$newroot"/{sys,proc}
# mount API filesystems
chroot_setup "$newroot" || die "failed to setup chroot %s" "$newroot"
msg 'Installing packages to %s' "$newroot"
if ! pacman -r "$newroot" -Sy "${pacman_args[@]}"; then
die 'Failed to install packages to new root'
fi
# vim: et ts=2 sw=2 ft=sh:

View file

@ -0,0 +1,11 @@
#!/usr/bin/env bash
# Remove the "wrong" microcode.
case "$(grep -w "^vendor_id" /proc/cpuinfo | head -n 1 | awk '{print $3}')" in
GenuineIntel) pkgname=amd-ucode ;;
AuthenticAMD | *) pkgname=intel-ucode ;;
esac
[[ $(pacman -Q "${pkgname}" 2</dev/null) ]] && pacman -R --noconfirm "${pkgname}"
exit 0

View file

@ -0,0 +1,9 @@
#!/bin/bash
rate_mirrors_version="$(pacman -Qi reflector | grep Version | awk '{print $3}')"
check_rate_mirrors="$(vercmp $rate_mirrors_version 0.15.2-1)"
if [ $check_rate_mirrors -eq -1 ];then
echo "Updating rate-mirrors"
sudo pacman -Sy --noconfirm reflector
fi
sudo reflector

View file

@ -0,0 +1,96 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configuration file for Calamares
---
modules-search: [ local ]
instances:
- id: online
module: packages
config: packages_online.conf
- id: online
module: welcome
config: welcome_online.conf
- id: drivers
module: shellprocess
config: shellprocess-drivers.conf
- id: modify_mk_hook
module: shellprocess
config: shellprocess_modify_mk_hook.conf
- id: reset_mk_hook
module: shellprocess
config: shellprocess_reset_mk_hook.conf
- id: initialize_pacman
module: shellprocess
config: shellprocess_initialize_pacman.conf
- id: removeucode
module: shellprocess
config: shellprocess_removeucode.conf
sequence:
- show:
- welcome
- locale
- keyboard
- partition
- packagechooser
- netinstall
- users
- summary
- exec:
- partition
- zfs
- mount
- shellprocess@modify_mk_hook
- shellprocess@initialize_pacman
- pacstrap
- machineid
- fstab
- locale
- keyboard
- localecfg
- packages@online
- luksbootkeyfile
- luksopenswaphookcfg
- plymouthcfg
- zfshostid
- initcpiocfg
- initcpio
- users
- networkcfg
- displaymanager
- hwclock
- shellprocess@removeucode
- bootloader
- shellprocess@drivers
- shellprocess@reset_mk_hook
- services-systemd
- preservefiles
- shellprocess
- umount
- show:
- finished
branding: parchlinux
prompt-install: true
dont-chroot: false
oem-setup: false
disable-cancel: false
disable-cancel-during-exec: false
hide-back-and-next-during-exec: true
quit-at-end: false