Added XFCE ISO profile

This commit is contained in:
adi1090x 2022-10-07 11:49:14 +05:30
parent d8b37a6379
commit d78b5b8e8d
89 changed files with 3195 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
# Work Directory
/profile/work
# ISO Directory
/profile/out

View File

@ -0,0 +1,6 @@
Section "InputClass"
Identifier "tap-by-default"
MatchIsTouchpad "on"
MatchDriver "libinput"
Option "Tapping" "on"
EndSection

View File

@ -0,0 +1,8 @@
#
# This file is parsed by pam_env module
#
# Syntax: simple "KEY=VAL" pairs on separate lines
#
QT_QPA_PLATFORMTHEME=qt5ct
EDITOR=nano
BROWSER=firefox

View File

@ -0,0 +1,18 @@
root:x:0:root
sys:x:3:bin,liveuser
network:x:90:liveuser
power:x:98:liveuser
adm:x:999:liveuser
lp:x:992:liveuser
wheel:x:998:liveuser
uucp:x:987:liveuser
optical:x:990:liveuser
scanner:x:991: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:

View File

@ -0,0 +1,18 @@
root:::root
sys:!!::liveuser
network:!!::liveuser
power:!!::liveuser
adm:!!::liveuser
lp:!!::liveuser
wheel:!!::liveuser
uucp:!!::liveuser
optical:!!::liveuser
scanner:!!::liveuser
rfkill:!!::liveuser
video:!!::liveuser
storage:!!::liveuser
audio:!!::liveuser
users:!!::liveuser
nopasswdlogin:!::liveuser
autologin:!::liveuser
liveuser:!::

View File

@ -0,0 +1 @@
archcraft

View File

@ -0,0 +1 @@
LANG=C.UTF-8

View File

@ -0,0 +1 @@
/usr/share/zoneinfo/UTC

View File

@ -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=(i915? amdgpu? radeon? nvidia? nouveau? vboxvideo? vmwgfx?)
# 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 plymouth archiso archiso_loop_mnt archiso_kms modconf 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=()

View File

@ -0,0 +1,8 @@
# mkinitcpio preset file for the 'linux' package on archiso
PRESETS=('archiso')
ALL_kver='/boot/vmlinuz-linux'
ALL_config='/etc/mkinitcpio.conf'
archiso_image="/boot/initramfs-linux.img"

View File

@ -0,0 +1,7 @@
# The broadcom-wl package requires some modules to be disabled in order to use
# wl. Since the ISO image needs to cover many hardware cases, this file
# overrides the default blacklist in /usr/lib/modprobe.d/
#
# If you need to use wl, you may need to delete this file, then `rmmod` any
# already-loaded modules that are now blacklisted before proceeding to modprobe
# wl itself.

View File

@ -0,0 +1,9 @@
Welcome to Archcraft!
Home: https://archcraft.io
Wiki: https://wiki.archcraft.io
Developed By: Aditya Shakya <http://www.github.com/adi1090x>
       

View File

@ -0,0 +1,13 @@
# remove from airootfs!
[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

View File

@ -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/)"

View File

@ -0,0 +1,2 @@
root:x:0:0:root:/root:/usr/bin/zsh
liveuser:x:1000:1000::/home/liveuser:/usr/bin/zsh

View File

@ -0,0 +1,14 @@
[udisks1]
Identity=unix-group:storage
Action=org.freedesktop.udisks.filesystem-mount;org.freedesktop.udisks.luks-unlock;org.freedesktop.udisks.drive-eject;org.freedesktop.udisks.drive-detach
ResultAny=yes
[udisks2]
Identity=unix-group:storage
Action=org.freedesktop.udisks2.filesystem-mount;org.freedesktop.udisks2.encrypted-unlock;org.freedesktop.udisks2.eject-media;org.freedesktop.udisks2.power-off-drive
ResultAny=yes
[udisks2-other-seat]
Identity=unix-group:storage
Action=org.freedesktop.udisks2.filesystem-mount-other-seat;org.freedesktop.udisks2.filesystem-unmount-others;org.freedesktop.udisks2.encrypted-unlock-other-seat;org.freedesktop.udisks2.eject-media-other-seat;org.freedesktop.udisks2.power-off-drive-other-seat
ResultAny=yes

