diff options
Diffstat (limited to 'raveos-calamares-theme/etc/calamares/modules')
30 files changed, 1748 insertions, 0 deletions
diff --git a/raveos-calamares-theme/etc/calamares/modules/bootloader.conf b/raveos-calamares-theme/etc/calamares/modules/bootloader.conf new file mode 100644 index 0000000..69e54cc --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/bootloader.conf @@ -0,0 +1,33 @@ +# Use systemd-boot (UEFI only) +bootloader: grub +efiBootLoader: systemd-boot +efiBootLoaderTimeout: 5 + +# Kernel & initramfs +kernel: linux-cachyos +initramfs: initramfs-linux-cachyos.img + +# EFI System Partition mount point +efiMountPoint: /boot + +# GRUB paths +grubInstall: "grub-install" +grubMkconfig: "grub-mkconfig" +grubCfg: "/boot/grub/grub.cfg" +grubProbe: "grub-probe" +efiBootMgr: "efibootmgr" + +# Preserve existing EFI entries (dual-boot safe) +keepEFI: true + +# ---- MICROCODE SUPPORT ---- +microcode: true + +# Packages Calamares will look for inside the installed system +microcodePackages: + - intel-ucode + - amd-ucode + +loaderEntries: + - "timeout 5" + - "console-mode keep" diff --git a/raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh b/raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh new file mode 100644 index 0000000..c30bbf3 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/calamares-gpu-drivers.sh @@ -0,0 +1,55 @@ +#!/bin/bash +set -e + +echo ">>> [gpu] Running INSIDE target system" + +GPU_INFO="$(lspci -nn | grep -E 'VGA|3D|Display' || true)" +echo ">>> [gpu] Detected devices:" +echo "$GPU_INFO" + +install_pkgs() { + pacman -Syy --noconfirm || true + pacman -S --noconfirm "$@" || true +} + +install_pkgs mesa libglvnd vulkan-icd-loader + +if echo "$GPU_INFO" | grep -qi "Intel"; then + echo ">>> [gpu] Installing Intel stack..." + install_pkgs mesa vulkan-intel intel-media-driver +fi + +# AMD +if echo "$GPU_INFO" | grep -qi "AMD\|ATI"; then + echo ">>> [gpu] Installing AMD stack..." + install_pkgs mesa lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader vulkan-tools mesa-utils +fi + +if echo "$GPU_INFO" | grep -qi "NVIDIA"; then + echo ">>> [gpu] Installing NVIDIA DKMS stack..." + + install_pkgs dkms linux-cachyos-headers nvidia-dkms nvidia-utils nvidia-settings lib32-nvidia-utils + + if echo "$GPU_INFO" | grep -qi "Intel\|AMD\|ATI"; then + echo ">>> [gpu] Hybrid laptop detected -> installing nvidia-prime" + install_pkgs nvidia-prime + fi + + echo ">>> [gpu] Enabling NVIDIA module autoload..." + mkdir -p /etc/modules-load.d + cat > /etc/modules-load.d/nvidia.conf <<EOF +nvidia +nvidia_modeset +nvidia_uvm +nvidia_drm +EOF + + echo ">>> [gpu] Enabling NVIDIA DRM modeset..." + mkdir -p /etc/modprobe.d + echo "options nvidia_drm modeset=1" > /etc/modprobe.d/nvidia-drm.conf + + echo ">>> [gpu] Rebuilding initramfs..." + mkinitcpio -P || true +fi + +echo ">>> [gpu] Done." diff --git a/raveos-calamares-theme/etc/calamares/modules/calamares-microcode-fix.sh b/raveos-calamares-theme/etc/calamares/modules/calamares-microcode-fix.sh new file mode 100644 index 0000000..9915bc6 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/calamares-microcode-fix.sh @@ -0,0 +1,75 @@ +#!/bin/bash +set -e + +echo ">>> [microcode-fix] Running INSIDE target system" + +VENDOR=$(awk -F: '/vendor_id/ {print $2; exit}' /proc/cpuinfo | xargs) +echo ">>> [microcode-fix] Detected CPU vendor: ${VENDOR}" + +if [[ "${VENDOR}" == "GenuineIntel" ]]; then + PKG="intel-ucode" + UCODE_IMG="/boot/intel-ucode.img" + UCODE_LINE="initrd /intel-ucode.img" +elif [[ "${VENDOR}" == "AuthenticAMD" ]]; then + PKG="amd-ucode" + UCODE_IMG="/boot/amd-ucode.img" + UCODE_LINE="initrd /amd-ucode.img" +else + echo ">>> [microcode-fix] Unknown vendor, skipping." + exit 0 +fi + +echo ">>> [microcode-fix] Installing microcode package: ${PKG}" +pacman -Sy --noconfirm "${PKG}" || true + +if [[ "${VENDOR}" == "AuthenticAMD" ]]; then + echo ">>> [microcode-fix] Installing zenpower5-dkms-git + deps..." + + pacman -Syy --noconfirm || true + + pacman -S --noconfirm dkms linux-cachyos-headers zenpower5-dkms-git || true + + echo ">>> [microcode-fix] Enabling zenpower module autoload..." + mkdir -p /etc/modules-load.d + echo "zenpower" > /etc/modules-load.d/zenpower.conf + + echo ">>> [microcode-fix] DKMS autoinstall..." + dkms autoinstall || true + + echo ">>> [microcode-fix] Rebuilding initramfs..." + mkinitcpio -P || true + + echo ">>> [microcode-fix] zenpower package check:" + pacman -Q zenpower5-dkms-git 2>/dev/null && echo ">>> zenpower OK" || echo ">>> zenpower MISSING" +fi + + +if [ ! -f "${UCODE_IMG}" ]; then + echo ">>> [microcode-fix] Missing ${UCODE_IMG}, skipping entry patch." + exit 0 +fi + +ENTRYDIR="/boot/loader/entries" +echo ">>> [microcode-fix] Entry dir: ${ENTRYDIR}" + +[ -d "${ENTRYDIR}" ] || exit 0 + +for f in "${ENTRYDIR}"/*.conf; do + [ -f "$f" ] || continue + echo ">>> [microcode-fix] Patching: $f" + + if grep -qE '^initrd[[:space:]]+/amd-ucode\.img$' "$f" || grep -qE '^initrd[[:space:]]+/intel-ucode\.img$' "$f"; then + echo ">>> [microcode-fix] Already has microcode initrd, skipping: $f" + continue + fi + + tmp="$(mktemp)" + { + echo "${UCODE_LINE}" + cat "$f" + } > "$tmp" + cat "$tmp" > "$f" + rm -f "$tmp" +done + +echo ">>> [microcode-fix] Done." diff --git a/raveos-calamares-theme/etc/calamares/modules/displaymanager.conf b/raveos-calamares-theme/etc/calamares/modules/displaymanager.conf new file mode 100644 index 0000000..421608c --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/displaymanager.conf @@ -0,0 +1,12 @@ +defaultdisplaymanager: sddm + +displaymanagers: + - name: cosmic-greeter + service: cosmic-greeter.service + required: false + - name: gdm + service: gdm.service + required: false + - name: sddm + service: sddm.service + required: false
\ No newline at end of file diff --git a/raveos-calamares-theme/etc/calamares/modules/finished.conf b/raveos-calamares-theme/etc/calamares/modules/finished.conf new file mode 100644 index 0000000..b0647fe --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/finished.conf @@ -0,0 +1,47 @@ +# 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). +--- +# DEPRECATED +# +# The finished page can hold a "restart system now" checkbox. +# If this is false, no checkbox is shown and the system is not restarted +# when Calamares exits. +# restartNowEnabled: true + +# DEPRECATED +# +# Initial state of the checkbox "restart now". Only relevant when the +# checkbox is shown by restartNowEnabled. +# restartNowChecked: false + +# Behavior of the "restart system now" button. +# +# There are four usable values: +# - never +# Does not show the button and does not restart. +# This matches the old behavior with restartNowEnabled=false. +# - user-unchecked +# Shows the button, defaults to unchecked, restarts if it is checked. +# This matches the old behavior with restartNowEnabled=true and restartNowChecked=false. +# - user-checked +# Shows the button, defaults to checked, restarts if it is checked. +# This matches the old behavior with restartNowEnabled=true and restartNowChecked=true. +# - always +# Shows the button, checked, but the user cannot change it. +# This is new behavior. +# +# The three combinations of legacy values are still supported. +restartNowMode: user-checked + +# If the checkbox is shown, and the checkbox is checked, then when +# Calamares exits from the finished-page it will run this command. +# If not set, falls back to "shutdown -r now". +restartNowCommand: "systemctl -i reboot" + +# When the last page is (successfully) reached, send a DBus notification +# to the desktop that the installation is done. This works only if the +# user as whom Calamares is run, can reach the regular desktop session bus. +notifyOnFinished: false diff --git a/raveos-calamares-theme/etc/calamares/modules/grubcfg.conf b/raveos-calamares-theme/etc/calamares/modules/grubcfg.conf new file mode 100644 index 0000000..8516765 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/grubcfg.conf @@ -0,0 +1,12 @@ +overwrite: false + +prefer_grub_d: false + +keep_distributor: false + +defaults: + GRUB_TIMEOUT: 5 + GRUB_DEFAULT: "saved" + GRUB_DISABLE_SUBMENU: true + GRUB_TERMINAL_OUTPUT: "console" + GRUB_DISABLE_RECOVERY: true diff --git a/raveos-calamares-theme/etc/calamares/modules/initcpio.conf b/raveos-calamares-theme/etc/calamares/modules/initcpio.conf new file mode 100644 index 0000000..6589a6e --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/initcpio.conf @@ -0,0 +1,26 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# Run mkinitcpio(8) with the given preset value +--- +# This key defines the kernel to be loaded. +# It can have the following values: +# - the name of a single mkinitcpio preset +# - empty or unset +# - the literal string "all" +# +# If kernel is set to "all" or empty/unset then mkinitpio is called for all +# kernels. Otherwise it is called with a single preset with the value +# contained in kernel. +# +# kernel: + +# 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). +# +# If your initramfs are stored in the EFI partition or another non-POSIX +# filesystem, this has no effect as the file permissions cannot be changed. +# In this case, ensure the partition is mounted securely. +# +be_unsafe: false diff --git a/raveos-calamares-theme/etc/calamares/modules/locale.conf b/raveos-calamares-theme/etc/calamares/modules/locale.conf new file mode 100644 index 0000000..102c957 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/locale.conf @@ -0,0 +1,9 @@ +region: "Europe" +zone: "Budapest" + +localeGenPath: "/etc/locale.gen" + +geoip: + style: "json" + url: "https://geoip.kde.org/v1/calamares" + selector: "" diff --git a/raveos-calamares-theme/etc/calamares/modules/mount.conf b/raveos-calamares-theme/etc/calamares/modules/mount.conf new file mode 100644 index 0000000..aa24558 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/mount.conf @@ -0,0 +1,48 @@ +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/log + subvolume: /@log + - mountPoint: /var/tmp + subvolume: /@tmp + +btrfsSwapSubvol: /@swap + +mountOptions: + - filesystem: default + options: [ defaults, noatime ] + - filesystem: efi + options: [ defaults, umask=0077 ] + - filesystem: btrfs + options: [ defaults, noatime, compress=zstd ] + - filesystem: btrfs_swap + options: [ defaults, noatime ] diff --git a/raveos-calamares-theme/etc/calamares/modules/netinstall-apps.conf b/raveos-calamares-theme/etc/calamares/modules/netinstall-apps.conf new file mode 100644 index 0000000..599c203 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/netinstall-apps.conf @@ -0,0 +1,8 @@ +groupsUrl: + - file:///etc/calamares/modules/netinstall-apps.yaml + +required: false + +label: + sidebar: "Applications" + title: "Application list"
\ No newline at end of file diff --git a/raveos-calamares-theme/etc/calamares/modules/netinstall-apps.yaml b/raveos-calamares-theme/etc/calamares/modules/netinstall-apps.yaml new file mode 100644 index 0000000..6d3b256 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/netinstall-apps.yaml @@ -0,0 +1,373 @@ +- name: "Essentials" + critical: true + selected: true + hidden: true + packages: + - flatpak + - pavucontrol +- name: "Audio" + description: "Audio Players & Editors" + critical: false + hidden: false + selected: false + expanded: false + packages: + - ardour + - audacious + - audacious-plugins + - audacity + - cider + - clementine + - deadbeef + - elisa + - easyeffects + - juk + - kwave + - lmms + - ncmpcpp + - helvum + - pragha + - radiotray + - rhythmbox + - soundconverter + - spotify + - spotifywm-git + - tauon-music-box +- name: "Accessories" + description: "Various Useful Tools" + critical: false + hidden: false + selected: false + expanded: false + packages: + - android-tools + - btop + - occt + - corectrl + - cpu-x + - font-manager-git + - galculator + - liferea + - mediainfo-gui + - mcomix + - nitrogen + - pdfarranger + - remmina + - warpinator +- name: "Browsers" + description: "Internet Browsers & E-mail" + critical: false + hidden: false + selected: false + expanded: false + packages: + - brave-bin + - chromium + - dropbox + - evolution + - filezilla + - firefox-adblock-plus + - firefox-i18n-hu + - insync + - mailspring + - nextcloud-client + - opera + - qutebrowser + - thunderbird + - tutanota-desktop + - vivaldi + - vivaldi-ffmpeg-codecs +- name: "Dev Tools" + description: "Editors for Devs" + critical: false + hidden: false + selected: false + expanded: false + packages: + - atom + - code + - geany + - meld + - guvcview + - docker +- name: "Disk & USB" + description: "USB & HDD Apps" + critical: false + hidden: false + selected: false + expanded: false + packages: + - brasero + - baobab + - etcher-bin + - gnome-disk-utility + - hefftor-ventoy-gui-git + - imagewriter + - ventoy-bin + - woeusb +- name: "File Managers" + description: "File Managers" + critical: false + hidden: false + selected: false + expanded: false + packages: + - nautilus + - nemo + - nemo-fileroller + - pcmanfm + - ranger + - thunar + - thunar-volman + - thunar-archive-plugin + - thunar-media-tags-plugin + - thunar-shares-plugin +- name: "Fonts" + description: "Fonts for Widgets" + critical: false + hidden: false + selected: false + expanded: false + packages: + - terminus-font + - ttf-bitstream-vera + - ttf-fira-code + - ttf-inconsolata + - ttf-liberation + - ttf-ubuntu-font-family +- name: Gaming + description: "Gaming related packages" + critical: false + hidden: false + selected: false + expanded: false + packages: + - heroic-games-launcher-bin + - steam + - mangohud + - lib32-mangohud + - gamemode + - protonup-qt-bin + - goverlay +- name: "Git" + description: "Git Applications" + critical: false + hidden: false + selected: false + expanded: false + packages: + - gitahead-bin + - gitg + - gitfiend + - gitkraken +- name: "Graphics" + description: "Graphics" + critical: false + hidden: false + selected: false + expanded: false + packages: + - blender + - darktable + - digikam + - flameshot + - gimp + - inkscape + - krita + - spectacle +- name: "Office" + description: "Office tools" + critical: false + hidden: false + selected: false + packages: + - libreoffice-fresh + - libreoffice-fresh-hu + - onlyoffice-bin + - hunspell-hu + - hunspell +- name: "Package Managers" + description: "Selection of Package Managers" + critical: false + hidden: false + selected: false + expanded: false + packages: + - discover + - octopi + - pamac-all +- name: "Password Manager" + description: "Password Managers" + critical: false + hidden: false + selected: false + expanded: false + packages: + - bitwarden + - enpass-bin + - keepassxc + - lastpass +- name: "Printer support" + description: "Printer support, use all packages" + critical: false + hidden: false + selected: false + expanded: false + packages: + - cups + - hplip + - cnifilter2 + - system-config-printer +- name: "Privacy" + description: "Privacy-related Apps" + critical: false + hidden: false + selected: false + expanded: false + packages: + - tor-browser + - privoxy +- name: "Social-Media" + description: "Chat Apps" + critical: false + hidden: false + selected: false + expanded: false + packages: + - discord + - hexchat + - pidgin + - mumble + - slack-desktop + - telegram-desktop + - teamspeak3 + - zoom +- name: "Terminals" + description: "Various Terminals" + critical: false + hidden: false + selected: false + expanded: false + packages: + - alacritty + - gnome-terminal + - guake + - kitty + - konsole + - lxterminal + - sakura + - terminator + - tilix + - tilda + - tmux + - unimatrix-git +- name: "Theming" + description: "Themes, icons and cursors" + critical: false + hidden: false + selected: false + expanded: false + packages: + - adapta-gtk-theme + - arc-icon-theme + - breeze + - capitaine-cursors + - faba-icon-theme-git + - kvantum-qt5 + - moka-icon-theme-git + - paper-icon-theme + - papirus-icon-theme + - surfn-mint-y-icons-git +- name: "Torrent Clients" + description: "Torrent Downloading" + critical: false + hidden: false + selected: false + expanded: false + packages: + - deluge + - ktorrent + - qbittorrent + - transmission-gtk +- name: "Utilities" + description: "Various Utilities" + critical: false + hidden: false + selected: false + expanded: false + packages: + - archey3 + - alsi + - bashtop + - bleachbit + - caffeine-ng + - evince + - gufw + - hddtemp + - inetutils + - lshw + - lolcat + - putty + - samba + - fastfetch + - sigil + - synapse + - sysprof + - systemd-manager + - timeshift + - vnstat + - wireshark-qt + - wttr + - xpadneo-dkms +- name: "Video" + description: "Video Editors & More" + critical: false + hidden: false + selected: false + expanded: false + packages: + - celluloid + - guvcview + - handbrake + - hypnotix + - kdenlive + - kodi-x11 + - kodi + - kodi-addons + - obs-studio-tytan652 + - openshot + - mkvtoolnix-gui + - mpc + - mpd + - mpv + - peek + - plex-media-player + - plex-media-server + - simplescreenrecorder + - smplayer + - vlc + - youtube-dl +- name: "Virtualbox" + description: "Virtualbox Package" + critical: false + hidden: false + selected: false + expanded: false + packages: + - virtualbox + - virtualbox-ext-vnc + - virtualbox-guest-dkms + - virtualbox-guest-iso + - virtualbox-guest-utils + - virtualbox-host-dkms +- name: "Wine" + description: "Adds Windows App Support to Linux" + critical: false + hidden: false + selected: false + expanded: false + packages: + - wine + - wine-gecko + - wine-mono + - winetricks
\ No newline at end of file diff --git a/raveos-calamares-theme/etc/calamares/modules/netinstall-desktop.conf b/raveos-calamares-theme/etc/calamares/modules/netinstall-desktop.conf new file mode 100644 index 0000000..26696c4 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/netinstall-desktop.conf @@ -0,0 +1,8 @@ +groupsUrl: + - file:///etc/calamares/modules/netinstall-desktop.yaml + +required: false + +label: + sidebar: "Desktop" + title: "Desktop selector"
\ No newline at end of file diff --git a/raveos-calamares-theme/etc/calamares/modules/netinstall-desktop.yaml b/raveos-calamares-theme/etc/calamares/modules/netinstall-desktop.yaml new file mode 100644 index 0000000..a576819 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/netinstall-desktop.yaml @@ -0,0 +1,110 @@ +- name: "KÖTELEZŐ Csomagok" + selected: true + expanded: false + exclusive: true + hidden: true + packages: + - wget + - noto-fonts + - noto-fonts-cjk + - noto-fonts-emoji + - noto-fonts-extra + - qt6-wayland + - qt5-wayland + - ttf-ubuntu-font-family + - rsync + - gvfs + - gvfs-mtp + - ufw + - gufw + - flatpak + - pavucontrol + - xdg-user-dirs + - xdg-user-dirs-gtk + - sddm + - sddm-astronaut-theme + - pipewire-jack + - hblock +- name: "KDE Plasma Desktop - Alap desktop, nincs általunk témázva" + selected: false + expanded: false + exclusive: true + packages: + - plasma + - kde-applications + - konsole +- name: "GNOME Desktop" + selected: false + expanded: false + exclusive: true + packages: + - gnome-session + - gnome-console + - gedit + - gnome-disk-utility + - gnome-system-monitor + - fuse2 + - eog + - gnome-calculator + - baobab + - gnome-control-center + - gnome-tweaks + - gnome-browser-connector + - xdg-desktop-portal + - gnome-keyring + - xdg-desktop-portal-gnome + - xdg-desktop-portal-gtk + - xdg-desktop-portal-wlr + - gnome-settings-daemon + - nautilus + - gnome-shell-extensions + - yaru-gtk-theme + - raveos-gnome-theme +- name: "Cosmic Desktop - Erősen BÉTA" + selected: false + expanded: false + exclusive: true + packages: + - cosmic + - cosmic-text-editor + - cosmic-files + - cosmic-terminal + - cosmic-player + - cosmic-wallpapers +- name: "Hyprland Desktop with DMS shell Nem felhasználó barát egyelőre!(WORK IN PROGRESS.)" + selected: false + expanded: false + exclusive: true + packages: + - hyprland + - aquamarine + - nwg-displays + - nwg-look + - hyprwayland-scanner + - xdg-desktop-portal-hyprland + - xdg-desktop-portal + - hyprland-qt-support + - hyprpolkitagent + - hyprland-guiutils + - hyprpwcenter + - hyprlauncher + - hyprtoolkit + - hyprgraphics + - hyprcursor + - hyprpicker + - hyprshot + - hypridle + - hyprlock + - hyprwire + - hyprpaper + - dms-shell-git + - kitty + - thunar + - thunar-volman + - thunar-archive-plugin + - thunar-media-tags-plugin + - thunar-shares-plugin + - thunar-archive-plugin + - xarchiver + - tumbler + - polkit-gnome
\ No newline at end of file diff --git a/raveos-calamares-theme/etc/calamares/modules/netinstall-drivers.conf b/raveos-calamares-theme/etc/calamares/modules/netinstall-drivers.conf new file mode 100644 index 0000000..3e83219 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/netinstall-drivers.conf @@ -0,0 +1,8 @@ +groupsUrl: + - file:///etc/calamares/modules/netinstall-drivers.yaml + +required: false + +label: + sidebar: "Drivers" + title: "Drivers and Microcode" diff --git a/raveos-calamares-theme/etc/calamares/modules/netinstall-drivers.yaml b/raveos-calamares-theme/etc/calamares/modules/netinstall-drivers.yaml new file mode 100644 index 0000000..a5613a5 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/netinstall-drivers.yaml @@ -0,0 +1,29 @@ +- name: "Microcode" + selected: false + expanded: false + exclusive: false + packages: + - intel-ucode + - amd-ucode +- name: "NVIDIA Driver" + selected: false + expanded: false + exlusive: false + packages: + - nvidia-open-dkms + - nvidia-utils + - nvtop + - egl-gbm + - egl-x11 + - egl-wayland + - egl-wayland2 + - lib32-nvidia-utils + - libva-nvidia-driver +- name: "AMD Drivers" + selected: false + expanded: false + exclusive: false + packages: + - mesa + - vulkan-radeon + - lib32-vulkan-radeon diff --git a/raveos-calamares-theme/etc/calamares/modules/packages.conf b/raveos-calamares-theme/etc/calamares/modules/packages.conf new file mode 100644 index 0000000..ac375cb --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/packages.conf @@ -0,0 +1,14 @@ +backend: pacman + +update_db: true + +pacman: + repositories: + core: true + extra: true + multilib: true + chaotic-aur: true + raveos-core-repo: true + +packages: [] +remove: [] diff --git a/raveos-calamares-theme/etc/calamares/modules/partition.conf b/raveos-calamares-theme/etc/calamares/modules/partition.conf new file mode 100644 index 0000000..b0a9951 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/partition.conf @@ -0,0 +1,259 @@ +# 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" + +# This optional setting specifies the size of the EFI system partition. +# If nothing is specified, the default size of 300MiB will be used. +# +# This size applies both to automatic partitioning and the checks +# during manual partitioning. A minimum of 32MiB is enforced, +# 300MiB is the default, M is treated as MiB, and if you really want +# one-million (10^6) bytes, use MB. +# +efiSystemPartitionSize: 1024M + +# This optional setting specifies the name of the EFI system partition (see +# PARTLABEL; gpt only; requires KPMCore >= 4.2.0). +# If nothing is specified, the partition name is left unset. +efiSystemPartitionName: EFI + +# In autogenerated partitioning, allow the user to select a swap size? +# If there is exactly one choice, no UI is presented, and the user +# cannot make a choice -- this setting is used. If there is more than +# one choice, a UI is presented. +# +# Legacy settings *neverCreateSwap* and *ensureSuspendToDisk* correspond +# to values of *userSwapChoices* as follows: +# - *neverCreateSwap* is true, means [none] +# - *neverCreateSwap* is false, *ensureSuspendToDisk* is false, [small] +# - *neverCreateSwap* is false, *ensureSuspendToDisk* is true, [suspend] +# +# Autogenerated swap sizes are as follows: +# - *suspend*: Swap is always at least total memory size, +# and up to 4GiB RAM follows the rule-of-thumb 2 * memory; +# from 4GiB to 8 GiB it stays steady at 8GiB, and over 8 GiB memory +# swap is the size of main memory. +# - *small*: Follows the rules above, but Swap is at +# most 8GiB, and no more than 10% of available disk. +# In both cases, a fudge factor (usually 10% extra) is applied so that there +# is some space for administrative overhead (e.g. 8 GiB swap will allocate +# 8.8GiB on disk in the end). +# +# If *file* is enabled here, make sure to have the *fstab* module +# as well (later in the exec phase) so that the swap file is +# actually created. +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 optional setting specifies the name of the swap partition (see +# PARTLABEL; gpt only; requires KPMCore >= 4.2.0). +# If nothing is specified, the partition name is left unset. +# swapPartitionName: swap + +# LEGACY SETTINGS (these will generate a warning) +# ensureSuspendToDisk: true +# neverCreateSwap: false + +# Correctly draw nested (e.g. logical) partitions as such. +drawNestedPartitions: false + +# Show/hide partition labels on manual partitioning page. +alwaysShowPartitionLabels: true + +# Allow manual partitioning. +# +# When set to false, this option hides the "Manual partitioning" button, +# limiting the user's choice to "Erase", "Replace" or "Alongside". +# This can be useful when using a custom partition layout we don't want +# the user to modify. +# +# If nothing is specified, manual partitioning is enabled. +#allowManualPartitioning: true + +# Initial selection on the Choice page +# +# There are four radio buttons (in principle: erase, replace, alongside, manual), +# and you can pick which of them, if any, is initially selected. For most +# installers, "none" is the right choice: it makes the user pick something specific, +# rather than accidentally being able to click past an important choice (in particular, +# "erase" is a dangerous choice). +# +# The default is "none" +# +initialPartitioningChoice: none +# +# Similarly, some of the installation choices may offer a choice of swap; +# the available choices depend on *userSwapChoices*, above, and this +# setting can be used to pick a specific one. +# +# The default is "none" (no swap) if that is one of the enabled options, otherwise +# one of the items from the options. +initialSwapChoice: none + +# Default partition table type, used when a "erase" disk is made. +# +# When erasing a disk, a new partition table is created on disk. +# In other cases, e.g. Replace and Alongside, as well as when using +# manual partitioning, this partition table exists already on disk +# and it is left unmodified. +# +# Suggested values: gpt, msdos +# If nothing is specified, Calamares defaults to "gpt" if system is +# efi or "msdos". +# +# Names are case-sensitive and defined by KPMCore. +defaultPartitionTableType: gpt + +# Requirement for partition table type +# +# Restrict the installation on disks that match the type of partition +# tables that are specified. +# +# Possible values: msdos, gpt. Names are case-sensitive and defined by KPMCore. +# +# If nothing is specified, Calamares defaults to both "msdos" and "gpt". +# +requiredPartitionTableType: gpt +# requiredPartitionTableType: +# - msdos +# - gpt + +# Default filesystem type, used when a "new" partition is made. +# +# When replacing a partition, the existing filesystem inside the +# partition is retained. In other cases, e.g. Erase and Alongside, +# as well as when using manual partitioning and creating a new +# partition, this filesystem type is pre-selected. Note that +# editing a partition in manual-creation mode will not automatically +# change the filesystem type to this default value -- it is not +# creating a new partition. +# +# Suggested values: ext2, ext3, ext4, reiser, xfs, jfs, btrfs +# If nothing is specified, Calamares defaults to "ext4". +# +# Names are case-sensitive and defined by KPMCore. +defaultFileSystemType: "ext4" + +# Selectable filesystem type, used when "erase" is done. +# +# When erasing the disk, the *defaultFileSystemType* is used (see +# above), but it is also possible to give users a choice: +# list suitable filesystems here. A drop-down is provided +# to pick which is the filesystems will be used. +# +# The value *defaultFileSystemType* is added to this list (with a warning) +# if not present; the default pick is the *defaultFileSystemType*. +# +# If not specified at all, uses *defaultFileSystemType* without a +# warning (this matches traditional no-choice-available behavior best). +availableFileSystemTypes: ["ext4","btrfs"] + +# Show/hide LUKS related functionality in automated partitioning modes. +# Disable this if you choose not to deploy early unlocking support in GRUB2 +# and/or your distribution's initramfs solution. +# +# BIG FAT WARNING: +# +# This option is unsupported, as it cuts out a crucial security feature. +# Disabling LUKS and shipping Calamares without a correctly configured GRUB2 +# and initramfs is considered suboptimal use of the Calamares software. The +# Calamares team will not provide user support for any potential issue that +# may arise as a consequence of setting this option to false. +# It is strongly recommended that system integrators put in the work to support +# LUKS unlocking support in GRUB2 and initramfs/dracut/mkinitcpio/etc. +# For more information on setting up GRUB2 for Calamares with LUKS, see +# https://github.com/calamares/calamares/wiki/Deploy-LUKS +# +# If nothing is specified, LUKS is enabled in automated modes. +#enableLuksAutomatedPartitioning: true + +# Partition layout. +# +# This optional setting specifies a custom partition layout. +# +# If nothing is specified, the default partition layout is a single partition +# for root that uses 100% of the space and uses the filesystem defined by +# defaultFileSystemType. +# +# Note: the EFI system partition is prepend automatically to the layout if +# needed; the swap partition is appended to the layout if enabled (small of +# suspend). +# +# Otherwise, the partition layout is defined as follow: +# +# partitionLayout: +# - name: "rootfs" +# type: "4f68bce3-e8cd-4db1-96e7-fbcaf984b709" +# filesystem: "ext4" +# mountPoint: "/" +# size: 20% +# minSize: 500M +# maxSize: 10G +# attributes: 0xffff000000000003 +# - name: "home" +# type: "933ac7e1-2eb4-4f13-b844-0e14e2aef915" +# filesystem: "ext4" +# mountPoint: "/home" +# size: 3G +# minSize: 1.5G +# features: +# 64bit: false +# casefold: true +# - name: "data" +# filesystem: "fat32" +# mountPoint: "/data" +# features: +# sector-size: 4096 +# sectors-per-cluster: 128 +# size: 100% +# +# There can be any number of partitions, each entry having the following attributes: +# - name: filesystem label +# and +# partition name (gpt only; since KPMCore 4.2.0) +# - uuid: partition uuid (optional parameter; gpt only; requires KPMCore >= 4.2.0) +# - type: partition type (optional parameter; gpt only; requires KPMCore >= 4.2.0) +# - attributes: partition attributes (optional parameter; gpt only; requires KPMCore >= 4.2.0) +# - filesystem: filesystem type (optional parameter) +# - if not set at all, treat as "unformatted" +# - if "unformatted", no filesystem will be created +# - if "unknown" (or an unknown FS name, like "elephant") then the +# default filesystem type, or the user's choice, will be applied instead +# of "unknown" (e.g. the user might pick ext4, or xfs). +# - mountPoint: partition mount point (optional parameter; not mounted if unset) +# - size: partition size in bytes (append 'K', 'M' or 'G' for KiB, MiB or GiB) +# or +# % of the available drive space if a '%' is appended to the value +# - minSize: minimum partition size (optional parameter) +# - maxSize: maximum partition size (optional parameter) +# - features: filesystem features (optional parameter; requires KPMCore >= 4.2.0) +# name: boolean or integer or string + +# Checking for available storage +# +# This overlaps with the setting of the same name in the welcome module's +# requirements section. If nothing is set by the welcome module, this +# value is used instead. It is still a problem if there is no required +# size set at all, and the replace and resize options will not be offered +# if no required size is set. +# +# The value is in Gibibytes (GiB). +# +# BIG FAT WARNING: except for OEM-phase-0 use, you should be using +# the welcome module, **and** configure this value in +# `welcome.conf`, not here. +# requiredStorage: 3.5 + + +lvm: + enable: false diff --git a/raveos-calamares-theme/etc/calamares/modules/preservefiles.conf b/raveos-calamares-theme/etc/calamares/modules/preservefiles.conf new file mode 100644 index 0000000..379d2fc --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/preservefiles.conf @@ -0,0 +1,67 @@ +# 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) +# +# +# +files: + - from: log + dest: /var/log/Calamares.log + perm: root:root:644 + - from: config + dest: /var/log/Calamares-install.json + perm: root:root:644 +# - 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" diff --git a/raveos-calamares-theme/etc/calamares/modules/removeuser.conf b/raveos-calamares-theme/etc/calamares/modules/removeuser.conf new file mode 100644 index 0000000..6f32070 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/removeuser.conf @@ -0,0 +1,13 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# Removes a single user (with userdel) from the system. +# This is typically used in OEM setups or if the live user +# spills into the target system. +# +# The module never fails; if userdel fails, this is logged +# but the module still reports success and installation / setup +# continues as normal. +--- +# Username in the target system to be removed. +username: raveos diff --git a/raveos-calamares-theme/etc/calamares/modules/services-systemd.conf b/raveos-calamares-theme/etc/calamares/modules/services-systemd.conf new file mode 100644 index 0000000..d541f92 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/services-systemd.conf @@ -0,0 +1,9 @@ +services: + - name: sddm + enable: true + - name: NetworkManager + enable: true + - name: gdm + enable: true + - name: cosmic-greeter + enable: true diff --git a/raveos-calamares-theme/etc/calamares/modules/shellprocess-before.conf b/raveos-calamares-theme/etc/calamares/modules/shellprocess-before.conf new file mode 100644 index 0000000..fdf7949 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/shellprocess-before.conf @@ -0,0 +1,12 @@ +dontChroot: false +timeout: 999 + +script: + - "-/usr/bin/pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com" + - "-/usr/bin/pacman-key --lsign-key 3056513887B78AEB" + - "-/usr/bin/pacman-key --recv-key 349BC7808577C592 --keyserver keyserver.ubuntu.com" + - "-/usr/bin/pacman-key --lsign-key 349BC7808577C592" + - "-/usr/bin/pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst'" + - "-/usr/bin/pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'" + - "-/usr/bin/pacman -Sy --noconfirm chaotic-keyring" + - "-/usr/bin/pacman -Syu --noconfirm" diff --git a/raveos-calamares-theme/etc/calamares/modules/shellprocess-branding.conf b/raveos-calamares-theme/etc/calamares/modules/shellprocess-branding.conf new file mode 100644 index 0000000..cb25e8f --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/shellprocess-branding.conf @@ -0,0 +1,14 @@ +dontChroot: true +timeout: 60 + +script: + - command: "cp /etc/os-release ${ROOT}/etc/os-release" + - command: "cp /etc/lsb-release ${ROOT}/etc/lsb-release" + name: "Applying system identity..." + - command: "cp /etc/pacman.conf ${ROOT}/etc/pacman.conf" + - command: "cp /etc/pacman.d/chaotic-mirrorlist ${ROOT}/etc/pacman.d/chaotic-mirrorlist" + - command: "/usr/bin/pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com" + - command: "/usr/bin/pacman-key --lsign-key 3056513887B78AEB" + name: "Populating Chaotic-AUR keys" + - command: "mkdir -p ${ROOT}/usr/lib/kernel/install.d" + - command: "cp /usr/share/calamares/kernel-install/95-raveos.install ${ROOT}/usr/lib/kernel/install.d/95-raveos.install" diff --git a/raveos-calamares-theme/etc/calamares/modules/shellprocess-dkms.conf b/raveos-calamares-theme/etc/calamares/modules/shellprocess-dkms.conf new file mode 100644 index 0000000..be6d235 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/shellprocess-dkms.conf @@ -0,0 +1,8 @@ +# DKMS modules install + +dontChroot: false # run inside target chroot so DKMS builds against the installed kernel +timeout: 3600 # Give it plenty of time (1 hour) for slow downloads + +script: + - command: "dkms autoinstall --verbose || true" + name: "Installing DKMS modules" diff --git a/raveos-calamares-theme/etc/calamares/modules/shellprocess-enableservices.conf b/raveos-calamares-theme/etc/calamares/modules/shellprocess-enableservices.conf new file mode 100644 index 0000000..335f3a9 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/shellprocess-enableservices.conf @@ -0,0 +1,21 @@ +dontChroot: false +timeout: 3600 + +script: + - command: "systemctl enable NetworkManager.service || true" + - command: "systemctl enable iwd.service || true" + - command: "systemctl enable bluetooth.service || true" + - command: "systemctl enable sddm.service || true" + - command: "systemctl enable gdm.service || true" + - command: "systemctl enable cosmic-greeter.service || true" + - command: "mkdir -p /etc/NetworkManager/conf.d && printf '[device]\nwifi.backend=iwd\n' > /etc/NetworkManager/conf.d/wifi_backend.conf || true" + - command: "mkdir -p /etc/iwd && printf '[General]\nEnableNetworkConfiguration=false\n' > /etc/iwd/main.conf || true" + - command: "ln -sf /dev/null /etc/systemd/system/wpa_supplicant.service || true" + - command: "pacman -S --noconfirm raveos-app-installer || true" + - command: "pacman -Sdd --noconfirm yaru-gtk-theme || true" + - command: "rm -f /usr/share/wayland-sessions/gnome-classic*.desktop /usr/share/xsessions/gnome-classic*.desktop || true" + - command: "sed -i 's/^#IgnorePkg/IgnorePkg/' /etc/pacman.conf || true" + - command: "systemctl disable sleep.target suspend.target hibernate.target hybrid-sleep.target geoclue.service || true" + - command: "systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target geoclue.service || true" + - command: "systemctl enable reflector-once.service || true" + name: "Enabling services and Display Managers" diff --git a/raveos-calamares-theme/etc/calamares/modules/shellprocess-final.conf b/raveos-calamares-theme/etc/calamares/modules/shellprocess-final.conf new file mode 100644 index 0000000..9a337c4 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/shellprocess-final.conf @@ -0,0 +1,25 @@ +--- +dontChroot: true +timeout: 999 + +script: + - "-rm -r ${ROOT}/home/${USER}/.config/alci-dwm" + - "-rm ${ROOT}/etc/sudoers.d/g_wheel" + - "-rm -r ${ROOT}/etc/mkinitcpio.conf.d/" + - "-rm -r ${ROOT}/etc/systemd/system/getty@tty1.service.d" + - "-rm -r ${ROOT}/etc/systemd/system/multi-user.target.wants/pacman-init.service" + - "-rm -r ${ROOT}/etc/systemd/system/pacman-init.service" + - "-rm ${ROOT}/etc/systemd/system/etc-pacman.d-gnupg.mount" + - "-rm ${ROOT}/root/.automated_script.sh" + - "-rm ${ROOT}/root/.zlogin" + - "-rm ${ROOT}/etc/polkit-1/rules.d/49-nopasswd_global.rules" + - "-rm ${ROOT}/etc/polkit-1/rules.d/49-nopasswd-calamares.rules" + - "install -Dm755 /etc/calamares/modules/calamares-microcode-fix.sh ${ROOT}/root/calamares-microcode-fix.sh" + - "chroot ${ROOT} /bin/bash /root/calamares-microcode-fix.sh" + - "install -Dm755 /etc/calamares/modules/calamares-gpu-drivers.sh ${ROOT}/root/calamares-gpu-drivers.sh" + - "chroot ${ROOT} /bin/bash /root/calamares-gpu-drivers.sh" + - "-cp /etc/resolv.conf ${ROOT}/etc/resolv.conf" + - "if [ -x ${ROOT}/usr/lib/raveos-gnome-theme/auto-apply.sh ]; then arch-chroot ${ROOT} /usr/lib/raveos-gnome-theme/auto-apply.sh; fi" + - "if [ -x ${ROOT}/usr/lib/raveos-cosmic-theme/auto-apply.sh ]; then arch-chroot ${ROOT} /usr/lib/raveos-cosmic-theme/auto-apply.sh; fi" + - "if [ -x ${ROOT}/usr/lib/raveos-kde-theme/auto-apply.sh ]; then arch-chroot ${ROOT} /usr/lib/raveos-kde-theme/auto-apply.sh; fi" + - "if [ -x ${ROOT}/usr/lib/raveos-hyprland-theme/auto-apply.sh ]; then arch-chroot ${ROOT} /usr/lib/raveos-hyprland-theme/auto-apply.sh; fi"
\ No newline at end of file diff --git a/raveos-calamares-theme/etc/calamares/modules/shellprocess-loader.conf b/raveos-calamares-theme/etc/calamares/modules/shellprocess-loader.conf new file mode 100644 index 0000000..69d9f30 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/shellprocess-loader.conf @@ -0,0 +1,10 @@ +dontChroot: true +timeout: 60 +script: + # 1. Copy across RaveOS bootloader, loader.conf, remove the other entry + - command: "cp -r /root/.loader.conf ${ROOT}/boot/loader/loader.conf || true" + - command: "rm -r ${ROOT}/boot/loader/entries/*cachyos* || true" + # - command: "install -Dm755 /etc/calamares/modules/calamares-microcode-fix.sh ${ROOT}/root/calamares-microcode-fix.sh" + + + diff --git a/raveos-calamares-theme/etc/calamares/modules/shellprocess-pacstrap.conf b/raveos-calamares-theme/etc/calamares/modules/shellprocess-pacstrap.conf new file mode 100644 index 0000000..726d493 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/shellprocess-pacstrap.conf @@ -0,0 +1,8 @@ +dontChroot: true +timeout: 3600 + +script: + - command: "/usr/bin/pacman-key --init && /usr/bin/pacman-key --populate" + name: "Initializing package signing keys..." + - command: "pacstrap ${ROOT} base base-devel linux-cachyos linux-cachyos-headers linux-firmware networkmanager iwd broadcom-wl-dkms wireless-regdb nano vim grub efibootmgr bash-completion yay-bin dkms lsb-release mkinitcpio-openswap" + name: "Bootstrapping Arch Linux (Netinstall)..." diff --git a/raveos-calamares-theme/etc/calamares/modules/unpackfs.conf b/raveos-calamares-theme/etc/calamares/modules/unpackfs.conf new file mode 100644 index 0000000..6bf2ff2 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/unpackfs.conf @@ -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" + sourcefs: "file" + destination: "/boot/vmlinuz-linux" diff --git a/raveos-calamares-theme/etc/calamares/modules/users.conf b/raveos-calamares-theme/etc/calamares/modules/users.conf new file mode 100644 index 0000000..04282b2 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/users.conf @@ -0,0 +1,218 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# Configuration for the one-user-system user module. +# +# Besides these settings, the users module also places the following +# keys into the Global Storage area, based on user input in the view step. +# +# - hostname +# - username +# - password (obscured) +# - autologinUser (if enabled, set to username) +# +# These Global Storage keys are set when the configuration for this module +# is read and when they are modified in the UI. +--- +# Used as default groups for the created user. +# Adjust to your Distribution defaults. +# +# Each entry in the *defaultGroups* list is either: +# - a string, naming a group; this is a **non**-system group +# which does not need to exist in the target system; if it +# does not exist, it will be created. +# - an entry with subkeys *name*, *must_exist* and *system*; +# if the group *must_exist* and does not, an error is thrown +# and the installation fails. +# +# The group is created if it does not exist, and it is +# created as a system group (GID < 1000) or user group +# (GID >= 1000) depending on the value of *system*. +defaultGroups: + - name: users + must_exist: true + system: true + - lp + - video + - network + - storage + - name: wheel + must_exist: false + system: true + - audio + - plugdev + +# Some Distributions require a 'autologin' group for the user. +# Autologin causes a user to become automatically logged in to +# the desktop environment on boot. +# Disable when your Distribution does not require such a group. +#autologinGroup: autologin +# You can control the initial state for the 'autologin checkbox' here. +# Possible values are: +# - true to check or +# - false to uncheck +# These set the **initial** state of the checkbox. +# doAutologin: true + +# When *sudoersGroup* is set to a non-empty string, Calamares creates a +# sudoers file for the user. This file is located at: +# `/etc/sudoers.d/10-installer` +# Remember to add the (value of) *sudoersGroup* to *defaultGroups*. +# +# If your Distribution already sets up a group of sudoers in its packaging, +# remove this setting (delete or comment out the line below). Otherwise, +# the setting will be duplicated in the `/etc/sudoers.d/10-installer` file, +# potentially confusing users. +sudoersGroup: wheel +# If set to `false` (the default), writes a sudoers file with `(ALL)` +# so that the command can be run as any user. If set to `true`, writes +# `(ALL:ALL)` so that any user and any group can be chosen. +sudoersConfigureWithGroup: true + +# Setting this to false, causes the root account to be disabled. +# When disabled, hides the "Use the same password for administrator" +# checkbox. Also hides the "Choose a password" and associated text-inputs. +setRootPassword: true + +# You can control the initial state for the 'reuse password for root' +# checkbox here. Possible values are: +# - true to check or +# - false to uncheck +# +# When checked, the user password is used for the root account too. +# +# NOTE: *doReusePassword* requires *setRootPassword* to be enabled. +doReusePassword: true + +# These are optional password-requirements that a distro can enforce +# on the user. The values given in this sample file set only very weak +# validation settings. +# +# - nonempty rejects empty passwords +# - there are no length validations +# - libpwquality (if it is enabled at all) has no length of class +# restrictions, although it will still reject palindromes and +# dictionary words with these settings. +# +# Checks may be listed multiple times; each is checked separately, +# and no effort is done to ensure that the checks are consistent +# (e.g. specifying a maximum length less than the minimum length +# will annoy users). +# +# The libpwquality check relies on the (optional) libpwquality library. +# Its value is a list of configuration statements that could also +# be found in pwquality.conf, and these are handed off to the +# libpwquality parser for evaluation. The check is ignored if +# libpwquality is not available at build time (generates a warning in +# the log). The Calamares password check rejects passwords with a +# score of < 40 with the given libpwquality settings. +# +# (additional checks may be implemented in CheckPWQuality.cpp and +# wired into UsersPage.cpp) +# +# - To disable specific password validations: +# comment out the relevant 'passwordRequirements' keys below. +# - To disable all password validations: +# set both 'allowWeakPasswords' and 'allowWeakPasswordsDefault' to true. +# (That will show the box *Allow weak passwords* in the user- +# interface, and check it by default). +#passwordRequirements: +# nonempty: true +# minLength: -1 # Password at least this many characters +# maxLength: -1 # Password at most this many characters +# libpwquality: +# - minlen=0 +# - minclass=0 + +# You can control the visibility of the 'strong passwords' checkbox here. +# Possible values are: +# - true to show or +# - false to hide (default) +# the checkbox. This checkbox allows the user to choose to disable +# password-strength-checks. By default the box is **hidden**, so +# that you have to pick a password that satisfies the checks. +allowWeakPasswords: false +# You can control the initial state for the 'strong passwords' checkbox here. +# Possible values are: +# - true to uncheck or +# - false to check (default) +# the checkbox by default. Since the box is labeled to enforce strong +# passwords, in order to **allow** weak ones by default, the box needs +# to be unchecked. +allowWeakPasswordsDefault: true + +# User settings +# +# The user can enter a username, but there are some other +# hidden settings for the user which are configurable in Calamares. +# +# Key *user* has the following sub-keys: +# +# - *shell* Shell to be used for the regular user of the target system. +# There are three possible kinds of settings: +# - unset (i.e. commented out, the default), act as if set to /bin/bash +# - empty (explicit), don't pass shell information to useradd at all +# and rely on a correct configuration file in /etc/default/useradd +# - set, non-empty, use that path as shell. No validation is done +# that the shell actually exists or is executable. +# - *forbidden_names* Login names that may not be used. This list always +# contains "root" and "nobody", but may be extended to list other special +# names for a given distro (eg. "video", or "mysql" might not be a valid +# end-user login name). +user: + shell: /bin/bash + forbidden_names: [ root ] + +# Hostname settings +# +# The user can enter a hostname; this is configured into the system +# in some way. There are settings for how a hostname is guessed (as +# a default / suggestion) and where (or how) the hostname is set in +# the target system. +# +# Key *hostname* has the following sub-keys: +# +# - *location* How the hostname is set in the target system: +# - *None*, to not set the hostname at all +# - *EtcFile*, to write to `/etc/hostname` directly +# - *Etc*, identical to above +# - *Hostnamed*, to use systemd hostnamed(1) over DBus +# - *Transient*, to remove `/etc/hostname` from the target +# The default is *EtcFile*. Setting this to *None* or *Transient* will +# hide the hostname field. +# - *writeHostsFile* Should /etc/hosts be written with a hostname for +# this machine (also adds localhost and some ipv6 standard entries). +# Defaults to *true*. +# - *template* Is a simple template for making a suggestion for the +# hostname, based on user data. The default is "${first}-${product}". +# This is used only if the hostname field is shown. KMacroExpander is +# used; write `${key}` where `key` is one of the following: +# - *first* User's first name (whatever is first in the User Name field, +# which is first-in-order but not necessarily a "first name" as in +# "given name" or "name by which you call someone"; beware of western bias) +# - *name* All the text in the User Name field. +# - *login* The login name (which may be suggested based on User Name) +# - *product* The hardware product, based on DMI data +# - *product2* The product as described by Qt +# - *cpu* CPU name +# - *host* Current hostname (which may be a transient hostname) +# Literal text in the template is preserved. Calamares tries to map +# `${key}` values to something that will fit in a hostname, but does not +# apply the same to literal text in the template. Do not use invalid +# characters in the literal text, or no suggeston will be done. +# - *forbidden_names* lists hostnames that may not be used. This list +# always contains "localhost", but may list others that are unsuitable +# or broken in special ways. +hostname: + location: EtcFile + writeHostsFile: true + #template: "alci-${cpu}" + forbidden_names: [ localhost ] + +presets: + fullName: + # value: "OEM User" + editable: true + loginName: + # value: "oem" + editable: true diff --git a/raveos-calamares-theme/etc/calamares/modules/welcome.conf b/raveos-calamares-theme/etc/calamares/modules/welcome.conf new file mode 100644 index 0000000..206cbb4 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/welcome.conf @@ -0,0 +1,121 @@ +# 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". +# +# TODO:3.3 Remove the URL fallback here; URLs only in `branding.desc` +# +# The setting can also be a full URL which will then be used +# instead of the one from the branding file. +showSupportUrl: false +showKnownIssuesUrl: false +showReleaseNotesUrl: false +# TODO:3.3 Move to branding, keep only a bool here +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: 10 + + # Amount of available RAM, in GiB. Floating-point is allowed here. + requiredRam: 1.0 + + # To check for internet connectivity, Calamares does a HTTP GET + # on this URL; on success (e.g. HTTP code 200) internet is OK. + # Use a privacy-respecting URL here, preferably in your distro's domain. + # + # The URL is only used if "internet" is in the *check* list below. + internetCheckUrl: http://example.com + # + # This may be a single URL, or a list or URLs, in which case the + # URLs will be checked one-by-one; if any of them returns data, + # internet is assumed to be OK. This can be used to check via + # a number of places, where some domains may be down or blocked. + # + # To use a list of URLs, just use YAML list syntax (e.g. + # + # internetCheckUrl: + # - http://www.kde.org + # - http://www.freebsd.org + # + # or short-form + # + # internetCheckUrl: [ http://www.kde.org, http://www.freebsd.org ] + + # List conditions to check. Each listed condition will be + # probed in some way, and yields true or false according to + # the host system satisfying the condition. + # + # This sample file lists all the conditions that are known. + check: + - storage + - ram + - power + - internet + - root + - screen + + # List conditions that **must** be satisfied (from the list + # of conditions, above) for installation to proceed. + # If any of these conditions are not met, the user cannot + # continue past the welcome page. + required: + - storage + - ram + # - root + +# GeoIP checking +# +# This can be used to pre-select a language based on the country +# the user is currently in. It *assumes* that there's internet +# connectivity, though. Configuration is like in the locale module, +# but remember to use a URL that returns full data **and** to +# use a selector that will pick the country, not the timezone. +# +# To disable GeoIP checking, either comment-out the entire geoip section, +# or set the *style* key to an unsupported format (e.g. `none`). +# Also, note the analogous feature in `src/modules/locale/locale.conf`, +# which is where you will find complete documentation. +# +# For testing, the *style* may be set to `fixed`, any URL that +# returns data (e.g. `http://example.com`) and then *selector* +# sets the data that is actually returned (e.g. "DE" to simulate +# the machine being in Germany). +# +# NOTE: the *selector* must pick the country code from the GeoIP +# data. Timezone, city, or other data will not be recognized. +# +geoip: + style: "json" + url: "https://geoip.kde.org/v1/calamares" + selector: "" + +# User interface +# +# The "select language" icon is an international standard, but it +# might not theme very well with your desktop environment. +# Fill in an icon name (following FreeDesktop standards) to +# use that named icon instead of the usual one. +# +# Leave blank or unset to use the international standard. +# +# Known icons in this space are "set-language" and "config-language". +# +# languageIcon: set-language |