summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid P <megver83@parabola.nu>2021-08-17 02:17:15 -0400
committerDavid P <megver83@parabola.nu>2021-08-17 02:17:15 -0400
commit03e19b7bcde6f7083aeaff6994d113ec9d06dcc3 (patch)
tree30fd058e23f215ef02799316c31d0fe6f59829d0
initial import
Signed-off-by: David P <megver83@parabola.nu>
-rw-r--r--README.rst5
-rwxr-xr-xlxde-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector9
-rw-r--r--lxde-openrc/airootfs/etc/X11/Xwrapper.config1
-rw-r--r--lxde-openrc/airootfs/etc/conf.d/agetty.tty13
-rw-r--r--lxde-openrc/airootfs/etc/conf.d/hostname1
-rw-r--r--lxde-openrc/airootfs/etc/elogind/logind.conf.d/do-not-suspend.conf4
-rw-r--r--lxde-openrc/airootfs/etc/fstab0
-rwxr-xr-xlxde-openrc/airootfs/etc/local.d/choose-mirror.start4
-rwxr-xr-xlxde-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start9
-rwxr-xr-xlxde-openrc/airootfs/etc/local.d/livecd-talk.start9
-rwxr-xr-xlxde-openrc/airootfs/etc/local.d/pacman-init.start7
-rw-r--r--lxde-openrc/airootfs/etc/locale.conf1
l---------lxde-openrc/airootfs/etc/localtime1
-rw-r--r--lxde-openrc/airootfs/etc/mkinitcpio.conf67
-rw-r--r--lxde-openrc/airootfs/etc/mkinitcpio.d/linux-libre.preset8
-rw-r--r--lxde-openrc/airootfs/etc/motd9
-rw-r--r--lxde-openrc/airootfs/etc/pacman.conf184
-rw-r--r--lxde-openrc/airootfs/etc/pacman.d/hooks/40-locale-gen.hook13
-rw-r--r--lxde-openrc/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook12
-rw-r--r--lxde-openrc/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook18
-rw-r--r--lxde-openrc/airootfs/etc/passwd1
l---------lxde-openrc/airootfs/etc/runlevels/default/NetworkManager1
-rw-r--r--lxde-openrc/airootfs/etc/shadow1
-rw-r--r--lxde-openrc/airootfs/etc/skel/.config/lxsession/LXDE/desktop.conf48
-rw-r--r--lxde-openrc/airootfs/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf14
-rw-r--r--lxde-openrc/airootfs/etc/ssh/sshd_config116
-rw-r--r--lxde-openrc/airootfs/etc/wallpaper.pngbin0 -> 159460 bytes
-rwxr-xr-xlxde-openrc/airootfs/root/.automated_script.sh34
-rw-r--r--lxde-openrc/airootfs/root/.codecheck2
-rw-r--r--lxde-openrc/airootfs/root/.config/dconf/userbin0 -> 6616 bytes
-rw-r--r--lxde-openrc/airootfs/root/.config/gtk-2.0/gtkfilechooser.ini11
-rw-r--r--lxde-openrc/airootfs/root/.config/lxsession/LXDE/autostart4
-rw-r--r--lxde-openrc/airootfs/root/.config/pcmanfm/LXDE/desktop-items-0.conf4
-rw-r--r--lxde-openrc/airootfs/root/.config/volumeicon/volumeicon25
-rwxr-xr-xlxde-openrc/airootfs/root/.keymap.sh15
-rwxr-xr-xlxde-openrc/airootfs/root/.language.sh35
-rwxr-xr-xlxde-openrc/airootfs/root/.scriptsInstallation/language/en/install.sh231
-rwxr-xr-xlxde-openrc/airootfs/root/.scriptsInstallation/language/en/systemConfig.sh271
-rwxr-xr-xlxde-openrc/airootfs/root/.scriptsInstallation/language/en/userAccount.sh13
-rwxr-xr-xlxde-openrc/airootfs/root/.scriptsInstallation/language/es/install.sh231
-rwxr-xr-xlxde-openrc/airootfs/root/.scriptsInstallation/language/es/systemConfig.sh271
-rwxr-xr-xlxde-openrc/airootfs/root/.scriptsInstallation/language/es/userAccount.sh13
-rwxr-xr-xlxde-openrc/airootfs/root/.scriptsInstallation/language/gl/install.sh230
-rwxr-xr-xlxde-openrc/airootfs/root/.scriptsInstallation/language/gl/systemConfig.sh271
-rwxr-xr-xlxde-openrc/airootfs/root/.scriptsInstallation/language/gl/userAccount.sh13
-rwxr-xr-xlxde-openrc/airootfs/root/.scriptsInstallation/language/pt/install.sh231
-rwxr-xr-xlxde-openrc/airootfs/root/.scriptsInstallation/language/pt/systemConfig.sh271
-rwxr-xr-xlxde-openrc/airootfs/root/.scriptsInstallation/language/pt/userAccount.sh13
-rw-r--r--lxde-openrc/airootfs/root/.scriptsInstallation/parabolaicon.pngbin0 -> 857 bytes
-rwxr-xr-xlxde-openrc/airootfs/root/.scriptsInstallation/x11.sh14
-rw-r--r--lxde-openrc/airootfs/root/.xinitrc7
-rw-r--r--lxde-openrc/airootfs/root/.zlogin10
-rwxr-xr-xlxde-openrc/airootfs/root/Desktop/Parabola Installation CLI.desktop12
-rwxr-xr-xlxde-openrc/airootfs/usr/local/bin/Installation_guide5
-rwxr-xr-xlxde-openrc/airootfs/usr/local/bin/choose-mirror28
-rwxr-xr-xlxde-openrc/airootfs/usr/local/bin/livecd-sound248
-rw-r--r--lxde-openrc/airootfs/usr/local/share/livecd-sound/asound.conf.in3
-rw-r--r--lxde-openrc/efiboot/EFI/BOOT/entries/01-parabolaiso-x86_64-linux-libre.conf5
-rw-r--r--lxde-openrc/efiboot/EFI/BOOT/entries/02-parabolaiso-x86_64-speech-linux-libre.conf5
-rw-r--r--lxde-openrc/efiboot/EFI/BOOT/entries/03-parabolaiso-x86_64-ram-linux-libre.conf5
-rw-r--r--lxde-openrc/efiboot/EFI/BOOT/refind.conf8
-rw-r--r--lxde-openrc/packages.both173
-rw-r--r--lxde-openrc/packages.x86_642
-rw-r--r--lxde-openrc/pacman.conf128
-rw-r--r--lxde-openrc/profiledef.sh47
-rw-r--r--lxde-openrc/syslinux/parabolaiso_head.cfg28
-rw-r--r--lxde-openrc/syslinux/parabolaiso_pxe32-linux-libre.cfg32
-rw-r--r--lxde-openrc/syslinux/parabolaiso_pxe64-linux-libre.cfg32
-rw-r--r--lxde-openrc/syslinux/parabolaiso_pxe_32_inc.cfg3
-rw-r--r--lxde-openrc/syslinux/parabolaiso_pxe_both_inc.cfg4
-rw-r--r--lxde-openrc/syslinux/parabolaiso_pxe_choose.cfg11
-rw-r--r--lxde-openrc/syslinux/parabolaiso_sys32-linux-libre.cfg33
-rw-r--r--lxde-openrc/syslinux/parabolaiso_sys64-linux-libre.cfg31
-rw-r--r--lxde-openrc/syslinux/parabolaiso_sys_32_inc.cfg8
-rw-r--r--lxde-openrc/syslinux/parabolaiso_sys_both_inc.cfg10
-rw-r--r--lxde-openrc/syslinux/parabolaiso_sys_choose.cfg11
-rw-r--r--lxde-openrc/syslinux/parabolaiso_tail.cfg35
-rw-r--r--lxde-openrc/syslinux/splash.pngbin0 -> 32253 bytes
-rw-r--r--lxde-openrc/syslinux/syslinux.cfg12
l---------releng-armv7h/bootstrap_packages.armv7h1
-rw-r--r--releng-armv7h/packages.armv7h2
-rw-r--r--releng-armv7h/pacman.conf104
-rw-r--r--releng-armv7h/profiledef.sh9
l---------releng-openrc-armv7h/bootstrap_packages.armv7h1
-rw-r--r--releng-openrc-armv7h/packages.armv7h2
-rw-r--r--releng-openrc-armv7h/pacman.conf107
-rw-r--r--releng-openrc-armv7h/profiledef.sh9
-rwxr-xr-xreleng-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector9
-rw-r--r--releng-openrc/airootfs/etc/conf.d/agetty.tty13
-rw-r--r--releng-openrc/airootfs/etc/conf.d/hostname1
-rw-r--r--releng-openrc/airootfs/etc/elogind/logind.conf.d/do-not-suspend.conf4
-rw-r--r--releng-openrc/airootfs/etc/fstab0
-rwxr-xr-xreleng-openrc/airootfs/etc/local.d/choose-mirror.start4
-rwxr-xr-xreleng-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start9
-rwxr-xr-xreleng-openrc/airootfs/etc/local.d/livecd-talk.start9
-rwxr-xr-xreleng-openrc/airootfs/etc/local.d/pacman-init.start7
-rw-r--r--releng-openrc/airootfs/etc/locale.conf1
l---------releng-openrc/airootfs/etc/localtime1
-rw-r--r--releng-openrc/airootfs/etc/mkinitcpio.conf67
-rw-r--r--releng-openrc/airootfs/etc/mkinitcpio.d/linux-libre.preset8
-rw-r--r--releng-openrc/airootfs/etc/motd9
-rw-r--r--releng-openrc/airootfs/etc/pacman.conf184
-rw-r--r--releng-openrc/airootfs/etc/pacman.d/hooks/40-locale-gen.hook13
-rw-r--r--releng-openrc/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook12
-rw-r--r--releng-openrc/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook18
-rw-r--r--releng-openrc/airootfs/etc/passwd1
l---------releng-openrc/airootfs/etc/runlevels/default/NetworkManager1
-rw-r--r--releng-openrc/airootfs/etc/shadow1
-rw-r--r--releng-openrc/airootfs/etc/ssh/sshd_config116
-rwxr-xr-xreleng-openrc/airootfs/root/.automated_script.sh34
-rw-r--r--releng-openrc/airootfs/root/.zlogin6
-rwxr-xr-xreleng-openrc/airootfs/usr/local/bin/Installation_guide5
-rwxr-xr-xreleng-openrc/airootfs/usr/local/bin/choose-mirror28
-rwxr-xr-xreleng-openrc/airootfs/usr/local/bin/livecd-sound248
-rw-r--r--releng-openrc/airootfs/usr/local/share/livecd-sound/asound.conf.in3
-rw-r--r--releng-openrc/bootstrap_packages.both2
-rw-r--r--releng-openrc/efiboot/EFI/BOOT/entries/01-parabolaiso-x86_64-linux-libre.conf5
-rw-r--r--releng-openrc/efiboot/EFI/BOOT/entries/02-parabolaiso-x86_64-speech-linux-libre.conf5
-rw-r--r--releng-openrc/efiboot/EFI/BOOT/entries/03-parabolaiso-x86_64-ram-linux-libre.conf5
-rw-r--r--releng-openrc/efiboot/EFI/BOOT/refind.conf8
-rw-r--r--releng-openrc/packages.both112
-rw-r--r--releng-openrc/packages.x86_642
-rw-r--r--releng-openrc/pacman.conf128
-rw-r--r--releng-openrc/profiledef.sh28
-rw-r--r--releng-openrc/syslinux/parabolaiso_head.cfg28
-rw-r--r--releng-openrc/syslinux/parabolaiso_pxe32-linux-libre.cfg32
-rw-r--r--releng-openrc/syslinux/parabolaiso_pxe64-linux-libre.cfg32
-rw-r--r--releng-openrc/syslinux/parabolaiso_pxe_32_inc.cfg3
-rw-r--r--releng-openrc/syslinux/parabolaiso_pxe_both_inc.cfg4
-rw-r--r--releng-openrc/syslinux/parabolaiso_pxe_choose.cfg11
-rw-r--r--releng-openrc/syslinux/parabolaiso_sys32-linux-libre.cfg33
-rw-r--r--releng-openrc/syslinux/parabolaiso_sys64-linux-libre.cfg31
-rw-r--r--releng-openrc/syslinux/parabolaiso_sys_32_inc.cfg8
-rw-r--r--releng-openrc/syslinux/parabolaiso_sys_both_inc.cfg10
-rw-r--r--releng-openrc/syslinux/parabolaiso_sys_choose.cfg11
-rw-r--r--releng-openrc/syslinux/parabolaiso_tail.cfg35
-rw-r--r--releng-openrc/syslinux/splash.pngbin0 -> 32253 bytes
-rw-r--r--releng-openrc/syslinux/syslinux.cfg12
138 files changed, 5267 insertions, 0 deletions
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..12ef237
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,5 @@
+===================
+parabolaiso-configs
+===================
+
+This repository hosts the parabolaiso extra configs for our custom ISOs, like the OpenRC and graphical ones, and custom bootstrap tarballs, like the armv7h ones. Parabola configs which do not come from archiso are found here. \ No newline at end of file
diff --git a/lxde-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector b/lxde-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector
new file mode 100755
index 0000000..76e84dd
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+if [ "$2" == up ] && ! grep -qoP 'mirror=\K\S+' /proc/cmdline; then
+ reflector \
+ --save /etc/pacman.d/mirrorlist \
+ --protocol https \
+ --latest 20 \
+ --sort rate
+fi
diff --git a/lxde-openrc/airootfs/etc/X11/Xwrapper.config b/lxde-openrc/airootfs/etc/X11/Xwrapper.config
new file mode 100644
index 0000000..017105e
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/X11/Xwrapper.config
@@ -0,0 +1 @@
+needs_root_rights = yes
diff --git a/lxde-openrc/airootfs/etc/conf.d/agetty.tty1 b/lxde-openrc/airootfs/etc/conf.d/agetty.tty1
new file mode 100644
index 0000000..997909c
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/conf.d/agetty.tty1
@@ -0,0 +1,3 @@
+baud="38400"
+term_type="linux"
+agetty_options="--autologin root --noclear"
diff --git a/lxde-openrc/airootfs/etc/conf.d/hostname b/lxde-openrc/airootfs/etc/conf.d/hostname
new file mode 100644
index 0000000..5a912cd
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/conf.d/hostname
@@ -0,0 +1 @@
+hostname="parabolaiso"
diff --git a/lxde-openrc/airootfs/etc/elogind/logind.conf.d/do-not-suspend.conf b/lxde-openrc/airootfs/etc/elogind/logind.conf.d/do-not-suspend.conf
new file mode 100644
index 0000000..f3ecb39
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/elogind/logind.conf.d/do-not-suspend.conf
@@ -0,0 +1,4 @@
+[Login]
+HandleSuspendKey=ignore
+HandleHibernateKey=ignore
+HandleLidSwitch=ignore
diff --git a/lxde-openrc/airootfs/etc/fstab b/lxde-openrc/airootfs/etc/fstab
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/fstab
diff --git a/lxde-openrc/airootfs/etc/local.d/choose-mirror.start b/lxde-openrc/airootfs/etc/local.d/choose-mirror.start
new file mode 100755
index 0000000..be4293c
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/local.d/choose-mirror.start
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+# Choose mirror from the kernel command line
+grep -qoP 'mirror=\K\S+' /proc/cmdline && /usr/local/bin/choose-mirror
diff --git a/lxde-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start b/lxde-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start
new file mode 100755
index 0000000..8a7139a
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# Temporary /etc/pacman.d/gnupg directory
+fstype="$(findmnt /etc/pacman.d/gnupg -o FSTYPE -Un)"
+
+test -d /etc/pacman.d/gnupg || mkdir /etc/pacman.d/gnupg
+if ! [[ "$fstype" == tmpfs ]]; then
+ mount -o mode=0755 -t tmpfs tmpfs /etc/pacman.d/gnupg
+fi
diff --git a/lxde-openrc/airootfs/etc/local.d/livecd-talk.start b/lxde-openrc/airootfs/etc/local.d/livecd-talk.start
new file mode 100755
index 0000000..69a8cc4
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/local.d/livecd-talk.start
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+if grep -qo 'accessibility=on' /proc/cmdline; then
+ livecd-sound -u
+ chvt 13
+ livecd-sound -p
+ chvt 1
+ rc-service espeakup start
+fi
diff --git a/lxde-openrc/airootfs/etc/local.d/pacman-init.start b/lxde-openrc/airootfs/etc/local.d/pacman-init.start
new file mode 100755
index 0000000..fcb588d
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/local.d/pacman-init.start
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+# Initializes Pacman keyring
+if ! find /etc/pacman.d/gnupg -mindepth 1 2>/dev/null | read -r; then
+ pacman-key --init
+ pacman-key --populate
+fi
diff --git a/lxde-openrc/airootfs/etc/locale.conf b/lxde-openrc/airootfs/etc/locale.conf
new file mode 100644
index 0000000..01ec548
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/locale.conf
@@ -0,0 +1 @@
+LANG=en_US.UTF-8
diff --git a/lxde-openrc/airootfs/etc/localtime b/lxde-openrc/airootfs/etc/localtime
new file mode 120000
index 0000000..0e35b57
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/localtime
@@ -0,0 +1 @@
+/usr/share/zoneinfo/UTC \ No newline at end of file
diff --git a/lxde-openrc/airootfs/etc/mkinitcpio.conf b/lxde-openrc/airootfs/etc/mkinitcpio.conf
new file mode 100644
index 0000000..d637173
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/mkinitcpio.conf
@@ -0,0 +1,67 @@
+# vim:set ft=sh
+# MODULES
+# The following modules are loaded before any boot hooks are
+# run. Advanced users may wish to specify all system modules
+# in this array. For instance:
+# MODULES=(piix ide_disk reiserfs)
+MODULES=(loop speakup_soft)
+
+# BINARIES
+# This setting includes any additional binaries a given user may
+# wish into the CPIO image. This is run last, so it may be used to
+# override the actual binaries included by a given hook
+# BINARIES are dependency parsed, so you may safely ignore libraries
+BINARIES=()
+
+# FILES
+# This setting is similar to BINARIES above, however, files are added
+# as-is and are not parsed in any way. This is useful for config files.
+FILES=()
+
+# HOOKS
+# This is the most important setting in this file. The HOOKS control the
+# modules and scripts added to the image, and what happens at boot time.
+# Order is important, and it is recommended that you do not change the
+# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
+# help on a given hook.
+# 'base' is _required_ unless you know precisely what you are doing.
+# 'udev' is _required_ in order to automatically load modules
+# 'filesystems' is _required_ unless you specify your fs modules in MODULES
+# Examples:
+## This setup specifies all modules in the MODULES setting above.
+## No raid, lvm2, or encrypted root is needed.
+# HOOKS=(base)
+#
+## This setup will autodetect all modules for your system and should
+## work as a sane default
+# HOOKS=(base udev autodetect block filesystems)
+#
+## This setup will generate a 'full' image which supports most systems.
+## No autodetection is done.
+# HOOKS=(base udev block filesystems)
+#
+## This setup assembles a pata mdadm array with an encrypted root FS.
+## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
+# HOOKS=(base udev block mdadm encrypt filesystems)
+#
+## This setup loads an lvm2 volume group on a usb device.
+# HOOKS=(base udev block lvm2 filesystems)
+#
+## NOTE: If you have /usr on a separate partition, you MUST include the
+# usr, fsck and shutdown hooks.
+HOOKS=(base udev modconf memdisk parabolaiso_shutdown parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block filesystems keyboard)
+
+# COMPRESSION
+# Use this to compress the initramfs image. By default, gzip compression
+# is used. Use 'cat' to create an uncompressed image.
+#COMPRESSION="gzip"
+#COMPRESSION="bzip2"
+#COMPRESSION="lzma"
+COMPRESSION="xz"
+#COMPRESSION="lzop"
+#COMPRESSION="lz4"
+#COMPRESSION="zstd"
+
+# COMPRESSION_OPTIONS
+# Additional options for the compressor
+#COMPRESSION_OPTIONS=()
diff --git a/lxde-openrc/airootfs/etc/mkinitcpio.d/linux-libre.preset b/lxde-openrc/airootfs/etc/mkinitcpio.d/linux-libre.preset
new file mode 100644
index 0000000..625a03d
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/mkinitcpio.d/linux-libre.preset
@@ -0,0 +1,8 @@
+# mkinitcpio preset file for the 'linux-libre' package on parabolaiso
+
+PRESETS=('parabolaiso')
+
+ALL_kver='/boot/vmlinuz-linux-libre'
+ALL_config='/etc/mkinitcpio.conf'
+
+parabolaiso_image="/boot/initramfs-linux-libre.img"
diff --git a/lxde-openrc/airootfs/etc/motd b/lxde-openrc/airootfs/etc/motd
new file mode 100644
index 0000000..e3d2947
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/motd
@@ -0,0 +1,9 @@
+To install Parabola GNU/Linux-libre follow the installation guide:
+https://wiki.parabola.nu/Installation_Guide
+
+For Wi-Fi, authenticate to the wireless network using the nmtui-connect utility.
+Ethernet and Wi-Fi connections using NetworkManager should work automatically.
+
+After connecting to the internet, the installation guide can be accessed
+via the convenience script Installation_guide.
+
diff --git a/lxde-openrc/airootfs/etc/pacman.conf b/lxde-openrc/airootfs/etc/pacman.conf
new file mode 100644
index 0000000..b7e4663
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/pacman.conf
@@ -0,0 +1,184 @@
+#
+# /etc/pacman.conf
+#
+# See the pacman.conf(5) manpage for option and repository directives
+
+#
+# GENERAL OPTIONS
+#
+[options]
+# The following paths are commented out with their default values listed.
+# If you wish to use different paths, uncomment and update the paths.
+#RootDir = /
+#DBPath = /var/lib/pacman/
+#CacheDir = /var/cache/pacman/pkg/
+#LogFile = /var/log/pacman.log
+#GPGDir = /etc/pacman.d/gnupg/
+#HookDir = /etc/pacman.d/hooks/
+HoldPkg = pacman glibc
+#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#CleanMethod = KeepInstalled
+Architecture = auto
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+#IgnorePkg =
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options
+#UseSyslog
+#Color
+#NoProgressBar
+CheckSpace
+#VerbosePkgLists
+
+# By default, pacman accepts packages signed by keys that its local keyring
+# trusts (see pacman-key and its man page), as well as unsigned packages.
+SigLevel = Required DatabaseOptional
+LocalFileSigLevel = Optional
+#RemoteFileSigLevel = Required
+
+# NOTE: You must run `pacman-key --init` before first using pacman; the local
+# keyring can then be populated with the keys of all trusted packagers with:
+# `pacman-key --populate archlinux archlinux32 archlinuxarm parabola`.
+
+#
+# REPOSITORIES
+# - can be defined here or included from another file
+# - pacman will search repositories in the order defined here
+# - local/custom mirrors can be added here or in separate files
+# - repositories listed first will take precedence when packages
+# have identical names, regardless of version number
+# - URLs will have $repo replaced by the name of the current repo
+# - URLs will have $arch replaced by the name of the architecture
+#
+# Repository entries are of the format:
+# [repo-name]
+# Server = ServerName
+# Include = IncludePath
+#
+# The header [repo-name] is crucial - it must be present and
+# un-commented to enable the repo.
+#
+# Some repositories are disabled by default. To enable them, un-comment the
+# repo name header (e.g. '[nonprism]') and the following 'Include' line.
+# You can add preferred servers for each repo between the header and "Include" line,
+# according to the format in /etc/pacman.d/mirrorlist,
+# and those will be preferred over the standard mirrors for that repo.
+#
+# The order in which these entries appear in this file is critical.
+# Much of the Parabola magic that supports advanced features such as
+# multiple init-systems and multiple layers of freedom and privacy,
+# depends on the order in which these repos are defined.
+# Moving or adding repos out of the expected order can make your system insane.
+
+# Notes on special repositories:
+#
+# Non-prism is a repository for enhanced privacy, beyond the FSDG requirements.
+# It contains specially patched versions of certain software from the standard repos,
+# that are known to include privacy-sensative features that some people may want to use,
+# but that others may consider to be undesirable anti-features.
+# For more info see: https://wiki.parabola.nu/Nonprism
+#
+# The non-systemd repository contains packages that are important and relevant only to
+# Parabola systems using an init-system other than systemd.
+# Parabola systems using systemd SHOULD NOT have this enabled;.
+# while Parabola systems using any other init-system SHOULD have this enabled.
+#
+# The kernels repository contains additional special kernels for particular use-cases,
+# such as maximal security hardening and real-time systems.
+#
+# The PCR (Parabola Community Repository) contains additional packages,
+# most often requested by Parabola users, that are not considered to be
+# part of the standard Parabola/Arch system, but are nonetheless useful or fun.
+#
+# Multi-lib repositories allow 32-bit applications to run on x86_64 systems.
+#
+# The Parabola system also supports custom, user-defined, repositories;
+# but be aware that the Parabola team can not recommend nor support their use.
+# The Parabola team can only support the use of software that is published by Parabola.
+# The use of third-party software is discouraged with a "use at your own risk" warning.
+# These may be community-maintained or maintained privately by the local user or sysadmin.
+# They may be hosted on the internet, on the local network, or only on the local computer.
+# An example of a custom package repository is given below
+# in the "User-defined repos" section
+# See the pacman manpage for details on creating your own repositories.
+
+
+###########################
+# Parabola standard repos #
+###########################
+
+#[nonprism-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[nonprism]
+#Include = /etc/pacman.d/mirrorlist
+
+#[nonsystemd-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[nonsystemd]
+Include = /etc/pacman.d/mirrorlist
+
+#[libre-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[libre]
+Include = /etc/pacman.d/mirrorlist
+
+#[kernels-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[kernels]
+#Include = /etc/pacman.d/mirrorlist
+
+
+#######################
+# Arch standard repos #
+#######################
+
+#[testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[core]
+Include = /etc/pacman.d/mirrorlist
+
+[extra]
+Include = /etc/pacman.d/mirrorlist
+
+#[community-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[community]
+Include = /etc/pacman.d/mirrorlist
+
+
+######################
+# Supplemental repos #
+######################
+
+#[pcr-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[pcr]
+Include = /etc/pacman.d/mirrorlist
+
+
+######################
+# User-defined repos #
+######################
+
+#[custom]
+#SigLevel = Optional TrustAll
+#Server = file:///home/custompkgs
+
+
+##############
+# Over-rides #
+##############
+
+Include = /etc/pacman.d/*.conf
diff --git a/lxde-openrc/airootfs/etc/pacman.d/hooks/40-locale-gen.hook b/lxde-openrc/airootfs/etc/pacman.d/hooks/40-locale-gen.hook
new file mode 100644
index 0000000..82dd199
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/pacman.d/hooks/40-locale-gen.hook
@@ -0,0 +1,13 @@
+# remove from airootfs!
+[Trigger]
+Operation = Install
+Type = Package
+Target = glibc
+
+[Action]
+Description = Uncommenting en_US.UTF-8 locale and running locale-gen...
+When = PostTransaction
+Depends = glibc
+Depends = sed
+Depends = sh
+Exec = /bin/sh -c "sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen && locale-gen"
diff --git a/lxde-openrc/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook b/lxde-openrc/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook
new file mode 100644
index 0000000..ad0b5ba
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook
@@ -0,0 +1,12 @@
+[Trigger]
+Operation = Install
+Operation = Upgrade
+Type = Package
+Target = pacman-mirrorlist
+
+[Action]
+Description = Uncommenting all mirrors in /etc/pacman.d/mirrorlist...
+When = PostTransaction
+Depends = pacman-mirrorlist
+Depends = sed
+Exec = /usr/bin/sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist
diff --git a/lxde-openrc/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook b/lxde-openrc/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook
new file mode 100644
index 0000000..8dfb943
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook
@@ -0,0 +1,18 @@
+# remove from airootfs!
+# As a workaround for https://bugs.archlinux.org/task/49347 , remove pacman hooks specific to the ISO build process.
+# If not, they would be used when pacstrap is run in the live environment.
+
+[Trigger]
+Operation = Install
+Operation = Upgrade
+Operation = Remove
+Type = Package
+Target = *
+
+[Action]
+Description = Work around FS#49347 by removing custom pacman hooks that are only required during ISO build...
+When = PostTransaction
+Depends = sh
+Depends = coreutils
+Depends = grep
+Exec = /bin/sh -c "rm -- $(grep -Frl 'remove from airootfs' /etc/pacman.d/hooks/)"
diff --git a/lxde-openrc/airootfs/etc/passwd b/lxde-openrc/airootfs/etc/passwd
new file mode 100644
index 0000000..2807d5d
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/passwd
@@ -0,0 +1 @@
+root:x:0:0:root:/root:/usr/bin/zsh
diff --git a/lxde-openrc/airootfs/etc/runlevels/default/NetworkManager b/lxde-openrc/airootfs/etc/runlevels/default/NetworkManager
new file mode 120000
index 0000000..fc68d44
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/runlevels/default/NetworkManager
@@ -0,0 +1 @@
+/etc/init.d/NetworkManager \ No newline at end of file
diff --git a/lxde-openrc/airootfs/etc/shadow b/lxde-openrc/airootfs/etc/shadow
new file mode 100644
index 0000000..7edfd69
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/shadow
@@ -0,0 +1 @@
+root::14871::::::
diff --git a/lxde-openrc/airootfs/etc/skel/.config/lxsession/LXDE/desktop.conf b/lxde-openrc/airootfs/etc/skel/.config/lxsession/LXDE/desktop.conf
new file mode 100644
index 0000000..c50f484
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/skel/.config/lxsession/LXDE/desktop.conf
@@ -0,0 +1,48 @@
+[Session]
+window_manager=openbox-lxde
+disable_autostart=no
+polkit/command=sleep 5s && lxpolkit
+clipboard/command=lxclipboard
+xsettings_manager/command=build-in
+proxy_manager/command=build-in
+keyring/command=ssh-agent
+quit_manager/command=lxsession-logout
+lock_manager/command=lxlock
+terminal_manager/command=lxterminal
+
+[GTK]
+sNet/ThemeName=Adwaita
+sNet/IconThemeName=nuoveXT2
+sGtk/FontName=Sans 10
+iGtk/ToolbarStyle=3
+iGtk/ButtonImages=1
+iGtk/MenuImages=1
+iGtk/CursorThemeSize=18
+iXft/Antialias=1
+iXft/Hinting=1
+sXft/HintStyle=hintslight
+sXft/RGBA=rgb
+iNet/EnableEventSounds=1
+iNet/EnableInputFeedbackSounds=1
+sGtk/ColorScheme=
+iGtk/ToolbarIconSize=3
+sGtk/CursorThemeName=DMZ-White
+
+[Mouse]
+AccFactor=20
+AccThreshold=10
+LeftHanded=0
+
+[Keyboard]
+Delay=500
+Interval=30
+Beep=1
+
+[State]
+guess_default=true
+
+[Dbus]
+lxde=true
+
+[Environment]
+menu_prefix=lxde-
diff --git a/lxde-openrc/airootfs/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf b/lxde-openrc/airootfs/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf
new file mode 100644
index 0000000..6186fce
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf
@@ -0,0 +1,14 @@
+[*]
+wallpaper_mode=crop
+wallpaper_common=1
+wallpaper=/etc/wallpaper.png
+desktop_bg=#000000
+desktop_fg=#ffffff
+desktop_shadow=#000000
+desktop_font=Sans 12
+show_wm_menu=0
+sort=mtime;ascending;
+show_documents=0
+show_trash=1
+show_mounts=1
+
diff --git a/lxde-openrc/airootfs/etc/ssh/sshd_config b/lxde-openrc/airootfs/etc/ssh/sshd_config
new file mode 100644
index 0000000..8ef1758
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/ssh/sshd_config
@@ -0,0 +1,116 @@
+# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
+
+# This is the sshd server system-wide configuration file. See
+# sshd_config(5) for more information.
+
+# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
+
+# The strategy used for options in the default sshd_config shipped with
+# OpenSSH is to specify options with their default value where
+# possible, but leave them commented. Uncommented options override the
+# default value.
+
+#Port 22
+#AddressFamily any
+#ListenAddress 0.0.0.0
+#ListenAddress ::
+
+#HostKey /etc/ssh/ssh_host_rsa_key
+#HostKey /etc/ssh/ssh_host_ecdsa_key
+#HostKey /etc/ssh/ssh_host_ed25519_key
+
+# Ciphers and keying
+#RekeyLimit default none
+
+# Logging
+#SyslogFacility AUTH
+#LogLevel INFO
+
+# Authentication:
+
+#LoginGraceTime 2m
+PermitRootLogin yes
+#StrictModes yes
+#MaxAuthTries 6
+#MaxSessions 10
+
+#PubkeyAuthentication yes
+
+# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
+# but this is overridden so installations will only check .ssh/authorized_keys
+AuthorizedKeysFile .ssh/authorized_keys
+
+#AuthorizedPrincipalsFile none
+
+#AuthorizedKeysCommand none
+#AuthorizedKeysCommandUser nobody
+
+# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
+#HostbasedAuthentication no
+# Change to yes if you don't trust ~/.ssh/known_hosts for
+# HostbasedAuthentication
+#IgnoreUserKnownHosts no
+# Don't read the user's ~/.rhosts and ~/.shosts files
+#IgnoreRhosts yes
+
+# To disable tunneled clear text passwords, change to no here!
+#PasswordAuthentication yes
+#PermitEmptyPasswords no
+
+# Change to no to disable s/key passwords
+ChallengeResponseAuthentication no
+
+# Kerberos options
+#KerberosAuthentication no
+#KerberosOrLocalPasswd yes
+#KerberosTicketCleanup yes
+#KerberosGetAFSToken no
+
+# GSSAPI options
+#GSSAPIAuthentication no
+#GSSAPICleanupCredentials yes
+
+# Set this to 'yes' to enable PAM authentication, account processing,
+# and session processing. If this is enabled, PAM authentication will
+# be allowed through the ChallengeResponseAuthentication and
+# PasswordAuthentication. Depending on your PAM configuration,
+# PAM authentication via ChallengeResponseAuthentication may bypass
+# the setting of "PermitRootLogin without-password".
+# If you just want the PAM account and session checks to run without
+# PAM authentication, then enable this but set PasswordAuthentication
+# and ChallengeResponseAuthentication to 'no'.
+UsePAM yes
+
+#AllowAgentForwarding yes
+#AllowTcpForwarding yes
+#GatewayPorts no
+#X11Forwarding no
+#X11DisplayOffset 10
+#X11UseLocalhost yes
+#PermitTTY yes
+PrintMotd no # pam does that
+#PrintLastLog yes
+#TCPKeepAlive yes
+#PermitUserEnvironment no
+#Compression delayed
+#ClientAliveInterval 0
+#ClientAliveCountMax 3
+#UseDNS no
+#PidFile /run/sshd.pid
+#MaxStartups 10:30:100
+#PermitTunnel no
+#ChrootDirectory none
+#VersionAddendum none
+
+# no default banner path
+#Banner none
+
+# override default of no subsystems
+Subsystem sftp /usr/lib/ssh/sftp-server
+
+# Example of overriding settings on a per-user basis
+#Match User anoncvs
+# X11Forwarding no
+# AllowTcpForwarding no
+# PermitTTY no
+# ForceCommand cvs server
diff --git a/lxde-openrc/airootfs/etc/wallpaper.png b/lxde-openrc/airootfs/etc/wallpaper.png
new file mode 100644
index 0000000..d2a3927
--- /dev/null
+++ b/lxde-openrc/airootfs/etc/wallpaper.png
Binary files differ
diff --git a/lxde-openrc/airootfs/root/.automated_script.sh b/lxde-openrc/airootfs/root/.automated_script.sh
new file mode 100755
index 0000000..5c0c316
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.automated_script.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+
+script_cmdline ()
+{
+ local param
+ for param in $(< /proc/cmdline); do
+ case "${param}" in
+ script=*) echo "${param#*=}" ; return 0 ;;
+ esac
+ done
+}
+
+automated_script ()
+{
+ local script rt
+ script="$(script_cmdline)"
+ if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then
+ if [[ "${script}" =~ ^((http|https|ftp)://) ]]; then
+ curl "${script}" --location --retry-connrefused -s -o /tmp/startup_script >/dev/null
+ rt=$?
+ else
+ cp "${script}" /tmp/startup_script
+ rt=$?
+ fi
+ if [[ ${rt} -eq 0 ]]; then
+ chmod +x /tmp/startup_script
+ /tmp/startup_script
+ fi
+ fi
+}
+
+if [[ $(tty) == "/dev/tty1" ]]; then
+ automated_script
+fi
diff --git a/lxde-openrc/airootfs/root/.codecheck b/lxde-openrc/airootfs/root/.codecheck
new file mode 100644
index 0000000..8b10d0c
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.codecheck
@@ -0,0 +1,2 @@
+LANG=0
+XKBMAP=0
diff --git a/lxde-openrc/airootfs/root/.config/dconf/user b/lxde-openrc/airootfs/root/.config/dconf/user
new file mode 100644
index 0000000..dab7f59
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.config/dconf/user
Binary files differ
diff --git a/lxde-openrc/airootfs/root/.config/gtk-2.0/gtkfilechooser.ini b/lxde-openrc/airootfs/root/.config/gtk-2.0/gtkfilechooser.ini
new file mode 100644
index 0000000..c6b458d
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.config/gtk-2.0/gtkfilechooser.ini
@@ -0,0 +1,11 @@
+[Filechooser Settings]
+LocationMode=path-bar
+ShowHidden=true
+ShowSizeColumn=true
+GeometryX=52
+GeometryY=86
+GeometryWidth=920
+GeometryHeight=585
+SortColumn=name
+SortOrder=ascending
+StartupMode=recent
diff --git a/lxde-openrc/airootfs/root/.config/lxsession/LXDE/autostart b/lxde-openrc/airootfs/root/.config/lxsession/LXDE/autostart
new file mode 100644
index 0000000..3942b5a
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.config/lxsession/LXDE/autostart
@@ -0,0 +1,4 @@
+@lxpanel --profile LXDE
+@pcmanfm --desktop --profile LXDE
+@xscreensaver -no-splash
+@/root/.keymap.sh
diff --git a/lxde-openrc/airootfs/root/.config/pcmanfm/LXDE/desktop-items-0.conf b/lxde-openrc/airootfs/root/.config/pcmanfm/LXDE/desktop-items-0.conf
new file mode 100644
index 0000000..5129665
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.config/pcmanfm/LXDE/desktop-items-0.conf
@@ -0,0 +1,4 @@
+[*]
+wallpaper_mode=screen
+wallpaper=/etc/wallpaper.png
+show_mounts=1
diff --git a/lxde-openrc/airootfs/root/.config/volumeicon/volumeicon b/lxde-openrc/airootfs/root/.config/volumeicon/volumeicon
new file mode 100644
index 0000000..588b9dd
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.config/volumeicon/volumeicon
@@ -0,0 +1,25 @@
+[Alsa]
+card=default
+
+[Notification]
+show_notification=true
+notification_type=0
+
+[StatusIcon]
+stepsize=5
+onclick=xterm -e 'alsamixer'
+theme=Default
+use_panel_specific_icons=false
+lmb_slider=false
+mmb_mute=false
+use_horizontal_slider=false
+show_sound_level=false
+use_transparent_background=false
+
+[Hotkeys]
+up_enabled=false
+down_enabled=false
+mute_enabled=false
+up=XF86AudioRaiseVolume
+down=XF86AudioLowerVolume
+mute=XF86AudioMute
diff --git a/lxde-openrc/airootfs/root/.keymap.sh b/lxde-openrc/airootfs/root/.keymap.sh
new file mode 100755
index 0000000..3b1516b
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.keymap.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+#Comprobe if X11 keymap was selected
+code="$(grep XKBMAP= .codecheck | cut -d '=' -f 2)"
+keymaps_list="$(sed -e '/! layout/,/^$/!d;/! layout/d;s/ /_/g;s/__/ /g;s/ _//' /usr/share/X11/xkb/rules/evdev.lst | sort)"
+
+if [[ $code = "0" ]]; then
+ # shellcheck disable=SC2086
+ keymap="$(zenity --list --title='Select your keymap' --column='Code Name' --column='Keymap' --hide-column=1 $keymaps_list)"
+ setxkbmap "$keymap"
+
+ #Save XKBMAP in .codecheck to use in other time. For example if you install X11 with scripts
+ sed -i '/XKBMAP=./d' ~/.codecheck
+ echo "XKBMAP=$keymap" >> ~/.codecheck
+fi
diff --git a/lxde-openrc/airootfs/root/.language.sh b/lxde-openrc/airootfs/root/.language.sh
new file mode 100755
index 0000000..cc4558f
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.language.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+#Comprobe if language was selected
+code=$(grep LANG= ~/.codecheck | tail --bytes 2)
+if [ "$code" = "0" ]; then
+ lang=$(dialog --stdout --backtitle "System language selection" --menu "Choose your language:" 15 40 10 \
+ "en_US.UTF-8" "English" \
+ "gl_ES.UTF-8" "Galego" \
+ "es_ES.UTF-8" "Spanish" \
+ "pt_BR.UTF-8" "Brazilian Portuguese" \
+ "pl_PL.UTF-8" "Polish" \
+ "it_IT.UTF-8" "Italian" \
+ "fr_FR.UTF-8" "French" \
+ "eo" "Esperanto")
+
+ #Copy locale in locale.conf
+ [ -z "$lang" ] || echo "LANG=$lang" > /etc/locale.conf
+
+ #Put a new line confirm that language was selected
+ sed -i '/LANG=./d' ~/.codecheck
+ echo "LANG=1" >> ~/.codecheck
+
+ #Copy scripts to install in that language
+ case ${lang/_*/} in
+ en|gl|es|pt) cp -a ~/.scriptsInstallation/language/"${lang/_*/}"/* ~/.scriptsInstallation/
+ cp ~/.scriptsInstallation/install.sh ~/
+ ;;
+ *) cp -a ~/.scriptsInstallation/language/en/* ~/.scriptsInstallation/
+ cp ~/.scriptsInstallation/install.sh ~/
+ ;;
+ esac
+
+ #Clear the dialog menu
+ clear
+fi
diff --git a/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/install.sh b/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/install.sh
new file mode 100755
index 0000000..7c27afc
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/install.sh
@@ -0,0 +1,231 @@
+#!/bin/bash
+#Temporal is a file that contains parameters to use when access to chroot
+
+keys=(parabola archlinux)
+if [ $(uname -m) = i686 ]; then
+ keys+=(archlinux32)
+fi
+
+if [ ! -f ~/.scriptsInstallation/.pacman ]; then
+ pacman -Sy ${keys[@]/%/-keyring} --noconfirm
+ pacman-key --populate ${keys[@]}
+ pacman-key --refresh-keys
+ case $? in
+ 0) touch ~/.scriptsInstallation/.pacman
+ ;;
+ *) false
+ ;;
+ esac
+fi
+
+partition(){
+
+ #Search and show the Hard Disks to select
+ aux=$(ls /dev/sd?)
+ index=0
+ for i in $aux; do
+ hdds[$index]="${i} ${i#/*/} off"
+ index=$((index+1))
+ done
+
+ hdd=$(dialog --stdout --radiolist "Select Hard Disk" 20 70 50 ${hdds[@]})
+
+ #If exist the line delete
+ if (cat ~/.scriptsInstallation/temporal | grep "hdd=") &>/dev/null
+ then
+ sed -i -e '/hdd=*/d' ~/.scriptsInstallation/temporal
+ fi
+
+ #And add the new line with new parameter
+ echo "hdd=$hdd" >> ~/.scriptsInstallation/temporal
+
+ selection=$(dialog --stdout --menu "Partitioning method" 20 70 50 \
+ 1 "Use all disk with swap (1GB) and /" \
+ 2 "Use gparted to customize" )
+
+ case $selection in
+ 1)
+ umount /mnt &> /dev/null
+ #Create msdos partition table
+ parted -s $hdd -- mklabel msdos
+
+ #Create partition swap and /
+ parted -s $hdd -- mkpart primary 1MiB 1000MiB mkpart primary 1000MiB -1s
+
+ #Boot option partition /
+ parted -s $hdd -- set 2 boot on
+
+ #Format and partitions and mount /
+ (echo t; echo 1; echo 82; echo w) | fdisk $hdd
+ mkswap ${hdd}1
+ mkfs.ext4 ${hdd}2
+ mount ${hdd}2 /mnt
+ ;;
+ 2)
+ gparted $hdd
+
+ #Search and show the partitions that select before.
+ aux=$(ls $hdd?)
+ index=0;
+ for i in $aux; do
+ partitions[$index]="${i} ${i#/*/} off"
+ index=$((index+1))
+ done
+
+ partition=$(dialog --stdout --radiolist "Mount / Partition" 20 70 50 ${partitions[@]})
+
+ #Mount partition /
+ umount /mnt &> /dev/null
+ mount $partition /mnt
+
+ #Ask if you want mount other partitions
+ other=0
+ while [ $other != 3 ]; do
+ other=$(dialog --stdout --menu "Mount other partition?" 20 70 50 1 "/home" 2 "/boot" 3 "No")
+
+ case $other in
+ 1)
+ umount /mnt/home &> /dev/null
+ mkdir /mnt/home &> /dev/null
+ mount $(dialog --stdout --radiolist "Mount /home Partition" 20 70 50 ${partitions[@]}) /mnt/home
+ ;;
+ 2)
+ umount /mnt/boot &> /dev/null
+ mkdir /mnt/boot &> /dev/null
+ mount $(dialog --stdout --radiolist "Mount /boot Partition" 20 70 50 ${partitions[@]}) /mnt/boot
+ ;;
+ *)
+ other=3
+ ;;
+ esac
+ done
+ ;;
+ esac
+}
+
+
+option=0
+while [ option != 7 ]; do
+ option=$(dialog --stdout --menu "Parabola Installation CLI" 20 70 50 \
+ 1 "Format and Mount Partitions" \
+ 2 "Install Base System" \
+ 3 "Install GRUB" \
+ 4 "System Configure" \
+ 5 "Create User Account" \
+ 6 "(Optional) Install Live DVD Desktop/Applications" \
+ 7 "Exit" )
+
+ case $option in
+ 1)
+ partition
+ ;;
+ 2)
+ #Install base system
+ pacstrap /mnt base-openrc
+ pacstrap /mnt dialog
+ ;;
+ 3)
+ #Install grub
+ pacstrap /mnt grub
+ ;;
+ 4)
+ #Generate fstab and acces to chroot to do System Config
+ genfstab -p /mnt >> /mnt/etc/fstab
+ cp ~/.scriptsInstallation/temporal /mnt
+ cp ~/.scriptsInstallation/systemConfig.sh /mnt
+ chmod +x /mnt/systemConfig.sh
+ arch-chroot /mnt /systemConfig.sh
+ rm -r /mnt/systemConfig.sh
+ ;;
+ 5)
+ #Create a new username and save in temporal, to use after
+ if (cat ~/.scriptsInstallation/temporal | grep "userName=") &>/dev/null
+ then
+ sed -i -e '/userName=*/d' ~/.scriptsInstallation/temporal
+ fi
+
+ echo "userName=$(dialog --stdout --inputbox "Enter an User Name" 8 40)" >> ~/.scriptsInstallation/temporal
+ cp ~/.scriptsInstallation/temporal /mnt
+ cp ~/.scriptsInstallation/userAccount.sh /mnt
+ chmod +x /mnt/userAccount.sh
+ arch-chroot /mnt /userAccount.sh
+ rm -r /mnt/userAccount.sh
+ ;;
+ 6)
+ #Packages to the X11 live
+ packages=( "xorg-server"
+ "xf86-input-evdev"
+ "xf86-input-synaptics"
+ "xf86-video-ati"
+ "xf86-video-dummy"
+ "xf86-video-fbdev"
+ "xf86-video-intel"
+ "xf86-video-nouveau"
+ "xf86-video-openchrome"
+ "xf86-video-sisusb"
+ "xf86-video-vesa"
+ "xf86-video-vmware"
+ "xf86-video-voodoo"
+ "xf86-video-qxl"
+ "xorg-xinit"
+ "gst-plugins-good"
+ "gst-libav"
+ "lxde"
+ "volumeicon"
+ "zenity"
+ "octopi"
+ "pulseaudio-alsa"
+ "alsa-utils"
+ "networkmanager-elogind"
+ "network-manager-applet"
+ "iceweasel"
+ "icedove"
+ "pidgin"
+ "gparted"
+ "smplayer"
+ "epdfview"
+ "gpicview"
+ "abiword"
+ "gnumeric"
+ "leafpad"
+ "galculator-gtk2"
+ "xarchiver"
+ "openrc-desktop"
+ "polkit-elogind"
+ "gvfs-mtp"
+ "gphoto2"
+ "xdg-user-dirs"
+ "gnome-screenshot"
+ )
+
+ #Install packages
+ pacstrap /mnt ${packages[@]}
+ user=$(cat ~/.scriptsInstallation/temporal | grep "userName" )
+
+ #Copy skel in the new system and desktop's background
+ cp -a /etc/skel/ /mnt/etc/
+ cp -a /etc/wallpaper.png /mnt/etc/wallpaper.png
+
+ #Puts the XKBMAP, start X11 automatically and icewm desktop
+ echo "setxkbmap $(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2)" > /mnt/etc/skel/.xinitrc
+ echo "exec startlxde" >> /mnt/etc/skel/.xinitrc
+ echo "startx" >> /mnt/etc/skel/.bash_profile
+ chmod +x /mnt/etc/skel/.xinitrc
+ cp -a /mnt/etc/skel/.[a-z]* /mnt/home/${user#*=}/
+ cp -a ~/.scriptsInstallation/x11.sh /mnt
+
+ #Enable services with OpenRC and configure other stuff
+ chmod +x /mnt/x11.sh
+ arch-chroot /mnt /x11.sh
+ rm /mnt/x11.sh
+ ;;
+ *)
+ #Delete temporal file and umount partitions
+ rm -r /mnt/temporal
+ umount /mnt/boot &> /dev/null
+ umount /mnt/home &> /dev/null
+ umount /mnt &> /dev/null
+ exit
+ ;;
+ esac
+done
diff --git a/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/systemConfig.sh b/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/systemConfig.sh
new file mode 100755
index 0000000..d5195fb
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/systemConfig.sh
@@ -0,0 +1,271 @@
+#!/bin/bash
+
+HOSTNAME=$(dialog --stdout --inputbox "Enter Hostname:" 8 40)
+sed 's|localhost|'"${HOSTNAME}"'|' -i /etc/conf.d/hostname
+
+ln -s /usr/share/zoneinfo/$(dialog --stdout --inputbox "Enter your Zone Time:\nFor example: Europe/Athens" 8 40) /etc/localtime
+
+keymaps=(
+ "ANSI-dvorak ANSI-dvorak off"
+ "amiga-de amiga-de off"
+ "amiga-us amiga-us off"
+ "applkey applkey off"
+ "atari-de atari-de off"
+ "atari-se atari-se off"
+ "atari-uk-falcon atari-uk-falcon off"
+ "atari-us atari-us off"
+ "azerty azerty off"
+ "backspace backspace off"
+ "bashkir bashkir off"
+ "be-latin1 be-latin1 off"
+ "bg-cp1251 bg-cp1251 off"
+ "bg-cp855 bg-cp855 off"
+ "bg_bds-cp1251 bg_bds-cp1251 off"
+ "bg_bds-utf8 bg_bds-utf8 off"
+ "bg_pho-cp1251 bg_pho-cp1251 off"
+ "bg_pho-utf8 bg_pho-utf8 off"
+ "br-abnt br-abnt off"
+ "br-abnt2 br-abnt2 off"
+ "br-latin1-abnt2 br-latin1-abnt2 off"
+ "br-latin1-us br-latin1-us off"
+ "by by off"
+ "by-cp1251 by-cp1251 off"
+ "bywin-cp1251 bywin-cp1251 off"
+ "cf cf off"
+ "colemak colemak off"
+ "croat croat off"
+ "ctrl ctrl off"
+ "cz cz off"
+ "cz-cp1250 cz-cp1250 off"
+ "cz-lat2 cz-lat2 off"
+ "cz-lat2-prog cz-lat2-prog off"
+ "cz-qwertz cz-qwertz off"
+ "cz-us-qwertz cz-us-qwertz off"
+ "de de off"
+ "de-latin1 de-latin1 off"
+ "de-latin1-nodeadkeys de-latin1-nodeadkeys off"
+ "de-mobii de-mobii off"
+ "de_CH-latin1 de_CH-latin1 off"
+ "de_alt_UTF-8 de_alt_UTF-8 off"
+ "defkeymap defkeymap off"
+ "defkeymap_V1.0 defkeymap_V1.0 off"
+ "dk dk off"
+ "dk-latin1 dk-latin1 off"
+ "dvorak dvorak off"
+ "dvorak-ca-fr dvorak-ca-fr off"
+ "dvorak-es dvorak-es off"
+ "dvorak-fr dvorak-fr off"
+ "dvorak-l dvorak-l off"
+ "dvorak-r dvorak-r off"
+ "dvorak-ru dvorak-ru off"
+ "dvorak-sv-a1 dvorak-sv-a1 off"
+ "dvorak-sv-a5 dvorak-sv-a5 off"
+ "dvorak-uk dvorak-uk off"
+ "emacs emacs off"
+ "emacs2 emacs2 off"
+ "es es off"
+ "es-cp850 es-cp850 off"
+ "es-olpc es-olpc off"
+ "et et off"
+ "et-nodeadkeys et-nodeadkeys off"
+ "euro euro off"
+ "euro1 euro1 off"
+ "euro2 euro2 off"
+ "fi fi off"
+ "fr fr off"
+ "fr-bepo fr-bepo off"
+ "fr-bepo-latin9 fr-bepo-latin9 off"
+ "fr-latin1 fr-latin1 off"
+ "fr-latin9 fr-latin9 off"
+ "fr-pc fr-pc off"
+ "fr_CH fr_CH off"
+ "fr_CH-latin1 fr_CH-latin1 off"
+ "gr gr off"
+ "gr-pc gr-pc off"
+ "hu hu off"
+ "hu101 hu101 off"
+ "il il off"
+ "il-heb il-heb off"
+ "il-phonetic il-phonetic off"
+ "is-latin1 is-latin1 off"
+ "is-latin1-us is-latin1-us off"
+ "it it off"
+ "it-ibm it-ibm off"
+ "it2 it2 off"
+ "jp106 jp106 off"
+ "kazakh kazakh off"
+ "keypad keypad off"
+ "ky_alt_sh-UTF-8 ky_alt_sh-UTF-8 off"
+ "kyrgyz kyrgyz off"
+ "la-latin1 la-latin1 off"
+ "lt lt off"
+ "lt.baltic lt.baltic off"
+ "lt.l4 lt.l4 off"
+ "lv lv off"
+ "lv-tilde lv-tilde off"
+ "mac-be mac-be off"
+ "mac-de-latin1 mac-de-latin1 off"
+ "mac-de-latin1-nodeadkeys mac-de-latin1-nodeadkeys off"
+ "mac-de_CH mac-de_CH off"
+ "mac-dk-latin1 mac-dk-latin1 off"
+ "mac-dvorak mac-dvorak off"
+ "mac-es mac-es off"
+ "mac-euro mac-euro off"
+ "mac-euro2 mac-euro2 off"
+ "mac-fi-latin1 mac-fi-latin1 off"
+ "mac-fr mac-fr off"
+ "mac-fr_CH-latin1 mac-fr_CH-latin1 off"
+ "mac-it mac-it off"
+ "mac-pl mac-pl off"
+ "mac-pt-latin1 mac-pt-latin1 off"
+ "mac-se mac-se off"
+ "mac-template mac-template off"
+ "mac-uk mac-uk off"
+ "mac-us mac-us off"
+ "mk mk off"
+ "mk-cp1251 mk-cp1251 off"
+ "mk-utf mk-utf off"
+ "mk0 mk0 off"
+ "nl nl off"
+ "nl2 nl2 off"
+ "no no off"
+ "no-dvorak no-dvorak off"
+ "no-latin1 no-latin1 off"
+ "pc110 pc110 off"
+ "pl pl off"
+ "pl1 pl1 off"
+ "pl2 pl2 off"
+ "pl3 pl3 off"
+ "pl4 pl4 off"
+ "pt-latin1 pt-latin1 off"
+ "pt-latin9 pt-latin9 off"
+ "pt-olpc pt-olpc off"
+ "ro ro off"
+ "ro_std ro_std off"
+ "ro_win ro_win off"
+ "ru ru off"
+ "ru-cp1251 ru-cp1251 off"
+ "ru-ms ru-ms off"
+ "ru-yawerty ru-yawerty off"
+ "ru1 ru1 off"
+ "ru2 ru2 off"
+ "ru3 ru3 off"
+ "ru4 ru4 off"
+ "ru_win ru_win off"
+ "ruwin_alt-CP1251 ruwin_alt-CP1251 off"
+ "ruwin_alt-KOI8-R ruwin_alt-KOI8-R off"
+ "ruwin_alt-UTF-8 ruwin_alt-UTF-8 off"
+ "ruwin_alt_sh-UTF-8 ruwin_alt_sh-UTF-8 off"
+ "ruwin_cplk-CP1251 ruwin_cplk-CP1251 off"
+ "ruwin_cplk-KOI8-R ruwin_cplk-KOI8-R off"
+ "ruwin_cplk-UTF-8 ruwin_cplk-UTF-8 off"
+ "ruwin_ct_sh-CP1251 ruwin_ct_sh-CP1251 off"
+ "ruwin_ct_sh-KOI8-R ruwin_ct_sh-KOI8-R off"
+ "ruwin_ct_sh-UTF-8 ruwin_ct_sh-UTF-8 off"
+ "ruwin_ctrl-CP1251 ruwin_ctrl-CP1251 off"
+ "ruwin_ctrl-KOI8-R ruwin_ctrl-KOI8-R off"
+ "ruwin_ctrl-UTF-8 ruwin_ctrl-UTF-8 off"
+ "se-fi-ir209 se-fi-ir209 off"
+ "se-fi-lat6 se-fi-lat6 off"
+ "se-ir209 se-ir209 off"
+ "se-lat6 se-lat6 off"
+ "sg sg off"
+ "sg-latin1 sg-latin1 off"
+ "sg-latin1-lk450 sg-latin1-lk450 off"
+ "sk-prog-qwerty sk-prog-qwerty off"
+ "sk-prog-qwertz sk-prog-qwertz off"
+ "sk-qwerty sk-qwerty off"
+ "sk-qwertz sk-qwertz off"
+ "slovene slovene off"
+ "sr-cy sr-cy off"
+ "sun-pl sun-pl off"
+ "sun-pl-altgraph sun-pl-altgraph off"
+ "sundvorak sundvorak off"
+ "sunkeymap sunkeymap off"
+ "sunt4-es sunt4-es off"
+ "sunt4-fi-latin1 sunt4-fi-latin1 off"
+ "sunt4-no-latin1 sunt4-no-latin1 off"
+ "sunt5-cz-us sunt5-cz-us off"
+ "sunt5-de-latin1 sunt5-de-latin1 off"
+ "sunt5-es sunt5-es off"
+ "sunt5-fi-latin1 sunt5-fi-latin1 off"
+ "sunt5-fr-latin1 sunt5-fr-latin1 off"
+ "sunt5-ru sunt5-ru off"
+ "sunt5-uk sunt5-uk off"
+ "sunt5-us-cz sunt5-us-cz off"
+ "sunt6-uk sunt6-uk off"
+ "sv-latin1 sv-latin1 off"
+ "tj_alt-UTF8 tj_alt-UTF8 off"
+ "tr_f-latin5 tr_f-latin5 off"
+ "tr_q-latin5 tr_q-latin5 off"
+ "tralt tralt off"
+ "trf trf off"
+ "trf-fgGIod trf-fgGIod off"
+ "trq trq off"
+ "ttwin_alt-UTF-8 ttwin_alt-UTF-8 off"
+ "ttwin_cplk-UTF-8 ttwin_cplk-UTF-8 off"
+ "ttwin_ct_sh-UTF-8 ttwin_ct_sh-UTF-8 off"
+ "ttwin_ctrl-UTF-8 ttwin_ctrl-UTF-8 off"
+ "ua ua off"
+ "ua-cp1251 ua-cp1251 off"
+ "ua-utf ua-utf off"
+ "ua-utf-ws ua-utf-ws off"
+ "ua-ws ua-ws off"
+ "uk uk off"
+ "unicode unicode off"
+ "us us on"
+ "us-acentos us-acentos off"
+ "wangbe wangbe off"
+ "wangbe2 wangbe2 off"
+ "windowkeys windowkeys off"
+)
+
+echo "KEYMAP=$(dialog --stdout --radiolist "Select Keymap" 20 70 50 ${keymaps[@]})" > /etc/vconsole.conf
+
+aux=$(sed -e '1,23d' -e 's/#//g' -e 's/ /#/g' -e 's/..$//' /etc/locale.gen)
+index=0
+for i in $aux; do
+ i=$(echo $i | sed -e 's/#/ /g')
+ locales+=("$i" "$i" off)
+ if [[ $i == "en_US.UTF-8 UTF-8" || $i == "en_US ISO-8859-1" ]]; then
+ locales[$index]="$i"
+ locales[$((index+1))]="$i"
+ locales[$((index+2))]="on"
+ fi
+ index=$((index+3))
+done
+
+locale=$(dialog --stdout --checklist "Select Locales" 20 70 50 "${locales[@]}")
+locale=$(echo ${locale} | sed -e 's/" "/\n/g' -e 's/ /#/g' -e 's/"//g')
+
+for i in ${locale[@]}; do
+ i=$(echo $i | sed -e 's/#/ /g')
+ sed -i -e "s/#$i/$i/g" /etc/locale.gen
+done
+
+locale-gen
+
+aux=$(locale -a)
+index=0
+for i in $aux; do
+ langs+=("$i" "$i" on)
+ index=$((index+1))
+done
+
+echo "LANG=$(dialog --stdout --radiolist "Select your language" 20 70 50 ${langs[@]})" > /etc/locale.conf
+
+mkinitcpio -p linux-libre
+
+hdd=$(cat /temporal | grep 'hdd=')
+grub-install ${hdd#*=}
+grub-mkconfig -o /boot/grub/grub.cfg
+
+password=$(dialog --stdout --passwordbox "Insert root password" 8 40)
+
+while [[ $password != $password2 ]]; do
+ password2=$(dialog --stdout --passwordbox "Repeat root password" 8 40)
+done
+
+usermod -p $(openssl passwd ${password}) root
+
+exit
diff --git a/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/userAccount.sh b/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/userAccount.sh
new file mode 100755
index 0000000..a9551d8
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/userAccount.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+user=$(cat /temporal | grep "userName")
+
+password=$(dialog --stdout --passwordbox "Insert ${user#*=} password" 8 40)
+
+while [[ $password != $password2 ]]; do
+ password2=$(dialog --stdout --passwordbox "Reply password" 8 40)
+done
+
+useradd -m -g users -G "wheel" -s /bin/bash -p $(openssl passwd $password) ${user#*=}
+
+exit
diff --git a/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/install.sh b/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/install.sh
new file mode 100755
index 0000000..32d2a47
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/install.sh
@@ -0,0 +1,231 @@
+#!/bin/bash
+#Temporal is a file that contains parameters to use when access to chroot
+
+keys=(parabola archlinux)
+if [ $(uname -m) = i686 ]; then
+ keys+=(archlinux32)
+fi
+
+if [ ! -f ~/.scriptsInstallation/.pacman ]; then
+ pacman -Sy ${keys[@]/%/-keyring} --noconfirm
+ pacman-key --populate ${keys[@]}
+ pacman-key --refresh-keys
+ case $? in
+ 0) touch ~/.scriptsInstallation/.pacman
+ ;;
+ *) false
+ ;;
+ esac
+fi
+
+partition(){
+
+ #Search and show the Hard Disks to select
+ aux=$(ls /dev/sd?)
+ index=0
+ for i in $aux; do
+ hdds[$index]="${i} ${i#/*/} off"
+ index=$((index+1))
+ done
+
+ hdd=$(dialog --stdout --radiolist "Selecciona Disco Duro" 20 70 50 ${hdds[@]})
+
+ #If exist the line delete
+ if (cat ~/.scriptsInstallation/temporal | grep "hdd=") &>/dev/null
+ then
+ sed -i -e '/hdd=*/d' ~/.scriptsInstallation/temporal
+ fi
+
+ #And add the new line with new parameter
+ echo "hdd=$hdd" >> ~/.scriptsInstallation/temporal
+
+ selection=$(dialog --stdout --menu "Metodo de Particionado" 20 70 50 \
+ 1 "Usar todo el disco con swap (1GB) y /" \
+ 2 "Usar gparted para personalizar" )
+
+ case $selection in
+ 1)
+ umount /mnt &> /dev/null
+ #Create msdos partition table
+ parted -s $hdd -- mklabel msdos
+
+ #Create partition swap and /
+ parted -s $hdd -- mkpart primary 1MiB 1000MiB mkpart primary 1000MiB -1s
+
+ #Boot option partition /
+ parted -s $hdd -- set 2 boot on
+
+ #Format and partitions and mount /
+ (echo t; echo 1; echo 82; echo w) | fdisk $hdd
+ mkswap ${hdd}1
+ mkfs.ext4 ${hdd}2
+ mount ${hdd}2 /mnt
+ ;;
+ 2)
+ gparted $hdd
+
+ #Search and show the partitions that select before.
+ aux=$(ls $hdd?)
+ index=0;
+ for i in $aux; do
+ partitions[$index]="${i} ${i#/*/} off"
+ index=$((index+1))
+ done
+
+ partition=$(dialog --stdout --radiolist "Montar particion /" 20 70 50 ${partitions[@]})
+
+ #Mount partition /
+ umount /mnt &> /dev/null
+ mount $partition /mnt
+
+ #Ask if you want mount other partitions
+ other=0
+ while [ $other != 3 ]; do
+ other=$(dialog --stdout --menu "¿Montar otra particion?" 20 70 50 1 "/home" 2 "/boot" 3 "No")
+
+ case $other in
+ 1)
+ umount /mnt/home &> /dev/null
+ mkdir /mnt/home &> /dev/null
+ mount $(dialog --stdout --radiolist "Montar particion /home" 20 70 50 ${partitions[@]}) /mnt/home
+ ;;
+ 2)
+ umount /mnt/boot &> /dev/null
+ mkdir /mnt/boot &> /dev/null
+ mount $(dialog --stdout --radiolist "Mount particion /boot" 20 70 50 ${partitions[@]}) /mnt/boot
+ ;;
+ *)
+ other=3
+ ;;
+ esac
+ done
+ ;;
+ esac
+}
+
+
+option=0
+while [ option != 7 ]; do
+ option=$(dialog --stdout --menu "Instalación CLI de Parabola" 20 70 50 \
+ 1 "Formatear y Montar Particiones" \
+ 2 "Instalar Sistema Base" \
+ 3 "Instalar GRUB" \
+ 4 "Configuración del Sistema" \
+ 5 "Crear Cuenta de Usuario" \
+ 6 "(Opcional) Instalar Escritorio/Aplicaciones del Live DVD" \
+ 7 "Salir" )
+
+ case $option in
+ 1)
+ partition
+ ;;
+ 2)
+ #Install base system
+ pacstrap /mnt base-openrc
+ pacstrap /mnt dialog
+ ;;
+ 3)
+ #Install grub
+ pacstrap /mnt grub
+ ;;
+ 4)
+ #Generate fstab and acces to chroot to do System Config
+ genfstab -p /mnt >> /mnt/etc/fstab
+ cp ~/.scriptsInstallation/temporal /mnt
+ cp ~/.scriptsInstallation/systemConfig.sh /mnt
+ chmod +x /mnt/systemConfig.sh
+ arch-chroot /mnt /systemConfig.sh
+ rm -r /mnt/systemConfig.sh
+ ;;
+ 5)
+ #Create a new username and save in temporal, to use after
+ if (cat ~/.scriptsInstallation/temporal | grep "userName=") &>/dev/null
+ then
+ sed -i -e '/userName=*/d' ~/.scriptsInstallation/temporal
+ fi
+
+ echo "userName=$(dialog --stdout --inputbox "Introduce nombre de usuario" 8 40)" >> ~/.scriptsInstallation/temporal
+ cp ~/.scriptsInstallation/temporal /mnt
+ cp ~/.scriptsInstallation/userAccount.sh /mnt
+ chmod +x /mnt/userAccount.sh
+ arch-chroot /mnt /userAccount.sh
+ rm -r /mnt/userAccount.sh
+ ;;
+ 6)
+ #Packages to the X11 live
+ packages=( "xorg-server"
+ "xf86-input-evdev"
+ "xf86-input-synaptics"
+ "xf86-video-ati"
+ "xf86-video-dummy"
+ "xf86-video-fbdev"
+ "xf86-video-intel"
+ "xf86-video-nouveau"
+ "xf86-video-openchrome"
+ "xf86-video-sisusb"
+ "xf86-video-vesa"
+ "xf86-video-vmware"
+ "xf86-video-voodoo"
+ "xf86-video-qxl"
+ "xorg-xinit"
+ "gst-plugins-good"
+ "gst-libav"
+ "lxde"
+ "volumeicon"
+ "zenity"
+ "octopi"
+ "pulseaudio-alsa"
+ "alsa-utils"
+ "networkmanager-elogind"
+ "network-manager-applet"
+ "iceweasel"
+ "icedove"
+ "pidgin"
+ "gparted"
+ "smplayer"
+ "epdfview"
+ "gpicview"
+ "abiword"
+ "gnumeric"
+ "leafpad"
+ "galculator-gtk2"
+ "xarchiver"
+ "openrc-desktop"
+ "polkit-elogind"
+ "gvfs-mtp"
+ "gphoto2"
+ "xdg-user-dirs"
+ "gnome-screenshot"
+ )
+
+ #Install packages
+ pacstrap /mnt ${packages[@]}
+ user=$(cat ~/.scriptsInstallation/temporal | grep "userName" )
+
+ #Copy skel in the new system and desktop's background
+ cp -a /etc/skel/ /mnt/etc/
+ cp -a /etc/wallpaper.png /mnt/etc/wallpaper.png
+
+ #Puts the XKBMAP, start X11 automatically and icewm desktop
+ echo "setxkbmap $(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2)" > /mnt/etc/skel/.xinitrc
+ echo "exec startlxde" >> /mnt/etc/skel/.xinitrc
+ echo "startx" >> /mnt/etc/skel/.bash_profile
+ chmod +x /mnt/etc/skel/.xinitrc
+ cp -a /mnt/etc/skel/.[a-z]* /mnt/home/${user#*=}/
+ cp -a ~/.scriptsInstallation/x11.sh /mnt
+
+ #Enable services with OpenRC and configure other stuff
+ chmod +x /mnt/x11.sh
+ arch-chroot /mnt /x11.sh
+ rm /mnt/x11.sh
+ ;;
+ *)
+ #Delete temporal file and umount partitions
+ rm -r /mnt/temporal
+ umount /mnt/boot &> /dev/null
+ umount /mnt/home &> /dev/null
+ umount /mnt &> /dev/null
+ exit
+ ;;
+ esac
+done
diff --git a/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/systemConfig.sh b/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/systemConfig.sh
new file mode 100755
index 0000000..773d10c
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/systemConfig.sh
@@ -0,0 +1,271 @@
+#!/bin/bash
+
+HOSTNAME=$(dialog --stdout --inputbox "Introduce el nombre del sistema:" 8 40)
+sed 's|localhost|'"${HOSTNAME}"'|' -i /etc/conf.d/hostname
+
+ln -s /usr/share/zoneinfo/$(dialog --stdout --inputbox "Introduce la Zona Horaria:\nPor ejemplo: Europe/Athens" 8 40) /etc/localtime
+
+keymaps=(
+ "ANSI-dvorak ANSI-dvorak off"
+ "amiga-de amiga-de off"
+ "amiga-us amiga-us off"
+ "applkey applkey off"
+ "atari-de atari-de off"
+ "atari-se atari-se off"
+ "atari-uk-falcon atari-uk-falcon off"
+ "atari-us atari-us off"
+ "azerty azerty off"
+ "backspace backspace off"
+ "bashkir bashkir off"
+ "be-latin1 be-latin1 off"
+ "bg-cp1251 bg-cp1251 off"
+ "bg-cp855 bg-cp855 off"
+ "bg_bds-cp1251 bg_bds-cp1251 off"
+ "bg_bds-utf8 bg_bds-utf8 off"
+ "bg_pho-cp1251 bg_pho-cp1251 off"
+ "bg_pho-utf8 bg_pho-utf8 off"
+ "br-abnt br-abnt off"
+ "br-abnt2 br-abnt2 off"
+ "br-latin1-abnt2 br-latin1-abnt2 off"
+ "br-latin1-us br-latin1-us off"
+ "by by off"
+ "by-cp1251 by-cp1251 off"
+ "bywin-cp1251 bywin-cp1251 off"
+ "cf cf off"
+ "colemak colemak off"
+ "croat croat off"
+ "ctrl ctrl off"
+ "cz cz off"
+ "cz-cp1250 cz-cp1250 off"
+ "cz-lat2 cz-lat2 off"
+ "cz-lat2-prog cz-lat2-prog off"
+ "cz-qwertz cz-qwertz off"
+ "cz-us-qwertz cz-us-qwertz off"
+ "de de off"
+ "de-latin1 de-latin1 off"
+ "de-latin1-nodeadkeys de-latin1-nodeadkeys off"
+ "de-mobii de-mobii off"
+ "de_CH-latin1 de_CH-latin1 off"
+ "de_alt_UTF-8 de_alt_UTF-8 off"
+ "defkeymap defkeymap off"
+ "defkeymap_V1.0 defkeymap_V1.0 off"
+ "dk dk off"
+ "dk-latin1 dk-latin1 off"
+ "dvorak dvorak off"
+ "dvorak-ca-fr dvorak-ca-fr off"
+ "dvorak-es dvorak-es off"
+ "dvorak-fr dvorak-fr off"
+ "dvorak-l dvorak-l off"
+ "dvorak-r dvorak-r off"
+ "dvorak-ru dvorak-ru off"
+ "dvorak-sv-a1 dvorak-sv-a1 off"
+ "dvorak-sv-a5 dvorak-sv-a5 off"
+ "dvorak-uk dvorak-uk off"
+ "emacs emacs off"
+ "emacs2 emacs2 off"
+ "es es off"
+ "es-cp850 es-cp850 off"
+ "es-olpc es-olpc off"
+ "et et off"
+ "et-nodeadkeys et-nodeadkeys off"
+ "euro euro off"
+ "euro1 euro1 off"
+ "euro2 euro2 off"
+ "fi fi off"
+ "fr fr off"
+ "fr-bepo fr-bepo off"
+ "fr-bepo-latin9 fr-bepo-latin9 off"
+ "fr-latin1 fr-latin1 off"
+ "fr-latin9 fr-latin9 off"
+ "fr-pc fr-pc off"
+ "fr_CH fr_CH off"
+ "fr_CH-latin1 fr_CH-latin1 off"
+ "gr gr off"
+ "gr-pc gr-pc off"
+ "hu hu off"
+ "hu101 hu101 off"
+ "il il off"
+ "il-heb il-heb off"
+ "il-phonetic il-phonetic off"
+ "is-latin1 is-latin1 off"
+ "is-latin1-us is-latin1-us off"
+ "it it off"
+ "it-ibm it-ibm off"
+ "it2 it2 off"
+ "jp106 jp106 off"
+ "kazakh kazakh off"
+ "keypad keypad off"
+ "ky_alt_sh-UTF-8 ky_alt_sh-UTF-8 off"
+ "kyrgyz kyrgyz off"
+ "la-latin1 la-latin1 off"
+ "lt lt off"
+ "lt.baltic lt.baltic off"
+ "lt.l4 lt.l4 off"
+ "lv lv off"
+ "lv-tilde lv-tilde off"
+ "mac-be mac-be off"
+ "mac-de-latin1 mac-de-latin1 off"
+ "mac-de-latin1-nodeadkeys mac-de-latin1-nodeadkeys off"
+ "mac-de_CH mac-de_CH off"
+ "mac-dk-latin1 mac-dk-latin1 off"
+ "mac-dvorak mac-dvorak off"
+ "mac-es mac-es off"
+ "mac-euro mac-euro off"
+ "mac-euro2 mac-euro2 off"
+ "mac-fi-latin1 mac-fi-latin1 off"
+ "mac-fr mac-fr off"
+ "mac-fr_CH-latin1 mac-fr_CH-latin1 off"
+ "mac-it mac-it off"
+ "mac-pl mac-pl off"
+ "mac-pt-latin1 mac-pt-latin1 off"
+ "mac-se mac-se off"
+ "mac-template mac-template off"
+ "mac-uk mac-uk off"
+ "mac-us mac-us off"
+ "mk mk off"
+ "mk-cp1251 mk-cp1251 off"
+ "mk-utf mk-utf off"
+ "mk0 mk0 off"
+ "nl nl off"
+ "nl2 nl2 off"
+ "no no off"
+ "no-dvorak no-dvorak off"
+ "no-latin1 no-latin1 off"
+ "pc110 pc110 off"
+ "pl pl off"
+ "pl1 pl1 off"
+ "pl2 pl2 off"
+ "pl3 pl3 off"
+ "pl4 pl4 off"
+ "pt-latin1 pt-latin1 off"
+ "pt-latin9 pt-latin9 off"
+ "pt-olpc pt-olpc off"
+ "ro ro off"
+ "ro_std ro_std off"
+ "ro_win ro_win off"
+ "ru ru off"
+ "ru-cp1251 ru-cp1251 off"
+ "ru-ms ru-ms off"
+ "ru-yawerty ru-yawerty off"
+ "ru1 ru1 off"
+ "ru2 ru2 off"
+ "ru3 ru3 off"
+ "ru4 ru4 off"
+ "ru_win ru_win off"
+ "ruwin_alt-CP1251 ruwin_alt-CP1251 off"
+ "ruwin_alt-KOI8-R ruwin_alt-KOI8-R off"
+ "ruwin_alt-UTF-8 ruwin_alt-UTF-8 off"
+ "ruwin_alt_sh-UTF-8 ruwin_alt_sh-UTF-8 off"
+ "ruwin_cplk-CP1251 ruwin_cplk-CP1251 off"
+ "ruwin_cplk-KOI8-R ruwin_cplk-KOI8-R off"
+ "ruwin_cplk-UTF-8 ruwin_cplk-UTF-8 off"
+ "ruwin_ct_sh-CP1251 ruwin_ct_sh-CP1251 off"
+ "ruwin_ct_sh-KOI8-R ruwin_ct_sh-KOI8-R off"
+ "ruwin_ct_sh-UTF-8 ruwin_ct_sh-UTF-8 off"
+ "ruwin_ctrl-CP1251 ruwin_ctrl-CP1251 off"
+ "ruwin_ctrl-KOI8-R ruwin_ctrl-KOI8-R off"
+ "ruwin_ctrl-UTF-8 ruwin_ctrl-UTF-8 off"
+ "se-fi-ir209 se-fi-ir209 off"
+ "se-fi-lat6 se-fi-lat6 off"
+ "se-ir209 se-ir209 off"
+ "se-lat6 se-lat6 off"
+ "sg sg off"
+ "sg-latin1 sg-latin1 off"
+ "sg-latin1-lk450 sg-latin1-lk450 off"
+ "sk-prog-qwerty sk-prog-qwerty off"
+ "sk-prog-qwertz sk-prog-qwertz off"
+ "sk-qwerty sk-qwerty off"
+ "sk-qwertz sk-qwertz off"
+ "slovene slovene off"
+ "sr-cy sr-cy off"
+ "sun-pl sun-pl off"
+ "sun-pl-altgraph sun-pl-altgraph off"
+ "sundvorak sundvorak off"
+ "sunkeymap sunkeymap off"
+ "sunt4-es sunt4-es off"
+ "sunt4-fi-latin1 sunt4-fi-latin1 off"
+ "sunt4-no-latin1 sunt4-no-latin1 off"
+ "sunt5-cz-us sunt5-cz-us off"
+ "sunt5-de-latin1 sunt5-de-latin1 off"
+ "sunt5-es sunt5-es off"
+ "sunt5-fi-latin1 sunt5-fi-latin1 off"
+ "sunt5-fr-latin1 sunt5-fr-latin1 off"
+ "sunt5-ru sunt5-ru off"
+ "sunt5-uk sunt5-uk off"
+ "sunt5-us-cz sunt5-us-cz off"
+ "sunt6-uk sunt6-uk off"
+ "sv-latin1 sv-latin1 off"
+ "tj_alt-UTF8 tj_alt-UTF8 off"
+ "tr_f-latin5 tr_f-latin5 off"
+ "tr_q-latin5 tr_q-latin5 off"
+ "tralt tralt off"
+ "trf trf off"
+ "trf-fgGIod trf-fgGIod off"
+ "trq trq off"
+ "ttwin_alt-UTF-8 ttwin_alt-UTF-8 off"
+ "ttwin_cplk-UTF-8 ttwin_cplk-UTF-8 off"
+ "ttwin_ct_sh-UTF-8 ttwin_ct_sh-UTF-8 off"
+ "ttwin_ctrl-UTF-8 ttwin_ctrl-UTF-8 off"
+ "ua ua off"
+ "ua-cp1251 ua-cp1251 off"
+ "ua-utf ua-utf off"
+ "ua-utf-ws ua-utf-ws off"
+ "ua-ws ua-ws off"
+ "uk uk off"
+ "unicode unicode off"
+ "us us on"
+ "us-acentos us-acentos off"
+ "wangbe wangbe off"
+ "wangbe2 wangbe2 off"
+ "windowkeys windowkeys off"
+)
+
+echo "KEYMAP=$(dialog --stdout --radiolist "Selecciona la distribucion del teclado" 20 70 50 ${keymaps[@]})" > /etc/vconsole.conf
+
+aux=$(sed -e '1,23d' -e 's/#//g' -e 's/ /#/g' -e 's/..$//' /etc/locale.gen)
+index=0
+for i in $aux; do
+ i=$(echo $i | sed -e 's/#/ /g')
+ locales+=("$i" "$i" off)
+ if [[ $i == "en_US.UTF-8 UTF-8" || $i == "en_US ISO-8859-1" ]]; then
+ locales[$index]="$i"
+ locales[$((index+1))]="$i"
+ locales[$((index+2))]="on"
+ fi
+ index=$((index+3))
+done
+
+locale=$(dialog --stdout --checklist "Selecciona las Localizaciones" 20 70 50 "${locales[@]}")
+locale=$(echo ${locale} | sed -e 's/" "/\n/g' -e 's/ /#/g' -e 's/"//g')
+
+for i in ${locale[@]}; do
+ i=$(echo $i | sed -e 's/#/ /g')
+ sed -i -e "s/#$i/$i/g" /etc/locale.gen
+done
+
+locale-gen
+
+aux=$(locale -a)
+index=0
+for i in $aux; do
+ langs+=("$i" "$i" on)
+ index=$((index+1))
+done
+
+echo "LANG=$(dialog --stdout --radiolist "Selecciona tu idioma" 20 70 50 ${langs[@]})" > /etc/locale.conf
+
+mkinitcpio -p linux-libre
+
+hdd=$(cat /temporal | grep 'hdd=')
+grub-install ${hdd#*=}
+grub-mkconfig -o /boot/grub/grub.cfg
+
+password=$(dialog --stdout --passwordbox "Inserta la contraseña para el administrador" 8 40)
+
+while [[ $password != $password2 ]]; do
+ password2=$(dialog --stdout --passwordbox "Repite la contraseña para el administrador" 8 40)
+done
+
+usermod -p $(openssl passwd ${password}) root
+
+exit
diff --git a/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/userAccount.sh b/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/userAccount.sh
new file mode 100755
index 0000000..4ed7437
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/userAccount.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+user=$(cat /temporal | grep "userName")
+
+password=$(dialog --stdout --passwordbox "Introduce la contraseñara para el usuario ${user#*=}" 8 40)
+
+while [[ $password != $password2 ]]; do
+ password2=$(dialog --stdout --passwordbox "Repite la contraseña" 8 40)
+done
+
+useradd -m -g users -G "wheel" -s /bin/bash -p $(openssl passwd $password) ${user#*=}
+
+exit
diff --git a/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/install.sh b/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/install.sh
new file mode 100755
index 0000000..57abe22
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/install.sh
@@ -0,0 +1,230 @@
+#!/bin/bash
+#Temporal is a file that contains parameters to use when access to chroot
+
+keys=(parabola archlinux)
+if [ $(uname -m) = i686 ]; then
+ keys+=(archlinux32)
+fi
+
+if [ ! -f ~/.scriptsInstallation/.pacman ]; then
+ pacman -Sy ${keys[@]/%/-keyring} --noconfirm
+ pacman-key --populate ${keys[@]}
+ pacman-key --refresh-keys
+ case $? in
+ 0) touch ~/.scriptsInstallation/.pacman
+ ;;
+ *) false
+ ;;
+ esac
+fi
+
+partition(){
+
+ #Search and show the Hard Disks to select
+ aux=$(ls /dev/sd?)
+ index=0
+ for i in $aux; do
+ hdds[$index]="${i} ${i#/*/} off"
+ index=$((index+1))
+ done
+
+ hdd=$(dialog --stdout --radiolist "Selecciona Disco Duro" 20 70 50 ${hdds[@]})
+
+ #If exist the line delete
+ if (cat ~/.scriptsInstallation/temporal | grep "hdd=") &>/dev/null
+ then
+ sed -i -e '/hdd=*/d' ~/.scriptsInstallation/temporal
+ fi
+
+ #And add the new line with new parameter
+ echo "hdd=$hdd" >> ~/.scriptsInstallation/temporal
+ selection=$(dialog --stdout --menu "Metodo de Particionado" 20 70 50 \
+ 1 "Usar todo o disco con swap (1GB) and /" \
+ 2 "Usar gparted para personalizar" )
+
+ case $selection in
+ 1)
+ umount /mnt &> /dev/null
+ #Create msdos partition table
+ parted -s $hdd -- mklabel msdos
+
+ #Create partition swap and /
+ parted -s $hdd -- mkpart primary 1MiB 1000MiB mkpart primary 1000MiB -1s
+
+ #Boot option partition /
+ parted -s $hdd -- set 2 boot on
+
+ #Format and partitions and mount /
+ (echo t; echo 1; echo 82; echo w) | fdisk $hdd
+ mkswap ${hdd}1
+ mkfs.ext4 ${hdd}2
+ mount ${hdd}2 /mnt
+ ;;
+ 2)
+ gparted $hdd
+
+ #Search and show the partitions that select before.
+ aux=$(ls $hdd?)
+ index=0;
+ for i in $aux; do
+ partitions[$index]="${i} ${i#/*/} off"
+ index=$((index+1))
+ done
+
+ partition=$(dialog --stdout --radiolist "Montar particion /" 20 70 50 ${partitions[@]})
+
+ #Mount partition /
+ umount /mnt &> /dev/null
+ mount $partition /mnt
+
+ #Ask if you want mount other partitions
+ other=0
+ while [ $other != 3 ]; do
+ other=$(dialog --stdout --menu "¿Montar outra particion?" 20 70 50 1 "/home" 2 "/boot" 3 "No")
+
+ case $other in
+ 1)
+ umount /mnt/home &> /dev/null
+ mkdir /mnt/home &> /dev/null
+ mount $(dialog --stdout --radiolist "Montar particion /home" 20 70 50 ${partitions[@]}) /mnt/home
+ ;;
+ 2)
+ umount /mnt/boot &> /dev/null
+ mkdir /mnt/boot &> /dev/null
+ mount $(dialog --stdout --radiolist "Mount particion /boot" 20 70 50 ${partitions[@]}) /mnt/boot
+ ;;
+ *)
+ other=3
+ ;;
+ esac
+ done
+ ;;
+ esac
+}
+
+
+option=0
+while [ option != 7 ]; do
+ option=$(dialog --stdout --menu "Instalación CLI de Parabola" 20 70 50 \
+ 1 "Formatear e Montar Particiones" \
+ 2 "Instalar Sistema Base" \
+ 3 "Instalar GRUB" \
+ 4 "Configuración do Sistema" \
+ 5 "Crear Conta de Usuario" \
+ 6 "(Opcional) Instalar Escritorio/Aplicaciones de Live DVD" \
+ 7 "Salir" )
+
+ case $option in
+ 1)
+ partition
+ ;;
+ 2)
+ #Install base system
+ pacstrap /mnt base-openrc
+ pacstrap /mnt dialog
+ ;;
+ 3)
+ #Install grub
+ pacstrap /mnt grub
+ ;;
+ 4)
+ #Generate fstab and acces to chroot to do System Config
+ genfstab -p /mnt >> /mnt/etc/fstab
+ cp ~/.scriptsInstallation/temporal /mnt
+ cp ~/.scriptsInstallation/systemConfig.sh /mnt
+ chmod +x /mnt/systemConfig.sh
+ arch-chroot /mnt /systemConfig.sh
+ rm -r /mnt/systemConfig.sh
+ ;;
+ 5)
+ #Create a new username and save in temporal, to use after
+ if (cat ~/.scriptsInstallation/temporal | grep "userName=") &>/dev/null
+ then
+ sed -i -e '/userName=*/d' ~/.scriptsInstallation/temporal
+ fi
+
+ echo "userName=$(dialog --stdout --inputbox "Introduce un nome de usuario" 8 40)" >> ~/.scriptsInstallation/temporal
+ cp ~/.scriptsInstallation/temporal /mnt
+ cp ~/.scriptsInstallation/userAccount.sh /mnt
+ chmod +x /mnt/userAccount.sh
+ arch-chroot /mnt /userAccount.sh
+ rm -r /mnt/userAccount.sh
+ ;;
+ 6)
+ #Packages to the X11 live
+ packages=( "xorg-server"
+ "xf86-input-evdev"
+ "xf86-input-synaptics"
+ "xf86-video-ati"
+ "xf86-video-dummy"
+ "xf86-video-fbdev"
+ "xf86-video-intel"
+ "xf86-video-nouveau"
+ "xf86-video-openchrome"
+ "xf86-video-sisusb"
+ "xf86-video-vesa"
+ "xf86-video-vmware"
+ "xf86-video-voodoo"
+ "xf86-video-qxl"
+ "xorg-xinit"
+ "gst-plugins-good"
+ "gst-libav"
+ "lxde"
+ "volumeicon"
+ "zenity"
+ "octopi"
+ "pulseaudio-alsa"
+ "alsa-utils"
+ "networkmanager-elogind"
+ "network-manager-applet"
+ "iceweasel"
+ "icedove"
+ "pidgin"
+ "gparted"
+ "smplayer"
+ "epdfview"
+ "gpicview"
+ "abiword"
+ "gnumeric"
+ "leafpad"
+ "galculator-gtk2"
+ "xarchiver"
+ "openrc-desktop"
+ "polkit-elogind"
+ "gvfs-mtp"
+ "gphoto2"
+ "xdg-user-dirs"
+ "gnome-screenshot"
+ )
+
+ #Install packages
+ pacstrap /mnt ${packages[@]}
+ user=$(cat ~/.scriptsInstallation/temporal | grep "userName" )
+
+ #Copy skel in the new system and desktop's background
+ cp -a /etc/skel/ /mnt/etc/
+ cp -a /etc/wallpaper.png /mnt/etc/wallpaper.png
+
+ #Puts the XKBMAP, start X11 automatically and icewm desktop
+ echo "setxkbmap $(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2)" > /mnt/etc/skel/.xinitrc
+ echo "exec startlxde" >> /mnt/etc/skel/.xinitrc
+ echo "startx" >> /mnt/etc/skel/.bash_profile
+ chmod +x /mnt/etc/skel/.xinitrc
+ cp -a /mnt/etc/skel/.[a-z]* /mnt/home/${user#*=}/
+ cp -a ~/.scriptsInstallation/x11.sh /mnt
+
+ #Enable services with OpenRC and configure other stuff
+ chmod +x /mnt/x11.sh
+ arch-chroot /mnt /x11.sh
+ rm /mnt/x11.sh
+ ;;
+ *)
+ #Delete temporal file and umount partitions
+ rm -r /mnt/temporal
+ umount /mnt/boot &> /dev/null
+ umount /mnt/home &> /dev/null
+ umount /mnt &> /dev/null
+ exit
+ ;;
+ esac
+done
diff --git a/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/systemConfig.sh b/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/systemConfig.sh
new file mode 100755
index 0000000..0fe3c68
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/systemConfig.sh
@@ -0,0 +1,271 @@
+#!/bin/bash
+
+HOSTNAME=$(dialog --stdout --inputbox "Introduce o nome do sistema:" 8 40)
+sed 's|localhost|'"${HOSTNAME}"'|' -i /etc/conf.d/hostname
+
+ln -s /usr/share/zoneinfo/$(dialog --stdout --inputbox "Introduce a Zona Horaria:\nPor ejemplo: Europe/Athens" 8 40) /etc/localtime
+
+keymaps=(
+ "ANSI-dvorak ANSI-dvorak off"
+ "amiga-de amiga-de off"
+ "amiga-us amiga-us off"
+ "applkey applkey off"
+ "atari-de atari-de off"
+ "atari-se atari-se off"
+ "atari-uk-falcon atari-uk-falcon off"
+ "atari-us atari-us off"
+ "azerty azerty off"
+ "backspace backspace off"
+ "bashkir bashkir off"
+ "be-latin1 be-latin1 off"
+ "bg-cp1251 bg-cp1251 off"
+ "bg-cp855 bg-cp855 off"
+ "bg_bds-cp1251 bg_bds-cp1251 off"
+ "bg_bds-utf8 bg_bds-utf8 off"
+ "bg_pho-cp1251 bg_pho-cp1251 off"
+ "bg_pho-utf8 bg_pho-utf8 off"
+ "br-abnt br-abnt off"
+ "br-abnt2 br-abnt2 off"
+ "br-latin1-abnt2 br-latin1-abnt2 off"
+ "br-latin1-us br-latin1-us off"
+ "by by off"
+ "by-cp1251 by-cp1251 off"
+ "bywin-cp1251 bywin-cp1251 off"
+ "cf cf off"
+ "colemak colemak off"
+ "croat croat off"
+ "ctrl ctrl off"
+ "cz cz off"
+ "cz-cp1250 cz-cp1250 off"
+ "cz-lat2 cz-lat2 off"
+ "cz-lat2-prog cz-lat2-prog off"
+ "cz-qwertz cz-qwertz off"
+ "cz-us-qwertz cz-us-qwertz off"
+ "de de off"
+ "de-latin1 de-latin1 off"
+ "de-latin1-nodeadkeys de-latin1-nodeadkeys off"
+ "de-mobii de-mobii off"
+ "de_CH-latin1 de_CH-latin1 off"
+ "de_alt_UTF-8 de_alt_UTF-8 off"
+ "defkeymap defkeymap off"
+ "defkeymap_V1.0 defkeymap_V1.0 off"
+ "dk dk off"
+ "dk-latin1 dk-latin1 off"
+ "dvorak dvorak off"
+ "dvorak-ca-fr dvorak-ca-fr off"
+ "dvorak-es dvorak-es off"
+ "dvorak-fr dvorak-fr off"
+ "dvorak-l dvorak-l off"
+ "dvorak-r dvorak-r off"
+ "dvorak-ru dvorak-ru off"
+ "dvorak-sv-a1 dvorak-sv-a1 off"
+ "dvorak-sv-a5 dvorak-sv-a5 off"
+ "dvorak-uk dvorak-uk off"
+ "emacs emacs off"
+ "emacs2 emacs2 off"
+ "es es off"
+ "es-cp850 es-cp850 off"
+ "es-olpc es-olpc off"
+ "et et off"
+ "et-nodeadkeys et-nodeadkeys off"
+ "euro euro off"
+ "euro1 euro1 off"
+ "euro2 euro2 off"
+ "fi fi off"
+ "fr fr off"
+ "fr-bepo fr-bepo off"
+ "fr-bepo-latin9 fr-bepo-latin9 off"
+ "fr-latin1 fr-latin1 off"
+ "fr-latin9 fr-latin9 off"
+ "fr-pc fr-pc off"
+ "fr_CH fr_CH off"
+ "fr_CH-latin1 fr_CH-latin1 off"
+ "gr gr off"
+ "gr-pc gr-pc off"
+ "hu hu off"
+ "hu101 hu101 off"
+ "il il off"
+ "il-heb il-heb off"
+ "il-phonetic il-phonetic off"
+ "is-latin1 is-latin1 off"
+ "is-latin1-us is-latin1-us off"
+ "it it off"
+ "it-ibm it-ibm off"
+ "it2 it2 off"
+ "jp106 jp106 off"
+ "kazakh kazakh off"
+ "keypad keypad off"
+ "ky_alt_sh-UTF-8 ky_alt_sh-UTF-8 off"
+ "kyrgyz kyrgyz off"
+ "la-latin1 la-latin1 off"
+ "lt lt off"
+ "lt.baltic lt.baltic off"
+ "lt.l4 lt.l4 off"
+ "lv lv off"
+ "lv-tilde lv-tilde off"
+ "mac-be mac-be off"
+ "mac-de-latin1 mac-de-latin1 off"
+ "mac-de-latin1-nodeadkeys mac-de-latin1-nodeadkeys off"
+ "mac-de_CH mac-de_CH off"
+ "mac-dk-latin1 mac-dk-latin1 off"
+ "mac-dvorak mac-dvorak off"
+ "mac-es mac-es off"
+ "mac-euro mac-euro off"
+ "mac-euro2 mac-euro2 off"
+ "mac-fi-latin1 mac-fi-latin1 off"
+ "mac-fr mac-fr off"
+ "mac-fr_CH-latin1 mac-fr_CH-latin1 off"
+ "mac-it mac-it off"
+ "mac-pl mac-pl off"
+ "mac-pt-latin1 mac-pt-latin1 off"
+ "mac-se mac-se off"
+ "mac-template mac-template off"
+ "mac-uk mac-uk off"
+ "mac-us mac-us off"
+ "mk mk off"
+ "mk-cp1251 mk-cp1251 off"
+ "mk-utf mk-utf off"
+ "mk0 mk0 off"
+ "nl nl off"
+ "nl2 nl2 off"
+ "no no off"
+ "no-dvorak no-dvorak off"
+ "no-latin1 no-latin1 off"
+ "pc110 pc110 off"
+ "pl pl off"
+ "pl1 pl1 off"
+ "pl2 pl2 off"
+ "pl3 pl3 off"
+ "pl4 pl4 off"
+ "pt-latin1 pt-latin1 off"
+ "pt-latin9 pt-latin9 off"
+ "pt-olpc pt-olpc off"
+ "ro ro off"
+ "ro_std ro_std off"
+ "ro_win ro_win off"
+ "ru ru off"
+ "ru-cp1251 ru-cp1251 off"
+ "ru-ms ru-ms off"
+ "ru-yawerty ru-yawerty off"
+ "ru1 ru1 off"
+ "ru2 ru2 off"
+ "ru3 ru3 off"
+ "ru4 ru4 off"
+ "ru_win ru_win off"
+ "ruwin_alt-CP1251 ruwin_alt-CP1251 off"
+ "ruwin_alt-KOI8-R ruwin_alt-KOI8-R off"
+ "ruwin_alt-UTF-8 ruwin_alt-UTF-8 off"
+ "ruwin_alt_sh-UTF-8 ruwin_alt_sh-UTF-8 off"
+ "ruwin_cplk-CP1251 ruwin_cplk-CP1251 off"
+ "ruwin_cplk-KOI8-R ruwin_cplk-KOI8-R off"
+ "ruwin_cplk-UTF-8 ruwin_cplk-UTF-8 off"
+ "ruwin_ct_sh-CP1251 ruwin_ct_sh-CP1251 off"
+ "ruwin_ct_sh-KOI8-R ruwin_ct_sh-KOI8-R off"
+ "ruwin_ct_sh-UTF-8 ruwin_ct_sh-UTF-8 off"
+ "ruwin_ctrl-CP1251 ruwin_ctrl-CP1251 off"
+ "ruwin_ctrl-KOI8-R ruwin_ctrl-KOI8-R off"
+ "ruwin_ctrl-UTF-8 ruwin_ctrl-UTF-8 off"
+ "se-fi-ir209 se-fi-ir209 off"
+ "se-fi-lat6 se-fi-lat6 off"
+ "se-ir209 se-ir209 off"
+ "se-lat6 se-lat6 off"
+ "sg sg off"
+ "sg-latin1 sg-latin1 off"
+ "sg-latin1-lk450 sg-latin1-lk450 off"
+ "sk-prog-qwerty sk-prog-qwerty off"
+ "sk-prog-qwertz sk-prog-qwertz off"
+ "sk-qwerty sk-qwerty off"
+ "sk-qwertz sk-qwertz off"
+ "slovene slovene off"
+ "sr-cy sr-cy off"
+ "sun-pl sun-pl off"
+ "sun-pl-altgraph sun-pl-altgraph off"
+ "sundvorak sundvorak off"
+ "sunkeymap sunkeymap off"
+ "sunt4-es sunt4-es off"
+ "sunt4-fi-latin1 sunt4-fi-latin1 off"
+ "sunt4-no-latin1 sunt4-no-latin1 off"
+ "sunt5-cz-us sunt5-cz-us off"
+ "sunt5-de-latin1 sunt5-de-latin1 off"
+ "sunt5-es sunt5-es off"
+ "sunt5-fi-latin1 sunt5-fi-latin1 off"
+ "sunt5-fr-latin1 sunt5-fr-latin1 off"
+ "sunt5-ru sunt5-ru off"
+ "sunt5-uk sunt5-uk off"
+ "sunt5-us-cz sunt5-us-cz off"
+ "sunt6-uk sunt6-uk off"
+ "sv-latin1 sv-latin1 off"
+ "tj_alt-UTF8 tj_alt-UTF8 off"
+ "tr_f-latin5 tr_f-latin5 off"
+ "tr_q-latin5 tr_q-latin5 off"
+ "tralt tralt off"
+ "trf trf off"
+ "trf-fgGIod trf-fgGIod off"
+ "trq trq off"
+ "ttwin_alt-UTF-8 ttwin_alt-UTF-8 off"
+ "ttwin_cplk-UTF-8 ttwin_cplk-UTF-8 off"
+ "ttwin_ct_sh-UTF-8 ttwin_ct_sh-UTF-8 off"
+ "ttwin_ctrl-UTF-8 ttwin_ctrl-UTF-8 off"
+ "ua ua off"
+ "ua-cp1251 ua-cp1251 off"
+ "ua-utf ua-utf off"
+ "ua-utf-ws ua-utf-ws off"
+ "ua-ws ua-ws off"
+ "uk uk off"
+ "unicode unicode off"
+ "us us on"
+ "us-acentos us-acentos off"
+ "wangbe wangbe off"
+ "wangbe2 wangbe2 off"
+ "windowkeys windowkeys off"
+)
+
+echo "KEYMAP=$(dialog --stdout --radiolist "Selecciona a distribucion do teclado" 20 70 50 ${keymaps[@]})" > /etc/vconsole.conf
+
+aux=$(sed -e '1,23d' -e 's/#//g' -e 's/ /#/g' -e 's/..$//' /etc/locale.gen)
+index=0
+for i in $aux; do
+ i=$(echo $i | sed -e 's/#/ /g')
+ locales+=("$i" "$i" off)
+ if [[ $i == "en_US.UTF-8 UTF-8" || $i == "en_US ISO-8859-1" ]]; then
+ locales[$index]="$i"
+ locales[$((index+1))]="$i"
+ locales[$((index+2))]="on"
+ fi
+ index=$((index+3))
+done
+
+locale=$(dialog --stdout --checklist "Selecciona as Localizacions" 20 70 50 "${locales[@]}")
+locale=$(echo ${locale} | sed -e 's/" "/\n/g' -e 's/ /#/g' -e 's/"//g')
+
+for i in ${locale[@]}; do
+ i=$(echo $i | sed -e 's/#/ /g')
+ sed -i -e "s/#$i/$i/g" /etc/locale.gen
+done
+
+locale-gen
+
+aux=$(locale -a)
+index=0
+for i in $aux; do
+ langs+=("$i" "$i" on)
+ index=$((index+1))
+done
+
+echo "LANG=$(dialog --stdout --radiolist "Selecciona o teu idioma" 20 70 50 ${langs[@]})" > /etc/locale.conf
+
+mkinitcpio -p linux-libre
+
+hdd=$(cat /temporal | grep 'hdd=')
+grub-install ${hdd#*=}
+grub-mkconfig -o /boot/grub/grub.cfg
+
+password=$(dialog --stdout --passwordbox "Insire o contrasinal para o administrador" 8 40)
+
+while [[ $password != $password2 ]]; do
+ password2=$(dialog --stdout --passwordbox "Repite o contrasinal para o administrador" 8 40)
+done
+
+usermod -p $(openssl passwd ${password}) root
+
+exit
diff --git a/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/userAccount.sh b/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/userAccount.sh
new file mode 100755
index 0000000..aa1d33a
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/userAccount.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+user=$(cat /temporal | grep "userName")
+
+password=$(dialog --stdout --passwordbox "Introduce o contrasinal para o usuario ${user#*=}" 8 40)
+
+while [[ $password != $password2 ]]; do
+ password2=$(dialog --stdout --passwordbox "Repite o contrasinal" 8 40)
+done
+
+useradd -m -g users -G "wheel" -s /bin/bash -p $(openssl passwd $password) ${user#*=}
+
+exit
diff --git a/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/install.sh b/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/install.sh
new file mode 100755
index 0000000..c47cd6d
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/install.sh
@@ -0,0 +1,231 @@
+#!/bin/bash
+#Temporal is a file that contains parameters to use when access to chroot
+
+keys=(parabola archlinux)
+if [ $(uname -m) = i686 ]; then
+ keys+=(archlinux32)
+fi
+
+if [ ! -f ~/.scriptsInstallation/.pacman ]; then
+ pacman -Sy ${keys[@]/%/-keyring} --noconfirm
+ pacman-key --populate ${keys[@]}
+ pacman-key --refresh-keys
+ case $? in
+ 0) touch ~/.scriptsInstallation/.pacman
+ ;;
+ *) false
+ ;;
+ esac
+fi
+
+partition(){
+
+ #Search and show the Hard Disks to select
+ aux=$(ls /dev/sd?)
+ index=0
+ for i in $aux; do
+ hdds[$index]="${i} ${i#/*/} off"
+ index=$((index+1))
+ done
+
+ hdd=$(dialog --stdout --radiolist "Escolha o Disco" 20 70 50 ${hdds[@]})
+
+ #If exist the line delete
+ if (cat ~/.scriptsInstallation/temporal | grep "hdd=") &>/dev/null
+ then
+ sed -i -e '/hdd=*/d' ~/.scriptsInstallation/temporal
+ fi
+
+ #And add the new line with new parameter
+ echo "hdd=$hdd" >> ~/.scriptsInstallation/temporal
+
+ selection=$(dialog --stdout --menu "Método de Particionamento" 20 70 50 \
+ 1 "Usar todo o disco com o swap (1GB) e /" \
+ 2 "Usar o gparted para personalizar" )
+
+ case $selection in
+ 1)
+ umount /mnt &> /dev/null
+ #Create msdos partition table
+ parted -s $hdd -- mklabel msdos
+
+ #Create partition swap and /
+ parted -s $hdd -- mkpart primary 1MiB 1000MiB mkpart primary 1000MiB -1s
+
+ #Boot option partition /
+ parted -s $hdd -- set 2 boot on
+
+ #Format and partitions and mount /
+ (echo t; echo 1; echo 82; echo w) | fdisk $hdd
+ mkswap ${hdd}1
+ mkfs.ext4 ${hdd}2
+ mount ${hdd}2 /mnt
+ ;;
+ 2)
+ gparted $hdd
+
+ #Search and show the partitions that select before.
+ aux=$(ls $hdd?)
+ index=0;
+ for i in $aux; do
+ partitions[$index]="${i} ${i#/*/} off"
+ index=$((index+1))
+ done
+
+ partition=$(dialog --stdout --radiolist "Montar a partição /" 20 70 50 ${partitions[@]})
+
+ #Mount partition /
+ umount /mnt &> /dev/null
+ mount $partition /mnt
+
+ #Ask if you want mount other partitions
+ other=0
+ while [ $other != 3 ]; do
+ other=$(dialog --stdout --menu "Quer montar outra partição?" 20 70 50 1 "/home" 2 "/boot" 3 "Não")
+
+ case $other in
+ 1)
+ umount /mnt/home &> /dev/null
+ mkdir /mnt/home &> /dev/null
+ mount $(dialog --stdout --radiolist "Montar a partição /home" 20 70 50 ${partitions[@]}) /mnt/home
+ ;;
+ 2)
+ umount /mnt/boot &> /dev/null
+ mkdir /mnt/boot &> /dev/null
+ mount $(dialog --stdout --radiolist "Montar a partição /boot" 20 70 50 ${partitions[@]}) /mnt/boot
+ ;;
+ *)
+ other=3
+ ;;
+ esac
+ done
+ ;;
+ esac
+}
+
+
+option=0
+while [ option != 7 ]; do
+ option=$(dialog --stdout --menu "Instalação CLI da Parabola" 20 70 50 \
+ 1 "Formatar e Montar as Partições" \
+ 2 "Instalar o Sistema Base" \
+ 3 "Instalar o GRUB" \
+ 4 "Configuração do Sistema" \
+ 5 "Adicionar uma Conta de Usuário" \
+ 6 "(Opcional) Instalar Ambiente Gráfico/Aplicativos da Live DVD" \
+ 7 "Sair" )
+
+ case $option in
+ 1)
+ partition
+ ;;
+ 2)
+ #Install base system
+ pacstrap /mnt base-openrc
+ pacstrap /mnt dialog
+ ;;
+ 3)
+ #Install grub
+ pacstrap /mnt grub
+ ;;
+ 4)
+ #Generate fstab and acces to chroot to do System Config
+ genfstab -p /mnt >> /mnt/etc/fstab
+ cp ~/.scriptsInstallation/temporal /mnt
+ cp ~/.scriptsInstallation/systemConfig.sh /mnt
+ chmod +x /mnt/systemConfig.sh
+ arch-chroot /mnt /systemConfig.sh
+ rm -r /mnt/systemConfig.sh
+ ;;
+ 5)
+ #Create a new username and save in temporal, to use after
+ if (cat ~/.scriptsInstallation/temporal | grep "userName=") &>/dev/null
+ then
+ sed -i -e '/userName=*/d' ~/.scriptsInstallation/temporal
+ fi
+
+ echo "userName=$(dialog --stdout --inputbox "Insira o nome do usuário" 8 40)" >> ~/.scriptsInstallation/temporal
+ cp ~/.scriptsInstallation/temporal /mnt
+ cp ~/.scriptsInstallation/userAccount.sh /mnt
+ chmod +x /mnt/userAccount.sh
+ arch-chroot /mnt /userAccount.sh
+ rm -r /mnt/userAccount.sh
+ ;;
+ 6)
+ #Packages to the X11 live
+ packages=( "xorg-server"
+ "xf86-input-evdev"
+ "xf86-input-synaptics"
+ "xf86-video-ati"
+ "xf86-video-dummy"
+ "xf86-video-fbdev"
+ "xf86-video-intel"
+ "xf86-video-nouveau"
+ "xf86-video-openchrome"
+ "xf86-video-sisusb"
+ "xf86-video-vesa"
+ "xf86-video-vmware"
+ "xf86-video-voodoo"
+ "xf86-video-qxl"
+ "xorg-xinit"
+ "gst-plugins-good"
+ "gst-libav"
+ "lxde"
+ "volumeicon"
+ "zenity"
+ "octopi"
+ "pulseaudio-alsa"
+ "alsa-utils"
+ "networkmanager-elogind"
+ "network-manager-applet"
+ "iceweasel"
+ "icedove"
+ "pidgin"
+ "gparted"
+ "smplayer"
+ "epdfview"
+ "gpicview"
+ "abiword"
+ "gnumeric"
+ "leafpad"
+ "galculator-gtk2"
+ "xarchiver"
+ "openrc-desktop"
+ "polkit-elogind"
+ "gvfs-mtp"
+ "gphoto2"
+ "xdg-user-dirs"
+ "gnome-screenshot"
+ )
+
+ #Install packages
+ pacstrap /mnt ${packages[@]}
+ user=$(cat ~/.scriptsInstallation/temporal | grep "userName" )
+
+ #Copy skel in the new system and desktop's background
+ cp -a /etc/skel/ /mnt/etc/
+ cp -a /etc/wallpaper.png /mnt/etc/wallpaper.png
+
+ #Puts the XKBMAP, start X11 automatically and icewm desktop
+ echo "setxkbmap $(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2)" > /mnt/etc/skel/.xinitrc
+ echo "exec startlxde" >> /mnt/etc/skel/.xinitrc
+ echo "startx" >> /mnt/etc/skel/.bash_profile
+ chmod +x /mnt/etc/skel/.xinitrc
+ cp -a /mnt/etc/skel/.[a-z]* /mnt/home/${user#*=}/
+ cp -a ~/.scriptsInstallation/x11.sh /mnt
+
+ #Enable services with OpenRC and configure other stuff
+ chmod +x /mnt/x11.sh
+ arch-chroot /mnt /x11.sh
+ rm /mnt/x11.sh
+ ;;
+ *)
+ #Delete temporal file and umount partitions
+ rm -r /mnt/temporal
+ umount /mnt/boot &> /dev/null
+ umount /mnt/home &> /dev/null
+ umount /mnt &> /dev/null
+ exit
+ ;;
+ esac
+done
diff --git a/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/systemConfig.sh b/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/systemConfig.sh
new file mode 100755
index 0000000..983d0ba
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/systemConfig.sh
@@ -0,0 +1,271 @@
+#!/bin/bash
+
+HOSTNAME=$(dialog --stdout --inputbox "Adicione o nome do sistema:" 8 40)
+sed 's|localhost|'"${HOSTNAME}"'|' -i /etc/conf.d/hostname
+
+ln -s /usr/share/zoneinfo/$(dialog --stdout --inputbox "Adicione o Fuso Horário:\nPor exemplo: America/Sao_Paulo" 8 40) /etc/localtime
+
+keymaps=(
+ "ANSI-dvorak ANSI-dvorak off"
+ "amiga-de amiga-de off"
+ "amiga-us amiga-us off"
+ "applkey applkey off"
+ "atari-de atari-de off"
+ "atari-se atari-se off"
+ "atari-uk-falcon atari-uk-falcon off"
+ "atari-us atari-us off"
+ "azerty azerty off"
+ "backspace backspace off"
+ "bashkir bashkir off"
+ "be-latin1 be-latin1 off"
+ "bg-cp1251 bg-cp1251 off"
+ "bg-cp855 bg-cp855 off"
+ "bg_bds-cp1251 bg_bds-cp1251 off"
+ "bg_bds-utf8 bg_bds-utf8 off"
+ "bg_pho-cp1251 bg_pho-cp1251 off"
+ "bg_pho-utf8 bg_pho-utf8 off"
+ "br-abnt br-abnt off"
+ "br-abnt2 br-abnt2 off"
+ "br-latin1-abnt2 br-latin1-abnt2 off"
+ "br-latin1-us br-latin1-us off"
+ "by by off"
+ "by-cp1251 by-cp1251 off"
+ "bywin-cp1251 bywin-cp1251 off"
+ "cf cf off"
+ "colemak colemak off"
+ "croat croat off"
+ "ctrl ctrl off"
+ "cz cz off"
+ "cz-cp1250 cz-cp1250 off"
+ "cz-lat2 cz-lat2 off"
+ "cz-lat2-prog cz-lat2-prog off"
+ "cz-qwertz cz-qwertz off"
+ "cz-us-qwertz cz-us-qwertz off"
+ "de de off"
+ "de-latin1 de-latin1 off"
+ "de-latin1-nodeadkeys de-latin1-nodeadkeys off"
+ "de-mobii de-mobii off"
+ "de_CH-latin1 de_CH-latin1 off"
+ "de_alt_UTF-8 de_alt_UTF-8 off"
+ "defkeymap defkeymap off"
+ "defkeymap_V1.0 defkeymap_V1.0 off"
+ "dk dk off"
+ "dk-latin1 dk-latin1 off"
+ "dvorak dvorak off"
+ "dvorak-ca-fr dvorak-ca-fr off"
+ "dvorak-es dvorak-es off"
+ "dvorak-fr dvorak-fr off"
+ "dvorak-l dvorak-l off"
+ "dvorak-r dvorak-r off"
+ "dvorak-ru dvorak-ru off"
+ "dvorak-sv-a1 dvorak-sv-a1 off"
+ "dvorak-sv-a5 dvorak-sv-a5 off"
+ "dvorak-uk dvorak-uk off"
+ "emacs emacs off"
+ "emacs2 emacs2 off"
+ "es es off"
+ "es-cp850 es-cp850 off"
+ "es-olpc es-olpc off"
+ "et et off"
+ "et-nodeadkeys et-nodeadkeys off"
+ "euro euro off"
+ "euro1 euro1 off"
+ "euro2 euro2 off"
+ "fi fi off"
+ "fr fr off"
+ "fr-bepo fr-bepo off"
+ "fr-bepo-latin9 fr-bepo-latin9 off"
+ "fr-latin1 fr-latin1 off"
+ "fr-latin9 fr-latin9 off"
+ "fr-pc fr-pc off"
+ "fr_CH fr_CH off"
+ "fr_CH-latin1 fr_CH-latin1 off"
+ "gr gr off"
+ "gr-pc gr-pc off"
+ "hu hu off"
+ "hu101 hu101 off"
+ "il il off"
+ "il-heb il-heb off"
+ "il-phonetic il-phonetic off"
+ "is-latin1 is-latin1 off"
+ "is-latin1-us is-latin1-us off"
+ "it it off"
+ "it-ibm it-ibm off"
+ "it2 it2 off"
+ "jp106 jp106 off"
+ "kazakh kazakh off"
+ "keypad keypad off"
+ "ky_alt_sh-UTF-8 ky_alt_sh-UTF-8 off"
+ "kyrgyz kyrgyz off"
+ "la-latin1 la-latin1 off"
+ "lt lt off"
+ "lt.baltic lt.baltic off"
+ "lt.l4 lt.l4 off"
+ "lv lv off"
+ "lv-tilde lv-tilde off"
+ "mac-be mac-be off"
+ "mac-de-latin1 mac-de-latin1 off"
+ "mac-de-latin1-nodeadkeys mac-de-latin1-nodeadkeys off"
+ "mac-de_CH mac-de_CH off"
+ "mac-dk-latin1 mac-dk-latin1 off"
+ "mac-dvorak mac-dvorak off"
+ "mac-es mac-es off"
+ "mac-euro mac-euro off"
+ "mac-euro2 mac-euro2 off"
+ "mac-fi-latin1 mac-fi-latin1 off"
+ "mac-fr mac-fr off"
+ "mac-fr_CH-latin1 mac-fr_CH-latin1 off"
+ "mac-it mac-it off"
+ "mac-pl mac-pl off"
+ "mac-pt-latin1 mac-pt-latin1 off"
+ "mac-se mac-se off"
+ "mac-template mac-template off"
+ "mac-uk mac-uk off"
+ "mac-us mac-us off"
+ "mk mk off"
+ "mk-cp1251 mk-cp1251 off"
+ "mk-utf mk-utf off"
+ "mk0 mk0 off"
+ "nl nl off"
+ "nl2 nl2 off"
+ "no no off"
+ "no-dvorak no-dvorak off"
+ "no-latin1 no-latin1 off"
+ "pc110 pc110 off"
+ "pl pl off"
+ "pl1 pl1 off"
+ "pl2 pl2 off"
+ "pl3 pl3 off"
+ "pl4 pl4 off"
+ "pt-latin1 pt-latin1 off"
+ "pt-latin9 pt-latin9 off"
+ "pt-olpc pt-olpc off"
+ "ro ro off"
+ "ro_std ro_std off"
+ "ro_win ro_win off"
+ "ru ru off"
+ "ru-cp1251 ru-cp1251 off"
+ "ru-ms ru-ms off"
+ "ru-yawerty ru-yawerty off"
+ "ru1 ru1 off"
+ "ru2 ru2 off"
+ "ru3 ru3 off"
+ "ru4 ru4 off"
+ "ru_win ru_win off"
+ "ruwin_alt-CP1251 ruwin_alt-CP1251 off"
+ "ruwin_alt-KOI8-R ruwin_alt-KOI8-R off"
+ "ruwin_alt-UTF-8 ruwin_alt-UTF-8 off"
+ "ruwin_alt_sh-UTF-8 ruwin_alt_sh-UTF-8 off"
+ "ruwin_cplk-CP1251 ruwin_cplk-CP1251 off"
+ "ruwin_cplk-KOI8-R ruwin_cplk-KOI8-R off"
+ "ruwin_cplk-UTF-8 ruwin_cplk-UTF-8 off"
+ "ruwin_ct_sh-CP1251 ruwin_ct_sh-CP1251 off"
+ "ruwin_ct_sh-KOI8-R ruwin_ct_sh-KOI8-R off"
+ "ruwin_ct_sh-UTF-8 ruwin_ct_sh-UTF-8 off"
+ "ruwin_ctrl-CP1251 ruwin_ctrl-CP1251 off"
+ "ruwin_ctrl-KOI8-R ruwin_ctrl-KOI8-R off"
+ "ruwin_ctrl-UTF-8 ruwin_ctrl-UTF-8 off"
+ "se-fi-ir209 se-fi-ir209 off"
+ "se-fi-lat6 se-fi-lat6 off"
+ "se-ir209 se-ir209 off"
+ "se-lat6 se-lat6 off"
+ "sg sg off"
+ "sg-latin1 sg-latin1 off"
+ "sg-latin1-lk450 sg-latin1-lk450 off"
+ "sk-prog-qwerty sk-prog-qwerty off"
+ "sk-prog-qwertz sk-prog-qwertz off"
+ "sk-qwerty sk-qwerty off"
+ "sk-qwertz sk-qwertz off"
+ "slovene slovene off"
+ "sr-cy sr-cy off"
+ "sun-pl sun-pl off"
+ "sun-pl-altgraph sun-pl-altgraph off"
+ "sundvorak sundvorak off"
+ "sunkeymap sunkeymap off"
+ "sunt4-es sunt4-es off"
+ "sunt4-fi-latin1 sunt4-fi-latin1 off"
+ "sunt4-no-latin1 sunt4-no-latin1 off"
+ "sunt5-cz-us sunt5-cz-us off"
+ "sunt5-de-latin1 sunt5-de-latin1 off"
+ "sunt5-es sunt5-es off"
+ "sunt5-fi-latin1 sunt5-fi-latin1 off"
+ "sunt5-fr-latin1 sunt5-fr-latin1 off"
+ "sunt5-ru sunt5-ru off"
+ "sunt5-uk sunt5-uk off"
+ "sunt5-us-cz sunt5-us-cz off"
+ "sunt6-uk sunt6-uk off"
+ "sv-latin1 sv-latin1 off"
+ "tj_alt-UTF8 tj_alt-UTF8 off"
+ "tr_f-latin5 tr_f-latin5 off"
+ "tr_q-latin5 tr_q-latin5 off"
+ "tralt tralt off"
+ "trf trf off"
+ "trf-fgGIod trf-fgGIod off"
+ "trq trq off"
+ "ttwin_alt-UTF-8 ttwin_alt-UTF-8 off"
+ "ttwin_cplk-UTF-8 ttwin_cplk-UTF-8 off"
+ "ttwin_ct_sh-UTF-8 ttwin_ct_sh-UTF-8 off"
+ "ttwin_ctrl-UTF-8 ttwin_ctrl-UTF-8 off"
+ "ua ua off"
+ "ua-cp1251 ua-cp1251 off"
+ "ua-utf ua-utf off"
+ "ua-utf-ws ua-utf-ws off"
+ "ua-ws ua-ws off"
+ "uk uk off"
+ "unicode unicode off"
+ "us us on"
+ "us-acentos us-acentos off"
+ "wangbe wangbe off"
+ "wangbe2 wangbe2 off"
+ "windowkeys windowkeys off"
+)
+
+echo "KEYMAP=$(dialog --stdout --radiolist "Escolha a distribuição do teclado" 20 70 50 ${keymaps[@]})" > /etc/vconsole.conf
+
+aux=$(sed -e '1,23d' -e 's/#//g' -e 's/ /#/g' -e 's/..$//' /etc/locale.gen)
+index=0
+for i in $aux; do
+ i=$(echo $i | sed -e 's/#/ /g')
+ locales+=("$i" "$i" off)
+ if [[ $i == "en_US.UTF-8 UTF-8" || $i == "en_US ISO-8859-1" ]]; then
+ locales[$index]="$i"
+ locales[$((index+1))]="$i"
+ locales[$((index+2))]="on"
+ fi
+ index=$((index+3))
+done
+
+locale=$(dialog --stdout --checklist "Escolha as Localizações" 20 70 50 "${locales[@]}")
+locale=$(echo ${locale} | sed -e 's/" "/\n/g' -e 's/ /#/g' -e 's/"//g')
+
+for i in ${locale[@]}; do
+ i=$(echo $i | sed -e 's/#/ /g')
+ sed -i -e "s/#$i/$i/g" /etc/locale.gen
+done
+
+locale-gen
+
+aux=$(locale -a)
+index=0
+for i in $aux; do
+ langs+=("$i" "$i" on)
+ index=$((index+1))
+done
+
+echo "LANG=$(dialog --stdout --radiolist "Escolha a sua língua" 20 70 50 ${langs[@]})" > /etc/locale.conf
+
+mkinitcpio -p linux-libre
+
+hdd=$(cat /temporal | grep 'hdd=')
+grub-install ${hdd#*=}
+grub-mkconfig -o /boot/grub/grub.cfg
+
+password=$(dialog --stdout --passwordbox "Insira a senha para o root" 8 40)
+
+while [[ $password != $password2 ]]; do
+ password2=$(dialog --stdout --passwordbox "Repita a senha para o root" 8 40)
+done
+
+usermod -p $(openssl passwd ${password}) root
+
+exit
diff --git a/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/userAccount.sh b/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/userAccount.sh
new file mode 100755
index 0000000..408beba
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/userAccount.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+user=$(cat /temporal | grep "userName")
+
+password=$(dialog --stdout --passwordbox "Insira a senha para o usuário ${user#*=}" 8 40)
+
+while [[ $password != $password2 ]]; do
+ password2=$(dialog --stdout --passwordbox "Repita a senha" 8 40)
+done
+
+useradd -m -g users -G "wheel" -s /bin/bash -p $(openssl passwd $password) ${user#*=}
+
+exit
diff --git a/lxde-openrc/airootfs/root/.scriptsInstallation/parabolaicon.png b/lxde-openrc/airootfs/root/.scriptsInstallation/parabolaicon.png
new file mode 100644
index 0000000..aed32d7
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.scriptsInstallation/parabolaicon.png
Binary files differ
diff --git a/lxde-openrc/airootfs/root/.scriptsInstallation/x11.sh b/lxde-openrc/airootfs/root/.scriptsInstallation/x11.sh
new file mode 100755
index 0000000..47035c5
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.scriptsInstallation/x11.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+check_dbus() {
+ grep dbus /etc/$1
+}
+
+# Create the dbus user if it doesn't exist
+[[ $(check_dbus group) = "" ]] && groupadd -g 81 dbus
+[[ $(check_dbus passwd) = "" ]] && useradd -r -s /sbin/nologin -g 81 -u 81 dbus
+
+# Enable services with OpenRC
+rc-update add NetworkManager default
+rc-update add dbus default
+rc-update add alsasound default
diff --git a/lxde-openrc/airootfs/root/.xinitrc b/lxde-openrc/airootfs/root/.xinitrc
new file mode 100644
index 0000000..09e419c
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.xinitrc
@@ -0,0 +1,7 @@
+code=$(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2)
+[ "$code" = "0" ] && code='us'
+setxkbmap $code
+service NetworkManager start
+service dbus start
+service alsasound start
+exec startlxde
diff --git a/lxde-openrc/airootfs/root/.zlogin b/lxde-openrc/airootfs/root/.zlogin
new file mode 100644
index 0000000..3c75da7
--- /dev/null
+++ b/lxde-openrc/airootfs/root/.zlogin
@@ -0,0 +1,10 @@
+# fix for screen readers
+if grep -Fq 'accessibility=' /proc/cmdline &> /dev/null; then
+ setopt SINGLE_LINE_ZLE
+fi
+
+~/.automated_script.sh
+~/.language.sh
+. /etc/locale.conf
+export LANG
+startx
diff --git a/lxde-openrc/airootfs/root/Desktop/Parabola Installation CLI.desktop b/lxde-openrc/airootfs/root/Desktop/Parabola Installation CLI.desktop
new file mode 100755
index 0000000..9a2d871
--- /dev/null
+++ b/lxde-openrc/airootfs/root/Desktop/Parabola Installation CLI.desktop
@@ -0,0 +1,12 @@
+#!/usr/bin/env xdg-open
+[Desktop Entry]
+Version=1.0
+Type=Application
+Terminal=true
+Name[es_ES]=Instalador CLI de Parabola
+Name[gl_ES]=Instalador CLI de Parabola
+Name[pt_BR]=Instalador CLI da Parabola
+Exec=/root/.scriptsInstallation/install.sh
+Name=Parabola Installation CLI
+Comment=Parabola Installation Scripts
+Icon=/root/.scriptsInstallation/parabolaicon.png
diff --git a/lxde-openrc/airootfs/usr/local/bin/Installation_guide b/lxde-openrc/airootfs/usr/local/bin/Installation_guide
new file mode 100755
index 0000000..876fbd2
--- /dev/null
+++ b/lxde-openrc/airootfs/usr/local/bin/Installation_guide
@@ -0,0 +1,5 @@
+#!/bin/sh
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+exec lynx 'https://wiki.parabola.nu/Installation_Guide'
diff --git a/lxde-openrc/airootfs/usr/local/bin/choose-mirror b/lxde-openrc/airootfs/usr/local/bin/choose-mirror
new file mode 100755
index 0000000..e8f8254
--- /dev/null
+++ b/lxde-openrc/airootfs/usr/local/bin/choose-mirror
@@ -0,0 +1,28 @@
+#!/bin/bash
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+get_cmdline() {
+ local param
+ for param in $(< /proc/cmdline); do
+ case "${param}" in
+ $1=*) echo "${param##*=}";
+ return 0
+ ;;
+ esac
+ done
+}
+
+mirror=$(get_cmdline mirror)
+[[ $mirror = auto ]] && mirror=$(get_cmdline parabolaiso_http_srv)
+[[ $mirror ]] || exit 0
+
+mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig
+cat >/etc/pacman.d/mirrorlist << EOF
+#
+# Parabola GNU/Linux-libre repository mirrorlist
+# Generated by parabolaiso
+#
+
+Server = ${mirror%%/}/\$repo/os/\$arch
+EOF
diff --git a/lxde-openrc/airootfs/usr/local/bin/livecd-sound b/lxde-openrc/airootfs/usr/local/bin/livecd-sound
new file mode 100755
index 0000000..3ead720
--- /dev/null
+++ b/lxde-openrc/airootfs/usr/local/bin/livecd-sound
@@ -0,0 +1,248 @@
+#!/usr/bin/env bash
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+usage() {
+ cat <<- _EOF_
+ live cd sound helper script.
+ Usage: livecdsound [OPTION]
+ OPTIONS
+ -u, --unmute unmute all sound cards
+ -p, --pick select a card for speetch output
+ -h, --help Show this usage message
+
+_EOF_
+}
+
+bugout () {
+ printf "/usr/local/bin/livecdsound: programming error"
+ stat_fail
+}
+
+echo_card_indices()
+{
+ if [ -f /proc/asound/cards ] ; then
+ sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' /proc/asound/cards
+ fi
+}
+
+# The following functions try to set many controls.
+# No card has all the controls and so some of the attempts are bound to fail.
+# Because of this, the functions can't return useful status values.
+
+# $1 <card id>
+# $2 <control>
+# $3 <level>
+unmute_and_set_level(){
+ { [ "$3" ] &&[ "$2" ] && [ "$1" ] ; } || bugout
+ printf "Setting: %s on card: %s to %s\n" "$2" "$1" "$3"
+ amixer -c "$1" set "$2" "$3" unmute
+ return 0
+}
+
+# $1 <card id>
+# $2 <control>
+mute_and_zero_level()
+{
+ { [ "$1" ] && [ "$2" ] ; } || bugout
+ printf "Muting control: %s on card: %s\n" "$2" "$1"
+ amixer -c "$1" set "$2" "0%" mute
+ return 0
+}
+
+# $1 <card ID>
+# $2 <control>
+# $3 "on" | "off"
+switch_control()
+{
+ { [ "$3" ] && [ "$1" ] ; } || bugout
+ printf "Switching control: %s on card: %s to %s\n" "$2" "$1" "$3"
+ amixer -c "$1" set "$2" "$3"
+ return 0
+}
+
+# $1 <card ID>
+sanify_levels_on_card()
+{
+ unmute_and_set_level "$1" "Front" "80%"
+ unmute_and_set_level "$1" "Master" "80%"
+ unmute_and_set_level "$1" "Master Mono" "80%"
+ unmute_and_set_level "$1" "Master Digital" "80%" # E.g., cs4237B
+ unmute_and_set_level "$1" "Playback" "80%"
+ unmute_and_set_level "$1" "Headphone" "100%"
+ unmute_and_set_level "$1" "PCM" "80%"
+ unmute_and_set_level "$1" "PCM,1" "80%" # E.g., ess1969
+ unmute_and_set_level "$1" "DAC" "80%" # E.g., envy24, cs46xx
+ unmute_and_set_level "$1" "DAC,0" "80%" # E.g., envy24
+ unmute_and_set_level "$1" "DAC,1" "80%" # E.g., envy24
+ unmute_and_set_level "$1" "Synth" "80%"
+ unmute_and_set_level "$1" "CD" "80%"
+ unmute_and_set_level "$1" "PC Speaker" "100%"
+
+ mute_and_zero_level "$1" "Mic"
+ mute_and_zero_level "$1" "IEC958" # Ubuntu #19648
+
+ # Intel P4P800-MX
+ switch_control "$1" "Master Playback Switch" on
+ switch_control "$1" "Master Surround" on
+
+ # Trident/YMFPCI/emu10k1:
+ unmute_and_set_level "$1" "Wave" "80%"
+ unmute_and_set_level "$1" "Music" "80%"
+ unmute_and_set_level "$1" "AC97" "80%"
+
+ # DRC:
+ unmute_and_set_level "$1" "Dynamic Range Compression" "80%"
+
+ # Required for HDA Intel (hda-intel):
+ unmute_and_set_level "$1" "Front" "80%"
+
+ # Required for SB Live 7.1/24-bit (ca0106):
+ unmute_and_set_level "$1" "Analog Front" "80%"
+
+ # Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard
+ switch_control "$1" "IEC958 Capture Monitor" off
+
+ # Required for hardware allowing toggles for AC97 through IEC958,
+ # valid values are 0, 1, 2, 3. Needs to be set to 0 for PCM1.
+ unmute_and_set_level "$1" "IEC958 Playback AC97-SPSA" "0"
+
+ # Required for newer Via hardware
+ unmute_and_set_level "$1" "VIA DXS,0" "80%"
+ unmute_and_set_level "$1" "VIA DXS,1" "80%"
+ unmute_and_set_level "$1" "VIA DXS,2" "80%"
+ unmute_and_set_level "$1" "VIA DXS,3" "80%"
+
+ # Required on some notebooks with ICH4:
+ switch_control "$1" "Headphone Jack Sense" off
+ switch_control "$1" "Line Jack Sense" off
+
+ # Some machines need one or more of these to be on;
+ # others need one or more of these to be off:
+
+ switch_control "$1" "Audigy Analog/Digital Output Jack" on
+ switch_control "$1" "SB Live Analog/Digital Output Jack" on
+
+ # D1984 -- Thinkpad T61/X61
+ switch_control "$1" "Speaker" on
+ switch_control "$1" "Headphone" on
+
+ # HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823)
+ unmute_and_set_level "$1" "Digital" "80%"
+
+ return 0
+}
+
+# $1 <card ID> | "all"
+sanify_levels()
+{
+ local ttsdml_returnstatus=0
+ local card
+ case "$1" in
+ all)
+ for card in $(echo_card_indices) ; do
+ sanify_levels_on_card "$card" || ttsdml_returnstatus=1
+ done
+ ;;
+ *)
+ sanify_levels_on_card "$1" || ttsdml_returnstatus=1
+ ;;
+ esac
+ return $ttsdml_returnstatus
+}
+
+# List all cards that *should* be usable for PCM audio. In my experience,
+# the console speaker (handled by the pcsp driver) isn't a suitable playback
+# device, so we'll exclude it.
+list_non_pcsp_cards()
+{
+ for card in $(echo_card_indices); do
+ local cardfile="/proc/asound/card${card}/id"
+ if [ -r "$cardfile" ] && [ -f "$cardfile" ] && \
+ [ "$(cat "$cardfile")" != pcsp ]; then
+ echo "$card"
+ fi
+ done
+}
+
+# Properly initialize the sound card so that we have audio at boot.
+unmute_all_cards()
+{
+ sanify_levels all
+}
+
+is_numeric() {
+ local str=$1
+ [[ "$str" =~ ^[0-9]+$ ]]
+}
+
+set_default_card() {
+ local card=$1
+ sed -e "s/%card%/$card/g" < /usr/local/share/livecd-sound/asound.conf.in \
+ > /etc/asound.conf
+}
+
+play_on_card() {
+ local card=$1 file=$2
+ aplay -q "-Dplughw:$card,0" "$file"
+}
+
+# If there are multiple usable sound cards, prompt the user to choose one,
+# using auditory feedback.
+pick_a_card()
+{
+ set -f
+ usable_cards="$(list_non_pcsp_cards)"
+ num_usable_cards="$(wc -w <<< "$usable_cards")"
+
+ if [ "$num_usable_cards" -eq 1 ]; then
+ printf "Only one sound card is detected\n"
+ exit 0
+ fi
+ printf "multiple sound cards detected\n"
+ for card in $usable_cards; do
+ if ! is_numeric "$card"; then
+ continue
+ fi
+ play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav&
+ done
+ wait
+ sleep 1
+ for card in $usable_cards; do
+ if ! is_numeric "$card"; then
+ continue
+ fi
+ play_on_card "$card" /usr/share/livecd-sounds/beep.wav
+ if read -r -t 10; then
+ printf "Selecting %s sound card as default\n" "$card"
+ set_default_card "$card"
+ break
+ fi
+done
+}
+
+if [[ $# -eq 0 ]]; then
+ echo "error: No argument passed."
+ exit 1
+fi
+while [[ "${1}" != "" ]]; do
+ case ${1} in
+ -h|--help)
+ usage
+ exit
+ ;;
+ -u|--unmute)
+ printf "Unmuting all cards"
+ unmute_all_cards
+ ;;
+ -p|--pick)
+ pick_a_card
+ ;;
+ *)
+ echo "error: Unsupported argument"
+ usage
+ exit 1
+ ;;
+ esac
+ shift
+done
diff --git a/lxde-openrc/airootfs/usr/local/share/livecd-sound/asound.conf.in b/lxde-openrc/airootfs/usr/local/share/livecd-sound/asound.conf.in
new file mode 100644
index 0000000..3f9c7aa
--- /dev/null
+++ b/lxde-openrc/airootfs/usr/local/share/livecd-sound/asound.conf.in
@@ -0,0 +1,3 @@
+Defaults node
+defaults.ctl.card %card%;
+defaults.pcm.card %card%;
diff --git a/lxde-openrc/efiboot/EFI/BOOT/entries/01-parabolaiso-x86_64-linux-libre.conf b/lxde-openrc/efiboot/EFI/BOOT/entries/01-parabolaiso-x86_64-linux-libre.conf
new file mode 100644
index 0000000..7fec6be
--- /dev/null
+++ b/lxde-openrc/efiboot/EFI/BOOT/entries/01-parabolaiso-x86_64-linux-libre.conf
@@ -0,0 +1,5 @@
+menuentry "Parabola GNU/Linux-libre install medium (x86_64, UEFI)" {
+ loader /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+ initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+ options "parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%"
+}
diff --git a/lxde-openrc/efiboot/EFI/BOOT/entries/02-parabolaiso-x86_64-speech-linux-libre.conf b/lxde-openrc/efiboot/EFI/BOOT/entries/02-parabolaiso-x86_64-speech-linux-libre.conf
new file mode 100644
index 0000000..e6e8ab6
--- /dev/null
+++ b/lxde-openrc/efiboot/EFI/BOOT/entries/02-parabolaiso-x86_64-speech-linux-libre.conf
@@ -0,0 +1,5 @@
+menuentry "Parabola GNU/Linux-libre install medium (x86_64, UEFI) with speech" {
+ loader /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+ initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+ options "parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% accessibility=on"
+}
diff --git a/lxde-openrc/efiboot/EFI/BOOT/entries/03-parabolaiso-x86_64-ram-linux-libre.conf b/lxde-openrc/efiboot/EFI/BOOT/entries/03-parabolaiso-x86_64-ram-linux-libre.conf
new file mode 100644
index 0000000..0c635af
--- /dev/null
+++ b/lxde-openrc/efiboot/EFI/BOOT/entries/03-parabolaiso-x86_64-ram-linux-libre.conf
@@ -0,0 +1,5 @@
+menuentry "Parabola GNU/Linux-libre install medium (x86_64, UEFI, Copy to RAM)" {
+ loader /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+ initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+ options "parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram"
+}
diff --git a/lxde-openrc/efiboot/EFI/BOOT/refind.conf b/lxde-openrc/efiboot/EFI/BOOT/refind.conf
new file mode 100644
index 0000000..599ee49
--- /dev/null
+++ b/lxde-openrc/efiboot/EFI/BOOT/refind.conf
@@ -0,0 +1,8 @@
+scanfor manual
+showtools shell firmware reboot shutdown
+
+timeout 15
+include entries/01-parabolaiso-x86_64-linux-libre.conf
+include entries/02-parabolaiso-x86_64-speech-linux-libre.conf
+include entries/03-parabolaiso-x86_64-ram-linux-libre.conf
+default_selection 1
diff --git a/lxde-openrc/packages.both b/lxde-openrc/packages.both
new file mode 100644
index 0000000..3c9c908
--- /dev/null
+++ b/lxde-openrc/packages.both
@@ -0,0 +1,173 @@
+#Base
+alsa-utils-openrc
+arch-install-scripts
+archinstall
+base
+bind-tools
+brltty-openrc
+btrfs-progs
+cloud-init
+crda
+cryptsetup
+darkhttpd
+ddrescue
+dhclient
+dhcpcd-openrc
+diffutils
+dmraid
+dnsmasq
+dosfstools
+e2fsprogs
+efibootmgr
+espeakup-openrc
+elogind
+ethtool
+exfatprogs
+f2fs-tools
+fatresize
+fsarchiver
+gnu-netcat
+gpart
+gpm-openrc
+gptfdisk
+grml-zsh-config
+hdparm-openrc
+irssi
+iw
+iwd
+jfsutils
+kitty-terminfo
+less
+lftp
+libfido2
+libusb-compat
+linux-atm
+linux-libre
+linux-libre-firmware
+livecd-sounds
+lsscsi
+lvm2-openrc
+lynx
+man-db
+man-pages
+mc
+mdadm-openrc
+memtest86+
+mkinitcpio
+mkinitcpio-parabolaiso
+mkinitcpio-nfs-utils
+modemmanager
+mtools
+nano
+nbd
+ndisc6
+networkmanager-openrc
+nfs-utils-openrc
+nilfs-utils
+nmap
+ntfs-3g
+nvme-cli
+openconnect
+openrc-init
+openssh-openrc
+openvpn-openrc
+partclone
+parted
+partimage
+pcsclite
+ppp
+pptpclient
+pv
+qemu-guest-agent
+reflector
+reiserfsprogs
+rp-pppoe
+rsync-openrc
+rxvt-unicode-terminfo
+screen
+sdparm
+sg3_utils
+smartmontools
+sof-firmware
+squashfs-tools
+sudo
+syslinux
+tcpdump
+terminus-font
+testdisk
+tmux
+tpm2-tss
+udev-init-scripts
+udftools
+usb_modeswitch
+usbmuxd
+usbutils
+vim
+vpnc
+wireless-regdb
+wireless_tools
+wpa_supplicant-openrc
+wvdial
+xfsprogs
+xl2tpd
+zsh
+
+#X11
+xorg
+xorg-drivers
+xorg-xinit
+
+#Plugins
+gst-plugins-base
+gst-plugins-good
+gst-libav
+
+#Window Manager
+obconf
+ambiance-radiance-colors-suite
+gvfs-mtp
+gvfs-gphoto2
+xdg-user-dirs
+gnome-screenshot
+lxde-gtk3
+
+#Sound
+pulseaudio-alsa
+alsa-utils
+
+#Network
+network-manager-applet
+gnome-keyring
+
+#Programs
+octopi
+knotifications
+midori
+evolution
+pidgin
+qtox
+gparted
+smplayer
+epdfview
+abiword
+gnumeric
+leafpad
+galculator
+xarchiver
+dmidecode
+xscreensaver
+zenity
+xterm
+dialog
+
+#Compressor/archiver
+p7zip
+unarchiver
+unzip
+zip
+
+#Fonts
+ttf-dejavu
+
+#OpenRC
+openrc-desktop
diff --git a/lxde-openrc/packages.x86_64 b/lxde-openrc/packages.x86_64
new file mode 100644
index 0000000..31579bc
--- /dev/null
+++ b/lxde-openrc/packages.x86_64
@@ -0,0 +1,2 @@
+edk2-shell
+refind
diff --git a/lxde-openrc/pacman.conf b/lxde-openrc/pacman.conf
new file mode 100644
index 0000000..f531d97
--- /dev/null
+++ b/lxde-openrc/pacman.conf
@@ -0,0 +1,128 @@
+#
+# /etc/pacman.conf
+#
+# See the pacman.conf(5) manpage for option and repository directives
+
+#
+# GENERAL OPTIONS
+#
+[options]
+# The following paths are commented out with their default values listed.
+# If you wish to use different paths, uncomment and update the paths.
+#RootDir = /
+#DBPath = /var/lib/pacman/
+#CacheDir = /var/cache/pacman/pkg/
+#LogFile = /var/log/pacman.log
+#GPGDir = /etc/pacman.d/gnupg/
+#HookDir = /etc/pacman.d/hooks/
+HoldPkg = pacman glibc
+#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#CleanMethod = KeepInstalled
+Architecture = auto
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+IgnorePkg = systemd systemd-libsystemd systemd-libs systemd-udev systemd-libudev
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options
+#UseSyslog
+#Color
+#NoProgressBar
+# We cannot check disk space from within a chroot environment
+#CheckSpace
+#VerbosePkgLists
+ParallelDownloads = 5
+
+# By default, pacman accepts packages signed by keys that its local keyring
+# trusts (see pacman-key and its man page), as well as unsigned packages.
+SigLevel = Required DatabaseOptional
+LocalFileSigLevel = Optional
+#RemoteFileSigLevel = Required
+
+# NOTE: You must run `pacman-key --init` before first using pacman; the local
+# keyring can then be populated with the keys of all Arch/Parabola packagers
+# with `pacman-key --populate archlinux` and `pacman-key --populate parabola`.
+
+#
+# REPOSITORIES
+# - can be defined here or included from another file
+# - pacman will search repositories in the order defined here
+# - local/custom mirrors can be added here or in separate files
+# - repositories listed first will take precedence when packages
+# have identical names, regardless of version number
+# - URLs will have $repo replaced by the name of the current repo
+# - URLs will have $arch replaced by the name of the architecture
+#
+# Repository entries are of the format:
+# [repo-name]
+# Server = ServerName
+# Include = IncludePath
+#
+# The header [repo-name] is crucial - it must be present and
+# uncommented to enable the repo.
+#
+
+# The testing repositories are disabled by default. To enable, uncomment the
+# repo name header and Include lines. You can add preferred servers immediately
+# after the header, and they will be used before the default mirrors.
+
+[nonsystemd]
+Include = /etc/pacman.d/mirrorlist
+
+#[libre-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[libre]
+Include = /etc/pacman.d/mirrorlist
+
+#[testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[core]
+Include = /etc/pacman.d/mirrorlist
+
+[extra]
+Include = /etc/pacman.d/mirrorlist
+
+#[community-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[community]
+Include = /etc/pacman.d/mirrorlist
+
+#[pcr-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[pcr]
+Include = /etc/pacman.d/mirrorlist
+
+# If you want to run 32 bit applications on your x86_64 system,
+# enable the libre-multilib, multilib and pcr-multilib repositories as required here.
+
+#[libre-multilib-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[libre-multilib]
+#Include = /etc/pacman.d/mirrorlist
+
+#[multilib-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[multilib]
+#Include = /etc/pacman.d/mirrorlist
+
+#[pcr-multilib-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[pcr-multilib]
+#Include = /etc/pacman.d/mirrorlist
+
+# An example of a custom package repository. See the pacman manpage for
+# tips on creating your own repositories.
+#[custom]
+#SigLevel = Optional TrustAll
+#Server = file:///home/custompkgs
diff --git a/lxde-openrc/profiledef.sh b/lxde-openrc/profiledef.sh
new file mode 100644
index 0000000..632a00c
--- /dev/null
+++ b/lxde-openrc/profiledef.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+# shellcheck disable=SC2034
+
+# TODO:
+# * replace the old installation scripts with Zen Installer
+# * get braille support to actually work, even for desktop
+
+iso_name="parabola-openrc-lxde"
+iso_label="PARA_$(date +%Y%m)"
+iso_publisher="Parabola GNU/Linux-libre <https://parabola.nu>"
+iso_application="Parabola GNU/Linux-libre Live/Rescue CD"
+iso_version="$(date +%Y.%m.%d)"
+install_dir="parabola"
+buildmodes=('iso')
+bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' 'uefi-x64.refind.esp' 'uefi-x64.refind.eltorito')
+arch="dual"
+pacman_conf="pacman.conf"
+airootfs_image_type="squashfs"
+airootfs_image_tool_options=('-comp' 'xz' '-Xbcj' 'x86' '-b' '1M' '-Xdict-size' '1M')
+file_permissions=(
+ ["/etc/local.d/choose-mirror.start"]="0:0:755"
+ ["/etc/local.d/etc-pacman.d-gnupg.start"]="0:0:755"
+ ["/etc/local.d/livecd-talk.start"]="0:0:755"
+ ["/etc/local.d/pacman-init.start"]="0:0:755"
+ ["/etc/NetworkManager/dispatcher.d/reflector"]="0:0:755"
+ ["/etc/shadow"]="0:0:400"
+ ["/root"]="0:0:750"
+ ["/root/.automated_script.sh"]="0:0:755"
+ ["/root/.keymap.sh"]="0:0:755"
+ ["/root/.language.sh"]="0:0:755"
+ ["/root/Desktop/Parabola Installation CLI.desktop"]="0:0:755"
+ ["/root/.scriptsInstallation/language/en/install.sh"]="0:0:755"
+ ["/root/.scriptsInstallation/language/en/systemConfig.sh"]="0:0:755"
+ ["/root/.scriptsInstallation/language/en/systemConfig.sh"]="0:0:755"
+ ["/root/.scriptsInstallation/language/es/install.sh"]="0:0:755"
+ ["/root/.scriptsInstallation/language/es/systemConfig.sh"]="0:0:755"
+ ["/root/.scriptsInstallation/language/es/systemConfig.sh"]="0:0:755"
+ ["/root/.scriptsInstallation/language/gl/install.sh"]="0:0:755"
+ ["/root/.scriptsInstallation/language/gl/systemConfig.sh"]="0:0:755"
+ ["/root/.scriptsInstallation/language/gl/systemConfig.sh"]="0:0:755"
+ ["/root/.scriptsInstallation/language/pt/install.sh"]="0:0:755"
+ ["/root/.scriptsInstallation/language/pt/systemConfig.sh"]="0:0:755"
+ ["/root/.scriptsInstallation/language/pt/systemConfig.sh"]="0:0:755"
+ ["/usr/local/bin/choose-mirror"]="0:0:755"
+ ["/usr/local/bin/Installation_guide"]="0:0:755"
+ ["/usr/local/bin/livecd-sound"]="0:0:755"
+)
diff --git a/lxde-openrc/syslinux/parabolaiso_head.cfg b/lxde-openrc/syslinux/parabolaiso_head.cfg
new file mode 100644
index 0000000..591097e
--- /dev/null
+++ b/lxde-openrc/syslinux/parabolaiso_head.cfg
@@ -0,0 +1,28 @@
+SERIAL 0 115200
+UI vesamenu.c32
+MENU TITLE Parabola GNU/Linux-libre
+MENU BACKGROUND splash.png
+
+MENU WIDTH 78
+MENU MARGIN 4
+MENU ROWS 7
+MENU VSHIFT 10
+MENU TABMSGROW 14
+MENU CMDLINEROW 14
+MENU HELPMSGROW 16
+MENU HELPMSGENDROW 29
+
+# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
+
+MENU COLOR border 35;40 #ff777caa #a0000000 std
+MENU COLOR title 1;35;40 #ff777caa #a0000000 std
+MENU COLOR sel 7;35;47 #e0ffffff #20777caa all
+MENU COLOR unsel 35;40 #ff777caa #a0000000 std
+MENU COLOR help 35;40 #c0b2b2b2 #a0000000 std
+MENU COLOR timeout_msg 35;40 #ff777caa #00000000 std
+MENU COLOR timeout 1;35;40 #ff777caa #00000000 std
+MENU COLOR msg07 35;40 #ff777caa #a0000000 std
+MENU COLOR tabmsg 35;40 #ff777caa #00000000 std
+
+MENU CLEAR
+MENU IMMEDIATE
diff --git a/lxde-openrc/syslinux/parabolaiso_pxe32-linux-libre.cfg b/lxde-openrc/syslinux/parabolaiso_pxe32-linux-libre.cfg
new file mode 100644
index 0000000..9e0bb0e
--- /dev/null
+++ b/lxde-openrc/syslinux/parabolaiso_pxe32-linux-libre.cfg
@@ -0,0 +1,32 @@
+LABEL parabola32_nbd
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (i686) live medium (Using NBD).
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (i686) (NBD)
+LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% parabolaiso_nbd_srv=${pxeserver} checksum verify
+SYSAPPEND 3
+
+LABEL parabola32_nfs
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (i686) live medium (Using NFS).
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (i686) (NFS)
+LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt checksum verify
+SYSAPPEND 3
+
+LABEL parabola32_http
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (i686) live medium (Using HTTP).
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (i686) (HTTP)
+LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/ checksum verify
+SYSAPPEND 3
diff --git a/lxde-openrc/syslinux/parabolaiso_pxe64-linux-libre.cfg b/lxde-openrc/syslinux/parabolaiso_pxe64-linux-libre.cfg
new file mode 100644
index 0000000..71e70c5
--- /dev/null
+++ b/lxde-openrc/syslinux/parabolaiso_pxe64-linux-libre.cfg
@@ -0,0 +1,32 @@
+LABEL parabola64_nbd
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using NBD).
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (NBD)
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% parabolaiso_nbd_srv=${pxeserver} checksum verify
+SYSAPPEND 3
+
+LABEL parabola64_nfs
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using NFS).
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (NFS)
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt checksum verify
+SYSAPPEND 3
+
+LABEL parabola64_http
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using HTTP).
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (HTTP)
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/ checksum verify
+SYSAPPEND 3
diff --git a/lxde-openrc/syslinux/parabolaiso_pxe_32_inc.cfg b/lxde-openrc/syslinux/parabolaiso_pxe_32_inc.cfg
new file mode 100644
index 0000000..e42cf87
--- /dev/null
+++ b/lxde-openrc/syslinux/parabolaiso_pxe_32_inc.cfg
@@ -0,0 +1,3 @@
+INCLUDE parabolaiso_head.cfg
+INCLUDE parabolaiso_pxe32.cfg
+INCLUDE parabolaiso_tail.cfg
diff --git a/lxde-openrc/syslinux/parabolaiso_pxe_both_inc.cfg b/lxde-openrc/syslinux/parabolaiso_pxe_both_inc.cfg
new file mode 100644
index 0000000..279fba1
--- /dev/null
+++ b/lxde-openrc/syslinux/parabolaiso_pxe_both_inc.cfg
@@ -0,0 +1,4 @@
+INCLUDE parabolaiso_head.cfg
+INCLUDE parabolaiso_pxe64-linux-libre.cfg
+INCLUDE parabolaiso_pxe32-linux-libre.cfg
+INCLUDE parabolaiso_tail.cfg
diff --git a/lxde-openrc/syslinux/parabolaiso_pxe_choose.cfg b/lxde-openrc/syslinux/parabolaiso_pxe_choose.cfg
new file mode 100644
index 0000000..dcf16b6
--- /dev/null
+++ b/lxde-openrc/syslinux/parabolaiso_pxe_choose.cfg
@@ -0,0 +1,11 @@
+DEFAULT choose
+
+LABEL choose
+COM32 ifcpu64.c32
+APPEND have64 -- nohave64
+
+LABEL have64
+CONFIG parabolaiso_pxe_both_inc.cfg
+
+LABEL nohave64
+CONFIG parabolaiso_pxe_32_inc.cfg
diff --git a/lxde-openrc/syslinux/parabolaiso_sys32-linux-libre.cfg b/lxde-openrc/syslinux/parabolaiso_sys32-linux-libre.cfg
new file mode 100644
index 0000000..4f0acb1
--- /dev/null
+++ b/lxde-openrc/syslinux/parabolaiso_sys32-linux-libre.cfg
@@ -0,0 +1,33 @@
+TIMEOUT 150
+
+LABEL parabola32
+TEXT HELP
+Boot the Parabola GNU/Linux-libre install medium on BIOS.
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Parabola GNU/Linux-libre install medium (i686, BIOS)
+LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
+
+# Accessibility boot option
+LABEL parabola32speech
+TEXT HELP
+Boot the Parabola GNU/Linux-libre install medium on BIOS with speakup screen reader.
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance with speech feedback.
+ENDTEXT
+MENU LABEL Parabola GNU/Linux-libre install medium (i686, BIOS) with ^speech
+LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% accessibility=on
+
+# Copy to RAM boot option
+LABEL parabola32ram
+TEXT HELP
+Boot the Parabola GNU/Linux-libre install medium on BIOS with Copy-to-RAM option
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Parabola GNU/Linux-libre install medium (i686, BIOS, Copy to RAM)
+LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram
diff --git a/lxde-openrc/syslinux/parabolaiso_sys64-linux-libre.cfg b/lxde-openrc/syslinux/parabolaiso_sys64-linux-libre.cfg
new file mode 100644
index 0000000..cbf736e
--- /dev/null
+++ b/lxde-openrc/syslinux/parabolaiso_sys64-linux-libre.cfg
@@ -0,0 +1,31 @@
+LABEL parabola64
+TEXT HELP
+Boot the Parabola GNU/Linux-libre install medium on BIOS.
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Parabola GNU/Linux-libre install medium (x86_64, BIOS)
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
+
+# Accessibility boot option
+LABEL parabola64speech
+TEXT HELP
+Boot the Parabola GNU/Linux-libre install medium on BIOS with speakup screen reader.
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance with speech feedback.
+ENDTEXT
+MENU LABEL Parabola GNU/Linux-libre install medium (x86_64, BIOS) with ^speech
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% accessibility=on
+
+# Copy to RAM boot option
+LABEL parabola64ram
+TEXT HELP
+Boot the Parabola GNU/Linux-libre install medium on BIOS with Copy-to-RAM option
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Parabola GNU/Linux-libre install medium (x86_64, BIOS, Copy to RAM)
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram
diff --git a/lxde-openrc/syslinux/parabolaiso_sys_32_inc.cfg b/lxde-openrc/syslinux/parabolaiso_sys_32_inc.cfg
new file mode 100644
index 0000000..bbe92a3
--- /dev/null
+++ b/lxde-openrc/syslinux/parabolaiso_sys_32_inc.cfg
@@ -0,0 +1,8 @@
+INCLUDE parabolaiso_head.cfg
+
+DEFAULT parabola32
+TIMEOUT 150
+
+INCLUDE parabolaiso_sys32-linux-libre.cfg
+
+INCLUDE parabolaiso_tail.cfg
diff --git a/lxde-openrc/syslinux/parabolaiso_sys_both_inc.cfg b/lxde-openrc/syslinux/parabolaiso_sys_both_inc.cfg
new file mode 100644
index 0000000..1f54dde
--- /dev/null
+++ b/lxde-openrc/syslinux/parabolaiso_sys_both_inc.cfg
@@ -0,0 +1,10 @@
+INCLUDE parabolaiso_head.cfg
+
+DEFAULT parabola64
+TIMEOUT 150
+
+INCLUDE parabolaiso_sys64-linux-libre.cfg
+
+INCLUDE parabolaiso_sys32-linux-libre.cfg
+
+INCLUDE parabolaiso_tail.cfg
diff --git a/lxde-openrc/syslinux/parabolaiso_sys_choose.cfg b/lxde-openrc/syslinux/parabolaiso_sys_choose.cfg
new file mode 100644
index 0000000..41c0e06
--- /dev/null
+++ b/lxde-openrc/syslinux/parabolaiso_sys_choose.cfg
@@ -0,0 +1,11 @@
+DEFAULT choose
+
+LABEL choose
+COM32 ifcpu64.c32
+APPEND have64 -- nohave64
+
+LABEL have64
+CONFIG parabolaiso_sys_both_inc.cfg
+
+LABEL nohave64
+CONFIG parabolaiso_sys_32_inc.cfg
diff --git a/lxde-openrc/syslinux/parabolaiso_tail.cfg b/lxde-openrc/syslinux/parabolaiso_tail.cfg
new file mode 100644
index 0000000..e5339a2
--- /dev/null
+++ b/lxde-openrc/syslinux/parabolaiso_tail.cfg
@@ -0,0 +1,35 @@
+LABEL existing
+TEXT HELP
+Boot an existing operating system.
+Press TAB to edit the disk and partition number to boot.
+ENDTEXT
+MENU LABEL Boot existing OS
+COM32 chain.c32
+APPEND hd0 0
+
+# http://www.memtest.org/
+LABEL memtest
+MENU LABEL Run Memtest86+ (RAM test)
+LINUX /%INSTALL_DIR%/boot/memtest
+
+# http://hdt-project.org/
+LABEL hdt
+MENU LABEL Hardware Information (HDT)
+COM32 hdt.c32
+APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz
+
+LABEL reboot
+TEXT HELP
+Reboot computer.
+The computer's firmware must support APM.
+ENDTEXT
+MENU LABEL Reboot
+COM32 reboot.c32
+
+LABEL poweroff
+TEXT HELP
+Power off computer.
+The computer's firmware must support APM.
+ENDTEXT
+MENU LABEL Power Off
+COM32 poweroff.c32
diff --git a/lxde-openrc/syslinux/splash.png b/lxde-openrc/syslinux/splash.png
new file mode 100644
index 0000000..ff1342f
--- /dev/null
+++ b/lxde-openrc/syslinux/splash.png
Binary files differ
diff --git a/lxde-openrc/syslinux/syslinux.cfg b/lxde-openrc/syslinux/syslinux.cfg
new file mode 100644
index 0000000..2894460
--- /dev/null
+++ b/lxde-openrc/syslinux/syslinux.cfg
@@ -0,0 +1,12 @@
+DEFAULT select
+
+LABEL select
+COM32 whichsys.c32
+APPEND -pxe- pxe -sys- sys -iso- sys
+
+LABEL pxe
+CONFIG parabolaiso_pxe_choose.cfg
+
+LABEL sys
+CONFIG parabolaiso_sys_choose.cfg
+
diff --git a/releng-armv7h/bootstrap_packages.armv7h b/releng-armv7h/bootstrap_packages.armv7h
new file mode 120000
index 0000000..98a5206
--- /dev/null
+++ b/releng-armv7h/bootstrap_packages.armv7h
@@ -0,0 +1 @@
+packages.armv7h \ No newline at end of file
diff --git a/releng-armv7h/packages.armv7h b/releng-armv7h/packages.armv7h
new file mode 100644
index 0000000..64966d0
--- /dev/null
+++ b/releng-armv7h/packages.armv7h
@@ -0,0 +1,2 @@
+arch-install-scripts
+base
diff --git a/releng-armv7h/pacman.conf b/releng-armv7h/pacman.conf
new file mode 100644
index 0000000..e9f68cb
--- /dev/null
+++ b/releng-armv7h/pacman.conf
@@ -0,0 +1,104 @@
+#
+# /etc/pacman.conf
+#
+# See the pacman.conf(5) manpage for option and repository directives
+
+#
+# GENERAL OPTIONS
+#
+[options]
+# The following paths are commented out with their default values listed.
+# If you wish to use different paths, uncomment and update the paths.
+#RootDir = /
+#DBPath = /var/lib/pacman/
+#CacheDir = /var/cache/pacman/pkg/
+#LogFile = /var/log/pacman.log
+#GPGDir = /etc/pacman.d/gnupg/
+#HookDir = /etc/pacman.d/hooks/
+HoldPkg = pacman glibc
+#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#CleanMethod = KeepInstalled
+Architecture = armv7h
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+#IgnorePkg =
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options
+#UseSyslog
+#Color
+#NoProgressBar
+# We cannot check disk space from within a chroot environment
+#CheckSpace
+#VerbosePkgLists
+ParallelDownloads = 5
+
+# By default, pacman accepts packages signed by keys that its local keyring
+# trusts (see pacman-key and its man page), as well as unsigned packages.
+SigLevel = Required DatabaseOptional
+LocalFileSigLevel = Optional
+#RemoteFileSigLevel = Required
+
+# NOTE: You must run `pacman-key --init` before first using pacman; the local
+# keyring can then be populated with the keys of all Arch/Parabola packagers
+# with `pacman-key --populate archlinux` and `pacman-key --populate parabola`.
+
+#
+# REPOSITORIES
+# - can be defined here or included from another file
+# - pacman will search repositories in the order defined here
+# - local/custom mirrors can be added here or in separate files
+# - repositories listed first will take precedence when packages
+# have identical names, regardless of version number
+# - URLs will have $repo replaced by the name of the current repo
+# - URLs will have $arch replaced by the name of the architecture
+#
+# Repository entries are of the format:
+# [repo-name]
+# Server = ServerName
+# Include = IncludePath
+#
+# The header [repo-name] is crucial - it must be present and
+# uncommented to enable the repo.
+#
+
+# The testing repositories are disabled by default. To enable, uncomment the
+# repo name header and Include lines. You can add preferred servers immediately
+# after the header, and they will be used before the default mirrors.
+
+#[libre-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[libre]
+Include = /etc/pacman.d/mirrorlist
+
+#[testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[core]
+Include = /etc/pacman.d/mirrorlist
+
+[extra]
+Include = /etc/pacman.d/mirrorlist
+
+#[community-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[community]
+Include = /etc/pacman.d/mirrorlist
+
+#[pcr-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[pcr]
+Include = /etc/pacman.d/mirrorlist
+
+# An example of a custom package repository. See the pacman manpage for
+# tips on creating your own repositories.
+#[custom]
+#SigLevel = Optional TrustAll
+#Server = file:///home/custompkgs
diff --git a/releng-armv7h/profiledef.sh b/releng-armv7h/profiledef.sh
new file mode 100644
index 0000000..bde82f9
--- /dev/null
+++ b/releng-armv7h/profiledef.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+# shellcheck disable=SC2034
+
+iso_name="parabola"
+iso_version="$(date +%Y.%m.%d)"
+install_dir="parabola"
+buildmodes=('bootstrap')
+arch="armv7h"
+pacman_conf="pacman.conf"
diff --git a/releng-openrc-armv7h/bootstrap_packages.armv7h b/releng-openrc-armv7h/bootstrap_packages.armv7h
new file mode 120000
index 0000000..98a5206
--- /dev/null
+++ b/releng-openrc-armv7h/bootstrap_packages.armv7h
@@ -0,0 +1 @@
+packages.armv7h \ No newline at end of file
diff --git a/releng-openrc-armv7h/packages.armv7h b/releng-openrc-armv7h/packages.armv7h
new file mode 100644
index 0000000..64966d0
--- /dev/null
+++ b/releng-openrc-armv7h/packages.armv7h
@@ -0,0 +1,2 @@
+arch-install-scripts
+base
diff --git a/releng-openrc-armv7h/pacman.conf b/releng-openrc-armv7h/pacman.conf
new file mode 100644
index 0000000..e9534c3
--- /dev/null
+++ b/releng-openrc-armv7h/pacman.conf
@@ -0,0 +1,107 @@
+#
+# /etc/pacman.conf
+#
+# See the pacman.conf(5) manpage for option and repository directives
+
+#
+# GENERAL OPTIONS
+#
+[options]
+# The following paths are commented out with their default values listed.
+# If you wish to use different paths, uncomment and update the paths.
+#RootDir = /
+#DBPath = /var/lib/pacman/
+#CacheDir = /var/cache/pacman/pkg/
+#LogFile = /var/log/pacman.log
+#GPGDir = /etc/pacman.d/gnupg/
+#HookDir = /etc/pacman.d/hooks/
+HoldPkg = pacman glibc
+#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#CleanMethod = KeepInstalled
+Architecture = armv7h
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+IgnorePkg = systemd systemd-libsystemd systemd-libs systemd-udev systemd-libudev
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options
+#UseSyslog
+#Color
+#NoProgressBar
+# We cannot check disk space from within a chroot environment
+#CheckSpace
+#VerbosePkgLists
+ParallelDownloads = 5
+
+# By default, pacman accepts packages signed by keys that its local keyring
+# trusts (see pacman-key and its man page), as well as unsigned packages.
+SigLevel = Required DatabaseOptional
+LocalFileSigLevel = Optional
+#RemoteFileSigLevel = Required
+
+# NOTE: You must run `pacman-key --init` before first using pacman; the local
+# keyring can then be populated with the keys of all Arch/Parabola packagers
+# with `pacman-key --populate archlinux` and `pacman-key --populate parabola`.
+
+#
+# REPOSITORIES
+# - can be defined here or included from another file
+# - pacman will search repositories in the order defined here
+# - local/custom mirrors can be added here or in separate files
+# - repositories listed first will take precedence when packages
+# have identical names, regardless of version number
+# - URLs will have $repo replaced by the name of the current repo
+# - URLs will have $arch replaced by the name of the architecture
+#
+# Repository entries are of the format:
+# [repo-name]
+# Server = ServerName
+# Include = IncludePath
+#
+# The header [repo-name] is crucial - it must be present and
+# uncommented to enable the repo.
+#
+
+# The testing repositories are disabled by default. To enable, uncomment the
+# repo name header and Include lines. You can add preferred servers immediately
+# after the header, and they will be used before the default mirrors.
+
+[nonsystemd]
+Include = /etc/pacman.d/mirrorlist
+
+#[libre-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[libre]
+Include = /etc/pacman.d/mirrorlist
+
+#[testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[core]
+Include = /etc/pacman.d/mirrorlist
+
+[extra]
+Include = /etc/pacman.d/mirrorlist
+
+#[community-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[community]
+Include = /etc/pacman.d/mirrorlist
+
+#[pcr-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[pcr]
+Include = /etc/pacman.d/mirrorlist
+
+# An example of a custom package repository. See the pacman manpage for
+# tips on creating your own repositories.
+#[custom]
+#SigLevel = Optional TrustAll
+#Server = file:///home/custompkgs
diff --git a/releng-openrc-armv7h/profiledef.sh b/releng-openrc-armv7h/profiledef.sh
new file mode 100644
index 0000000..c381cc0
--- /dev/null
+++ b/releng-openrc-armv7h/profiledef.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+# shellcheck disable=SC2034
+
+iso_name="parabola-openrc"
+iso_version="$(date +%Y.%m.%d)"
+install_dir="parabola"
+buildmodes=('bootstrap')
+arch="armv7h"
+pacman_conf="pacman.conf"
diff --git a/releng-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector b/releng-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector
new file mode 100755
index 0000000..76e84dd
--- /dev/null
+++ b/releng-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+if [ "$2" == up ] && ! grep -qoP 'mirror=\K\S+' /proc/cmdline; then
+ reflector \
+ --save /etc/pacman.d/mirrorlist \
+ --protocol https \
+ --latest 20 \
+ --sort rate
+fi
diff --git a/releng-openrc/airootfs/etc/conf.d/agetty.tty1 b/releng-openrc/airootfs/etc/conf.d/agetty.tty1
new file mode 100644
index 0000000..997909c
--- /dev/null
+++ b/releng-openrc/airootfs/etc/conf.d/agetty.tty1
@@ -0,0 +1,3 @@
+baud="38400"
+term_type="linux"
+agetty_options="--autologin root --noclear"
diff --git a/releng-openrc/airootfs/etc/conf.d/hostname b/releng-openrc/airootfs/etc/conf.d/hostname
new file mode 100644
index 0000000..5a912cd
--- /dev/null
+++ b/releng-openrc/airootfs/etc/conf.d/hostname
@@ -0,0 +1 @@
+hostname="parabolaiso"
diff --git a/releng-openrc/airootfs/etc/elogind/logind.conf.d/do-not-suspend.conf b/releng-openrc/airootfs/etc/elogind/logind.conf.d/do-not-suspend.conf
new file mode 100644
index 0000000..f3ecb39
--- /dev/null
+++ b/releng-openrc/airootfs/etc/elogind/logind.conf.d/do-not-suspend.conf
@@ -0,0 +1,4 @@
+[Login]
+HandleSuspendKey=ignore
+HandleHibernateKey=ignore
+HandleLidSwitch=ignore
diff --git a/releng-openrc/airootfs/etc/fstab b/releng-openrc/airootfs/etc/fstab
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/releng-openrc/airootfs/etc/fstab
diff --git a/releng-openrc/airootfs/etc/local.d/choose-mirror.start b/releng-openrc/airootfs/etc/local.d/choose-mirror.start
new file mode 100755
index 0000000..be4293c
--- /dev/null
+++ b/releng-openrc/airootfs/etc/local.d/choose-mirror.start
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+# Choose mirror from the kernel command line
+grep -qoP 'mirror=\K\S+' /proc/cmdline && /usr/local/bin/choose-mirror
diff --git a/releng-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start b/releng-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start
new file mode 100755
index 0000000..8a7139a
--- /dev/null
+++ b/releng-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# Temporary /etc/pacman.d/gnupg directory
+fstype="$(findmnt /etc/pacman.d/gnupg -o FSTYPE -Un)"
+
+test -d /etc/pacman.d/gnupg || mkdir /etc/pacman.d/gnupg
+if ! [[ "$fstype" == tmpfs ]]; then
+ mount -o mode=0755 -t tmpfs tmpfs /etc/pacman.d/gnupg
+fi
diff --git a/releng-openrc/airootfs/etc/local.d/livecd-talk.start b/releng-openrc/airootfs/etc/local.d/livecd-talk.start
new file mode 100755
index 0000000..69a8cc4
--- /dev/null
+++ b/releng-openrc/airootfs/etc/local.d/livecd-talk.start
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+if grep -qo 'accessibility=on' /proc/cmdline; then
+ livecd-sound -u
+ chvt 13
+ livecd-sound -p
+ chvt 1
+ rc-service espeakup start
+fi
diff --git a/releng-openrc/airootfs/etc/local.d/pacman-init.start b/releng-openrc/airootfs/etc/local.d/pacman-init.start
new file mode 100755
index 0000000..fcb588d
--- /dev/null
+++ b/releng-openrc/airootfs/etc/local.d/pacman-init.start
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+# Initializes Pacman keyring
+if ! find /etc/pacman.d/gnupg -mindepth 1 2>/dev/null | read -r; then
+ pacman-key --init
+ pacman-key --populate
+fi
diff --git a/releng-openrc/airootfs/etc/locale.conf b/releng-openrc/airootfs/etc/locale.conf
new file mode 100644
index 0000000..01ec548
--- /dev/null
+++ b/releng-openrc/airootfs/etc/locale.conf
@@ -0,0 +1 @@
+LANG=en_US.UTF-8
diff --git a/releng-openrc/airootfs/etc/localtime b/releng-openrc/airootfs/etc/localtime
new file mode 120000
index 0000000..0e35b57
--- /dev/null
+++ b/releng-openrc/airootfs/etc/localtime
@@ -0,0 +1 @@
+/usr/share/zoneinfo/UTC \ No newline at end of file
diff --git a/releng-openrc/airootfs/etc/mkinitcpio.conf b/releng-openrc/airootfs/etc/mkinitcpio.conf
new file mode 100644
index 0000000..d637173
--- /dev/null
+++ b/releng-openrc/airootfs/etc/mkinitcpio.conf
@@ -0,0 +1,67 @@
+# vim:set ft=sh
+# MODULES
+# The following modules are loaded before any boot hooks are
+# run. Advanced users may wish to specify all system modules
+# in this array. For instance:
+# MODULES=(piix ide_disk reiserfs)
+MODULES=(loop speakup_soft)
+
+# BINARIES
+# This setting includes any additional binaries a given user may
+# wish into the CPIO image. This is run last, so it may be used to
+# override the actual binaries included by a given hook
+# BINARIES are dependency parsed, so you may safely ignore libraries
+BINARIES=()
+
+# FILES
+# This setting is similar to BINARIES above, however, files are added
+# as-is and are not parsed in any way. This is useful for config files.
+FILES=()
+
+# HOOKS
+# This is the most important setting in this file. The HOOKS control the
+# modules and scripts added to the image, and what happens at boot time.
+# Order is important, and it is recommended that you do not change the
+# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
+# help on a given hook.
+# 'base' is _required_ unless you know precisely what you are doing.
+# 'udev' is _required_ in order to automatically load modules
+# 'filesystems' is _required_ unless you specify your fs modules in MODULES
+# Examples:
+## This setup specifies all modules in the MODULES setting above.
+## No raid, lvm2, or encrypted root is needed.
+# HOOKS=(base)
+#
+## This setup will autodetect all modules for your system and should
+## work as a sane default
+# HOOKS=(base udev autodetect block filesystems)
+#
+## This setup will generate a 'full' image which supports most systems.
+## No autodetection is done.
+# HOOKS=(base udev block filesystems)
+#
+## This setup assembles a pata mdadm array with an encrypted root FS.
+## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
+# HOOKS=(base udev block mdadm encrypt filesystems)
+#
+## This setup loads an lvm2 volume group on a usb device.
+# HOOKS=(base udev block lvm2 filesystems)
+#
+## NOTE: If you have /usr on a separate partition, you MUST include the
+# usr, fsck and shutdown hooks.
+HOOKS=(base udev modconf memdisk parabolaiso_shutdown parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block filesystems keyboard)
+
+# COMPRESSION
+# Use this to compress the initramfs image. By default, gzip compression
+# is used. Use 'cat' to create an uncompressed image.
+#COMPRESSION="gzip"
+#COMPRESSION="bzip2"
+#COMPRESSION="lzma"
+COMPRESSION="xz"
+#COMPRESSION="lzop"
+#COMPRESSION="lz4"
+#COMPRESSION="zstd"
+
+# COMPRESSION_OPTIONS
+# Additional options for the compressor
+#COMPRESSION_OPTIONS=()
diff --git a/releng-openrc/airootfs/etc/mkinitcpio.d/linux-libre.preset b/releng-openrc/airootfs/etc/mkinitcpio.d/linux-libre.preset
new file mode 100644
index 0000000..625a03d
--- /dev/null
+++ b/releng-openrc/airootfs/etc/mkinitcpio.d/linux-libre.preset
@@ -0,0 +1,8 @@
+# mkinitcpio preset file for the 'linux-libre' package on parabolaiso
+
+PRESETS=('parabolaiso')
+
+ALL_kver='/boot/vmlinuz-linux-libre'
+ALL_config='/etc/mkinitcpio.conf'
+
+parabolaiso_image="/boot/initramfs-linux-libre.img"
diff --git a/releng-openrc/airootfs/etc/motd b/releng-openrc/airootfs/etc/motd
new file mode 100644
index 0000000..ee664e2
--- /dev/null
+++ b/releng-openrc/airootfs/etc/motd
@@ -0,0 +1,9 @@
+To install Parabola GNU/Linux-libre follow the installation guide:
+https://wiki.parabola.nu/Installation_Guide
+
+For Wi-Fi, authenticate to the wireless network using the nmtui-connect utility.
+For mobile broadband (WWAN) modems, connect with the mmcli utility.
+Ethernet, WLAN and WWAN interfaces using DHCP should work automatically.
+
+After connecting to the internet, the installation guide can be accessed
+via the convenience script Installation_guide.
diff --git a/releng-openrc/airootfs/etc/pacman.conf b/releng-openrc/airootfs/etc/pacman.conf
new file mode 100644
index 0000000..b7e4663
--- /dev/null
+++ b/releng-openrc/airootfs/etc/pacman.conf
@@ -0,0 +1,184 @@
+#
+# /etc/pacman.conf
+#
+# See the pacman.conf(5) manpage for option and repository directives
+
+#
+# GENERAL OPTIONS
+#
+[options]
+# The following paths are commented out with their default values listed.
+# If you wish to use different paths, uncomment and update the paths.
+#RootDir = /
+#DBPath = /var/lib/pacman/
+#CacheDir = /var/cache/pacman/pkg/
+#LogFile = /var/log/pacman.log
+#GPGDir = /etc/pacman.d/gnupg/
+#HookDir = /etc/pacman.d/hooks/
+HoldPkg = pacman glibc
+#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#CleanMethod = KeepInstalled
+Architecture = auto
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+#IgnorePkg =
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options
+#UseSyslog
+#Color
+#NoProgressBar
+CheckSpace
+#VerbosePkgLists
+
+# By default, pacman accepts packages signed by keys that its local keyring
+# trusts (see pacman-key and its man page), as well as unsigned packages.
+SigLevel = Required DatabaseOptional
+LocalFileSigLevel = Optional
+#RemoteFileSigLevel = Required
+
+# NOTE: You must run `pacman-key --init` before first using pacman; the local
+# keyring can then be populated with the keys of all trusted packagers with:
+# `pacman-key --populate archlinux archlinux32 archlinuxarm parabola`.
+
+#
+# REPOSITORIES
+# - can be defined here or included from another file
+# - pacman will search repositories in the order defined here
+# - local/custom mirrors can be added here or in separate files
+# - repositories listed first will take precedence when packages
+# have identical names, regardless of version number
+# - URLs will have $repo replaced by the name of the current repo
+# - URLs will have $arch replaced by the name of the architecture
+#
+# Repository entries are of the format:
+# [repo-name]
+# Server = ServerName
+# Include = IncludePath
+#
+# The header [repo-name] is crucial - it must be present and
+# un-commented to enable the repo.
+#
+# Some repositories are disabled by default. To enable them, un-comment the
+# repo name header (e.g. '[nonprism]') and the following 'Include' line.
+# You can add preferred servers for each repo between the header and "Include" line,
+# according to the format in /etc/pacman.d/mirrorlist,
+# and those will be preferred over the standard mirrors for that repo.
+#
+# The order in which these entries appear in this file is critical.
+# Much of the Parabola magic that supports advanced features such as
+# multiple init-systems and multiple layers of freedom and privacy,
+# depends on the order in which these repos are defined.
+# Moving or adding repos out of the expected order can make your system insane.
+
+# Notes on special repositories:
+#
+# Non-prism is a repository for enhanced privacy, beyond the FSDG requirements.
+# It contains specially patched versions of certain software from the standard repos,
+# that are known to include privacy-sensative features that some people may want to use,
+# but that others may consider to be undesirable anti-features.
+# For more info see: https://wiki.parabola.nu/Nonprism
+#
+# The non-systemd repository contains packages that are important and relevant only to
+# Parabola systems using an init-system other than systemd.
+# Parabola systems using systemd SHOULD NOT have this enabled;.
+# while Parabola systems using any other init-system SHOULD have this enabled.
+#
+# The kernels repository contains additional special kernels for particular use-cases,
+# such as maximal security hardening and real-time systems.
+#
+# The PCR (Parabola Community Repository) contains additional packages,
+# most often requested by Parabola users, that are not considered to be
+# part of the standard Parabola/Arch system, but are nonetheless useful or fun.
+#
+# Multi-lib repositories allow 32-bit applications to run on x86_64 systems.
+#
+# The Parabola system also supports custom, user-defined, repositories;
+# but be aware that the Parabola team can not recommend nor support their use.
+# The Parabola team can only support the use of software that is published by Parabola.
+# The use of third-party software is discouraged with a "use at your own risk" warning.
+# These may be community-maintained or maintained privately by the local user or sysadmin.
+# They may be hosted on the internet, on the local network, or only on the local computer.
+# An example of a custom package repository is given below
+# in the "User-defined repos" section
+# See the pacman manpage for details on creating your own repositories.
+
+
+###########################
+# Parabola standard repos #
+###########################
+
+#[nonprism-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[nonprism]
+#Include = /etc/pacman.d/mirrorlist
+
+#[nonsystemd-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[nonsystemd]
+Include = /etc/pacman.d/mirrorlist
+
+#[libre-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[libre]
+Include = /etc/pacman.d/mirrorlist
+
+#[kernels-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[kernels]
+#Include = /etc/pacman.d/mirrorlist
+
+
+#######################
+# Arch standard repos #
+#######################
+
+#[testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[core]
+Include = /etc/pacman.d/mirrorlist
+
+[extra]
+Include = /etc/pacman.d/mirrorlist
+
+#[community-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[community]
+Include = /etc/pacman.d/mirrorlist
+
+
+######################
+# Supplemental repos #
+######################
+
+#[pcr-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[pcr]
+Include = /etc/pacman.d/mirrorlist
+
+
+######################
+# User-defined repos #
+######################
+
+#[custom]
+#SigLevel = Optional TrustAll
+#Server = file:///home/custompkgs
+
+
+##############
+# Over-rides #
+##############
+
+Include = /etc/pacman.d/*.conf
diff --git a/releng-openrc/airootfs/etc/pacman.d/hooks/40-locale-gen.hook b/releng-openrc/airootfs/etc/pacman.d/hooks/40-locale-gen.hook
new file mode 100644
index 0000000..82dd199
--- /dev/null
+++ b/releng-openrc/airootfs/etc/pacman.d/hooks/40-locale-gen.hook
@@ -0,0 +1,13 @@
+# remove from airootfs!
+[Trigger]
+Operation = Install
+Type = Package
+Target = glibc
+
+[Action]
+Description = Uncommenting en_US.UTF-8 locale and running locale-gen...
+When = PostTransaction
+Depends = glibc
+Depends = sed
+Depends = sh
+Exec = /bin/sh -c "sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen && locale-gen"
diff --git a/releng-openrc/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook b/releng-openrc/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook
new file mode 100644
index 0000000..ad0b5ba
--- /dev/null
+++ b/releng-openrc/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook
@@ -0,0 +1,12 @@
+[Trigger]
+Operation = Install
+Operation = Upgrade
+Type = Package
+Target = pacman-mirrorlist
+
+[Action]
+Description = Uncommenting all mirrors in /etc/pacman.d/mirrorlist...
+When = PostTransaction
+Depends = pacman-mirrorlist
+Depends = sed
+Exec = /usr/bin/sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist
diff --git a/releng-openrc/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook b/releng-openrc/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook
new file mode 100644
index 0000000..8dfb943
--- /dev/null
+++ b/releng-openrc/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook
@@ -0,0 +1,18 @@
+# remove from airootfs!
+# As a workaround for https://bugs.archlinux.org/task/49347 , remove pacman hooks specific to the ISO build process.
+# If not, they would be used when pacstrap is run in the live environment.
+
+[Trigger]
+Operation = Install
+Operation = Upgrade
+Operation = Remove
+Type = Package
+Target = *
+
+[Action]
+Description = Work around FS#49347 by removing custom pacman hooks that are only required during ISO build...
+When = PostTransaction
+Depends = sh
+Depends = coreutils
+Depends = grep
+Exec = /bin/sh -c "rm -- $(grep -Frl 'remove from airootfs' /etc/pacman.d/hooks/)"
diff --git a/releng-openrc/airootfs/etc/passwd b/releng-openrc/airootfs/etc/passwd
new file mode 100644
index 0000000..2807d5d
--- /dev/null
+++ b/releng-openrc/airootfs/etc/passwd
@@ -0,0 +1 @@
+root:x:0:0:root:/root:/usr/bin/zsh
diff --git a/releng-openrc/airootfs/etc/runlevels/default/NetworkManager b/releng-openrc/airootfs/etc/runlevels/default/NetworkManager
new file mode 120000
index 0000000..fc68d44
--- /dev/null
+++ b/releng-openrc/airootfs/etc/runlevels/default/NetworkManager
@@ -0,0 +1 @@
+/etc/init.d/NetworkManager \ No newline at end of file
diff --git a/releng-openrc/airootfs/etc/shadow b/releng-openrc/airootfs/etc/shadow
new file mode 100644
index 0000000..7edfd69
--- /dev/null
+++ b/releng-openrc/airootfs/etc/shadow
@@ -0,0 +1 @@
+root::14871::::::
diff --git a/releng-openrc/airootfs/etc/ssh/sshd_config b/releng-openrc/airootfs/etc/ssh/sshd_config
new file mode 100644
index 0000000..8ef1758
--- /dev/null
+++ b/releng-openrc/airootfs/etc/ssh/sshd_config
@@ -0,0 +1,116 @@
+# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
+
+# This is the sshd server system-wide configuration file. See
+# sshd_config(5) for more information.
+
+# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
+
+# The strategy used for options in the default sshd_config shipped with
+# OpenSSH is to specify options with their default value where
+# possible, but leave them commented. Uncommented options override the
+# default value.
+
+#Port 22
+#AddressFamily any
+#ListenAddress 0.0.0.0
+#ListenAddress ::
+
+#HostKey /etc/ssh/ssh_host_rsa_key
+#HostKey /etc/ssh/ssh_host_ecdsa_key
+#HostKey /etc/ssh/ssh_host_ed25519_key
+
+# Ciphers and keying
+#RekeyLimit default none
+
+# Logging
+#SyslogFacility AUTH
+#LogLevel INFO
+
+# Authentication:
+
+#LoginGraceTime 2m
+PermitRootLogin yes
+#StrictModes yes
+#MaxAuthTries 6
+#MaxSessions 10
+
+#PubkeyAuthentication yes
+
+# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
+# but this is overridden so installations will only check .ssh/authorized_keys
+AuthorizedKeysFile .ssh/authorized_keys
+
+#AuthorizedPrincipalsFile none
+
+#AuthorizedKeysCommand none
+#AuthorizedKeysCommandUser nobody
+
+# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
+#HostbasedAuthentication no
+# Change to yes if you don't trust ~/.ssh/known_hosts for
+# HostbasedAuthentication
+#IgnoreUserKnownHosts no
+# Don't read the user's ~/.rhosts and ~/.shosts files
+#IgnoreRhosts yes
+
+# To disable tunneled clear text passwords, change to no here!
+#PasswordAuthentication yes
+#PermitEmptyPasswords no
+
+# Change to no to disable s/key passwords
+ChallengeResponseAuthentication no
+
+# Kerberos options
+#KerberosAuthentication no
+#KerberosOrLocalPasswd yes
+#KerberosTicketCleanup yes
+#KerberosGetAFSToken no
+
+# GSSAPI options
+#GSSAPIAuthentication no
+#GSSAPICleanupCredentials yes
+
+# Set this to 'yes' to enable PAM authentication, account processing,
+# and session processing. If this is enabled, PAM authentication will
+# be allowed through the ChallengeResponseAuthentication and
+# PasswordAuthentication. Depending on your PAM configuration,
+# PAM authentication via ChallengeResponseAuthentication may bypass
+# the setting of "PermitRootLogin without-password".
+# If you just want the PAM account and session checks to run without
+# PAM authentication, then enable this but set PasswordAuthentication
+# and ChallengeResponseAuthentication to 'no'.
+UsePAM yes
+
+#AllowAgentForwarding yes
+#AllowTcpForwarding yes
+#GatewayPorts no
+#X11Forwarding no
+#X11DisplayOffset 10
+#X11UseLocalhost yes
+#PermitTTY yes
+PrintMotd no # pam does that
+#PrintLastLog yes
+#TCPKeepAlive yes
+#PermitUserEnvironment no
+#Compression delayed
+#ClientAliveInterval 0
+#ClientAliveCountMax 3
+#UseDNS no
+#PidFile /run/sshd.pid
+#MaxStartups 10:30:100
+#PermitTunnel no
+#ChrootDirectory none
+#VersionAddendum none
+
+# no default banner path
+#Banner none
+
+# override default of no subsystems
+Subsystem sftp /usr/lib/ssh/sftp-server
+
+# Example of overriding settings on a per-user basis
+#Match User anoncvs
+# X11Forwarding no
+# AllowTcpForwarding no
+# PermitTTY no
+# ForceCommand cvs server
diff --git a/releng-openrc/airootfs/root/.automated_script.sh b/releng-openrc/airootfs/root/.automated_script.sh
new file mode 100755
index 0000000..5c0c316
--- /dev/null
+++ b/releng-openrc/airootfs/root/.automated_script.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+
+script_cmdline ()
+{
+ local param
+ for param in $(< /proc/cmdline); do
+ case "${param}" in
+ script=*) echo "${param#*=}" ; return 0 ;;
+ esac
+ done
+}
+
+automated_script ()
+{
+ local script rt
+ script="$(script_cmdline)"
+ if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then
+ if [[ "${script}" =~ ^((http|https|ftp)://) ]]; then
+ curl "${script}" --location --retry-connrefused -s -o /tmp/startup_script >/dev/null
+ rt=$?
+ else
+ cp "${script}" /tmp/startup_script
+ rt=$?
+ fi
+ if [[ ${rt} -eq 0 ]]; then
+ chmod +x /tmp/startup_script
+ /tmp/startup_script
+ fi
+ fi
+}
+
+if [[ $(tty) == "/dev/tty1" ]]; then
+ automated_script
+fi
diff --git a/releng-openrc/airootfs/root/.zlogin b/releng-openrc/airootfs/root/.zlogin
new file mode 100644
index 0000000..0fb119d
--- /dev/null
+++ b/releng-openrc/airootfs/root/.zlogin
@@ -0,0 +1,6 @@
+# fix for screen readers
+if grep -Fq 'accessibility=' /proc/cmdline &> /dev/null; then
+ setopt SINGLE_LINE_ZLE
+fi
+
+~/.automated_script.sh
diff --git a/releng-openrc/airootfs/usr/local/bin/Installation_guide b/releng-openrc/airootfs/usr/local/bin/Installation_guide
new file mode 100755
index 0000000..876fbd2
--- /dev/null
+++ b/releng-openrc/airootfs/usr/local/bin/Installation_guide
@@ -0,0 +1,5 @@
+#!/bin/sh
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+exec lynx 'https://wiki.parabola.nu/Installation_Guide'
diff --git a/releng-openrc/airootfs/usr/local/bin/choose-mirror b/releng-openrc/airootfs/usr/local/bin/choose-mirror
new file mode 100755
index 0000000..e8f8254
--- /dev/null
+++ b/releng-openrc/airootfs/usr/local/bin/choose-mirror
@@ -0,0 +1,28 @@
+#!/bin/bash
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+get_cmdline() {
+ local param
+ for param in $(< /proc/cmdline); do
+ case "${param}" in
+ $1=*) echo "${param##*=}";
+ return 0
+ ;;
+ esac
+ done
+}
+
+mirror=$(get_cmdline mirror)
+[[ $mirror = auto ]] && mirror=$(get_cmdline parabolaiso_http_srv)
+[[ $mirror ]] || exit 0
+
+mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig
+cat >/etc/pacman.d/mirrorlist << EOF
+#
+# Parabola GNU/Linux-libre repository mirrorlist
+# Generated by parabolaiso
+#
+
+Server = ${mirror%%/}/\$repo/os/\$arch
+EOF
diff --git a/releng-openrc/airootfs/usr/local/bin/livecd-sound b/releng-openrc/airootfs/usr/local/bin/livecd-sound
new file mode 100755
index 0000000..3ead720
--- /dev/null
+++ b/releng-openrc/airootfs/usr/local/bin/livecd-sound
@@ -0,0 +1,248 @@
+#!/usr/bin/env bash
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+usage() {
+ cat <<- _EOF_
+ live cd sound helper script.
+ Usage: livecdsound [OPTION]
+ OPTIONS
+ -u, --unmute unmute all sound cards
+ -p, --pick select a card for speetch output
+ -h, --help Show this usage message
+
+_EOF_
+}
+
+bugout () {
+ printf "/usr/local/bin/livecdsound: programming error"
+ stat_fail
+}
+
+echo_card_indices()
+{
+ if [ -f /proc/asound/cards ] ; then
+ sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' /proc/asound/cards
+ fi
+}
+
+# The following functions try to set many controls.
+# No card has all the controls and so some of the attempts are bound to fail.
+# Because of this, the functions can't return useful status values.
+
+# $1 <card id>
+# $2 <control>
+# $3 <level>
+unmute_and_set_level(){
+ { [ "$3" ] &&[ "$2" ] && [ "$1" ] ; } || bugout
+ printf "Setting: %s on card: %s to %s\n" "$2" "$1" "$3"
+ amixer -c "$1" set "$2" "$3" unmute
+ return 0
+}
+
+# $1 <card id>
+# $2 <control>
+mute_and_zero_level()
+{
+ { [ "$1" ] && [ "$2" ] ; } || bugout
+ printf "Muting control: %s on card: %s\n" "$2" "$1"
+ amixer -c "$1" set "$2" "0%" mute
+ return 0
+}
+
+# $1 <card ID>
+# $2 <control>
+# $3 "on" | "off"
+switch_control()
+{
+ { [ "$3" ] && [ "$1" ] ; } || bugout
+ printf "Switching control: %s on card: %s to %s\n" "$2" "$1" "$3"
+ amixer -c "$1" set "$2" "$3"
+ return 0
+}
+
+# $1 <card ID>
+sanify_levels_on_card()
+{
+ unmute_and_set_level "$1" "Front" "80%"
+ unmute_and_set_level "$1" "Master" "80%"
+ unmute_and_set_level "$1" "Master Mono" "80%"
+ unmute_and_set_level "$1" "Master Digital" "80%" # E.g., cs4237B
+ unmute_and_set_level "$1" "Playback" "80%"
+ unmute_and_set_level "$1" "Headphone" "100%"
+ unmute_and_set_level "$1" "PCM" "80%"
+ unmute_and_set_level "$1" "PCM,1" "80%" # E.g., ess1969
+ unmute_and_set_level "$1" "DAC" "80%" # E.g., envy24, cs46xx
+ unmute_and_set_level "$1" "DAC,0" "80%" # E.g., envy24
+ unmute_and_set_level "$1" "DAC,1" "80%" # E.g., envy24
+ unmute_and_set_level "$1" "Synth" "80%"
+ unmute_and_set_level "$1" "CD" "80%"
+ unmute_and_set_level "$1" "PC Speaker" "100%"
+
+ mute_and_zero_level "$1" "Mic"
+ mute_and_zero_level "$1" "IEC958" # Ubuntu #19648
+
+ # Intel P4P800-MX
+ switch_control "$1" "Master Playback Switch" on
+ switch_control "$1" "Master Surround" on
+
+ # Trident/YMFPCI/emu10k1:
+ unmute_and_set_level "$1" "Wave" "80%"
+ unmute_and_set_level "$1" "Music" "80%"
+ unmute_and_set_level "$1" "AC97" "80%"
+
+ # DRC:
+ unmute_and_set_level "$1" "Dynamic Range Compression" "80%"
+
+ # Required for HDA Intel (hda-intel):
+ unmute_and_set_level "$1" "Front" "80%"
+
+ # Required for SB Live 7.1/24-bit (ca0106):
+ unmute_and_set_level "$1" "Analog Front" "80%"
+
+ # Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard
+ switch_control "$1" "IEC958 Capture Monitor" off
+
+ # Required for hardware allowing toggles for AC97 through IEC958,
+ # valid values are 0, 1, 2, 3. Needs to be set to 0 for PCM1.
+ unmute_and_set_level "$1" "IEC958 Playback AC97-SPSA" "0"
+
+ # Required for newer Via hardware
+ unmute_and_set_level "$1" "VIA DXS,0" "80%"
+ unmute_and_set_level "$1" "VIA DXS,1" "80%"
+ unmute_and_set_level "$1" "VIA DXS,2" "80%"
+ unmute_and_set_level "$1" "VIA DXS,3" "80%"
+
+ # Required on some notebooks with ICH4:
+ switch_control "$1" "Headphone Jack Sense" off
+ switch_control "$1" "Line Jack Sense" off
+
+ # Some machines need one or more of these to be on;
+ # others need one or more of these to be off:
+
+ switch_control "$1" "Audigy Analog/Digital Output Jack" on
+ switch_control "$1" "SB Live Analog/Digital Output Jack" on
+
+ # D1984 -- Thinkpad T61/X61
+ switch_control "$1" "Speaker" on
+ switch_control "$1" "Headphone" on
+
+ # HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823)
+ unmute_and_set_level "$1" "Digital" "80%"
+
+ return 0
+}
+
+# $1 <card ID> | "all"
+sanify_levels()
+{
+ local ttsdml_returnstatus=0
+ local card
+ case "$1" in
+ all)
+ for card in $(echo_card_indices) ; do
+ sanify_levels_on_card "$card" || ttsdml_returnstatus=1
+ done
+ ;;
+ *)
+ sanify_levels_on_card "$1" || ttsdml_returnstatus=1
+ ;;
+ esac
+ return $ttsdml_returnstatus
+}
+
+# List all cards that *should* be usable for PCM audio. In my experience,
+# the console speaker (handled by the pcsp driver) isn't a suitable playback
+# device, so we'll exclude it.
+list_non_pcsp_cards()
+{
+ for card in $(echo_card_indices); do
+ local cardfile="/proc/asound/card${card}/id"
+ if [ -r "$cardfile" ] && [ -f "$cardfile" ] && \
+ [ "$(cat "$cardfile")" != pcsp ]; then
+ echo "$card"
+ fi
+ done
+}
+
+# Properly initialize the sound card so that we have audio at boot.
+unmute_all_cards()
+{
+ sanify_levels all
+}
+
+is_numeric() {
+ local str=$1
+ [[ "$str" =~ ^[0-9]+$ ]]
+}
+
+set_default_card() {
+ local card=$1
+ sed -e "s/%card%/$card/g" < /usr/local/share/livecd-sound/asound.conf.in \
+ > /etc/asound.conf
+}
+
+play_on_card() {
+ local card=$1 file=$2
+ aplay -q "-Dplughw:$card,0" "$file"
+}
+
+# If there are multiple usable sound cards, prompt the user to choose one,
+# using auditory feedback.
+pick_a_card()
+{
+ set -f
+ usable_cards="$(list_non_pcsp_cards)"
+ num_usable_cards="$(wc -w <<< "$usable_cards")"
+
+ if [ "$num_usable_cards" -eq 1 ]; then
+ printf "Only one sound card is detected\n"
+ exit 0
+ fi
+ printf "multiple sound cards detected\n"
+ for card in $usable_cards; do
+ if ! is_numeric "$card"; then
+ continue
+ fi
+ play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav&
+ done
+ wait
+ sleep 1
+ for card in $usable_cards; do
+ if ! is_numeric "$card"; then
+ continue
+ fi
+ play_on_card "$card" /usr/share/livecd-sounds/beep.wav
+ if read -r -t 10; then
+ printf "Selecting %s sound card as default\n" "$card"
+ set_default_card "$card"
+ break
+ fi
+done
+}
+
+if [[ $# -eq 0 ]]; then
+ echo "error: No argument passed."
+ exit 1
+fi
+while [[ "${1}" != "" ]]; do
+ case ${1} in
+ -h|--help)
+ usage
+ exit
+ ;;
+ -u|--unmute)
+ printf "Unmuting all cards"
+ unmute_all_cards
+ ;;
+ -p|--pick)
+ pick_a_card
+ ;;
+ *)
+ echo "error: Unsupported argument"
+ usage
+ exit 1
+ ;;
+ esac
+ shift
+done
diff --git a/releng-openrc/airootfs/usr/local/share/livecd-sound/asound.conf.in b/releng-openrc/airootfs/usr/local/share/livecd-sound/asound.conf.in
new file mode 100644
index 0000000..3f9c7aa
--- /dev/null
+++ b/releng-openrc/airootfs/usr/local/share/livecd-sound/asound.conf.in
@@ -0,0 +1,3 @@
+Defaults node
+defaults.ctl.card %card%;
+defaults.pcm.card %card%;
diff --git a/releng-openrc/bootstrap_packages.both b/releng-openrc/bootstrap_packages.both
new file mode 100644
index 0000000..64966d0
--- /dev/null
+++ b/releng-openrc/bootstrap_packages.both
@@ -0,0 +1,2 @@
+arch-install-scripts
+base
diff --git a/releng-openrc/efiboot/EFI/BOOT/entries/01-parabolaiso-x86_64-linux-libre.conf b/releng-openrc/efiboot/EFI/BOOT/entries/01-parabolaiso-x86_64-linux-libre.conf
new file mode 100644
index 0000000..7fec6be
--- /dev/null
+++ b/releng-openrc/efiboot/EFI/BOOT/entries/01-parabolaiso-x86_64-linux-libre.conf
@@ -0,0 +1,5 @@
+menuentry "Parabola GNU/Linux-libre install medium (x86_64, UEFI)" {
+ loader /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+ initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+ options "parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%"
+}
diff --git a/releng-openrc/efiboot/EFI/BOOT/entries/02-parabolaiso-x86_64-speech-linux-libre.conf b/releng-openrc/efiboot/EFI/BOOT/entries/02-parabolaiso-x86_64-speech-linux-libre.conf
new file mode 100644
index 0000000..e6e8ab6
--- /dev/null
+++ b/releng-openrc/efiboot/EFI/BOOT/entries/02-parabolaiso-x86_64-speech-linux-libre.conf
@@ -0,0 +1,5 @@
+menuentry "Parabola GNU/Linux-libre install medium (x86_64, UEFI) with speech" {
+ loader /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+ initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+ options "parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% accessibility=on"
+}
diff --git a/releng-openrc/efiboot/EFI/BOOT/entries/03-parabolaiso-x86_64-ram-linux-libre.conf b/releng-openrc/efiboot/EFI/BOOT/entries/03-parabolaiso-x86_64-ram-linux-libre.conf
new file mode 100644
index 0000000..0c635af
--- /dev/null
+++ b/releng-openrc/efiboot/EFI/BOOT/entries/03-parabolaiso-x86_64-ram-linux-libre.conf
@@ -0,0 +1,5 @@
+menuentry "Parabola GNU/Linux-libre install medium (x86_64, UEFI, Copy to RAM)" {
+ loader /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+ initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+ options "parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram"
+}
diff --git a/releng-openrc/efiboot/EFI/BOOT/refind.conf b/releng-openrc/efiboot/EFI/BOOT/refind.conf
new file mode 100644
index 0000000..599ee49
--- /dev/null
+++ b/releng-openrc/efiboot/EFI/BOOT/refind.conf
@@ -0,0 +1,8 @@
+scanfor manual
+showtools shell firmware reboot shutdown
+
+timeout 15
+include entries/01-parabolaiso-x86_64-linux-libre.conf
+include entries/02-parabolaiso-x86_64-speech-linux-libre.conf
+include entries/03-parabolaiso-x86_64-ram-linux-libre.conf
+default_selection 1
diff --git a/releng-openrc/packages.both b/releng-openrc/packages.both
new file mode 100644
index 0000000..bdc2180
--- /dev/null
+++ b/releng-openrc/packages.both
@@ -0,0 +1,112 @@
+alsa-utils-openrc
+arch-install-scripts
+archinstall
+base
+bind-tools
+brltty-openrc
+btrfs-progs
+cloud-init
+crda
+cryptsetup
+darkhttpd
+ddrescue
+dhclient
+dhcpcd-openrc
+diffutils
+dmraid
+dnsmasq
+dosfstools
+e2fsprogs
+efibootmgr
+espeakup-openrc
+elogind
+ethtool
+exfatprogs
+f2fs-tools
+fatresize
+fsarchiver
+gnu-netcat
+gpart
+gpm-openrc
+gptfdisk
+grml-zsh-config
+hdparm-openrc
+irssi
+iw
+iwd
+jfsutils
+kitty-terminfo
+less
+lftp
+libfido2
+libusb-compat
+linux-atm
+linux-libre
+linux-libre-firmware
+livecd-sounds
+lsscsi
+lvm2-openrc
+lynx
+man-db
+man-pages
+mc
+mdadm-openrc
+memtest86+
+mkinitcpio
+mkinitcpio-parabolaiso
+mkinitcpio-nfs-utils
+modemmanager
+mtools
+nano
+nbd
+ndisc6
+networkmanager-openrc
+nfs-utils-openrc
+nilfs-utils
+nmap
+ntfs-3g
+nvme-cli
+openconnect
+openrc-init
+openssh-openrc
+openvpn-openrc
+partclone
+parted
+partimage
+pcsclite
+ppp
+pptpclient
+pv
+qemu-guest-agent
+reflector
+reiserfsprogs
+rp-pppoe
+rsync-openrc
+rxvt-unicode-terminfo
+screen
+sdparm
+sg3_utils
+smartmontools
+sof-firmware
+squashfs-tools
+sudo
+syslinux
+tcpdump
+terminus-font
+testdisk
+tmux
+tpm2-tss
+udev-init-scripts
+udftools
+usb_modeswitch
+usbmuxd
+usbutils
+vim
+vpnc
+wireless-regdb
+wireless_tools
+wpa_supplicant-openrc
+wvdial
+xfsprogs
+xl2tpd
+zsh
diff --git a/releng-openrc/packages.x86_64 b/releng-openrc/packages.x86_64
new file mode 100644
index 0000000..31579bc
--- /dev/null
+++ b/releng-openrc/packages.x86_64
@@ -0,0 +1,2 @@
+edk2-shell
+refind
diff --git a/releng-openrc/pacman.conf b/releng-openrc/pacman.conf
new file mode 100644
index 0000000..f531d97
--- /dev/null
+++ b/releng-openrc/pacman.conf
@@ -0,0 +1,128 @@
+#
+# /etc/pacman.conf
+#
+# See the pacman.conf(5) manpage for option and repository directives
+
+#
+# GENERAL OPTIONS
+#
+[options]
+# The following paths are commented out with their default values listed.
+# If you wish to use different paths, uncomment and update the paths.
+#RootDir = /
+#DBPath = /var/lib/pacman/
+#CacheDir = /var/cache/pacman/pkg/
+#LogFile = /var/log/pacman.log
+#GPGDir = /etc/pacman.d/gnupg/
+#HookDir = /etc/pacman.d/hooks/
+HoldPkg = pacman glibc
+#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#CleanMethod = KeepInstalled
+Architecture = auto
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+IgnorePkg = systemd systemd-libsystemd systemd-libs systemd-udev systemd-libudev
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options
+#UseSyslog
+#Color
+#NoProgressBar
+# We cannot check disk space from within a chroot environment
+#CheckSpace
+#VerbosePkgLists
+ParallelDownloads = 5
+
+# By default, pacman accepts packages signed by keys that its local keyring
+# trusts (see pacman-key and its man page), as well as unsigned packages.
+SigLevel = Required DatabaseOptional
+LocalFileSigLevel = Optional
+#RemoteFileSigLevel = Required
+
+# NOTE: You must run `pacman-key --init` before first using pacman; the local
+# keyring can then be populated with the keys of all Arch/Parabola packagers
+# with `pacman-key --populate archlinux` and `pacman-key --populate parabola`.
+
+#
+# REPOSITORIES
+# - can be defined here or included from another file
+# - pacman will search repositories in the order defined here
+# - local/custom mirrors can be added here or in separate files
+# - repositories listed first will take precedence when packages
+# have identical names, regardless of version number
+# - URLs will have $repo replaced by the name of the current repo
+# - URLs will have $arch replaced by the name of the architecture
+#
+# Repository entries are of the format:
+# [repo-name]
+# Server = ServerName
+# Include = IncludePath
+#
+# The header [repo-name] is crucial - it must be present and
+# uncommented to enable the repo.
+#
+
+# The testing repositories are disabled by default. To enable, uncomment the
+# repo name header and Include lines. You can add preferred servers immediately
+# after the header, and they will be used before the default mirrors.
+
+[nonsystemd]
+Include = /etc/pacman.d/mirrorlist
+
+#[libre-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[libre]
+Include = /etc/pacman.d/mirrorlist
+
+#[testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[core]
+Include = /etc/pacman.d/mirrorlist
+
+[extra]
+Include = /etc/pacman.d/mirrorlist
+
+#[community-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[community]
+Include = /etc/pacman.d/mirrorlist
+
+#[pcr-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[pcr]
+Include = /etc/pacman.d/mirrorlist
+
+# If you want to run 32 bit applications on your x86_64 system,
+# enable the libre-multilib, multilib and pcr-multilib repositories as required here.
+
+#[libre-multilib-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[libre-multilib]
+#Include = /etc/pacman.d/mirrorlist
+
+#[multilib-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[multilib]
+#Include = /etc/pacman.d/mirrorlist
+
+#[pcr-multilib-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[pcr-multilib]
+#Include = /etc/pacman.d/mirrorlist
+
+# An example of a custom package repository. See the pacman manpage for
+# tips on creating your own repositories.
+#[custom]
+#SigLevel = Optional TrustAll
+#Server = file:///home/custompkgs
diff --git a/releng-openrc/profiledef.sh b/releng-openrc/profiledef.sh
new file mode 100644
index 0000000..fe657de
--- /dev/null
+++ b/releng-openrc/profiledef.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+# shellcheck disable=SC2034
+
+iso_name="parabola-openrc"
+iso_label="PARA_$(date +%Y%m)"
+iso_publisher="Parabola GNU/Linux-libre <https://parabola.nu>"
+iso_application="Parabola GNU/Linux-libre Live/Rescue CD"
+iso_version="$(date +%Y.%m.%d)"
+install_dir="parabola"
+buildmodes=('iso')
+bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' 'uefi-x64.refind.esp' 'uefi-x64.refind.eltorito')
+arch="dual"
+pacman_conf="pacman.conf"
+airootfs_image_type="squashfs"
+airootfs_image_tool_options=('-comp' 'xz' '-Xbcj' 'x86' '-b' '1M' '-Xdict-size' '1M')
+file_permissions=(
+ ["/etc/local.d/choose-mirror.start"]="0:0:755"
+ ["/etc/local.d/etc-pacman.d-gnupg.start"]="0:0:755"
+ ["/etc/local.d/livecd-talk.start"]="0:0:755"
+ ["/etc/local.d/pacman-init.start"]="0:0:755"
+ ["/etc/NetworkManager/dispatcher.d/reflector"]="0:0:755"
+ ["/etc/shadow"]="0:0:400"
+ ["/root"]="0:0:750"
+ ["/root/.automated_script.sh"]="0:0:755"
+ ["/usr/local/bin/choose-mirror"]="0:0:755"
+ ["/usr/local/bin/Installation_guide"]="0:0:755"
+ ["/usr/local/bin/livecd-sound"]="0:0:755"
+)
diff --git a/releng-openrc/syslinux/parabolaiso_head.cfg b/releng-openrc/syslinux/parabolaiso_head.cfg
new file mode 100644
index 0000000..591097e
--- /dev/null
+++ b/releng-openrc/syslinux/parabolaiso_head.cfg
@@ -0,0 +1,28 @@
+SERIAL 0 115200
+UI vesamenu.c32
+MENU TITLE Parabola GNU/Linux-libre
+MENU BACKGROUND splash.png
+
+MENU WIDTH 78
+MENU MARGIN 4
+MENU ROWS 7
+MENU VSHIFT 10
+MENU TABMSGROW 14
+MENU CMDLINEROW 14
+MENU HELPMSGROW 16
+MENU HELPMSGENDROW 29
+
+# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
+
+MENU COLOR border 35;40 #ff777caa #a0000000 std
+MENU COLOR title 1;35;40 #ff777caa #a0000000 std
+MENU COLOR sel 7;35;47 #e0ffffff #20777caa all
+MENU COLOR unsel 35;40 #ff777caa #a0000000 std
+MENU COLOR help 35;40 #c0b2b2b2 #a0000000 std
+MENU COLOR timeout_msg 35;40 #ff777caa #00000000 std
+MENU COLOR timeout 1;35;40 #ff777caa #00000000 std
+MENU COLOR msg07 35;40 #ff777caa #a0000000 std
+MENU COLOR tabmsg 35;40 #ff777caa #00000000 std
+
+MENU CLEAR
+MENU IMMEDIATE
diff --git a/releng-openrc/syslinux/parabolaiso_pxe32-linux-libre.cfg b/releng-openrc/syslinux/parabolaiso_pxe32-linux-libre.cfg
new file mode 100644
index 0000000..9e0bb0e
--- /dev/null
+++ b/releng-openrc/syslinux/parabolaiso_pxe32-linux-libre.cfg
@@ -0,0 +1,32 @@
+LABEL parabola32_nbd
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (i686) live medium (Using NBD).
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (i686) (NBD)
+LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% parabolaiso_nbd_srv=${pxeserver} checksum verify
+SYSAPPEND 3
+
+LABEL parabola32_nfs
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (i686) live medium (Using NFS).
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (i686) (NFS)
+LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt checksum verify
+SYSAPPEND 3
+
+LABEL parabola32_http
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (i686) live medium (Using HTTP).
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (i686) (HTTP)
+LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/ checksum verify
+SYSAPPEND 3
diff --git a/releng-openrc/syslinux/parabolaiso_pxe64-linux-libre.cfg b/releng-openrc/syslinux/parabolaiso_pxe64-linux-libre.cfg
new file mode 100644
index 0000000..71e70c5
--- /dev/null
+++ b/releng-openrc/syslinux/parabolaiso_pxe64-linux-libre.cfg
@@ -0,0 +1,32 @@
+LABEL parabola64_nbd
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using NBD).
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (NBD)
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% parabolaiso_nbd_srv=${pxeserver} checksum verify
+SYSAPPEND 3
+
+LABEL parabola64_nfs
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using NFS).
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (NFS)
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt checksum verify
+SYSAPPEND 3
+
+LABEL parabola64_http
+TEXT HELP
+Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using HTTP).
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (HTTP)
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/ checksum verify
+SYSAPPEND 3
diff --git a/releng-openrc/syslinux/parabolaiso_pxe_32_inc.cfg b/releng-openrc/syslinux/parabolaiso_pxe_32_inc.cfg
new file mode 100644
index 0000000..e42cf87
--- /dev/null
+++ b/releng-openrc/syslinux/parabolaiso_pxe_32_inc.cfg
@@ -0,0 +1,3 @@
+INCLUDE parabolaiso_head.cfg
+INCLUDE parabolaiso_pxe32.cfg
+INCLUDE parabolaiso_tail.cfg
diff --git a/releng-openrc/syslinux/parabolaiso_pxe_both_inc.cfg b/releng-openrc/syslinux/parabolaiso_pxe_both_inc.cfg
new file mode 100644
index 0000000..279fba1
--- /dev/null
+++ b/releng-openrc/syslinux/parabolaiso_pxe_both_inc.cfg
@@ -0,0 +1,4 @@
+INCLUDE parabolaiso_head.cfg
+INCLUDE parabolaiso_pxe64-linux-libre.cfg
+INCLUDE parabolaiso_pxe32-linux-libre.cfg
+INCLUDE parabolaiso_tail.cfg
diff --git a/releng-openrc/syslinux/parabolaiso_pxe_choose.cfg b/releng-openrc/syslinux/parabolaiso_pxe_choose.cfg
new file mode 100644
index 0000000..dcf16b6
--- /dev/null
+++ b/releng-openrc/syslinux/parabolaiso_pxe_choose.cfg
@@ -0,0 +1,11 @@
+DEFAULT choose
+
+LABEL choose
+COM32 ifcpu64.c32
+APPEND have64 -- nohave64
+
+LABEL have64
+CONFIG parabolaiso_pxe_both_inc.cfg
+
+LABEL nohave64
+CONFIG parabolaiso_pxe_32_inc.cfg
diff --git a/releng-openrc/syslinux/parabolaiso_sys32-linux-libre.cfg b/releng-openrc/syslinux/parabolaiso_sys32-linux-libre.cfg
new file mode 100644
index 0000000..4f0acb1
--- /dev/null
+++ b/releng-openrc/syslinux/parabolaiso_sys32-linux-libre.cfg
@@ -0,0 +1,33 @@
+TIMEOUT 150
+
+LABEL parabola32
+TEXT HELP
+Boot the Parabola GNU/Linux-libre install medium on BIOS.
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Parabola GNU/Linux-libre install medium (i686, BIOS)
+LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
+
+# Accessibility boot option
+LABEL parabola32speech
+TEXT HELP
+Boot the Parabola GNU/Linux-libre install medium on BIOS with speakup screen reader.
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance with speech feedback.
+ENDTEXT
+MENU LABEL Parabola GNU/Linux-libre install medium (i686, BIOS) with ^speech
+LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% accessibility=on
+
+# Copy to RAM boot option
+LABEL parabola32ram
+TEXT HELP
+Boot the Parabola GNU/Linux-libre install medium on BIOS with Copy-to-RAM option
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Parabola GNU/Linux-libre install medium (i686, BIOS, Copy to RAM)
+LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram
diff --git a/releng-openrc/syslinux/parabolaiso_sys64-linux-libre.cfg b/releng-openrc/syslinux/parabolaiso_sys64-linux-libre.cfg
new file mode 100644
index 0000000..cbf736e
--- /dev/null
+++ b/releng-openrc/syslinux/parabolaiso_sys64-linux-libre.cfg
@@ -0,0 +1,31 @@
+LABEL parabola64
+TEXT HELP
+Boot the Parabola GNU/Linux-libre install medium on BIOS.
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Parabola GNU/Linux-libre install medium (x86_64, BIOS)
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
+
+# Accessibility boot option
+LABEL parabola64speech
+TEXT HELP
+Boot the Parabola GNU/Linux-libre install medium on BIOS with speakup screen reader.
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance with speech feedback.
+ENDTEXT
+MENU LABEL Parabola GNU/Linux-libre install medium (x86_64, BIOS) with ^speech
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% accessibility=on
+
+# Copy to RAM boot option
+LABEL parabola64ram
+TEXT HELP
+Boot the Parabola GNU/Linux-libre install medium on BIOS with Copy-to-RAM option
+It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
+ENDTEXT
+MENU LABEL Parabola GNU/Linux-libre install medium (x86_64, BIOS, Copy to RAM)
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
+INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram
diff --git a/releng-openrc/syslinux/parabolaiso_sys_32_inc.cfg b/releng-openrc/syslinux/parabolaiso_sys_32_inc.cfg
new file mode 100644
index 0000000..bbe92a3
--- /dev/null
+++ b/releng-openrc/syslinux/parabolaiso_sys_32_inc.cfg
@@ -0,0 +1,8 @@
+INCLUDE parabolaiso_head.cfg
+
+DEFAULT parabola32
+TIMEOUT 150
+
+INCLUDE parabolaiso_sys32-linux-libre.cfg
+
+INCLUDE parabolaiso_tail.cfg
diff --git a/releng-openrc/syslinux/parabolaiso_sys_both_inc.cfg b/releng-openrc/syslinux/parabolaiso_sys_both_inc.cfg
new file mode 100644
index 0000000..1f54dde
--- /dev/null
+++ b/releng-openrc/syslinux/parabolaiso_sys_both_inc.cfg
@@ -0,0 +1,10 @@
+INCLUDE parabolaiso_head.cfg
+
+DEFAULT parabola64
+TIMEOUT 150
+
+INCLUDE parabolaiso_sys64-linux-libre.cfg
+
+INCLUDE parabolaiso_sys32-linux-libre.cfg
+
+INCLUDE parabolaiso_tail.cfg
diff --git a/releng-openrc/syslinux/parabolaiso_sys_choose.cfg b/releng-openrc/syslinux/parabolaiso_sys_choose.cfg
new file mode 100644
index 0000000..41c0e06
--- /dev/null
+++ b/releng-openrc/syslinux/parabolaiso_sys_choose.cfg
@@ -0,0 +1,11 @@
+DEFAULT choose
+
+LABEL choose
+COM32 ifcpu64.c32
+APPEND have64 -- nohave64
+
+LABEL have64
+CONFIG parabolaiso_sys_both_inc.cfg
+
+LABEL nohave64
+CONFIG parabolaiso_sys_32_inc.cfg
diff --git a/releng-openrc/syslinux/parabolaiso_tail.cfg b/releng-openrc/syslinux/parabolaiso_tail.cfg
new file mode 100644
index 0000000..e5339a2
--- /dev/null
+++ b/releng-openrc/syslinux/parabolaiso_tail.cfg
@@ -0,0 +1,35 @@
+LABEL existing
+TEXT HELP
+Boot an existing operating system.
+Press TAB to edit the disk and partition number to boot.
+ENDTEXT
+MENU LABEL Boot existing OS
+COM32 chain.c32
+APPEND hd0 0
+
+# http://www.memtest.org/
+LABEL memtest
+MENU LABEL Run Memtest86+ (RAM test)
+LINUX /%INSTALL_DIR%/boot/memtest
+
+# http://hdt-project.org/
+LABEL hdt
+MENU LABEL Hardware Information (HDT)
+COM32 hdt.c32
+APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz
+
+LABEL reboot
+TEXT HELP
+Reboot computer.
+The computer's firmware must support APM.
+ENDTEXT
+MENU LABEL Reboot
+COM32 reboot.c32
+
+LABEL poweroff
+TEXT HELP
+Power off computer.
+The computer's firmware must support APM.
+ENDTEXT
+MENU LABEL Power Off
+COM32 poweroff.c32
diff --git a/releng-openrc/syslinux/splash.png b/releng-openrc/syslinux/splash.png
new file mode 100644
index 0000000..ff1342f
--- /dev/null
+++ b/releng-openrc/syslinux/splash.png
Binary files differ
diff --git a/releng-openrc/syslinux/syslinux.cfg b/releng-openrc/syslinux/syslinux.cfg
new file mode 100644
index 0000000..2894460
--- /dev/null
+++ b/releng-openrc/syslinux/syslinux.cfg
@@ -0,0 +1,12 @@
+DEFAULT select
+
+LABEL select
+COM32 whichsys.c32
+APPEND -pxe- pxe -sys- sys -iso- sys
+
+LABEL pxe
+CONFIG parabolaiso_pxe_choose.cfg
+
+LABEL sys
+CONFIG parabolaiso_sys_choose.cfg
+