View File

@ -0,0 +1,5 @@
polkit.addRule(function(action, subject) {
if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("network")) {
return polkit.Result.YES;
}
});

View File

@ -0,0 +1,25 @@
polkit.addRule(function(action, subject) {
var YES = polkit.Result.YES;
// NOTE: there must be a comma at the end of each line except for the last:
var permission = {
// required for udisks1:
"org.freedesktop.udisks.filesystem-mount": YES,
"org.freedesktop.udisks.luks-unlock": YES,
"org.freedesktop.udisks.drive-eject": YES,
"org.freedesktop.udisks.drive-detach": YES,
// required for udisks2:
"org.freedesktop.udisks2.filesystem-mount": YES,
"org.freedesktop.udisks2.encrypted-unlock": YES,
"org.freedesktop.udisks2.eject-media": YES,
"org.freedesktop.udisks2.power-off-drive": YES,
// required for udisks2 if using udiskie from another seat (e.g. systemd):
"org.freedesktop.udisks2.filesystem-mount-other-seat": YES,
"org.freedesktop.udisks2.filesystem-unmount-others": YES,
"org.freedesktop.udisks2.encrypted-unlock-other-seat": YES,
"org.freedesktop.udisks2.eject-media-other-seat": YES,
"org.freedesktop.udisks2.power-off-drive-other-seat": YES
};
if (subject.isInGroup("storage")) {
return permission[action.id];
}
});

View File

@ -0,0 +1,8 @@
polkit.addRule(function(action, subject) {
if ((action.id == "org.freedesktop.udisks2.filesystem-mount-system" ||
action.id == "org.freedesktop.udisks.filesystem-mount-system-internal") &&
subject.local && subject.active && subject.isInGroup("users"))
{
return polkit.Result.YES;
}
});

View File

@ -0,0 +1,7 @@
polkit.addRule(function(action, subject) {
if (/^org\.freedesktop\.udisks\./.test(action.id)
&& subject.isInGroup("wheel"))
{
return polkit.Result.YES;
}
});

View File

@ -0,0 +1,10 @@
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.udisks.filesystem-mount") {
if (subject.isInGroup("wheel"))
return polkit.Result.YES;
else
return polkit.Result.AUTH_ADMIN_KEEP;
} else if (/^org\.freedesktop\.udisks\./.test(action.id)) {
return polkit.Result.AUTH_ADMIN_KEEP;
}
});

View File

@ -0,0 +1 @@
/run/systemd/resolve/stub-resolv.conf

View File

@ -0,0 +1,38 @@
[General]
InputMethod=
Namespaces=
Numlock=on
[Theme]
DisableAvatarsThreshold=7
EnableAvatars=true
FacesDir=/usr/share/sddm/faces
ThemeDir=/usr/share/sddm/themes
[Users]
DefaultPath=/usr/local/sbin:/usr/local/bin:/usr/bin
HideShells=
HideUsers=
RememberLastSession=true
RememberLastUser=true
ReuseSession=true
[Wayland]
EnableHiDPI=true
SessionCommand=/usr/share/sddm/scripts/wayland-session
SessionDir=/usr/share/wayland-sessions
SessionLogFile=.local/share/sddm/wayland-session.log
[X11]
DisplayCommand=/usr/share/sddm/scripts/Xsetup
DisplayStopCommand=/usr/share/sddm/scripts/Xstop
EnableHiDPI=true
MinimumVT=1
ServerArguments=-nolisten tcp
ServerPath=/usr/bin/X
SessionCommand=/usr/share/sddm/scripts/Xsession
SessionDir=/usr/share/xsessions
SessionLogFile=.local/share/sddm/xorg-session.log
UserAuthFile=.Xauthority
XauthPath=/usr/bin/xauth
XephyrPath=/usr/bin/Xephyr

View File

@ -0,0 +1,17 @@
[Autologin]
Relogin=false
Session=xfce
User=liveuser
[General]
HaltCommand=/usr/bin/systemctl poweroff
RebootCommand=/usr/bin/systemctl reboot
[Theme]
Current=archcraft
CursorTheme=Qogirr
Font=Iosevka,10,-1,0,50,0,0,0,0,0
[Users]
MaximumUid=60513
MinimumUid=1000

