diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..3ecb8fc
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,6 @@
+{
+ "[python]": {
+ "editor.defaultFormatter": "ms-python.autopep8"
+ },
+ "python.formatting.provider": "none"
+}
diff --git a/01_prepare.sh b/01_prepare.sh
index 11abf96..0501591 100755
--- a/01_prepare.sh
+++ b/01_prepare.sh
@@ -1,9 +1,8 @@
#!/bin/bash
-sudo pacman -Sw --noconfirm --cachedir "/disk/github/active/make_iso/melawy-archiso/airootfs/opt/extra-drivers" r8168
+sudo pacman -Sw --noconfirm --cachedir "./airootfs/opt/extra-drivers" r8168
-sudo pacman -Sw --noconfirm --cachedir "/disk/github/active/make_iso/melawy-archiso/airootfs/usr/share/packages" dracut \
-dracut-hook \
+sudo pacman -Sw --noconfirm --cachedir "./airootfs/usr/share/packages" dracut \
grub \
kernel-install-for-dracut \
libxvmc \
@@ -14,4 +13,5 @@ linux-xanmod-anbox \
linux-xanmod-anbox-headers \
os-prober \
refind \
+update-grub \
xf86-video-intel
diff --git a/03_boot.sh b/03_boot.sh
new file mode 100644
index 0000000..89bdea4
--- /dev/null
+++ b/03_boot.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+#qemu-system-x86_64 -boot d -cdrom ./out/melawy-linux-2023.10.02-x86_64.iso -usb -vga virtio -display spice-app -full-screen -net nic -net user -m 8192 -smbios type=0,uefi=on -smp cpus=4 -enable-kvm -bios /usr/share/ovmf/x64/OVMF.fd
+
+cp -av -- '/usr/share/edk2-ovmf/x64/OVMF_VARS.fd' "./out/"
+
+qemu-system-x86_64 \
+-boot order=d,menu=on,reboot-timeout=5000 \
+-cdrom ./out/melawy-linux-2023.10.02-x86_64.iso \
+-smbios type=0,uefi=on \
+-smp cpus=4 \
+-m 8192 \
+-usb \
+-k en-us \
+-name archiso,process=archiso_0 \
+-display sdl,gl=on,show-cursor=on,window-close=on \
+-vga virtio \
+-full-screen \
+-audiodev pa,id=snd0 \
+-device ich9-intel-hda \
+-device hda-output,audiodev=snd0 \
+-device virtio-net-pci,romfile=,netdev=net0 -netdev user,id=net0,hostfwd=tcp::60022-:22 \
+-machine type=q35,smm=on,accel=kvm,usb=on,pcspk-audiodev=snd0 \
+-global ICH9-LPC.disable_s3=1 \
+-enable-kvm \
+-drive "if=pflash,format=raw,unit=0,file=/usr/share/edk2-ovmf/x64/OVMF_CODE.fd,read-only=on" \
+-drive "if=pflash,format=raw,unit=1,file=./out/OVMF_VARS.fd" \
+-global "driver=cfi.pflash01,property=secure,value=off" \
+-serial stdio
diff --git a/airootfs/etc/NetworkManager/NetworkManager.conf b/airootfs/etc/NetworkManager/NetworkManager.conf
new file mode 100644
index 0000000..eed717a
--- /dev/null
+++ b/airootfs/etc/NetworkManager/NetworkManager.conf
@@ -0,0 +1,5 @@
+# Configuration file for NetworkManager.
+# See "man 5 NetworkManager.conf" for details.
+
+[device]
+wifi.scan-rand-mac-address=no
diff --git a/airootfs/etc/dev-rel b/airootfs/etc/dev-rel
new file mode 100644
index 0000000..1bb79be
--- /dev/null
+++ b/airootfs/etc/dev-rel
@@ -0,0 +1,3 @@
+ISO_RELEASE=08-12-2023
+ISO_CODENAME=MelawyLinux
+ISO_BUILD=08-12-2023
diff --git a/airootfs/etc/environment b/airootfs/etc/environment
old mode 100644
new mode 100755
index fe6bd67..93e2951
--- a/airootfs/etc/environment
+++ b/airootfs/etc/environment
@@ -3,7 +3,6 @@
#
# Syntax: simple "KEY=VAL" pairs on separate lines
#
-#QT_QPA_PLATFORMTHEME=qt5ct
-#QT_STYLE_OVERRIDE=kvantum
BROWSER=firefox
EDITOR=nano
+ZPOOL_VDEV_NAME_PATH=1
diff --git a/airootfs/etc/fonts/local.conf b/airootfs/etc/fonts/local.conf
new file mode 100644
index 0000000..5130e09
--- /dev/null
+++ b/airootfs/etc/fonts/local.conf
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ hintslight
+
+
+ lcddefault
+
+
+
+
+
+ -apple-system
+
+ Tex Gyre Heros
+
+
+ Helvetica Neue
+
+ Tex Gyre Heros
+
+
+ Helvetica
+
+ Tex Gyre Heros
+
+
+ arial
+
+ Tex Gyre Heros
+
+
+ sans-serif
+
+ Tex Gyre Heros
+
+
+
+
+ serif
+ Libertinus Serif
+ Noto Serif
+ Noto Color Emoji
+ IPAPMincho
+ HanaMinA
+
+
+
+
+ SFMono-Regular
+ DM Mono
+ Space Mono
+ Inconsolatazi4
+ IPAGothic
+
+
+ Menlo
+ DM Mono
+ Space Mono
+ Inconsolatazi4
+ IPAGothic
+
+
+ monospace
+ DM Mono
+ Space Mono
+ Inconsolatazi4
+ IPAGothic
+
+
+
+
+ sans-serif
+
+ Noto Sans
+ Noto Color Emoji
+ Noto Emoji
+ Open Sans
+ Droid Sans
+ Ubuntu
+ Roboto
+ NotoSansCJK
+ Source Han Sans JP
+ IPAPGothic
+ VL PGothic
+ Koruri
+
+
+
+ serif
+
+ Noto Serif
+ Noto Color Emoji
+ Noto Emoji
+ Droid Serif
+ Roboto Slab
+ IPAPMincho
+
+
+
+ monospace
+
+ Noto Sans Mono
+ Noto Color Emoji
+ Noto Emoji
+ Inconsolatazi4
+ Ubuntu Mono
+ Droid Sans Mono
+ Roboto Mono
+ IPAGothic
+
+
+
diff --git a/airootfs/etc/group b/airootfs/etc/group
index 2f50b54..93e6a62 100644
--- a/airootfs/etc/group
+++ b/airootfs/etc/group
@@ -1,16 +1,17 @@
root:x:0:root
sys:x:3:bin,liveuser
+adm:x:4:liveuser
+wheel:x:10:liveuser
+uucp:x:14:liveuser
network:x:90:liveuser
power:x:98:liveuser
-adm:x:999:liveuser
-wheel:x:998:liveuser
-uucp:x:987:liveuser
-optical:x:990:liveuser
-rfkill:x:983:liveuser
-video:x:986:liveuser
-storage:x:988:liveuser
-audio:x:995:liveuser
-users:x:985:liveuser
nopasswdlogin:x:966:liveuser
autologin:x:967:liveuser
-liveuser:x:1000:
\ No newline at end of file
+rfkill:x:983:liveuser
+users:x:985:liveuser
+video:x:986:liveuser
+storage:x:988:liveuser
+optical:x:990:liveuser
+audio:x:995:liveuser
+liveuser:x:1000:
+liveuser:x:1000:liveuser
diff --git a/airootfs/etc/gshadow b/airootfs/etc/gshadow
index 8bf2275..91db3d8 100644
--- a/airootfs/etc/gshadow
+++ b/airootfs/etc/gshadow
@@ -1,10 +1,10 @@
-root:::root
+root:!*::root
sys:!!::liveuser
-network:!!::liveuser
-power:!!::liveuser
adm:!!::liveuser
wheel:!!::liveuser
uucp:!!::liveuser
+network:!!::liveuser
+power:!!::liveuser
optical:!!::liveuser
rfkill:!!::liveuser
video:!!::liveuser
@@ -13,4 +13,4 @@ audio:!!::liveuser
users:!!::liveuser
nopasswdlogin:!::liveuser
autologin:!::liveuser
-liveuser:!::
+liveuser:!*::
diff --git a/airootfs/etc/hostname b/airootfs/etc/hostname
index 51fbdc7..ca976d5 100644
--- a/airootfs/etc/hostname
+++ b/airootfs/etc/hostname
@@ -1 +1,3 @@
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
Melawy-Linux
diff --git a/airootfs/etc/locale.conf b/airootfs/etc/locale.conf
index f318dbb..8f62933 100644
--- a/airootfs/etc/locale.conf
+++ b/airootfs/etc/locale.conf
@@ -1,3 +1,6 @@
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
LANG=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
diff --git a/airootfs/etc/makepkg.conf b/airootfs/etc/makepkg.conf
index 8b5003e..4fe6679 100644
--- a/airootfs/etc/makepkg.conf
+++ b/airootfs/etc/makepkg.conf
@@ -136,7 +136,7 @@ DBGSRCDIR="/usr/src/debug"
#
COMPRESSGZ=(gzip -c -f -n)
COMPRESSBZ2=(bzip2 -c -f)
-COMPRESSXZ=(xz -c -z --threads=0 -9 -e -)
+COMPRESSXZ=(xz -vv -c -z --threads=0 -9 -e -)
COMPRESSZST=(zstd -c -z -q -)
COMPRESSLRZ=(lrzip -q)
COMPRESSLZO=(lzop -q)
diff --git a/airootfs/etc/melawy-linux-release b/airootfs/etc/melawy-linux-release
new file mode 100644
index 0000000..f4fd41e
--- /dev/null
+++ b/airootfs/etc/melawy-linux-release
@@ -0,0 +1,4 @@
+LSB_VERSION=1.4
+DISTRIB_ID=MelawyLinux
+DISTRIB_RELEASE=rolling
+DISTRIB_DESCRIPTION="MelawyLinux"
diff --git a/airootfs/etc/mkinitcpio.conf b/airootfs/etc/mkinitcpio.conf
index 1541dca..8123c43 100644
--- a/airootfs/etc/mkinitcpio.conf
+++ b/airootfs/etc/mkinitcpio.conf
@@ -3,7 +3,7 @@
# 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=(usbhid xhci_hcd piix ide_disk reiserfs)
MODULES=(vmd)
# BINARIES
@@ -49,21 +49,27 @@ FILES=()
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
-HOOKS=(base udev modconf kms keyboard keymap consolefont memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems plymouth)
+HOOKS=(base udev modconf kms keymap consolefont memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems keyboard plymouth)
#HOOKS=(base systemd systemd-tool modconf kms memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems keyboard sd-vconsole plymouth sd-shutdown)
# COMPRESSION
-# Use this to compress the initramfs image. By default, gzip compression
+# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
+#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
-COMPRESSION="zstd"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
+
+# MODULES_DECOMPRESS
+# Decompress kernel modules during initramfs creation.
+# Enable to speedup boot process, disable to save RAM
+# during early userspace. Switch (yes/no).
+#MODULES_DECOMPRESS="yes"
diff --git a/airootfs/etc/modprobe.d/iwlwifi.conf b/airootfs/etc/modprobe.d/iwlwifi.conf
new file mode 100644
index 0000000..c920c66
--- /dev/null
+++ b/airootfs/etc/modprobe.d/iwlwifi.conf
@@ -0,0 +1 @@
+options iwlwifi bt_coex_active=0 swcrypto=1 11n_disable=8
diff --git a/airootfs/etc/modprobe.d/nvidia-utils.conf b/airootfs/etc/modprobe.d/nvidia-utils.conf
new file mode 100644
index 0000000..017b682
--- /dev/null
+++ b/airootfs/etc/modprobe.d/nvidia-utils.conf
@@ -0,0 +1 @@
+# THIS IS A STUB TO OVERRIDE THE NVIDIA-UTILS PACKAGE, DO NOT TOUCH.
diff --git a/airootfs/etc/modules-load.d/nvidia-utils.conf b/airootfs/etc/modules-load.d/nvidia-utils.conf
new file mode 100644
index 0000000..017b682
--- /dev/null
+++ b/airootfs/etc/modules-load.d/nvidia-utils.conf
@@ -0,0 +1 @@
+# THIS IS A STUB TO OVERRIDE THE NVIDIA-UTILS PACKAGE, DO NOT TOUCH.
diff --git a/airootfs/etc/modules-load.d/zfs.conf b/airootfs/etc/modules-load.d/zfs.conf
new file mode 100644
index 0000000..73304bc
--- /dev/null
+++ b/airootfs/etc/modules-load.d/zfs.conf
@@ -0,0 +1 @@
+zfs
diff --git a/airootfs/etc/motd b/airootfs/etc/motd
old mode 100644
new mode 100755
index 4d9eda1..f86ea98
--- a/airootfs/etc/motd
+++ b/airootfs/etc/motd
@@ -1,11 +1,29 @@
-To install [38;2;23;147;209mArch Linux[0m follow the installation guide:
-https://wiki.archlinux.org/title/Installation_guide
+This ISO is based on Arch-ISO modified hugely to provide Installation Environment for MelawyOS.
+https://endeavouros.com
-For Wi-Fi, authenticate to the wireless network using the [35miwctl[0m utility.
-For mobile broadband (WWAN) modems, connect with the [35mmmcli[0m utility.
-Ethernet, WLAN and WWAN interfaces using DHCP should work automatically.
+MelawyOS-archiso Sources:
+https://github.com/Melawy
-After connecting to the internet, the installation guide can be accessed
-via the convenience script [35mInstallation_guide[0m.
+Arch-ISO Source:
+https://gitlab.archlinux.org/archlinux/archiso
-[41m [41m [41m [40m [44m [40m [41m [46m [45m [41m [46m [43m [41m [44m [45m [40m [44m [40m [41m [44m [41m [41m [46m [42m [41m [44m [43m [41m [45m [40m [40m [44m [40m [41m [44m [42m [41m [46m [44m [41m [46m [47m [0m
+Calamares as our installer:
+https://github.com/calamares/calamares
+
+Live environment will start now and let you install MelawyOS to disk, or tryout KDE-Desktop from Live-Session.
+
+Bugs can be reported here:
+https://github.com/Melawy
+
+Getting help at the forum: https://github.com/Melawy
+Help-Chat is available on telegram: https://t.me/Melawy_chat
+News is available on telegram: https://t.me/Melawy_news
+
+Our journey wouldn't be made possible without the donates:
+https://www.tinkoff.ru/cf/7OmVoFjdFNI
+
+Thank you for donating your trust in us!
+
+Welcome to your Melawy
+
+------------------
diff --git a/airootfs/etc/os-release b/airootfs/etc/os-release
new file mode 100644
index 0000000..da9432a
--- /dev/null
+++ b/airootfs/etc/os-release
@@ -0,0 +1,10 @@
+NAME="MelawyLinux"
+PRETTY_NAME="MelawyLinux"
+ID=MelawyLinux
+ID_LIKE=arch
+BUILD_ID=rolling
+ANSI_COLOR="38;2;23;147;209"
+HOME_URL="https://melawy.ru/"
+LOGO=MelawyLinux
+IMAGE_ID=MelawyLinux
+IMAGE_VERSION=08-12-2023
diff --git a/airootfs/etc/pacman.conf b/airootfs/etc/pacman.conf
index 38af6bc..dcdc795 100644
--- a/airootfs/etc/pacman.conf
+++ b/airootfs/etc/pacman.conf
@@ -1,67 +1,126 @@
+#
# /etc/pacman.conf
-#
-#
+#
# See the pacman.conf(5) manpage for option and repository directives
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
+#
# GENERAL OPTIONS
-#
+#
[options]
-# 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/wget --passive-ftp -c -O %o %u
-# XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
-# CleanMethod = KeepInstalled
+# 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
-# IgnorePkg =
-# IgnoreGroup =
-# NoUpgrade =
-# NoExtract =
-# UseSyslog
-# NoProgressBar
-CheckSpace
-# VerbosePkgLists
-ParallelDownloads = 5
-# Color
-ILoveCandy
-CheckSpace
-# VerbosePkgLists
-# DisableDownloadTimeout
-SigLevel = Required DatabaseOptional
-LocalFileSigLevel = Optional
-# RemoteFileSigLevel = Required
-# [testing]
-# Include = /etc/pacman.d/mirrorlist
+#IgnorePkg =
+#IgnorePkg =
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options
+#UseSyslog
+Color
+ILoveCandy
+#NoProgressBar
+#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 official Arch Linux
+# packagers with `pacman-key --populate archlinux`.
+
+#
+# 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.
+
+[endeavouros]
+SigLevel = PackageRequired
+Include = /etc/pacman.d/endeavouros-mirrorlist
+
+#[core-testing]
+#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
+#[extra-testing]
+#Include = /etc/pacman.d/mirrorlist
+
[extra]
Include = /etc/pacman.d/mirrorlist
-# [community-testing]
-# Include = /etc/pacman.d/mirrorlist
+# If you want to run 32 bit applications on your x86_64 system,
+# enable the multilib repositories as required here.
-[community]
-Include = /etc/pacman.d/mirrorlist
-
-# [multilib-testing]
-# Include = /etc/pacman.d/mirrorlist
+#[multilib-testing]
+#Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
-# [custom]
-# SigLevel = Optional TrustAll
-# Server = file:///home/custompkgs
+# 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
+
+[arcolinux_repo]
+SigLevel = Required DatabaseOptional
+Include = /etc/pacman.d/arcolinux-mirrorlist
+
+[arcolinux_repo_xlarge]
+SigLevel = Required DatabaseOptional
+Include = /etc/pacman.d/arcolinux-mirrorlist
+
+[arcolinux_repo_3party]
+SigLevel = Required DatabaseOptional
+Include = /etc/pacman.d/arcolinux-mirrorlist
+
+[cachyos]
+Include = /etc/pacman.d/cachyos-mirrorlist
+
+[garuda]
+Include = /etc/pacman.d/chaotic-mirrorlist
+
+[chaotic-aur]
+Include = /etc/pacman.d/chaotic-mirrorlist
[melawy]
SigLevel = Required DatabaseOptional
@@ -82,36 +141,3 @@ Include = /etc/pacman.d/melawy-linux-mirrorlist
[melawy-aur-gui-app]
SigLevel = Required DatabaseOptional
Include = /etc/pacman.d/melawy-linux-mirrorlist
-
-[melawy-aur-cargo]
-SigLevel = Required DatabaseOptional
-Include = /etc/pacman.d/melawy-linux-mirrorlist
-
-[arcolinux_repo]
-SigLevel = Required DatabaseOptional
-Include = /etc/pacman.d/arcolinux-mirrorlist
-
-[arcolinux_repo_xlarge]
-SigLevel = Required DatabaseOptional
-Include = /etc/pacman.d/arcolinux-mirrorlist
-
-[arcolinux_repo_3party]
-SigLevel = Required DatabaseOptional
-Include = /etc/pacman.d/arcolinux-mirrorlist
-
-# [endeavouros]
-# SigLevel = PackageRequired
-# Include = /etc/pacman.d/endeavouros-mirrorlist
-
-# [cachyos]
-# Include = /etc/pacman.d/cachyos-mirrorlist
-
-# [garuda]
-# Include = /etc/pacman.d/chaotic-mirrorlist
-
-# [chaotic-aur]
-# Include = /etc/pacman.d/chaotic-mirrorlist
-
-# [local]
-# SigLevel = Optional TrustAll
-# Server = file:///disk/repo/$repo/$arch
diff --git a/airootfs/etc/pamac.conf b/airootfs/etc/pamac.conf
index 5db7858..646acbd 100644
--- a/airootfs/etc/pamac.conf
+++ b/airootfs/etc/pamac.conf
@@ -17,7 +17,7 @@ EnableDowngrade
#SimpleInstall
## Allow Pamac to search and install packages from AUR:
-EnableAUR
+#EnableAUR
## Keep built packages from AUR in cache after installation:
KeepBuiltPkgs
diff --git a/airootfs/etc/passwd b/airootfs/etc/passwd
index da8dd66..0917446 100644
--- a/airootfs/etc/passwd
+++ b/airootfs/etc/passwd
@@ -1,2 +1,2 @@
-root:x:0:0:root:/root:/usr/bin/zsh
+root:x:0:0:root:/root:/bin/bash
liveuser:x:1000:1000::/home/liveuser:/bin/bash
diff --git a/airootfs/etc/plymouth/plymouthd.conf b/airootfs/etc/plymouth/plymouthd.conf
index 4b2b1e9..54b1867 100644
--- a/airootfs/etc/plymouth/plymouthd.conf
+++ b/airootfs/etc/plymouth/plymouthd.conf
@@ -1,5 +1,5 @@
[Daemon]
-Theme=melawy-lera-sugar
+Theme=melawy-nier-a2
DeviceScale=1
DeviceTimeout=8
ShowDelay=0
diff --git a/airootfs/etc/sddm.conf.d/kde_settings.conf b/airootfs/etc/sddm.conf.d/kde_settings.conf
index be704d1..ea3c1f8 100644
--- a/airootfs/etc/sddm.conf.d/kde_settings.conf
+++ b/airootfs/etc/sddm.conf.d/kde_settings.conf
@@ -4,8 +4,8 @@ Numlock=on
RebootCommand=/usr/bin/systemctl reboot
[Theme]
-Current=Melawy-Lera-Sugar
-CursorTheme=Qogir-dark
+Current=Melawy-Nier-A2
+CursorTheme=Melawy-red-light-default-cursors
Font=Noto Sans,10,-1,0,50,0,0,0,0,0
[Users]
diff --git a/airootfs/etc/sddm.conf.d/tty.conf b/airootfs/etc/sddm.conf.d/tty.conf
deleted file mode 100644
index 5f80756..0000000
--- a/airootfs/etc/sddm.conf.d/tty.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-[X11]
-MinimumVT=7
diff --git a/airootfs/etc/sysctl.d/99-local.conf b/airootfs/etc/sysctl.d/99-local.conf
new file mode 100644
index 0000000..b154692
--- /dev/null
+++ b/airootfs/etc/sysctl.d/99-local.conf
@@ -0,0 +1 @@
+net.ipv6.conf.default.use_tempaddr = 2
diff --git a/airootfs/etc/systemd/intel.service b/airootfs/etc/systemd/intel.service
deleted file mode 100644
index 02d8a4c..0000000
--- a/airootfs/etc/systemd/intel.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=detect intel legacy gpu and install xf86-video-intel
-Before=graphical.target
-
-[Service]
-Type=simple
-ExecStart=/bin/bash /usr/bin/GPU-Intel-installer
-
-[Install]
-WantedBy=multi-user.target
diff --git a/airootfs/etc/systemd/journald.conf b/airootfs/etc/systemd/journald.conf
index 6e11247..4e6a3f3 100644
--- a/airootfs/etc/systemd/journald.conf
+++ b/airootfs/etc/systemd/journald.conf
@@ -12,7 +12,7 @@
# See journald.conf(5) for details.
[Journal]
-Storage=volatile
+Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
diff --git a/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf b/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf
old mode 100644
new mode 100755
index b69850d..3104779
--- a/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf
+++ b/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf
@@ -1,2 +1,5 @@
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
[Journal]
Storage=volatile
diff --git a/airootfs/etc/systemd/logind.conf b/airootfs/etc/systemd/logind.conf
index 72b3254..a4e8125 100644
--- a/airootfs/etc/systemd/logind.conf
+++ b/airootfs/etc/systemd/logind.conf
@@ -1,13 +1,16 @@
# This file is part of systemd.
#
-# systemd is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation; either version 2.1 of the License, or
-# (at your option) any later version.
+# systemd is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
#
-# Entries in this file show the compile time defaults.
-# You can change settings by editing this file.
-# Defaults can be restored by simply deleting this file.
+# Entries in this file show the compile time defaults. Local configuration
+# should be created by either modifying this file, or by creating "drop-ins" in
+# the logind.conf.d/ subdirectory. The latter is generally recommended.
+# Defaults can be restored by simply deleting this file and all drop-ins.
+#
+# Use 'systemd-analyze cat-config systemd/logind.conf' to display the full config.
#
# See logind.conf(5) for details.
@@ -18,21 +21,29 @@
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
+#UserStopDelaySec=10
#HandlePowerKey=poweroff
-HandleSuspendKey=ignore
-HandleHibernateKey=ignore
-HandleLidSwitch=ignore
+#HandlePowerKeyLongPress=ignore
+#HandleRebootKey=reboot
+#HandleRebootKeyLongPress=poweroff
+#HandleSuspendKey=suspend
+#HandleSuspendKeyLongPress=hibernate
+#HandleHibernateKey=hibernate
+#HandleHibernateKeyLongPress=ignore
+#HandleLidSwitch=suspend
#HandleLidSwitchExternalPower=suspend
#HandleLidSwitchDocked=ignore
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
+#RebootKeyIgnoreInhibited=no
#HoldoffTimeoutSec=30s
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
-#RuntimeDirectoryInodes=400k
+#RuntimeDirectoryInodesMax=
#RemoveIPC=yes
#InhibitorsMax=8192
#SessionsMax=8192
+#StopIdleSessionSec=infinity
diff --git a/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf b/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf
deleted file mode 100644
index f3ecb39..0000000
--- a/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[Login]
-HandleSuspendKey=ignore
-HandleHibernateKey=ignore
-HandleLidSwitch=ignore
diff --git a/airootfs/etc/systemd/logind.conf.d/melawylinux-settings.conf b/airootfs/etc/systemd/logind.conf.d/melawylinux-settings.conf
new file mode 100644
index 0000000..e0b4e28
--- /dev/null
+++ b/airootfs/etc/systemd/logind.conf.d/melawylinux-settings.conf
@@ -0,0 +1,12 @@
+[Login]
+HandlePowerKey=poweroff
+HandlePowerKeyLongPress=ignore
+HandleRebootKey=reboot
+HandleRebootKeyLongPress=poweroff
+HandleSuspendKey=suspend
+HandleSuspendKeyLongPress=hibernate
+HandleHibernateKey=hibernate
+HandleHibernateKeyLongPress=ignore
+HandleLidSwitch=suspend
+HandleLidSwitchExternalPower=suspend
+HandleLidSwitchDocked=ignore
diff --git a/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf b/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf
new file mode 100644
index 0000000..0e9ceb4
--- /dev/null
+++ b/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf
@@ -0,0 +1,2 @@
+[Network]
+IPv6PrivacyExtensions=yes
diff --git a/airootfs/etc/systemd/network/20-ethernet.network b/airootfs/etc/systemd/network/20-ethernet.network
index 9ada778..c1144dd 100644
--- a/airootfs/etc/systemd/network/20-ethernet.network
+++ b/airootfs/etc/systemd/network/20-ethernet.network
@@ -1,19 +1,11 @@
[Match]
-# Matching with "Type=ether" causes issues with containers because it also matches virtual Ethernet interfaces (veth*).
-# See https://bugs.archlinux.org/task/70892
-# Instead match by globbing the network interface name.
Name=en*
Name=eth*
[Network]
DHCP=yes
-IPv6PrivacyExtensions=yes
+MulticastDNS=yes
-# systemd-networkd does not set per-interface-type default route metrics
-# https://github.com/systemd/systemd/issues/17698
-# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband.
-# Use values from NetworkManager. From nm_device_get_route_metric_default in
-# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c
[DHCPv4]
RouteMetric=100
diff --git a/airootfs/etc/systemd/network/20-wlan.network b/airootfs/etc/systemd/network/20-wlan.network
index 601d5b8..538d275 100644
--- a/airootfs/etc/systemd/network/20-wlan.network
+++ b/airootfs/etc/systemd/network/20-wlan.network
@@ -3,13 +3,8 @@ Name=wl*
[Network]
DHCP=yes
-IPv6PrivacyExtensions=yes
+MulticastDNS=yes
-# systemd-networkd does not set per-interface-type default route metrics
-# https://github.com/systemd/systemd/issues/17698
-# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband.
-# Use values from NetworkManager. From nm_device_get_route_metric_default in
-# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c
[DHCPv4]
RouteMetric=600
diff --git a/airootfs/etc/systemd/network/20-wwan.network b/airootfs/etc/systemd/network/20-wwan.network
index 9104c24..ad70dbd 100644
--- a/airootfs/etc/systemd/network/20-wwan.network
+++ b/airootfs/etc/systemd/network/20-wwan.network
@@ -3,13 +3,7 @@ Name=ww*
[Network]
DHCP=yes
-IPv6PrivacyExtensions=yes
-# systemd-networkd does not set per-interface-type default route metrics
-# https://github.com/systemd/systemd/issues/17698
-# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband.
-# Use values from NetworkManager. From nm_device_get_route_metric_default in
-# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c
[DHCPv4]
RouteMetric=700
diff --git a/airootfs/etc/systemd/resolved.conf.d/archiso.conf b/airootfs/etc/systemd/resolved.conf.d/archiso.conf
new file mode 100644
index 0000000..636f3bd
--- /dev/null
+++ b/airootfs/etc/systemd/resolved.conf.d/archiso.conf
@@ -0,0 +1,4 @@
+# Default systemd-resolved configuration for archiso
+
+[Resolve]
+MulticastDNS=yes
diff --git a/airootfs/etc/systemd/system/bluetooth.target.wants/bluetooth.service b/airootfs/etc/systemd/system/bluetooth.target.wants/bluetooth.service
new file mode 120000
index 0000000..d256bfe
--- /dev/null
+++ b/airootfs/etc/systemd/system/bluetooth.target.wants/bluetooth.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/bluetooth.service
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/dbus-fi.w1.wpa_supplicant1.service b/airootfs/etc/systemd/system/dbus-fi.w1.wpa_supplicant1.service
new file mode 120000
index 0000000..1aff68e
--- /dev/null
+++ b/airootfs/etc/systemd/system/dbus-fi.w1.wpa_supplicant1.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/wpa_supplicant.service
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/dbus-org.bluez.service b/airootfs/etc/systemd/system/dbus-org.bluez.service
new file mode 120000
index 0000000..d256bfe
--- /dev/null
+++ b/airootfs/etc/systemd/system/dbus-org.bluez.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/bluetooth.service
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/dbus-org.freedesktop.Avahi.service b/airootfs/etc/systemd/system/dbus-org.freedesktop.Avahi.service
new file mode 120000
index 0000000..e7ae405
--- /dev/null
+++ b/airootfs/etc/systemd/system/dbus-org.freedesktop.Avahi.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/avahi-daemon.service
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount b/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount
index 0ba0e67..038961e 100644
--- a/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount
+++ b/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount
@@ -2,7 +2,7 @@
Description=Temporary /etc/pacman.d/gnupg directory
[Mount]
-What=ramfs
+What=tmpfs
Where=/etc/pacman.d/gnupg
-Type=ramfs
-Options=mode=0755
+Type=tmpfs
+Options=mode=0755,noswap
diff --git a/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf
index a07a34b..c3bb4dd 100644
--- a/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf
+++ b/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf
@@ -1,4 +1,6 @@
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
[Service]
ExecStart=
-#ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin root - $TERM
-ExecStart=-/sbin/agetty --autologin liveuser --noclear %I 38400 linux
\ No newline at end of file
+ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin root - $TERM
diff --git a/airootfs/etc/systemd/system/intel.service b/airootfs/etc/systemd/system/intel.service
index 02d8a4c..9c110a5 100644
--- a/airootfs/etc/systemd/system/intel.service
+++ b/airootfs/etc/systemd/system/intel.service
@@ -4,7 +4,7 @@ Before=graphical.target
[Service]
Type=simple
-ExecStart=/bin/bash /usr/bin/GPU-Intel-installer
+ExecStart=/bin/bash /usr/local/bin/GPU-Intel-installer
[Install]
WantedBy=multi-user.target
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/avahi-daemon.service b/airootfs/etc/systemd/system/multi-user.target.wants/avahi-daemon.service
new file mode 120000
index 0000000..e7ae405
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/avahi-daemon.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/avahi-daemon.service
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/bluetooth.service b/airootfs/etc/systemd/system/multi-user.target.wants/bluetooth.service
new file mode 120000
index 0000000..d256bfe
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/bluetooth.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/bluetooth.service
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/firewalld.service b/airootfs/etc/systemd/system/multi-user.target.wants/firewalld.service
new file mode 120000
index 0000000..91b6be3
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/firewalld.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/firewalld.service
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/intel.service b/airootfs/etc/systemd/system/multi-user.target.wants/intel.service
new file mode 120000
index 0000000..46f1e18
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/intel.service
@@ -0,0 +1 @@
+/etc/systemd/system/intel.service
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/ntpd.service b/airootfs/etc/systemd/system/multi-user.target.wants/ntpd.service
new file mode 120000
index 0000000..d3bfc72
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/ntpd.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/ntpd.service
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/pamac-cleancache.timer b/airootfs/etc/systemd/system/multi-user.target.wants/pamac-cleancache.timer
new file mode 120000
index 0000000..77e1f7d
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/pamac-cleancache.timer
@@ -0,0 +1 @@
+/usr/lib/systemd/system/pamac-cleancache.timer
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/remote-fs.target b/airootfs/etc/systemd/system/multi-user.target.wants/remote-fs.target
new file mode 120000
index 0000000..2bc8b1c
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/remote-fs.target
@@ -0,0 +1 @@
+/usr/lib/systemd/system/remote-fs.target
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/spice-vdagentd.socket b/airootfs/etc/systemd/system/multi-user.target.wants/spice-vdagentd.socket
new file mode 120000
index 0000000..6bce993
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/spice-vdagentd.socket
@@ -0,0 +1 @@
+/usr/lib/systemd/system/spice-vdagentd.socket
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/systemd-timesyncd.service b/airootfs/etc/systemd/system/multi-user.target.wants/systemd-timesyncd.service
new file mode 120000
index 0000000..cd00411
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/systemd-timesyncd.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/systemd-timesyncd.service
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/vboxclient.service b/airootfs/etc/systemd/system/multi-user.target.wants/vboxclient.service
new file mode 120000
index 0000000..224542b
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/vboxclient.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/vboxclient.service
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/vcheck.service b/airootfs/etc/systemd/system/multi-user.target.wants/vcheck.service
new file mode 120000
index 0000000..1303d33
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/vcheck.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/virtual-machine-check.service
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/wpa_supplicant.service b/airootfs/etc/systemd/system/multi-user.target.wants/wpa_supplicant.service
new file mode 120000
index 0000000..1aff68e
--- /dev/null
+++ b/airootfs/etc/systemd/system/multi-user.target.wants/wpa_supplicant.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/wpa_supplicant.service
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service b/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service
deleted file mode 120000
index 7d6ad92..0000000
--- a/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/systemd/system/systemd-networkd-wait-online.service
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/pacman-init.service b/airootfs/etc/systemd/system/pacman-init.service
index b824884..1a0be0f 100644
--- a/airootfs/etc/systemd/system/pacman-init.service
+++ b/airootfs/etc/systemd/system/pacman-init.service
@@ -1,3 +1,6 @@
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
[Unit]
Description=Initializes Pacman keyring
Requires=etc-pacman.d-gnupg.mount
diff --git a/airootfs/etc/systemd/system/sockets.target.wants/avahi-daemon.socket b/airootfs/etc/systemd/system/sockets.target.wants/avahi-daemon.socket
new file mode 120000
index 0000000..045b23d
--- /dev/null
+++ b/airootfs/etc/systemd/system/sockets.target.wants/avahi-daemon.socket
@@ -0,0 +1 @@
+/usr/lib/systemd/system/avahi-daemon.socket
\ No newline at end of file
diff --git a/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket b/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket
new file mode 120000
index 0000000..3897c63
--- /dev/null
+++ b/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket
@@ -0,0 +1 @@
+/usr/lib/systemd/system/pcscd.socket
\ No newline at end of file
diff --git a/airootfs/etc/xdg/autostart/Calamares-etc.desktop b/airootfs/etc/xdg/autostart/Calamares-etc.desktop
index b93b60e..36c2588 100755
--- a/airootfs/etc/xdg/autostart/Calamares-etc.desktop
+++ b/airootfs/etc/xdg/autostart/Calamares-etc.desktop
@@ -240,7 +240,7 @@ SingleMainWindow=true
StartupNotify=true
Terminal=false
TerminalOptions=
-Exec=/usr/bin/calamares_polkit %f -d -c /etc/calamares/configs/melawy-linux
+Exec=/usr/bin/calamares_polkit %f -d -c /etc/calamares/
Type=Application
Version=1.0
X-AppStream-Ignore=true
diff --git a/airootfs/etc/xdg/kcm-about-distrorc b/airootfs/etc/xdg/kcm-about-distrorc
new file mode 100644
index 0000000..80c3f01
--- /dev/null
+++ b/airootfs/etc/xdg/kcm-about-distrorc
@@ -0,0 +1,4 @@
+[General]
+Name=MelawyLinux
+LogoPath=/usr/share/logos/melawy.png
+Website=https://melawy.ru/
diff --git a/airootfs/etc/xdg/reflector/reflector.conf b/airootfs/etc/xdg/reflector/reflector.conf
index a2cd2b6..12c5c07 100644
--- a/airootfs/etc/xdg/reflector/reflector.conf
+++ b/airootfs/etc/xdg/reflector/reflector.conf
@@ -28,7 +28,9 @@
-c CA,FI,FR,DE,IS,IE,IT,JP,KZ,LV,LU,NZ,NO,PL,PT,RU,SG,ES,SE,CH,TW,TH
---protocol https,http,rsync
+--ipv4
+--ipv6
+--protocol https
--fastest 50
--latest 50
--sort rate
diff --git a/airootfs/root/.automated_script.sh b/airootfs/root/.automated_script.sh
index ed3a924..8e72bf7 100755
--- a/airootfs/root/.automated_script.sh
+++ b/airootfs/root/.automated_script.sh
@@ -1,22 +1,29 @@
#!/usr/bin/env bash
-script_cmdline ()
-{
+script_cmdline() {
local param
- for param in $(< /proc/cmdline); do
+ for param in $(/dev/null
+ # there's no synchronization for network availability before executing this script
+ printf '%s: waiting for network-online.target\n' "$0"
+ until systemctl --quiet is-active network-online.target; do
+ sleep 1
+ done
+ printf '%s: downloading %s\n' "$0" "${script}"
+ curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script
rt=$?
else
cp "${script}" /tmp/startup_script
@@ -24,6 +31,9 @@ automated_script ()
fi
if [[ ${rt} -eq 0 ]]; then
chmod +x /tmp/startup_script
+ printf '%s: executing automated script\n' "$0"
+ # note that script is executed when other services (like pacman-init) may be still in progress, please
+ # synchronize to "systemctl is-system-running --wait" when your script depends on other services
/tmp/startup_script
fi
fi
diff --git a/airootfs/root/.gnupg/scdaemon.conf b/airootfs/root/.gnupg/scdaemon.conf
new file mode 100644
index 0000000..e1f3d1f
--- /dev/null
+++ b/airootfs/root/.gnupg/scdaemon.conf
@@ -0,0 +1,4 @@
+disable-ccid
+disable-pinpad
+pcsc-driver /usr/lib/libpcsclite.so
+pcsc-shared
diff --git a/airootfs/root/.zlogin b/airootfs/root/.zlogin
old mode 100755
new mode 100644
index 0fb119d..bf6bc8f
--- a/airootfs/root/.zlogin
+++ b/airootfs/root/.zlogin
@@ -1,5 +1,5 @@
# fix for screen readers
-if grep -Fq 'accessibility=' /proc/cmdline &> /dev/null; then
+if grep -Fqa 'accessibility=' /proc/cmdline &> /dev/null; then
setopt SINGLE_LINE_ZLE
fi
diff --git a/airootfs/root/archives/liveuser.tar.xz b/airootfs/root/archives/liveuser.tar.xz
index 2b01587..da8aec7 100644
Binary files a/airootfs/root/archives/liveuser.tar.xz and b/airootfs/root/archives/liveuser.tar.xz differ
diff --git a/airootfs/root/customize_airootfs.sh b/airootfs/root/customize_airootfs.sh
index be08b40..7de3975 100755
--- a/airootfs/root/customize_airootfs.sh
+++ b/airootfs/root/customize_airootfs.sh
@@ -2,48 +2,49 @@
locale-gen
-ln -sf /usr/share/zoneinfo/UTC /etc/localtime
-
-usermod -s /bin/bash root
+usermod -p "123" -s /bin/bash root
cp -aT /etc/skel/ /root/
-useradd -m -p "" -g 'users' -G 'adm,audio,floppy,log,network,nopasswdlogin,optical,power,rfkill,scanner,storage,sys,tty,users,uucp,wheel' -s /bin/bash liveuser
-usermod -m -p "" -g 'users' -G 'adm,audio,autologin,network,nopasswdlogin,optical,power,rfkill,storage,sys,users,uucp,video,wheel' -s /bin/bash liveuser
-usermod -m -p "" -g 'users' -G 'adm,audio,autologin,floppy,log,network,nopasswdlogin,optical,power,rfkill,scanner,storage,sys,tty,users,uucp,video,wheel' -s /bin/bash liveuser
+usermod -p "123" liveuser
+
+groups="adm audio autologin floppy log network nopasswdlogin optical power rfkill scanner storage sys tty users uucp video wheel"
+for i in $groups
+do
+ #usermod -m -d /home/liveuser -p "123" -g 'users' -G $i -s /bin/bash liveuser
+ usermod -G $i liveuser
+done
-chmod 750 /etc/sudoers.d
-chmod 440 /etc/sudoers.d/g_wheel
chown -R 1000:1000 /home/liveuser
+findstr=$(grep -e 'kdesu' /usr/bin/eos-install-mode-run-calamares)
+sed -e "s/$findstr//g" -i /usr/bin/eos-install-mode-run-calamares
+
sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist
sed -i 's/#\(Storage=\)auto/\1volatile/' /etc/systemd/journald.conf
echo -e "[Daemon]\nTheme=melawy-lera-sugar\nDeviceScale=1\nDeviceTimeout=8\nShowDelay=0" > "/usr/share/plymouth/plymouthd.defaults"
-cat "/usr/lib/melawy-linux-release" >> "/etc/motd"
-echo "------------------" >> "/etc/motd"
+# cat "/usr/lib/melawy-linux-release" >> "/etc/motd"
+# echo "------------------" >> "/etc/motd"
mkdir -p "/etc/calamares/configs/melawy-linux/files/"
cp "/root/wallpaper.png" "/etc/calamares/configs/melawy-linux/files/melawy-linux-wallpaper.png"
chmod 644 "/etc/calamares/configs/melawy-linux/files/"*".png"
-mkdir -p "/usr/share/melawy-linux/backgrounds/"
-cp "/root/wallpaper.png" "/usr/share/melawy-linux/backgrounds/melawy-linux-wallpaper.png"
-chmod 644 "/usr/share/melawy-linux/backgrounds/"*".png"
+chmod 644 "/usr/share/wallpapers/melawy-linux-wallpapers/"*".png"
+cp "/usr/lib/modprobe.d/nvidia-utils.conf" "/etc/calamares/configs/melawy-linux/files/nv-modprobe"
+cp "/usr/lib/modules-load.d/nvidia-utils.conf" "/etc/calamares/configs/melawy-linux/files/nv-modules-load"
-mv "/usr/lib/modprobe.d/nvidia-utils.conf" "/etc/calamares/configs/melawy-linux/files/nv-modprobe"
-mv "/usr/lib/modules-load.d/nvidia-utils.conf" "/etc/calamares/configs/melawy-linux/files/nv-modules-load"
-
-systemctl enable sddm.service
-systemctl enable ntpd.service
-systemctl enable NetworkManager.service systemd-timesyncd.service bluetooth.service firewalld.service
-systemctl enable vboxservice.service vmtoolsd.service vmware-vmblock-fuse.service
-systemctl enable intel.service
-systemctl enable pacman-init.service choose-mirror.service
-#systemctl set-default multi-user.target
-systemctl set-default graphical.target
+# systemctl enable sddm.service
+# systemctl enable ntpd.service
+# systemctl enable NetworkManager.service systemd-timesyncd.service bluetooth.service firewalld.service
+# systemctl enable vboxservice.service vmtoolsd.service vmware-vmblock-fuse.service
+# systemctl enable intel.service
+# systemctl enable pacman-init.service choose-mirror.service
+# #systemctl set-default multi-user.target
+# systemctl set-default graphical.target
pacman -Qs | grep "/calamares " | cut -c7- > iso_package_versions
pacman -Qs | grep "/firefox " | cut -c7- >> iso_package_versions
@@ -55,12 +56,6 @@ mv "iso_package_versions" "/home/liveuser/"
cd "/root"
-haveged -w 1024
-pacman-key --init
-pkill haveged
-pacman-key --populate archlinux melawy-linux arcolinux
-pacman-key --updatedb
-
tar -xJvf /root/archives/skel.tar.xz -C /etc/skel --strip=1 --overwrite
chown -R 0:0 /etc/skel
diff --git a/airootfs/root/wallpaper.png b/airootfs/root/wallpaper.png
index fafb0de..6ed5499 100644
Binary files a/airootfs/root/wallpaper.png and b/airootfs/root/wallpaper.png differ
diff --git a/airootfs/usr/bin/GPU-Intel-installer b/airootfs/usr/local/bin/GPU-Intel-installer
similarity index 100%
rename from airootfs/usr/bin/GPU-Intel-installer
rename to airootfs/usr/local/bin/GPU-Intel-installer
diff --git a/airootfs/usr/local/bin/alci-make-a-pure-arch b/airootfs/usr/local/bin/alci-make-a-pure-arch
deleted file mode 100755
index e2bbfa2..0000000
--- a/airootfs/usr/local/bin/alci-make-a-pure-arch
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-#set -e
-###############################################################################
-# Author : Erik Dubois
-# Website : https://www.erikdubois.be
-# Website : https://www.arcolinux.info
-# Website : https://www.arcolinux.com
-# Website : https://www.arcolinuxd.com
-# Website : https://www.arcolinuxb.com
-# Website : https://www.arcolinuxiso.com
-# Website : https://www.arcolinuxforum.com
-###############################################################################
-#
-# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
-#
-###############################################################################
-
-#if necessary we can use this script too
diff --git a/airootfs/usr/local/bin/all-cores b/airootfs/usr/local/bin/all-cores
new file mode 100755
index 0000000..9f8b5cf
--- /dev/null
+++ b/airootfs/usr/local/bin/all-cores
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+#set -e
+##################################################################################################################
+# Author : Valeria Fadeeva
+# Website : https://valeria.fadeeva.me
+# Website : https://fadeeva.me
+# Website : https://melawy.ru
+##################################################################################################################
+#
+# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
+#
+##################################################################################################################
+
+numberofcores=$(grep -c ^processor /proc/cpuinfo)
+
+if [ $numberofcores -gt 1 ]
+then
+ echo "You have " $numberofcores" cores."
+ echo "Changing the makeflags for "$numberofcores" cores."
+ sudo sed -i 's/#MAKEFLAGS="-j2"/MAKEFLAGS="-j'$(($numberofcores+1))'"/g' /etc/makepkg.conf;
+ echo "Changing the compression settings for "$numberofcores" cores."
+ sudo sed -i 's/COMPRESSXZ=(xz -c -z -)/COMPRESSXZ=(xz -c -z - --threads=0)/g' /etc/makepkg.conf
+ sudo sed -i 's/COMPRESSZST=(zstd -c -z -q -)/COMPRESSZST=(zstd -c -z -q - --threads=0)/g' /etc/makepkg.conf
+ sudo sed -i "s/PKGEXT='.pkg.tar.xz'/PKGEXT='.pkg.tar.zst'/g" /etc/makepkg.conf
+else
+ echo "No change."
+fi
diff --git a/airootfs/usr/local/bin/calamares-offline.sh b/airootfs/usr/local/bin/calamares-offline.sh
new file mode 100755
index 0000000..0891496
--- /dev/null
+++ b/airootfs/usr/local/bin/calamares-offline.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+Main() {
+ local mode=offline
+ local progname=""
+ progname="$(basename "$0")"
+ local log=/home/liveuser/melawy-install.log
+
+ cat < $log
+########## $log by $progname
+########## Started (UTC): $(date -u "+%x %X")
+########## Install mode: $mode
+
+EOF
+ RunInTerminal "tail -f $log" &
+
+ sudo cp /usr/share/calamares/settings_${mode}.conf /etc/calamares/settings.conf
+ sudo -E dbus-launch calamares -D6 >> $log
+}
+
+Main "$@"
diff --git a/airootfs/usr/local/bin/calamares-online.sh b/airootfs/usr/local/bin/calamares-online.sh
new file mode 100755
index 0000000..8628de1
--- /dev/null
+++ b/airootfs/usr/local/bin/calamares-online.sh
@@ -0,0 +1,99 @@
+#!/bin/bash
+
+FollowFile() {
+ local tailfile="$1"
+ local term_title="$2"
+
+ alacritty -t "$term_title" -e tail -f "$tailfile" &
+}
+
+catch_chrooted_pacman_log() {
+ local pacmanlog=""
+ local lockfile="$HOME/.$1.lck"
+
+ # wait until pacman.log is available in the chrooted system, then follow the log in background
+ while true ; do
+ sleep 2
+ pacmanlog="$(/usr/bin/ls -1 /tmp/calamares-root-*/var/log/pacman.log 2>/dev/null | /usr/bin/tail -n 1)"
+ if [ -n "$pacmanlog" ] ; then
+ # pacman.log found
+ [ -r "$lockfile" ] && return
+ /usr/bin/touch "$lockfile"
+ FollowFile "$pacmanlog" "Pacman log" 400 50
+ break
+ fi
+ done
+}
+
+Main() {
+ local progname
+ progname="$(basename "$0")"
+ local log=/home/liveuser/melawy-install.log
+ local mode=""
+
+ case "$progname" in
+ calamares-online.sh) mode=online ;;
+ calamares-offline.sh) mode=offline ;;
+ esac
+ mode=online # keep this line for now!
+
+ local _efi_check_dir="/sys/firmware/efi"
+ local _exitcode=2 # by default use grub
+
+ local SYSTEM=""
+ local BOOTLOADER=""
+ if [ -d "${_efi_check_dir}" ]; then
+ SYSTEM="UEFI SYSTEM"
+
+ # Restrict bootloader selection to only UEFI systems
+ _exitcode=$(yad --width 300 --title "Bootloader" \
+ --image=gnome-shutdown \
+ --button="Grub:2" \
+ --button="Systemd-boot:3" \
+ --button="Refind:4" \
+ --text "Choose Bootloader:" ; echo $?)
+ else
+ SYSTEM="BIOS/MBR SYSTEM"
+ fi
+
+
+ if [[ "${_exitcode}" -eq 2 ]]; then
+ BOOTLOADER="GRUB"
+ echo "USING GRUB!"
+ yes | sudo pacman -R cachyos-calamares-systemd
+ yes | sudo pacman -R cachyos-calamares-grub
+ yes | sudo pacman -R cachyos-calamares-refind
+ yes | sudo pacman -Sy cachyos-calamares-grub
+ elif [[ "${_exitcode}" -eq 3 ]]; then
+ BOOTLOADER="SYSTEMD-BOOT"
+ echo "USING SYSTEMD-BOOT!"
+ yes | sudo pacman -R cachyos-calamares-grub
+ yes | sudo pacman -R cachyos-calamares-refind
+ yes | sudo pacman -Sy cachyos-calamares-systemd
+ elif [[ "${_exitcode}" -eq 4 ]]; then
+ BOOTLOADER="REFIND"
+ echo "USING REFIND!"
+ yes | sudo pacman -R cachyos-calamares-grub
+ yes | sudo pacman -R cachyos-calamares-systemd
+ yes | sudo pacman -Sy cachyos-calamares-refind
+ else
+ exit
+ fi
+
+ cat < $log
+########## $log by $progname
+########## Started (UTC): $(date -u "+%x %X")
+########## Install mode: $mode
+########## System: $SYSTEM
+########## Bootloader: $BOOTLOADER
+EOF
+ FollowFile "$log" "Install log" 20 20
+
+ sudo cp /usr/share/calamares/settings_${mode}.conf /etc/calamares/settings.conf
+ sudo -E dbus-launch calamares -D6 >> $log &
+
+ # comment out the following line if pacman.log is not needed:
+ [ "$mode" = "online" ] && catch_chrooted_pacman_log "$progname"
+}
+
+Main "$@"
diff --git a/airootfs/usr/local/bin/choose-mirror b/airootfs/usr/local/bin/choose-mirror
index b021945..d2349de 100755
--- a/airootfs/usr/local/bin/choose-mirror
+++ b/airootfs/usr/local/bin/choose-mirror
@@ -4,21 +4,22 @@
get_cmdline() {
local param
- for param in $(< /proc/cmdline); do
+ for param in $(/etc/pacman.d/mirrorlist << EOF
+cat >/etc/pacman.d/mirrorlist < /dev/null ; then
- ln -sf /usr/lib/systemd/system/sddm.service /etc/systemd/system/display-manager.service
-fi
-package=gdm
-if pacman -Qs $package > /dev/null ; then
- ln -sf /usr/lib/systemd/system/gdm.service /etc/systemd/system/display-manager.service
-fi
-package=lxdm
-if pacman -Qs $package > /dev/null ; then
- ln -sf /usr/lib/systemd/system/lxdm.service /etc/systemd/system/display-manager.service
-fi
-package=lightdm
-if pacman -Qs $package > /dev/null ; then
- ln -sf /usr/lib/systemd/system/lightdm.service /etc/systemd/system/display-manager.service
-fi
diff --git a/airootfs/usr/local/bin/alci-displaymanager-check b/airootfs/usr/local/bin/dmcheck
similarity index 67%
rename from airootfs/usr/local/bin/alci-displaymanager-check
rename to airootfs/usr/local/bin/dmcheck
index 916547f..8957714 100755
--- a/airootfs/usr/local/bin/alci-displaymanager-check
+++ b/airootfs/usr/local/bin/dmcheck
@@ -1,33 +1,42 @@
-#!/bin/bash
+#!/usr/bin/env bash
#set -e
###############################################################################
-# Author : Erik Dubois
-# Website : https://www.erikdubois.be
-# Website : https://www.arcolinux.info
-# Website : https://www.arcolinux.com
-# Website : https://www.arcolinuxd.com
-# Website : https://www.arcolinuxb.com
-# Website : https://www.arcolinuxiso.com
-# Website : https://www.arcolinuxforum.com
+# Author : Valeria Fadeeva
+# Website : https://valeria.fadeeva.me
+# Website : https://fadeeva.me
+# Website : https://melawy.ru
###############################################################################
#
# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
#
###############################################################################
+package=ly
+if pacman -Qs $package > /dev/null ; then
+ ln -sf /usr/lib/systemd/system/ly.service /etc/systemd/system/display-manager.service
+fi
+
package=sddm
if pacman -Qs $package > /dev/null ; then
ln -sf /usr/lib/systemd/system/sddm.service /etc/systemd/system/display-manager.service
fi
+
package=gdm
if pacman -Qs $package > /dev/null ; then
ln -sf /usr/lib/systemd/system/gdm.service /etc/systemd/system/display-manager.service
fi
+
package=lxdm
if pacman -Qs $package > /dev/null ; then
ln -sf /usr/lib/systemd/system/lxdm.service /etc/systemd/system/display-manager.service
fi
+
package=lightdm
if pacman -Qs $package > /dev/null ; then
ln -sf /usr/lib/systemd/system/lightdm.service /etc/systemd/system/display-manager.service
fi
+
+echo "#################################"
+echo "End displaymanager-check"
+echo "#################################"
+rm /usr/local/bin/dmcheck
diff --git a/airootfs/usr/local/bin/fsprogschk b/airootfs/usr/local/bin/fsprogschk
new file mode 100755
index 0000000..b21cf4c
--- /dev/null
+++ b/airootfs/usr/local/bin/fsprogschk
@@ -0,0 +1,29 @@
+#!/bin/bash
+#set -e
+
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+BLUE='\033[0;34m'
+NC='\033[0m'
+
+###############################################################################
+# Author : Valeria Fadeeva
+# Website : https://valeria.fadeeva.me
+# Website : https://fadeeva.me
+# Website : https://melawy.ru
+###############################################################################
+
+if lsblk -f | grep -q "btrfs"; then
+ echo -e "${GREEN}BTRFS partitions found. Removing XFS-Progs.${NC}"
+ echo
+ sudo pacman -Rdd --noconfirm xfsprogs
+elif lsblk -f | grep -q "xfs"; then
+ echo -e "${RED}XFS partitions found. Removing BTRFS-Progs.${NC}"
+ echo
+ sudo pacman -Rdd --noconfirm btrfs-progs
+else
+ echo -e "${BLUE}No XFS or BTRFS partitions found. Removing both Progs Packages.${NC}"
+ sudo pacman -Rdd --noconfirm xfsprogs btrfs-progs
+fi
+
+rm /usr/local/bin/fsprogschk
diff --git a/airootfs/usr/local/bin/get-nemesis-on-alci b/airootfs/usr/local/bin/get-nemesis-on-alci
deleted file mode 100755
index d0ec56b..0000000
--- a/airootfs/usr/local/bin/get-nemesis-on-alci
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-#set -e
-##################################################################################################################
-# Author : Erik Dubois
-# Website : https://www.erikdubois.be
-# Website : https://www.alci.online
-# Website : https://www.arcolinux.info
-# Website : https://www.arcolinux.com
-# Website : https://www.arcolinuxd.com
-# Website : https://www.arcolinuxb.com
-# Website : https://www.arcolinuxiso.com
-# Website : https://www.arcolinuxforum.com
-##################################################################################################################
-#
-# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
-#
-##################################################################################################################
-#tput setaf 0 = black
-#tput setaf 1 = red
-#tput setaf 2 = green
-#tput setaf 3 = yellow
-#tput setaf 4 = dark blue
-#tput setaf 5 = purple
-#tput setaf 6 = cyan
-#tput setaf 7 = gray
-#tput setaf 8 = light blue
-##################################################################################################################
-
-#iso=alci-iso-hardened
-
-echo
-tput setaf 3
-echo "################################################################"
-echo "################### Start clone arcolinux-nemesis"
-echo "################################################################"
-tput sgr0
-echo
-
-sudo pacman -Sy git --noconfirm --needed
-
-[ -d $HOME"/DATA" ] || mkdir -p $HOME"/DATA"
-cd ~/DATA
-git clone https://github.com/erikdubois/arcolinux-nemesis
-
-echo
-tput setaf 3
-echo "################################################################"
-echo "################### End clone arcolinux-nemesis"
-echo "################################################################"
-tput sgr0
-echo
\ No newline at end of file
diff --git a/airootfs/usr/bin/melawy-linux-connection-checker b/airootfs/usr/local/bin/melawy-linux-connection-checker
similarity index 100%
rename from airootfs/usr/bin/melawy-linux-connection-checker
rename to airootfs/usr/local/bin/melawy-linux-connection-checker
diff --git a/airootfs/usr/local/bin/melawy-linux-final b/airootfs/usr/local/bin/melawy-linux-final
new file mode 100755
index 0000000..c121b0b
--- /dev/null
+++ b/airootfs/usr/local/bin/melawy-linux-final
@@ -0,0 +1,59 @@
+#!/bin/bash
+echo
+echo "#################################"
+echo "Start melawy-linux-final"
+echo "#################################"
+
+echo "Permissions of important folders"
+echo "#################################"
+chmod 750 /etc/sudoers.d
+chmod 750 /etc/polkit-1/rules.d
+chgrp polkitd /etc/polkit-1/rules.d
+
+echo "Copy /etc/skel to /root"
+echo "#################################"
+cp -aT /etc/skel/ /root/
+
+echo "Cleanup autologin root"
+echo "#################################"
+rm -rf /etc/systemd/system/getty@tty1.service.d
+
+echo "Setting editor to nano"
+echo "#################################"
+echo "EDITOR=nano" >> /etc/profile
+
+#Original cleanup
+echo "Cleanup original files"
+echo "#################################"
+rm -f /etc/sudoers.d/g_wheel
+rm -f /etc/polkit-1/rules.d/49-nopasswd_global.rules
+rm -f /etc/systemd/system/etc-pacman.d-gnupg.mount
+rm -f /etc/xdg/autostart/welcome.desktop
+rm /root/{.automated_script.sh,.zlogin}
+mv /etc/melawy-linux-release /etc/lsb-release
+
+echo "Permission of root"
+echo "#################################"
+chmod -v 750 /root
+
+echo "Patching System.conf"
+echo "#################################"
+sed -i "s/#RebootWatchdogSec=10min/RebootWatchdogSec=30s/g" /etc/systemd/system.conf
+sed -i "s/#DefaultTimeoutStopSec=90s/DefaultTimeoutStopSec=5s/g" /etc/systemd/system.conf
+sed -i "s/#DefaultTimeoutStartSec=90s/DefaultTimeoutStartSec=10s/g" /etc/systemd/system.conf
+
+echo "Setting KGPg Never to start"
+echo "#################################"
+sed -i '219 i OnlyShowIn=KDE' /etc/xdg/autostart/org.kde.kgpg.desktop
+
+echo "Fixing SDDM.conf User"
+echo "#####################"
+sed -i "s/User=liveuser/User=/g" /etc/sddm.conf.d/kde_settings.conf
+
+echo "#################################"
+echo "End melawy-linux-final"
+echo "#################################"
+rm /usr/local/bin/vcheck
+rm /usr/local/bin/all-cores
+rm /usr/local/bin/melawy-linux-final
+rm -rf /home/liveuser/
diff --git a/airootfs/usr/local/bin/prepare-live-desktop.sh b/airootfs/usr/local/bin/prepare-live-desktop.sh
new file mode 100755
index 0000000..2b35714
--- /dev/null
+++ b/airootfs/usr/local/bin/prepare-live-desktop.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+# borrowed from manjaro livecd
+
+xdg=$(xdg-user-dir DESKTOP)
+src='/usr/share/applications'
+
+## We don't need .desktop on desktop,
+## actually we should remove .desktop or fix the .desktop as it is running with pkexec,
+## and using current calamares config (not even running with script to provide logs).
+#if [[ -f /usr/bin/calamares ]]; then
+# install -Dm755 $src/calamares.desktop \
+# $xdg/calamares.desktop
+#fi
+
+# workaround for glib trash bug (https://bugzilla.gnome.org/show_bug.cgi?id=748248)
+userid=$(id -u $USER)
+if [ ! -d "/.Trash-$userid" ]; then
+ sudo mkdir -p /.Trash-$userid/{expunged,files,info}
+ sudo chown -R $userid /.Trash-$userid
+fi
+
+# mark launchers trusted for XFCE 4.18
+for f in $(ls $xdg/*desktop); do
+ gio set -t string $f metadata::xfce-exe-checksum "$(sha256sum $f | awk '{print $1}')"
+done;
diff --git a/airootfs/usr/local/bin/remove-nvidia b/airootfs/usr/local/bin/remove-nvidia
new file mode 100755
index 0000000..88f79b4
--- /dev/null
+++ b/airootfs/usr/local/bin/remove-nvidia
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+_remove_pacman_package() {
+ local _pkgname="$1"
+ pacman -Rsnc "$_pkgname" --noconfirm || true
+}
+
+# remove pkgs installed for VMs
+_clean_vm_packages() {
+
+ #remove virtualbox
+ if pacman -Qi virtualbox-guest-utils &> /dev/null; then
+ systemctl disable vboxservice.service
+ _remove_pacman_package virtualbox-guest-utils
+ fi
+
+ if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then
+ systemctl disable vboxservice.service
+ _remove_pacman_package virtualbox-guest-utils-nox
+ fi
+
+ #remove vmware
+ if [ -f /etc/xdg/autostart/vmware-user.desktop ]; then
+ rm /etc/xdg/autostart/vmware-user.desktop
+ fi
+
+ if pacman -Qi open-vm-tools &> /dev/null; then
+ systemctl disable vmtoolsd.service
+ _remove_pacman_package open-vm-tools
+ fi
+
+ if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then
+ rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service
+ fi
+
+ #remove qemu
+ if pacman -Qi qemu-guest-agent &> /dev/null; then
+ systemctl disable qemu-guest-agent.service
+ _remove_pacman_package qemu-guest-agent
+ fi
+}
+
+_check_not_running_vm="$(systemd-detect-virt | grep -q 'none'; echo $?)"
+if [[ "${_check_not_running_vm}" -eq 0 ]]; then
+ _clean_vm_packages
+fi
+
+# vim:set ft=bash sw=2 sts=2 et:
diff --git a/airootfs/usr/local/bin/removeun b/airootfs/usr/local/bin/removeun
new file mode 100755
index 0000000..5154a85
--- /dev/null
+++ b/airootfs/usr/local/bin/removeun
@@ -0,0 +1,60 @@
+#!/bin/bash
+#set -e
+
+_clean_files() {
+local _files_to_remove=(
+ /etc/modprobe.d/nvidia-utils.conf
+ /etc/modules-load.d/nvidia-utils.conf
+ /usr/local/bin/choose-mirror
+ /usr/local/bin/prepare-live-desktop.sh
+ /usr/local/bin/removeun-online
+ /usr/local/share/livecd-sound
+)
+
+ local xx
+ for xx in "${_files_to_remove[@]}"; do rm -rf "$xx" || true; done
+}
+
+_clean_packages() {
+local _packages_to_remove=(
+ gparted
+ grsync
+ cachyos-calamares-grub
+ cachyos-calamares-systemd
+ cachyos-calamares-refind
+ cachyos-calamares
+ cachyos-calamares-config
+ edk2-shell
+ boost-libs
+ doxygen
+ expect
+ gpart
+ tcpdump
+ arch-install-scripts
+ squashfs-tools
+ extra-cmake-modules
+ cmake
+ elinks
+ yaml-cpp
+ syslinux
+ clonezilla
+ memtest86+
+ mkinitcpio-archiso
+)
+
+ local _check_nvidia_card="$(chwd --is_nvidia_card | grep -q 'NVIDIA card found!'; echo $?)"
+ if [[ "${_check_nvidia_card}" -ne 0 ]]; then
+ echo "No NVIDIA card detected. Removing nvidia drivers"
+ _packages_to_remove+=(nvidia-dkms nvidia-utils egl-wayland)
+ fi
+
+ local xx
+ # @ does one by one to avoid errors in the entire process
+ # taken from Erik Dubois script
+ for xx in "${_packages_to_remove[@]}"; do pacman -Rsnc "$xx" --noconfirm; done
+}
+
+_clean_packages
+_clean_files
+
+# vim:set ft=bash sw=2 sts=2 et:
diff --git a/airootfs/usr/local/bin/removeun-online b/airootfs/usr/local/bin/removeun-online
new file mode 100755
index 0000000..a1df016
--- /dev/null
+++ b/airootfs/usr/local/bin/removeun-online
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+_clean_packages() {
+ local _leave_these_packages="base\nbase-devel\ncachyos-keyring\ncachyos-hello\ngrub\nefibootmgr\noctopi\nca-certificates\n"
+ local _leave_these_basepackages="filesystem\ngcc-libs\nglibc\nglib2\nbash\ncoreutils\nfile\nfindutils\ngawk\ngrep\nprocps-ng\nsed\ntar\ngettext\npciutils\npsmisc\nshadow\nutil-linux\nbzip2\ngzip\nxz\nlicenses\npacman\nsystemd\nsystemd-sysvcompat\niputils\niproute2\n"
+ local _packages_to_remove=($(comm -23 <(pacman -Qq | sort) <({ pacman -Qqg base-devel; pacman -Qqg cachyos; printf $_leave_these_packages; printf $_leave_these_basepackages; } | sort -u)))
+ local xx
+ # @ does one by one to avoid errors in the entire process
+ # * can be used to treat all packages in one command
+ for xx in "${_packages_to_remove[@]}"; do pacman -Rs "$xx" --noconfirm; done
+
+ # making sure they are removed
+# local _toberemoved_str=$'bash-completion\nxorg-xinit\nxorg-xkill\nxorg-xinput\nxorg-xrandr\nxorg-xrdb\nmkinitcpio-openswap\nalacritty\nkonsole\nkwin-scripts-forceblur\nnetworkmanager-vpnc\nnetworkmanager-qt\nnetworkmanager-openvpn\nwireguard-tools\nopenconnect\nopenvpn\nqt5-xmlpatterns\ndoxygen\ntcpdump\ndmidecode\nkparts\npolkit-qt5\nxorg-server\nxorg-apps\nqt5-tools\nzfs-utils\nlinux-cachyos-zfs\nwget\nvirtualbox-guest-utils\nxf86-video-vesa\nxf86-video-amdgpu\nxf86-video-intel\nnvidia-dkms\nnvidia-utils\nlightdm\nlightdm-gtk-greeter\nlightdm-webkit2-greeter\nbase-devel\nlinux-cachyos-headers\nplasma-browser-integration\nplasma-desktop\nplasma-firewall\nplasma-framework\nplasma-integration\nplasma-nm\nplasma-pa\nplasma-systemmonitor\nplasma-thunderbolt\nplasma-workspace\ndiscover\npackagekit-qt5\nxed\nparole\nristretto\ndolphin\ndolphin-plugins\ncapitaine-cursors\ngtk-engine-murrine\ngnome-themes-extra\nadwaita-icon-theme\nfile-roller\nlibwnck3\nnetwork-manager-applet\ngalculator\ncachy-browser\nkvantum-qt5\nqt5ct\nneofetch\nopen-vm-tools\nxf86-input-vmmouse\nxf86-video-vmware\ncachyos-kde-settings\ncachyos-picom-config\ncachyos-rate-mirrors\ncachyos-kernel-manager\nchwd\noctopi\nreflector-simple\nmeld\nparu\nnordic-theme-git\nlightly-git\ncachyos-nord-kde-theme-git\nchar-white'
+# local _toberemoved_packages
+# readarray -t _toberemoved_packages <<< "$_toberemoved_str"
+# local xxx
+# for xxx in "${_toberemoved_packages[@]}"; do pacman -Rs "$xxx" --noconfirm; done
+
+ rm /etc/sddm.conf || true
+}
+
+_pacman_fix() {
+
+pacman-key --init
+pacman-key --populate cachyos
+}
+
+_try_v3() {
+ /lib/ld-linux-x86-64.so.2 --help | grep "x86-64-v3 (supported, searched)" > /dev/null
+
+ local pacman_conf="/etc/pacman.conf"
+ local pacman_conf_cachyos="/etc/pacman-more.conf"
+ local pacman_conf_path_backup="/etc/pacman.conf.bak"
+
+ if [ $? -eq 0 ]; then
+ echo "x86-64-v3 is supported"
+
+ sed -i 's/Architecture = auto/#Architecture = auto/' $pacman_conf_cachyos
+ sed -i 's/#//g' $pacman_conf_cachyos
+
+ echo "backup old config"
+ mv $pacman_conf $pacman_conf_path_backup
+
+ echo "CachyOS -v3 Repo changed"
+ mv $pacman_conf_cachyos $pacman_conf
+
+ else
+ echo "x86-64-v3 is not supported"
+ fi
+
+}
+
+_clean_packages
+_try_v3
+_pacman_fix
diff --git a/airootfs/usr/local/bin/services b/airootfs/usr/local/bin/services
new file mode 100755
index 0000000..0efa4e5
--- /dev/null
+++ b/airootfs/usr/local/bin/services
@@ -0,0 +1,19 @@
+#!/bin/bash
+echo
+echo "#################################"
+echo "Start Services"
+echo "#################################"
+
+echo "Permission of root"
+echo "#################################"
+chmod -v 750 /root
+
+echo "Bluetooth improvements"
+echo "#################################"
+sed -i "s/#AutoEnable=false/AutoEnable=true/g" /etc/bluetooth/main.conf
+echo 'load-module module-switch-on-connect' | sudo tee --append /etc/pulse/default.pa
+
+echo "#################################"
+echo "End melawy-linux-final"
+echo "#################################"
+rm /usr/local/bin/services
diff --git a/airootfs/usr/local/bin/skel b/airootfs/usr/local/bin/skel
new file mode 100755
index 0000000..892bc9b
--- /dev/null
+++ b/airootfs/usr/local/bin/skel
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+echo
+echo "#################################"
+echo "Moving content from skel"
+echo "#################################"
+
+for i in `ls /home/`; do su -s "/bin/bash" -c "cp -aT /etc/skel/ /home/$i/" $i || exit 0; done
+rm /usr/local/bin/skel
\ No newline at end of file
diff --git a/airootfs/usr/local/bin/ucode b/airootfs/usr/local/bin/ucode
new file mode 100755
index 0000000..0e9b404
--- /dev/null
+++ b/airootfs/usr/local/bin/ucode
@@ -0,0 +1,23 @@
+#!/bin/bash
+#set -e
+###############################################################################
+# Author : Valeria Fadeeva
+# Website : https://valeria.fadeeva.me
+# Website : https://fadeeva.me
+# Website : https://melawy.ru
+###############################################################################
+
+cpu_vendor=$(cat /proc/cpuinfo | awk '/vendor_id/ {print $3}' | head -n 1)
+
+if [[ "$cpu_vendor" == "GenuineIntel" ]]; then
+ echo "Intel CPU detected."
+ sudo pacman -Rdd --noconfirm amd-ucode
+elif [[ "$cpu_vendor" == "AuthenticAMD" ]]; then
+ echo "AMD CPU detected."
+ sudo pacman -Rdd --noconfirm intel-ucode
+else
+ echo "Unknown CPU vendor: $cpu_vendor"
+ sudo pacman -Rdd --noconfirm intel-ucode amd-ucode
+fi
+
+rm /usr/local/bin/ucode
diff --git a/airootfs/usr/local/bin/vcheck b/airootfs/usr/local/bin/vcheck
new file mode 100755
index 0000000..8fb756a
--- /dev/null
+++ b/airootfs/usr/local/bin/vcheck
@@ -0,0 +1,151 @@
+#!/bin/bash
+#set -e
+###############################################################################
+# Author : Valeria Fadeeva
+# Website : https://valeria.fadeeva.me
+# Website : https://fadeeva.me
+# Website : https://melawy.ru
+###############################################################################
+#
+# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
+#
+###############################################################################
+
+result=$(systemd-detect-virt)
+
+while [ -e "/var/lib/pacman/db.lck" ];
+do
+ echo 'Pacman is not ready yet. Will try again in 5 seconds.'
+ seconds=$(($seconds + 5))
+ sleep 5
+ if [[ "$seconds" == "30" ]]; then
+ echo 'Warning: removing pacman db.lck!'
+ rm /var/lib/pacman/db.lck
+ fi
+done
+
+echo "You are working on "$result
+
+if [ $result = "oracle" ];
+ then
+ #remove vmware
+ if pacman -Qi open-vm-tools &> /dev/null; then
+ systemctl disable vmtoolsd.service
+ echo "Disabled vmtoolsd.service"
+ pacman -Rns open-vm-tools --noconfirm
+ echo "Removed open-vm-tools"
+ fi
+
+ if pacman -Qi xf86-video-vmware &> /dev/null; then
+ pacman -Rns xf86-video-vmware --noconfirm
+ echo "Removed xf86-video-vmware"
+ fi
+
+ if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then
+ rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service
+ echo "Removed vmtoolsd.service if still exists"
+ fi
+
+ #remove qemu
+ if pacman -Qi qemu-guest-agent &> /dev/null; then
+ systemctl disable qemu-guest-agent.service
+ pacman -Rns qemu-guest-agent --noconfirm
+ echo "Removed qemu-guest-agent"
+ fi
+fi
+
+if [ $result = "kvm" ];
+ then
+ #remove vmware
+ if pacman -Qi open-vm-tools &> /dev/null; then
+ systemctl disable vmtoolsd.service
+ echo "Disabled vmtoolsd.service"
+ pacman -Rns open-vm-tools --noconfirm
+ echo "Removed open-vm-tools"
+ fi
+
+ if pacman -Qi xf86-video-vmware &> /dev/null; then
+ pacman -Rns xf86-video-vmware --noconfirm
+ echo "Removed xf86-video-vmware"
+ fi
+
+ if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then
+ rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service
+ echo "Removed vmtoolsd.service if still exists"
+ fi
+
+ #remove virtualbox
+ if pacman -Qi virtualbox-guest-utils &> /dev/null; then
+ systemctl disable vboxservice.service
+ pacman -Rns virtualbox-guest-utils --noconfirm
+ echo "Removed virtualbox-guest-utils"
+ fi
+ if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then
+ systemctl disable vboxservice.service
+ pacman -Rns virtualbox-guest-utils-nox --noconfirm
+ echo "Removed virtualbox-guest-utils-nox"
+ fi
+fi
+
+if [ $result = "vmware" ];
+ then
+ #remove virtualbox
+ if pacman -Qi virtualbox-guest-utils &> /dev/null; then
+ systemctl disable vboxservice.service
+ pacman -Rns virtualbox-guest-utils --noconfirm
+ echo "Removed virtualbox-guest-utils"
+ fi
+ if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then
+ systemctl disable vboxservice.service
+ pacman -Rns virtualbox-guest-utils-nox --noconfirm
+ echo "Removed virtualbox-guest-utils-nox"
+ fi
+
+ #remove qemu
+ if pacman -Qi qemu-guest-agent &> /dev/null; then
+ systemctl disable qemu-guest-agent.service
+ pacman -Rns qemu-guest-agent --noconfirm
+ echo "Removed qemu-guest-agent"
+ fi
+fi
+
+if [ $result = "none" ];
+ then
+ #remove virtualbox
+ if pacman -Qi virtualbox-guest-utils &> /dev/null; then
+ systemctl disable vboxservice.service
+ pacman -Rns virtualbox-guest-utils --noconfirm
+ echo "Removed virtualbox-guest-utils"
+ fi
+
+ if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then
+ systemctl disable vboxservice.service
+ pacman -Rns virtualbox-guest-utils-nox --noconfirm
+ echo "Removed virtualbox-guest-utils-nox"
+ fi
+
+ #remove vmware
+ if pacman -Qi open-vm-tools &> /dev/null; then
+ systemctl disable vmtoolsd.service
+ echo "Disabled vmtoolsd.service"
+ pacman -Rns open-vm-tools --noconfirm
+ echo "Removed open-vm-tools"
+ fi
+
+ if pacman -Qi xf86-video-vmware &> /dev/null; then
+ pacman -Rns xf86-video-vmware --noconfirm
+ echo "Removed xf86-video-vmware"
+ fi
+
+ if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then
+ rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service
+ echo "Removed vmtoolsd.service if still exists"
+ fi
+
+ #remove qemu
+ if pacman -Qi qemu-guest-agent &> /dev/null; then
+ systemctl disable qemu-guest-agent.service
+ pacman -Rns qemu-guest-agent --noconfirm
+ echo "Removed qemu-guest-agent"
+ fi
+fi
diff --git a/airootfs/usr/share/logos/melawy.png b/airootfs/usr/share/logos/melawy.png
new file mode 100644
index 0000000..cb94626
Binary files /dev/null and b/airootfs/usr/share/logos/melawy.png differ
diff --git a/airootfs/usr/share/pixmaps/melawylinux.png b/airootfs/usr/share/pixmaps/melawylinux.png
new file mode 100644
index 0000000..cb94626
Binary files /dev/null and b/airootfs/usr/share/pixmaps/melawylinux.png differ
diff --git a/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/fenek.png b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/fenek.png
new file mode 100644
index 0000000..d501b9d
Binary files /dev/null and b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/fenek.png differ
diff --git a/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/lera-sugar.png b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/lera-sugar.png
new file mode 100644
index 0000000..fafb0de
Binary files /dev/null and b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/lera-sugar.png differ
diff --git a/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/nier-a2.png b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/nier-a2.png
new file mode 100644
index 0000000..6ed5499
Binary files /dev/null and b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/nier-a2.png differ
diff --git a/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/splash.png b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/splash.png
new file mode 100644
index 0000000..6ed5499
Binary files /dev/null and b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/splash.png differ
diff --git a/mkarchiso_last_my b/mkarchiso_last_my
index 16f4161..5da3ce5 100755
--- a/mkarchiso_last_my
+++ b/mkarchiso_last_my
@@ -29,6 +29,7 @@ gpg_key=""
gpg_sender=""
iso_name=""
iso_label=""
+iso_uuid=""
iso_publisher=""
iso_application=""
iso_version=""
@@ -38,6 +39,7 @@ pacman_conf=""
packages=""
bootstrap_packages=""
pacstrap_dir=""
+declare -i rm_work_dir=0
buildmodes=()
bootmodes=()
airootfs_image_type=""
@@ -49,6 +51,7 @@ efiboot_files=()
# adapted from GRUB_EARLY_INITRD_LINUX_STOCK in https://git.savannah.gnu.org/cgit/grub.git/tree/util/grub-mkconfig.in
readonly ucodes=('intel-uc.img' 'intel-ucode.img' 'amd-uc.img' 'amd-ucode.img' 'early_ucode.cpio' 'microcode.cpio')
+
# Show an INFO message
# $1: message string
_msg_info() {
@@ -85,7 +88,7 @@ usage: ${app_name} [options]
Default: '${iso_application}'
-C pacman configuration file.
Default: '${pacman_conf}'
- -D Set an install_dir. All files will by located here.
+ -D Set an install_dir. All files will be located here.
Default: '${install_dir}'
NOTE: Max 8 characters, use only [a-z0-9]
-L