View File

@ -0,0 +1,2 @@
root::14871::::::
liveuser:$6$TMf6RYQ5138CZrJJ$NwesWINLnlu2ailpwPZOKLvFfO19uZZNhQcz8WBkyTtGXWu0kpAMhKjJ5X0AzQ8MT7LCRiGuJ74IZi31pC4/S1:14871::::::

View File

@ -0,0 +1,116 @@
# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker 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
#KbdInteractiveAuthentication yes
# 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 KbdInteractiveAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via KbdInteractiveAuthentication 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 KbdInteractiveAuthentication 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

View File

@ -0,0 +1 @@
Defaults env_reset,pwfeedback,insults

View File

@ -0,0 +1 @@
%wheel ALL=(ALL) NOPASSWD: ALL

View File

@ -0,0 +1,2 @@
[Journal]
Storage=volatile

View File

@ -0,0 +1,4 @@
[Login]
HandleSuspendKey=ignore
HandleHibernateKey=ignore
HandleLidSwitch=ignore

View File

@ -0,0 +1,21 @@
[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
# 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
[IPv6AcceptRA]
RouteMetric=100

View File

@ -0,0 +1,17 @@
[Match]
Name=wl*
[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=600
[IPv6AcceptRA]
RouteMetric=600

View File

@ -0,0 +1,17 @@
[Match]
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
[IPv6AcceptRA]
RouteMetric=700

View File

@ -0,0 +1 @@
/dev/null

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/bluetooth.service

View File

@ -0,0 +1,10 @@
[Unit]
Description=Choose mirror from the kernel command line
ConditionKernelCommandLine=mirror
[Service]
Type=oneshot
ExecStart=/usr/local/bin/choose-mirror
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/cloud-config.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/cloud-final.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/cloud-init-local.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/cloud-init.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/bluetooth.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/ModemManager.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/NetworkManager-dispatcher.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/systemd-resolved.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/graphical.target

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/sddm-plymouth.service

View File

@ -0,0 +1,8 @@
[Unit]
Description=Temporary /etc/pacman.d/gnupg directory
[Mount]
What=ramfs
Where=/etc/pacman.d/gnupg
Type=ramfs
Options=mode=0755

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/ModemManager.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/NetworkManager.service

View File

@ -0,0 +1 @@
../choose-mirror.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/hv_fcopy_daemon.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/hv_kvp_daemon.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/hv_vss_daemon.service

View File

@ -0,0 +1 @@
../pacman-init.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/qemu-guest-agent.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/reflector.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/sshd.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/systemd-resolved.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/vboxservice.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/vmtoolsd.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/vmware-vmblock-fuse.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/wpa_supplicant.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/NetworkManager-wait-online.service

View File

@ -0,0 +1,13 @@
[Unit]
Description=Initializes Pacman keyring
Requires=etc-pacman.d-gnupg.mount
After=etc-pacman.d-gnupg.mount
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/pacman-key --init
ExecStart=/usr/bin/pacman-key --populate
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,6 @@
[Unit]
ConditionKernelCommandLine=!mirror
[Service]
Restart=on-failure
RestartSec=10

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/cups.socket

View File

@ -0,0 +1,2 @@
ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"

View File

@ -0,0 +1,3 @@
KEYMAP=us
FONT=default8x16
FONT_MAP=8859-2

View File

@ -0,0 +1,8 @@
# Reflector configuration file for the systemd service.
--save /etc/pacman.d/mirrorlist
--ipv4
--ipv6
--protocol https
--latest 20
--sort rate

View File

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

View File

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

View File

@ -0,0 +1,141 @@
#!/usr/bin/env bash
## Script to perform several important tasks before `mkarchcraftiso` create filesystem image.
set -e -u
## -------------------------------------------------------------- ##
## Fix Initrd Generation in Installed System
cat > "/etc/mkinitcpio.d/linux.preset" <<- _EOF_
# mkinitcpio preset file for the 'linux' package
ALL_kver="/boot/vmlinuz-linux"
ALL_config="/etc/mkinitcpio.conf"
PRESETS=('default' 'fallback')
#default_config="/etc/mkinitcpio.conf"
default_image="/boot/initramfs-linux.img"
#default_options=""
#fallback_config="/etc/mkinitcpio.conf"
fallback_image="/boot/initramfs-linux-fallback.img"
fallback_options="-S autodetect"
_EOF_
## -------------------------------------------------------------- ##
## Enable Parallel Downloads
sed -i -e 's|#ParallelDownloads.*|ParallelDownloads = 5|g' /etc/pacman.conf
sed -i -e '/#\[testing\]/Q' /etc/pacman.conf
## Append archcraft repository to pacman.conf
cat >> "/etc/pacman.conf" <<- EOL
[archcraft]
SigLevel = Optional TrustAll
Include = /etc/pacman.d/archcraft-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
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
#[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
EOL
## -------------------------------------------------------------- ##
## Copy Few Configs Into Root Dir
rdir="/root/.config"
sdir="/etc/skel"
if [[ ! -d "$rdir" ]]; then
mkdir "$rdir"
fi
rconfig=(geany gtk-3.0 Kvantum neofetch qt5ct ranger Thunar xfce4)
for cfg in "${rconfig[@]}"; do
if [[ -e "$sdir/.config/$cfg" ]]; then
cp -rf "$sdir"/.config/"$cfg" "$rdir"
fi
done
rcfg=('.oh-my-zsh' '.vim_runtime' '.vimrc' '.zshrc')
for cfile in "${rcfg[@]}"; do
if [[ -e "$sdir/$cfile" ]]; then
cp -rf "$sdir"/"$cfile" /root
fi
done
## -------------------------------------------------------------- ##
## Fix wallpaper in xfce
mv /usr/share/backgrounds/xfce/xfce-verticals.png /usr/share/backgrounds/xfce/xfce_verticals.png
cp -rf /usr/share/backgrounds/default.jpg /usr/share/backgrounds/xfce/xfce-verticals.png
## -------------------------------------------------------------- ##
## Copy Calamares to Desktop
_desktop="/home/liveuser/Desktop"
if [[ ! -d "${_desktop}" ]]; then
mkdir -p "${_desktop}"
fi
cp /usr/share/applications/calamares.desktop "${_desktop}"
chown -R liveuser:users "${_desktop}"
chmod +x "${_desktop}"/calamares.desktop
## -------------------------------------------------------------- ##
## Set `Qogirr` as default cursor theme
sed -i -e 's|Inherits=.*|Inherits=Qogirr|g' /usr/share/icons/default/index.theme
## Update xdg-user-dirs for bookmarks in thunar and pcmanfm
runuser -l liveuser -c 'xdg-user-dirs-update'
runuser -l liveuser -c 'xdg-user-dirs-gtk-update'
xdg-user-dirs-update
xdg-user-dirs-gtk-update
## -------------------------------------------------------------- ##
## Hide Unnecessary Apps
adir="/usr/share/applications"
apps=(avahi-discover.desktop bssh.desktop bvnc.desktop echomixer.desktop \
envy24control.desktop exo-preferred-applications.desktop feh.desktop \
hdajackretask.desktop hdspconf.desktop hdspmixer.desktop hwmixvolume.desktop lftp.desktop \
libfm-pref-apps.desktop lxshortcut.desktop lstopo.desktop \
networkmanager_dmenu.desktop nm-connection-editor.desktop pcmanfm-desktop-pref.desktop \
qv4l2.desktop qvidcap.desktop stoken-gui.desktop stoken-gui-small.desktop thunar-bulk-rename.desktop \
thunar-settings.desktop thunar-volman-settings.desktop yad-icon-browser.desktop)
for app in "${apps[@]}"; do
if [[ -e "$adir/$app" ]]; then
sed -i '$s/$/\nNoDisplay=true/' "$adir/$app"
fi
done
## -------------------------------------------------------------- ##

View File

@ -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 archiso_http_srv)
[[ $mirror ]] || exit 0
mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig
cat >/etc/pacman.d/mirrorlist << EOF
#
# Arch Linux repository mirrorlist
# Generated by archiso
#
Server = ${mirror%%/}/\$repo/os/\$arch
EOF

View File

@ -0,0 +1,2 @@
arch-install-scripts
base

View File

@ -0,0 +1,7 @@
title Boot Archcraft (64bit, UEFI)
sort-key 01
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
initrd /%INSTALL_DIR%/boot/intel-ucode.img
initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G

View File

@ -0,0 +1,3 @@
timeout 10
default 01-archcraftiso-x86_64-linux.conf
beep on

62
profile/grub/grub.cfg Normal file
View File

@ -0,0 +1,62 @@
# Load partition table and file system modules
insmod part_gpt
insmod part_msdos
insmod fat
insmod iso9660
# Use graphics-mode output
insmod all_video
insmod font
if loadfont "${prefix}/fonts/unicode.pf2" ; then
insmod gfxterm
set gfxmode="auto"
terminal_input console
terminal_output gfxterm
fi
# Enable serial console
if serial --unit=0 --speed=115200; then
terminal_input --append serial
terminal_output --append serial
fi
# Set default menu entry
default=archcraft
timeout=10
timeout_style=menu
# Menu entries
menuentry "Boot Archcraft (64bit, UEFI)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraft' {
set gfxpayload=keep
search --no-floppy --set=root --label %ARCHISO_LABEL%
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
}
if [ "${grub_platform}" == "efi" ]; then
if [ "${grub_cpu}" == "x86_64" ]; then
menuentry "UEFI Shell" --class recovery {
insmod chain
search --no-floppy --set=root --label %ARCHISO_LABEL%
chainloader /shellx64.efi
}
elif [ "${grub_cpu}" == "i386" ]; then
menuentry "UEFI Shell" --class recovery {
insmod chain
search --no-floppy --set=root --label %ARCHISO_LABEL%
chainloader /shellia32.efi
}
fi
menuentry 'UEFI Firmware Settings' --class recovery --id 'uefi-firmware' {
fwsetup
}
fi
menuentry "System shutdown" --class shutdown --class poweroff {
halt
}
menuentry "System restart" --class restart --class reboot {
reboot
}

1762
profile/mkarchcraftiso Executable file

File diff suppressed because it is too large Load Diff

343
profile/packages.x86_64 Normal file
View File

@ -0,0 +1,343 @@
## Arch Packages ------------------------------
#alsa-utils
amd-ucode
arch-install-scripts
archinstall
b43-fwcutter
base
bind
brltty
broadcom-wl
btrfs-progs
clonezilla
cloud-init
cryptsetup
darkhttpd
ddrescue
dhclient
dhcpcd
diffutils
dmidecode
dmraid
dnsmasq
dosfstools
e2fsprogs
edk2-shell
efibootmgr
#espeakup
ethtool
exfatprogs
f2fs-tools
fatresize
fsarchiver
gnu-netcat
gpart
gpm
gptfdisk
#grml-zsh-config
#grub
hdparm
hyperv
intel-ucode
#ipw2100-fw
#ipw2200-fw
irssi
iw
iwd
jfsutils
kitty-terminfo
less
lftp
libfido2
libusb-compat
linux
linux-atm
linux-firmware
linux-firmware-marvell
#livecd-sounds
lsscsi
lvm2
lynx
man-db
man-pages
mc
mdadm
#memtest86+
mkinitcpio
mkinitcpio-archiso
mkinitcpio-nfs-utils
modemmanager
mtools
nano
nbd
ndisc6
nfs-utils
nilfs-utils
nmap
ntfs-3g
nvme-cli
open-iscsi
open-vm-tools
openconnect
openssh
openvpn
partclone
parted
partimage
pcsclite
ppp
pptpclient
pv
#qemu-guest-agent
refind
reflector
reiserfsprogs
rp-pppoe
rsync
rxvt-unicode-terminfo
screen
sdparm
sg3_utils
smartmontools
sof-firmware
squashfs-tools
sudo
syslinux
systemd-resolvconf
tcpdump
terminus-font
testdisk
tmux
tpm2-tss
udftools
usb_modeswitch
usbmuxd
usbutils
vim
#virtualbox-guest-utils-nox
vpnc
wireless-regdb
wireless_tools
wpa_supplicant
wvdial
xfsprogs
xl2tpd
zsh
## Bootloader ------------------------------
os-prober
lsb-release
archcraft/grub
archcraft-grub-theme
## Splash Screen ------------------------------
archcraft/plymouth
archcraft-plymouth-theme
## Archcraft Specific ------------------------------
archcraft-hooks
archcraft-mirrorlist
## Xorg Server ------------------------------
xorg
## Touchpad and Mouse ------------------------------
xorg-xinput
xf86-input-libinput
## GPU Drivers (Intel/AMD/VM) ------------------------------
xf86-video-fbdev
xf86-video-vesa
xf86-video-intel
xf86-video-amdgpu
xf86-video-ati
## GPU Drivers (Nvidia) ------------------------------
xf86-video-nouveau
nvidia
nvidia-utils
nvidia-settings
## Hypervisors ------------------------------
virtualbox-guest-utils
qemu-guest-agent
open-vm-tools
xf86-input-vmmouse
xf86-video-vmware
## System ------------------------------
## Networking
networkmanager
networkmanager-openconnect
networkmanager-openvpn
networkmanager-pptp
networkmanager-strongswan
networkmanager-vpnc
network-manager-sstp
nm-connection-editor
network-manager-applet
## Bluetooth
bluez
bluez-utils
blueman
## Audio
pipewire
wireplumber
pipewire-alsa
pipewire-pulse
pipewire-jack
gst-plugin-pipewire
## Video
libde265
libdv
libmpeg2
schroedinger
libtheora
libvpx
x264
x265
xvidcore
gstreamer
ffmpeg
gst-libav
gst-plugins-good
gst-plugins-ugly
gst-plugins-bad
## Print
cups
cups-pdf
cups-filters
ghostscript
gsfonts
foomatic-db-engine
foomatic-db
gutenprint
foomatic-db-gutenprint-ppds
## Installer ------------------------------
## Calamares
boost
calamares
calamares-config-xfce
## QT Style
kvantum
qt5ct
## Display Manager ------------------------------
sddm
archcraft-sddm-theme
## DE/WMs ------------------------------
xfce4
xfce4-goodies
archcraft-xfce
archcraft-cursors
archcraft-icons
archcraft-themes
archcraft-wallpapers
archcraft-fonts
archcraft-about
archcraft-artworks
archcraft-neofetch
archcraft-hooks-zsh
archcraft-omz
archcraft-ranger
archcraft-vim
firefox
geany
geany-plugins
atril
## Functionality ------------------------------
## Fonts
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
terminus-font
## Multimedia
ffmpegthumbnailer
tumbler
## Images
jasper
libwebp
libavif
libheif
## Files
gvfs
gvfs-mtp
gvfs-afc
gvfs-gphoto2
gvfs-smb
gvfs-google
highlight
trash-cli
ueberzug
xdg-user-dirs
xdg-user-dirs-gtk
## Archives
bzip2
gzip
lrzip
lz4
lzip
lzop
xz
zstd
p7zip
zip
unzip
unrar
unarchiver
xarchiver
## Misc ------------------------------
## Package Tools
fakeroot
make
automake
autoconf
pkgconf
patch
gcc
## CLI Tools
htop
nethogs
ncdu
powertop
ranger
vim
## Utilities
acpi
gparted
polkit
udisks2
yad
gpick
meld
## AUR Packages
downgrade
ksuperkey
mkinitcpio-firmware
mugshot
timeshift
yay
## EOF ------------------------------

105
profile/pacman.conf Normal file
View File

@ -0,0 +1,105 @@
#
# /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
# 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 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.
#[testing]
#Include = /etc/pacman.d/mirrorlist
[archcraft]
SigLevel = Optional TrustAll
Include = /etc/pacman.d/archcraft-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
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
#[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

26
profile/profiledef.sh Normal file
View File

@ -0,0 +1,26 @@
#!/usr/bin/env bash
# shellcheck disable=SC2034
iso_name="archcraft"
iso_label="ARCHCRAFT_$(date +%Y%m)"
iso_publisher="Aditya Shakya <http://www.github.com/adi1090x>"
iso_application="Archcraft Live/Installation/Rescue CD"
iso_version="$(date +%Y.%m.%d)"
install_dir="arch"
buildmodes=('iso')
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito'
'uefi-ia32.grub.esp' 'uefi-x64.grub.esp'
'uefi-ia32.grub.eltorito' 'uefi-x64.grub.eltorito')
arch="x86_64"
pacman_conf="pacman.conf"
airootfs_image_type="squashfs"
airootfs_image_tool_options=('-comp' 'xz' '-Xbcj' 'x86' '-b' '1M' '-Xdict-size' '1M')
file_permissions=(
["/etc/shadow"]="0:0:400"
["/etc/gshadow"]="0:0:0400"
["/etc/sudoers.d"]="0:0:750"
["/root"]="0:0:750"
["/root/.automated_script.sh"]="0:0:755"
["/root/customize_airootfs.sh"]="0:0:755"
["/usr/local/bin/choose-mirror"]="0:0:755"
)

View File

@ -0,0 +1,42 @@
SERIAL 0 115200
UI vesamenu.c32
MENU CLEAR
MENU BACKGROUND splash.png
MENU AUTOBOOT Starting Archcraft in # second{,s}.
MENU WIDTH 45
MENU MARGIN 4
MENU ROWS 10
MENU VSHIFT 11
MENU HSHIFT 18
MENU TABMSGROW 13
MENU CMDLINEROW 13
MENU HELPMSGROW 17
MENU HELPMSGENDROW 30
MENU HIDDEN
# Title bar
menu color title 0 #ffffffff #00000000 *
# Border Area
menu color border * #00000000 #00000000 none
# Unselected menu item
menu color unsel 0 #ffdadada #00000000 *
# Unselected hotkey
menu color hotkey 0 #ffffffff #00000000 none
# Selection bar
menu color sel 0 #ff62AEEF #00000000 none
# Selected hotkey
menu color hotsel 0 #ffffffff #00000000 none
# Press [Tab] message
menu color tabmsg 0 #ff98C379 #00000000 none
# Timeout message
menu color timeout_msg 0 #ffdadada #00000000 none
# Timeout counter
menu color timeout * #ffE06B74 #00000000 none
# Command line
menu color cmdline 0 #ffC778DD #ff2A2D34 none
# Command line marker
menu color cmdmark 0 #00000000 #00000000 none
# Helptest
menu color help 0 #ffffffff #00000000 none

View File

@ -0,0 +1,20 @@
LABEL arch64_nbd
MENU LABEL Boot Archcraft (64bit) (NBD)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} checksum verify
SYSAPPEND 3
LABEL arch64_nfs
MENU LABEL Boot Archcraft (64bit) (x86_64, NFS)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt checksum verify
SYSAPPEND 3
LABEL arch64_http
MENU LABEL Boot Archcraft (64bit) (x86_64, HTTP)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ checksum verify
SYSAPPEND 3

View File

@ -0,0 +1,5 @@
INCLUDE archcraftiso_head.cfg
INCLUDE archcraftiso_pxe-linux.cfg
INCLUDE archcraftiso_tail.cfg

View File

@ -0,0 +1,6 @@
# Default
LABEL arch64
MENU LABEL Boot Archcraft (64bit, BIOS)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G

View File

@ -0,0 +1,8 @@
INCLUDE archcraftiso_head.cfg
DEFAULT arch64
TIMEOUT 100
INCLUDE archcraftiso_sys-linux.cfg
INCLUDE archcraftiso_tail.cfg

View File

@ -0,0 +1,17 @@
LABEL existing
MENU LABEL Boot From Hard Drive
COM32 chain.c32
APPEND hd0 0
LABEL hdt
MENU LABEL Hardware Information
COM32 hdt.c32
APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz
LABEL reboot
MENU LABEL Reboot Computer
COM32 reboot.c32
LABEL poweroff
MENU LABEL Power Off Computer
COM32 poweroff.c32

BIN
profile/syslinux/splash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@ -0,0 +1,11 @@
DEFAULT select
LABEL select
COM32 whichsys.c32
APPEND -pxe- pxe -sys- sys -iso- sys
LABEL pxe
CONFIG archcraftiso_pxe.cfg
LABEL sys
CONFIG archcraftiso_sys.cfg