diff --git a/00_reset.sh b/00_reset.sh new file mode 100755 index 0000000..05ed7f0 --- /dev/null +++ b/00_reset.sh @@ -0,0 +1,10 @@ +#!/bin/sh +sudo rm -rf ./{work,out} +#rm airootfs/root/packages/*.pkg.tar.zst +#rm airootfs/root/packages/*.pkg.tar.zst.sig +#rm -rf airootfs/root/melawy-skel-liveuser/pkg +#rm airootfs/root/wallpaper.png +#rm airootfs/root/melawy-skel-liveuser/*.pkg.tar.zst +#rm -rf airootfs/etc/pacman.d/ +#rm eosiso*.log +mkdir ./{work,out} diff --git a/01_prepare.sh b/01_prepare.sh new file mode 100755 index 0000000..11abf96 --- /dev/null +++ b/01_prepare.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +sudo pacman -Sw --noconfirm --cachedir "/disk/github/active/make_iso/melawy-archiso/airootfs/opt/extra-drivers" r8168 + +sudo pacman -Sw --noconfirm --cachedir "/disk/github/active/make_iso/melawy-archiso/airootfs/usr/share/packages" dracut \ +dracut-hook \ +grub \ +kernel-install-for-dracut \ +libxvmc \ +linux \ +linux-api-headers \ +linux-headers \ +linux-xanmod-anbox \ +linux-xanmod-anbox-headers \ +os-prober \ +refind \ +xf86-video-intel diff --git a/02_make.sh b/02_make.sh new file mode 100755 index 0000000..20fa46b --- /dev/null +++ b/02_make.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +sudo ./mkarchiso_last_my -v "." + +echo "melawy" | beep -f 200 -l 250 -d 100 -r 1 -n -s diff --git a/airootfs/etc/default/grub b/airootfs/etc/default/grub new file mode 100644 index 0000000..68a19b1 --- /dev/null +++ b/airootfs/etc/default/grub @@ -0,0 +1,54 @@ +# GRUB boot loader configuration + +GRUB_DEFAULT=0 +GRUB_TIMEOUT=5 +GRUB_DISTRIBUTOR="Arch" +GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet splash bgrt_disable add_efi_memmap" +GRUB_CMDLINE_LINUX="" + +# Preload both GPT and MBR modules so that they are not missed +GRUB_PRELOAD_MODULES="part_gpt part_msdos" + +# Uncomment to enable booting from LUKS encrypted devices +GRUB_ENABLE_CRYPTODISK=y + +# Set to 'countdown' or 'hidden' to change timeout behavior, +# press ESC key to display menu. +GRUB_TIMEOUT_STYLE=menu + +# Uncomment to use basic console +GRUB_TERMINAL_INPUT=console + +# Uncomment to disable graphical terminal +#GRUB_TERMINAL_OUTPUT=console + +# The resolution used on graphical terminal +# note that you can use only modes which your graphic card supports via VBE +# you can see them in real GRUB with the command `vbeinfo' +GRUB_GFXMODE=auto + +# Uncomment to allow the kernel use the same resolution used by grub +GRUB_GFXPAYLOAD_LINUX=keep + +# Uncomment if you want GRUB to pass to the Linux kernel the old parameter +# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx" +#GRUB_DISABLE_LINUX_UUID=true + +# Uncomment to disable generation of recovery mode menu entries +GRUB_DISABLE_RECOVERY=true + +# Uncomment and set to the desired menu colors. Used by normal and wallpaper +# modes only. Entries specified as foreground/background. +#GRUB_COLOR_NORMAL="light-blue/black" +#GRUB_COLOR_HIGHLIGHT="light-cyan/blue" + +# Uncomment one of them for the gfx desired, a image background or a gfxtheme +#GRUB_BACKGROUND="/path/to/wallpaper" +#GRUB_THEME="/path/to/gfxtheme" + +# Uncomment to get a beep at GRUB start +#GRUB_INIT_TUNE="480 440 1" + +# Uncomment to make GRUB remember the last selection. This requires +# setting 'GRUB_DEFAULT=saved' above. +#GRUB_SAVEDEFAULT="true" diff --git a/airootfs/etc/dracut.conf.d/defaults.conf b/airootfs/etc/dracut.conf.d/defaults.conf new file mode 100644 index 0000000..6458ecf --- /dev/null +++ b/airootfs/etc/dracut.conf.d/defaults.conf @@ -0,0 +1,2 @@ +omit_dracutmodules+=" network cifs nfs brltty " +compress="zstd" diff --git a/airootfs/etc/dracut.conf.d/melawy-linux-defaults.conf b/airootfs/etc/dracut.conf.d/melawy-linux-defaults.conf new file mode 100644 index 0000000..6458ecf --- /dev/null +++ b/airootfs/etc/dracut.conf.d/melawy-linux-defaults.conf @@ -0,0 +1,2 @@ +omit_dracutmodules+=" network cifs nfs brltty " +compress="zstd" diff --git a/airootfs/etc/environment b/airootfs/etc/environment new file mode 100644 index 0000000..fe6bd67 --- /dev/null +++ b/airootfs/etc/environment @@ -0,0 +1,9 @@ +# +# This file is parsed by pam_env module +# +# Syntax: simple "KEY=VAL" pairs on separate lines +# +#QT_QPA_PLATFORMTHEME=qt5ct +#QT_STYLE_OVERRIDE=kvantum +BROWSER=firefox +EDITOR=nano diff --git a/airootfs/etc/group b/airootfs/etc/group new file mode 100644 index 0000000..2f50b54 --- /dev/null +++ b/airootfs/etc/group @@ -0,0 +1,16 @@ +root:x:0:root +sys:x:3:bin,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 diff --git a/airootfs/etc/gshadow b/airootfs/etc/gshadow new file mode 100644 index 0000000..8bf2275 --- /dev/null +++ b/airootfs/etc/gshadow @@ -0,0 +1,16 @@ +root:::root +sys:!!::liveuser +network:!!::liveuser +power:!!::liveuser +adm:!!::liveuser +wheel:!!::liveuser +uucp:!!::liveuser +optical:!!::liveuser +rfkill:!!::liveuser +video:!!::liveuser +storage:!!::liveuser +audio:!!::liveuser +users:!!::liveuser +nopasswdlogin:!::liveuser +autologin:!::liveuser +liveuser:!:: diff --git a/airootfs/etc/hostname b/airootfs/etc/hostname new file mode 100644 index 0000000..51fbdc7 --- /dev/null +++ b/airootfs/etc/hostname @@ -0,0 +1 @@ +Melawy-Linux diff --git a/airootfs/etc/issue b/airootfs/etc/issue new file mode 100644 index 0000000..0721cb5 --- /dev/null +++ b/airootfs/etc/issue @@ -0,0 +1,2 @@ +Melawy Linux \r (\l) + diff --git a/airootfs/etc/locale.conf b/airootfs/etc/locale.conf new file mode 100644 index 0000000..f318dbb --- /dev/null +++ b/airootfs/etc/locale.conf @@ -0,0 +1,10 @@ +LANG=ru_RU.UTF-8 +LC_ADDRESS=ru_RU.UTF-8 +LC_IDENTIFICATION=ru_RU.UTF-8 +LC_MEASUREMENT=ru_RU.UTF-8 +LC_MONETARY=ru_RU.UTF-8 +LC_NAME=ru_RU.UTF-8 +LC_NUMERIC=ru_RU.UTF-8 +LC_PAPER=ru_RU.UTF-8 +LC_TELEPHONE=ru_RU.UTF-8 +LC_TIME=ru_RU.UTF-8 diff --git a/airootfs/etc/locale.gen b/airootfs/etc/locale.gen new file mode 100644 index 0000000..3ae27c7 --- /dev/null +++ b/airootfs/etc/locale.gen @@ -0,0 +1,513 @@ +# Configuration file for locale-gen +# +# lists of locales that are to be generated by the locale-gen command. +# +# Each line is of the form: +# +# +# +# where is one of the locales given in /usr/share/i18n/locales +# and is one of the character sets listed in /usr/share/i18n/charmaps +# +# The locale-gen command will generate all the locales, +# placing them in /usr/lib/locale. +# +# A list of supported locales is given in /usr/share/i18n/SUPPORTED +# and is included in this file. Uncomment the needed locales below. +# +#aa_DJ.UTF-8 UTF-8 +#aa_DJ ISO-8859-1 +#aa_ER UTF-8 +#aa_ER@saaho UTF-8 +#aa_ET UTF-8 +#af_ZA.UTF-8 UTF-8 +#af_ZA ISO-8859-1 +#agr_PE UTF-8 +#ak_GH UTF-8 +#am_ET UTF-8 +#an_ES.UTF-8 UTF-8 +#an_ES ISO-8859-15 +#anp_IN UTF-8 +#ar_AE.UTF-8 UTF-8 +#ar_AE ISO-8859-6 +#ar_BH.UTF-8 UTF-8 +#ar_BH ISO-8859-6 +#ar_DZ.UTF-8 UTF-8 +#ar_DZ ISO-8859-6 +#ar_EG.UTF-8 UTF-8 +#ar_EG ISO-8859-6 +#ar_IN UTF-8 +#ar_IQ.UTF-8 UTF-8 +#ar_IQ ISO-8859-6 +#ar_JO.UTF-8 UTF-8 +#ar_JO ISO-8859-6 +#ar_KW.UTF-8 UTF-8 +#ar_KW ISO-8859-6 +#ar_LB.UTF-8 UTF-8 +#ar_LB ISO-8859-6 +#ar_LY.UTF-8 UTF-8 +#ar_LY ISO-8859-6 +#ar_MA.UTF-8 UTF-8 +#ar_MA ISO-8859-6 +#ar_OM.UTF-8 UTF-8 +#ar_OM ISO-8859-6 +#ar_QA.UTF-8 UTF-8 +#ar_QA ISO-8859-6 +#ar_SA.UTF-8 UTF-8 +#ar_SA ISO-8859-6 +#ar_SD.UTF-8 UTF-8 +#ar_SD ISO-8859-6 +#ar_SS UTF-8 +#ar_SY.UTF-8 UTF-8 +#ar_SY ISO-8859-6 +#ar_TN.UTF-8 UTF-8 +#ar_TN ISO-8859-6 +#ar_YE.UTF-8 UTF-8 +#ar_YE ISO-8859-6 +#ayc_PE UTF-8 +#az_AZ UTF-8 +#az_IR UTF-8 +#as_IN UTF-8 +#ast_ES.UTF-8 UTF-8 +#ast_ES ISO-8859-15 +#be_BY.UTF-8 UTF-8 +#be_BY CP1251 +#be_BY@latin UTF-8 +#bem_ZM UTF-8 +#ber_DZ UTF-8 +#ber_MA UTF-8 +#bg_BG.UTF-8 UTF-8 +#bg_BG CP1251 +#bhb_IN.UTF-8 UTF-8 +#bho_IN UTF-8 +#bho_NP UTF-8 +#bi_VU UTF-8 +#bn_BD UTF-8 +#bn_IN UTF-8 +#bo_CN UTF-8 +#bo_IN UTF-8 +#br_FR.UTF-8 UTF-8 +#br_FR ISO-8859-1 +#br_FR@euro ISO-8859-15 +#brx_IN UTF-8 +#bs_BA.UTF-8 UTF-8 +#bs_BA ISO-8859-2 +#byn_ER UTF-8 +#ca_AD.UTF-8 UTF-8 +#ca_AD ISO-8859-15 +#ca_ES.UTF-8 UTF-8 +#ca_ES ISO-8859-1 +#ca_ES@euro ISO-8859-15 +#ca_ES@valencia UTF-8 +#ca_FR.UTF-8 UTF-8 +#ca_FR ISO-8859-15 +#ca_IT.UTF-8 UTF-8 +#ca_IT ISO-8859-15 +#ce_RU UTF-8 +#chr_US UTF-8 +#ckb_IQ UTF-8 +#cmn_TW UTF-8 +#crh_UA UTF-8 +#cs_CZ.UTF-8 UTF-8 +#cs_CZ ISO-8859-2 +#csb_PL UTF-8 +#cv_RU UTF-8 +#cy_GB.UTF-8 UTF-8 +#cy_GB ISO-8859-14 +#da_DK.UTF-8 UTF-8 +#da_DK ISO-8859-1 +#de_AT.UTF-8 UTF-8 +#de_AT ISO-8859-1 +#de_AT@euro ISO-8859-15 +#de_BE.UTF-8 UTF-8 +#de_BE ISO-8859-1 +#de_BE@euro ISO-8859-15 +#de_CH.UTF-8 UTF-8 +#de_CH ISO-8859-1 +#de_DE.UTF-8 UTF-8 +#de_DE ISO-8859-1 +#de_DE@euro ISO-8859-15 +#de_IT.UTF-8 UTF-8 +#de_IT ISO-8859-1 +#de_LI.UTF-8 UTF-8 +#de_LU.UTF-8 UTF-8 +#de_LU ISO-8859-1 +#de_LU@euro ISO-8859-15 +#doi_IN UTF-8 +#dsb_DE UTF-8 +#dv_MV UTF-8 +#dz_BT UTF-8 +#el_GR.UTF-8 UTF-8 +#el_GR ISO-8859-7 +#el_GR@euro ISO-8859-7 +#el_CY.UTF-8 UTF-8 +#el_CY ISO-8859-7 +#en_AG UTF-8 +#en_AU.UTF-8 UTF-8 +#en_AU ISO-8859-1 +#en_BW.UTF-8 UTF-8 +#en_BW ISO-8859-1 +#en_CA.UTF-8 UTF-8 +#en_CA ISO-8859-1 +#en_DK.UTF-8 UTF-8 +#en_DK ISO-8859-1 +#en_GB.UTF-8 UTF-8 +#en_GB ISO-8859-1 +#en_HK.UTF-8 UTF-8 +#en_HK ISO-8859-1 +#en_IE.UTF-8 UTF-8 +#en_IE ISO-8859-1 +#en_IE@euro ISO-8859-15 +#en_IL UTF-8 +#en_IN UTF-8 +#en_NG UTF-8 +#en_NZ.UTF-8 UTF-8 +#en_NZ ISO-8859-1 +#en_PH.UTF-8 UTF-8 +#en_PH ISO-8859-1 +#en_SC.UTF-8 UTF-8 +#en_SG.UTF-8 UTF-8 +#en_SG ISO-8859-1 +#en_US.UTF-8 UTF-8 +#en_US ISO-8859-1 +#en_ZA.UTF-8 UTF-8 +#en_ZA ISO-8859-1 +#en_ZM UTF-8 +#en_ZW.UTF-8 UTF-8 +#en_ZW ISO-8859-1 +#eo UTF-8 +#es_AR.UTF-8 UTF-8 +#es_AR ISO-8859-1 +#es_BO.UTF-8 UTF-8 +#es_BO ISO-8859-1 +#es_CL.UTF-8 UTF-8 +#es_CL ISO-8859-1 +#es_CO.UTF-8 UTF-8 +#es_CO ISO-8859-1 +#es_CR.UTF-8 UTF-8 +#es_CR ISO-8859-1 +#es_CU UTF-8 +#es_DO.UTF-8 UTF-8 +#es_DO ISO-8859-1 +#es_EC.UTF-8 UTF-8 +#es_EC ISO-8859-1 +#es_ES.UTF-8 UTF-8 +#es_ES ISO-8859-1 +#es_ES@euro ISO-8859-15 +#es_GT.UTF-8 UTF-8 +#es_GT ISO-8859-1 +#es_HN.UTF-8 UTF-8 +#es_HN ISO-8859-1 +#es_MX.UTF-8 UTF-8 +#es_MX ISO-8859-1 +#es_NI.UTF-8 UTF-8 +#es_NI ISO-8859-1 +#es_PA.UTF-8 UTF-8 +#es_PA ISO-8859-1 +#es_PE.UTF-8 UTF-8 +#es_PE ISO-8859-1 +#es_PR.UTF-8 UTF-8 +#es_PR ISO-8859-1 +#es_PY.UTF-8 UTF-8 +#es_PY ISO-8859-1 +#es_SV.UTF-8 UTF-8 +#es_SV ISO-8859-1 +#es_US.UTF-8 UTF-8 +#es_US ISO-8859-1 +#es_UY.UTF-8 UTF-8 +#es_UY ISO-8859-1 +#es_VE.UTF-8 UTF-8 +#es_VE ISO-8859-1 +#et_EE.UTF-8 UTF-8 +#et_EE ISO-8859-1 +#et_EE.ISO-8859-15 ISO-8859-15 +#eu_ES.UTF-8 UTF-8 +#eu_ES ISO-8859-1 +#eu_ES@euro ISO-8859-15 +#fa_IR UTF-8 +#ff_SN UTF-8 +#fi_FI.UTF-8 UTF-8 +#fi_FI ISO-8859-1 +#fi_FI@euro ISO-8859-15 +#fil_PH UTF-8 +#fo_FO.UTF-8 UTF-8 +#fo_FO ISO-8859-1 +#fr_BE.UTF-8 UTF-8 +#fr_BE ISO-8859-1 +#fr_BE@euro ISO-8859-15 +#fr_CA.UTF-8 UTF-8 +#fr_CA ISO-8859-1 +#fr_CH.UTF-8 UTF-8 +#fr_CH ISO-8859-1 +#fr_FR.UTF-8 UTF-8 +#fr_FR ISO-8859-1 +#fr_FR@euro ISO-8859-15 +#fr_LU.UTF-8 UTF-8 +#fr_LU ISO-8859-1 +#fr_LU@euro ISO-8859-15 +#fur_IT UTF-8 +#fy_NL UTF-8 +#fy_DE UTF-8 +#ga_IE.UTF-8 UTF-8 +#ga_IE ISO-8859-1 +#ga_IE@euro ISO-8859-15 +#gd_GB.UTF-8 UTF-8 +#gd_GB ISO-8859-15 +#gez_ER UTF-8 +#gez_ER@abegede UTF-8 +#gez_ET UTF-8 +#gez_ET@abegede UTF-8 +#gl_ES.UTF-8 UTF-8 +#gl_ES ISO-8859-1 +#gl_ES@euro ISO-8859-15 +#gu_IN UTF-8 +#gv_GB.UTF-8 UTF-8 +#gv_GB ISO-8859-1 +#ha_NG UTF-8 +#hak_TW UTF-8 +#he_IL.UTF-8 UTF-8 +#he_IL ISO-8859-8 +#hi_IN UTF-8 +#hif_FJ UTF-8 +#hne_IN UTF-8 +#hr_HR.UTF-8 UTF-8 +#hr_HR ISO-8859-2 +#hsb_DE ISO-8859-2 +#hsb_DE.UTF-8 UTF-8 +#ht_HT UTF-8 +#hu_HU.UTF-8 UTF-8 +#hu_HU ISO-8859-2 +#hy_AM UTF-8 +#hy_AM.ARMSCII-8 ARMSCII-8 +#ia_FR UTF-8 +#id_ID.UTF-8 UTF-8 +#id_ID ISO-8859-1 +#ig_NG UTF-8 +#ik_CA UTF-8 +#is_IS.UTF-8 UTF-8 +#is_IS ISO-8859-1 +#it_CH.UTF-8 UTF-8 +#it_CH ISO-8859-1 +#it_IT.UTF-8 UTF-8 +#it_IT ISO-8859-1 +#it_IT@euro ISO-8859-15 +#iu_CA UTF-8 +#ja_JP.EUC-JP EUC-JP +#ja_JP.UTF-8 UTF-8 +#ka_GE.UTF-8 UTF-8 +#ka_GE GEORGIAN-PS +#kab_DZ UTF-8 +#kk_KZ.UTF-8 UTF-8 +#kk_KZ PT154 +#kl_GL.UTF-8 UTF-8 +#kl_GL ISO-8859-1 +#km_KH UTF-8 +#kn_IN UTF-8 +#ko_KR.EUC-KR EUC-KR +#ko_KR.UTF-8 UTF-8 +#kok_IN UTF-8 +#ks_IN UTF-8 +#ks_IN@devanagari UTF-8 +#ku_TR.UTF-8 UTF-8 +#ku_TR ISO-8859-9 +#kw_GB.UTF-8 UTF-8 +#kw_GB ISO-8859-1 +#ky_KG UTF-8 +#lb_LU UTF-8 +#lg_UG.UTF-8 UTF-8 +#lg_UG ISO-8859-10 +#li_BE UTF-8 +#li_NL UTF-8 +#lij_IT UTF-8 +#ln_CD UTF-8 +#lo_LA UTF-8 +#lt_LT.UTF-8 UTF-8 +#lt_LT ISO-8859-13 +#lv_LV.UTF-8 UTF-8 +#lv_LV ISO-8859-13 +#lzh_TW UTF-8 +#mag_IN UTF-8 +#mai_IN UTF-8 +#mai_NP UTF-8 +#mfe_MU UTF-8 +#mg_MG.UTF-8 UTF-8 +#mg_MG ISO-8859-15 +#mhr_RU UTF-8 +#mi_NZ.UTF-8 UTF-8 +#mi_NZ ISO-8859-13 +#miq_NI UTF-8 +#mjw_IN UTF-8 +#mk_MK.UTF-8 UTF-8 +#mk_MK ISO-8859-5 +#ml_IN UTF-8 +#mn_MN UTF-8 +#mni_IN UTF-8 +#mnw_MM UTF-8 +#mr_IN UTF-8 +#ms_MY.UTF-8 UTF-8 +#ms_MY ISO-8859-1 +#mt_MT.UTF-8 UTF-8 +#mt_MT ISO-8859-3 +#my_MM UTF-8 +#nan_TW UTF-8 +#nan_TW@latin UTF-8 +#nb_NO.UTF-8 UTF-8 +#nb_NO ISO-8859-1 +#nds_DE UTF-8 +#nds_NL UTF-8 +#ne_NP UTF-8 +#nhn_MX UTF-8 +#niu_NU UTF-8 +#niu_NZ UTF-8 +#nl_AW UTF-8 +#nl_BE.UTF-8 UTF-8 +#nl_BE ISO-8859-1 +#nl_BE@euro ISO-8859-15 +#nl_NL.UTF-8 UTF-8 +#nl_NL ISO-8859-1 +#nl_NL@euro ISO-8859-15 +#nn_NO.UTF-8 UTF-8 +#nn_NO ISO-8859-1 +#nr_ZA UTF-8 +#nso_ZA UTF-8 +#oc_FR.UTF-8 UTF-8 +#oc_FR ISO-8859-1 +#om_ET UTF-8 +#om_KE.UTF-8 UTF-8 +#om_KE ISO-8859-1 +#or_IN UTF-8 +#os_RU UTF-8 +#pa_IN UTF-8 +#pa_PK UTF-8 +#pap_AW UTF-8 +#pap_CW UTF-8 +#pl_PL.UTF-8 UTF-8 +#pl_PL ISO-8859-2 +#ps_AF UTF-8 +#pt_BR.UTF-8 UTF-8 +#pt_BR ISO-8859-1 +#pt_PT.UTF-8 UTF-8 +#pt_PT ISO-8859-1 +#pt_PT@euro ISO-8859-15 +#quz_PE UTF-8 +#raj_IN UTF-8 +#rif_MA UTF-8 +#ro_RO.UTF-8 UTF-8 +#ro_RO ISO-8859-2 +#ru_RU.KOI8-R KOI8-R +#ru_RU.UTF-8 UTF-8 +#ru_RU ISO-8859-5 +#ru_UA.UTF-8 UTF-8 +#ru_UA KOI8-U +#rw_RW UTF-8 +#sa_IN UTF-8 +#sah_RU UTF-8 +#sat_IN UTF-8 +#sc_IT UTF-8 +#sd_IN UTF-8 +#sd_IN@devanagari UTF-8 +#se_NO UTF-8 +#sgs_LT UTF-8 +#shn_MM UTF-8 +#shs_CA UTF-8 +#si_LK UTF-8 +#sid_ET UTF-8 +#sk_SK.UTF-8 UTF-8 +#sk_SK ISO-8859-2 +#sl_SI.UTF-8 UTF-8 +#sl_SI ISO-8859-2 +#sm_WS UTF-8 +#so_DJ.UTF-8 UTF-8 +#so_DJ ISO-8859-1 +#so_ET UTF-8 +#so_KE.UTF-8 UTF-8 +#so_KE ISO-8859-1 +#so_SO.UTF-8 UTF-8 +#so_SO ISO-8859-1 +#sq_AL.UTF-8 UTF-8 +#sq_AL ISO-8859-1 +#sq_MK UTF-8 +#sr_ME UTF-8 +#sr_RS UTF-8 +#sr_RS@latin UTF-8 +#ss_ZA UTF-8 +#st_ZA.UTF-8 UTF-8 +#st_ZA ISO-8859-1 +#sv_FI.UTF-8 UTF-8 +#sv_FI ISO-8859-1 +#sv_FI@euro ISO-8859-15 +#sv_SE.UTF-8 UTF-8 +#sv_SE ISO-8859-1 +#sw_KE UTF-8 +#sw_TZ UTF-8 +#syr UTF-8 +#szl_PL UTF-8 +#ta_IN UTF-8 +#ta_LK UTF-8 +#tcy_IN.UTF-8 UTF-8 +#te_IN UTF-8 +#tg_TJ.UTF-8 UTF-8 +#tg_TJ KOI8-T +#th_TH.UTF-8 UTF-8 +#th_TH TIS-620 +#the_NP UTF-8 +#ti_ER UTF-8 +#ti_ET UTF-8 +#tig_ER UTF-8 +#tk_TM UTF-8 +#tl_PH.UTF-8 UTF-8 +#tl_PH ISO-8859-1 +#tn_ZA UTF-8 +#to_TO UTF-8 +#tpi_PG UTF-8 +#tr_CY.UTF-8 UTF-8 +#tr_CY ISO-8859-9 +#tr_TR.UTF-8 UTF-8 +#tr_TR ISO-8859-9 +#ts_ZA UTF-8 +#tt_RU UTF-8 +#tt_RU@iqtelif UTF-8 +#ug_CN UTF-8 +#uk_UA.UTF-8 UTF-8 +#uk_UA KOI8-U +#unm_US UTF-8 +#ur_IN UTF-8 +#ur_PK UTF-8 +#uz_UZ.UTF-8 UTF-8 +#uz_UZ ISO-8859-1 +#uz_UZ@cyrillic UTF-8 +#ve_ZA UTF-8 +#vi_VN UTF-8 +#wa_BE ISO-8859-1 +#wa_BE@euro ISO-8859-15 +#wa_BE.UTF-8 UTF-8 +#wae_CH UTF-8 +#wal_ET UTF-8 +#wo_SN UTF-8 +#xh_ZA.UTF-8 UTF-8 +#xh_ZA ISO-8859-1 +#yi_US.UTF-8 UTF-8 +#yi_US CP1255 +#yo_NG UTF-8 +#yue_HK UTF-8 +#yuw_PG UTF-8 +#zh_CN.GB18030 GB18030 +#zh_CN.GBK GBK +#zh_CN.UTF-8 UTF-8 +#zh_CN GB2312 +#zh_HK.UTF-8 UTF-8 +#zh_HK BIG5-HKSCS +#zh_SG.UTF-8 UTF-8 +#zh_SG.GBK GBK +#zh_SG GB2312 +#zh_TW.EUC-TW EUC-TW +#zh_TW.UTF-8 UTF-8 +#zh_TW BIG5 +#zu_ZA.UTF-8 UTF-8 +#zu_ZA ISO-8859-1 + +### +# +# Locales enabled by Calamares +en_US.UTF-8 UTF-8 +ru_RU.UTF-8 UTF-8 diff --git a/airootfs/etc/localtime b/airootfs/etc/localtime new file mode 120000 index 0000000..0e35b57 --- /dev/null +++ b/airootfs/etc/localtime @@ -0,0 +1 @@ +/usr/share/zoneinfo/UTC \ No newline at end of file diff --git a/airootfs/etc/machine-id b/airootfs/etc/machine-id new file mode 100644 index 0000000..e69de29 diff --git a/airootfs/etc/makepkg.conf b/airootfs/etc/makepkg.conf new file mode 100644 index 0000000..8b5003e --- /dev/null +++ b/airootfs/etc/makepkg.conf @@ -0,0 +1,160 @@ +#!/hint/bash +# +# /etc/makepkg.conf +# + +######################################################################### +# SOURCE ACQUISITION +######################################################################### +# +#-- The download utilities that makepkg should use to acquire sources +# Format: 'protocol::agent' +DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u' + 'ftp::/usr/bin/curl -qgfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u' + 'http::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u' + 'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u' + 'rsync::/usr/bin/rsync --no-motd -z %u %o' + 'scp::/usr/bin/scp -C %u %o') + +# Other common tools: +# /usr/bin/snarf +# /usr/bin/lftpget -c +# /usr/bin/wget + +#-- The package required by makepkg to download VCS sources +# Format: 'protocol::package' +VCSCLIENTS=('bzr::bzr' + 'fossil::fossil' + 'git::git' + 'hg::mercurial' + 'svn::subversion') + +######################################################################### +# ARCHITECTURE, COMPILE FLAGS +######################################################################### +# +CARCH="x86_64" +CHOST="x86_64-pc-linux-gnu" + +#-- Compiler and Linker Flags +#CPPFLAGS="" +CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \ + -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \ + -fstack-clash-protection -fcf-protection" +CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS" +LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" +LTOFLAGS="-flto=auto" +#RUSTFLAGS="-C opt-level=2" +#-- Make Flags: change this for DistCC/SMP systems +#MAKEFLAGS="-j2" +#-- Debugging flags +DEBUG_CFLAGS="-g" +DEBUG_CXXFLAGS="$DEBUG_CFLAGS" +#DEBUG_RUSTFLAGS="-C debuginfo=2" + +######################################################################### +# BUILD ENVIRONMENT +######################################################################### +# +# Makepkg defaults: BUILDENV=(!distcc !color !ccache check !sign) +# A negated environment option will do the opposite of the comments below. +# +#-- distcc: Use the Distributed C/C++/ObjC compiler +#-- color: Colorize output messages +#-- ccache: Use ccache to cache compilation +#-- check: Run the check() function if present in the PKGBUILD +#-- sign: Generate PGP signature file +# +BUILDENV=(!distcc color !ccache check !sign) +# +#-- If using DistCC, your MAKEFLAGS will also need modification. In addition, +#-- specify a space-delimited list of hosts running in the DistCC cluster. +#DISTCC_HOSTS="" +# +#-- Specify a directory for package building. +#BUILDDIR=/tmp/makepkg + +######################################################################### +# GLOBAL PACKAGE OPTIONS +# These are default values for the options=() settings +######################################################################### +# +# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto) +# A negated option will do the opposite of the comments below. +# +#-- strip: Strip symbols from binaries/libraries +#-- docs: Save doc directories specified by DOC_DIRS +#-- libtool: Leave libtool (.la) files in packages +#-- staticlibs: Leave static library (.a) files in packages +#-- emptydirs: Leave empty directories in packages +#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip +#-- purge: Remove files specified by PURGE_TARGETS +#-- debug: Add debugging flags as specified in DEBUG_* variables +#-- lto: Add compile flags for building with link time optimization +# +OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug !lto) + +#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2 +INTEGRITY_CHECK=(sha256) +#-- Options to be used when stripping binaries. See `man strip' for details. +STRIP_BINARIES="--strip-all" +#-- Options to be used when stripping shared libraries. See `man strip' for details. +STRIP_SHARED="--strip-unneeded" +#-- Options to be used when stripping static libraries. See `man strip' for details. +STRIP_STATIC="--strip-debug" +#-- Manual (man and info) directories to compress (if zipman is specified) +MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info}) +#-- Doc directories to remove (if !docs is specified) +DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc}) +#-- Files to be removed from all packages (if purge is specified) +PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod) +#-- Directory to store source code in for debug packages +DBGSRCDIR="/usr/src/debug" + +######################################################################### +# PACKAGE OUTPUT +######################################################################### +# +# Default: put built package and cached source in build directory +# +#-- Destination: specify a fixed directory where all packages will be placed +#PKGDEST=/home/packages +#-- Source cache: specify a fixed directory where source files will be cached +#SRCDEST=/home/sources +#-- Source packages: specify a fixed directory where all src packages will be placed +#SRCPKGDEST=/home/srcpackages +#-- Log files: specify a fixed directory where all log files will be placed +#LOGDEST=/home/makepkglogs +#-- Packager: name/email of the person or organization building packages +#PACKAGER="John Doe " +#-- Specify a key to use for package signing +#GPGKEY="" + +######################################################################### +# COMPRESSION DEFAULTS +######################################################################### +# +COMPRESSGZ=(gzip -c -f -n) +COMPRESSBZ2=(bzip2 -c -f) +COMPRESSXZ=(xz -c -z --threads=0 -9 -e -) +COMPRESSZST=(zstd -c -z -q -) +COMPRESSLRZ=(lrzip -q) +COMPRESSLZO=(lzop -q) +COMPRESSZ=(compress -c -f) +COMPRESSLZ4=(lz4 -q) +COMPRESSLZ=(lzip -c -f) + +######################################################################### +# EXTENSION DEFAULTS +######################################################################### +# +#PKGEXT='.pkg.tar.zst' +PKGEXT='.pkg.tar.xz' +SRCEXT='.src.tar.gz' + +######################################################################### +# OTHER +######################################################################### +# +#-- Command used to run pacman as root, instead of trying sudo and su +#PACMAN_AUTH=() diff --git a/airootfs/etc/mkinitcpio.conf b/airootfs/etc/mkinitcpio.conf new file mode 100644 index 0000000..1541dca --- /dev/null +++ b/airootfs/etc/mkinitcpio.conf @@ -0,0 +1,69 @@ +# 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=(vmd) + +# 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=(setfont) + +# 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 ' for +# help on a given hook. +# 'base' is _required_ unless you know precisely what you are doing. +# 'udev' is _required_ in order to automatically load modules +# 'filesystems' is _required_ unless you specify your fs modules in MODULES +# Examples: +## This setup specifies all modules in the MODULES setting above. +## No raid, lvm2, or encrypted root is needed. +# HOOKS=(base) +# +## This setup will autodetect all modules for your system and should +## work as a sane default +# HOOKS=(base udev autodetect block filesystems) +# +## This setup will generate a 'full' image which supports most systems. +## No autodetection is done. +# HOOKS=(base udev block filesystems) +# +## This setup assembles a pata mdadm array with an encrypted root FS. +## Note: See 'mkinitcpio -H mdadm' for more information on raid devices. +# HOOKS=(base udev block mdadm encrypt filesystems) +# +## This setup loads an lvm2 volume group on a usb device. +# HOOKS=(base udev block lvm2 filesystems) +# +## NOTE: If you have /usr on a separate partition, you MUST include the +# usr, fsck and shutdown hooks. +HOOKS=(base udev modconf 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 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 +# is used. Use 'cat' to create an uncompressed image. +#COMPRESSION="gzip" +#COMPRESSION="bzip2" +#COMPRESSION="lzma" +#COMPRESSION="xz" +#COMPRESSION="lzop" +#COMPRESSION="lz4" +COMPRESSION="zstd" + +# COMPRESSION_OPTIONS +# Additional options for the compressor +#COMPRESSION_OPTIONS=() diff --git a/airootfs/etc/mkinitcpio.d/linux-xanmod.preset b/airootfs/etc/mkinitcpio.d/linux-xanmod.preset new file mode 100644 index 0000000..7b279eb --- /dev/null +++ b/airootfs/etc/mkinitcpio.d/linux-xanmod.preset @@ -0,0 +1,24 @@ +# mkinitcpio preset file for the 'Melawy Linux' package on archiso + +KNAME="xanmod" + +KVER=$(ls /usr/lib/modules/ | grep $KNAME | sort -V | tail -n 1) + +if [[ -z "$KVER" ]]; then + exit +fi + +cp -vf "/usr/lib/modules/$KVER/vmlinuz" "/boot/vmlinuz-linux-xanmod-anbox" + +ALL_config="/etc/mkinitcpio.conf" +ALL_kver="/usr/lib/modules/$KVER/vmlinuz" +ALL_kver="/boot/vmlinuz-linux-xanmod-anbox" +ALL_microcode=(/boot/*-ucode.img) + +PRESETS=('archiso') + +#archiso_config="/etc/mkinitcpio.conf" +archiso_image="/boot/initramfs-linux-xanmod-anbox.img" +#archiso_uki="/efi/EFI/Linux/linux-xanmod-anbox.efi" +archiso_uki="/boot/linux-xanmod-anbox.efi" +archiso_options="--cmdline /proc/cmdline" diff --git a/airootfs/etc/modprobe.d/broadcom-wl.conf b/airootfs/etc/modprobe.d/broadcom-wl.conf new file mode 100644 index 0000000..0eae70c --- /dev/null +++ b/airootfs/etc/modprobe.d/broadcom-wl.conf @@ -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. diff --git a/airootfs/etc/motd b/airootfs/etc/motd new file mode 100644 index 0000000..4d9eda1 --- /dev/null +++ b/airootfs/etc/motd @@ -0,0 +1,11 @@ +To install Arch Linux follow the installation guide: +https://wiki.archlinux.org/title/Installation_guide + +For Wi-Fi, authenticate to the wireless network using the iwctl utility. +For mobile broadband (WWAN) modems, connect with the mmcli utility. +Ethernet, WLAN and WWAN interfaces using DHCP should work automatically. + +After connecting to the internet, the installation guide can be accessed +via the convenience script Installation_guide. + +                                           diff --git a/airootfs/etc/pacman.conf b/airootfs/etc/pacman.conf new file mode 100644 index 0000000..3042b6d --- /dev/null +++ b/airootfs/etc/pacman.conf @@ -0,0 +1,116 @@ +# /etc/pacman.conf +# +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# RootDir = / +# DBPath = /var/lib/pacman/ +#CacheDir = /tmp/ +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 +# UseDelta = 0.7 +Architecture = auto +# IgnorePkg = +# IgnorePkg = +# IgnoreGroup = +# NoUpgrade = +# NoExtract = +# UseSyslog +Color +ILoveCandy +# NoProgressBar +CheckSpace +VerbosePkgLists +DisableDownloadTimeout +ParallelDownloads = 5 +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +# RemoteFileSigLevel = Required + +# [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 + +# [multilib-testing] +# Include = /etc/pacman.d/mirrorlist + +[multilib] +Include = /etc/pacman.d/mirrorlist + +# [custom] +# SigLevel = Optional TrustAll +# Server = file:///home/custompkgs + +[melawy] +SigLevel = Required DatabaseOptional +Include = /etc/pacman.d/melawy-linux-mirrorlist + +[melawy-aur] +SigLevel = Required DatabaseOptional +Include = /etc/pacman.d/melawy-linux-mirrorlist + +[melawy-aur-kde] +SigLevel = Required DatabaseOptional +Include = /etc/pacman.d/melawy-linux-mirrorlist + +[melawy-aur-theme] +SigLevel = Required DatabaseOptional +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 = Required DatabaseOptional +# Server = file:///disk/repo/$repo/$arch diff --git a/airootfs/etc/pacman.d/gnupg/gpg.conf b/airootfs/etc/pacman.d/gnupg/gpg.conf new file mode 100644 index 0000000..fa7f15f --- /dev/null +++ b/airootfs/etc/pacman.d/gnupg/gpg.conf @@ -0,0 +1,13 @@ +no-greeting +no-permission-warning +lock-never +keyserver-options timeout=10 +keyserver-options import-clean +keyserver-options no-self-sigs-only + +keyserver hkp://keyserver.ubuntu.com:80 +#keyserver hkp://pool.sks-keyservers.net:80 +#keyserver hkps://hkps.pool.sks-keyservers.net:443 +#keyserver hkp://ipv4.pool.sks-keyservers.net:11371 + + diff --git a/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook b/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook new file mode 100644 index 0000000..342aa95 --- /dev/null +++ b/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook @@ -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 diff --git a/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook b/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook new file mode 100644 index 0000000..8dfb943 --- /dev/null +++ b/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook @@ -0,0 +1,18 @@ +# remove from airootfs! +# As a workaround for https://bugs.archlinux.org/task/49347 , remove pacman hooks specific to the ISO build process. +# If not, they would be used when pacstrap is run in the live environment. + +[Trigger] +Operation = Install +Operation = Upgrade +Operation = Remove +Type = Package +Target = * + +[Action] +Description = Work around FS#49347 by removing custom pacman hooks that are only required during ISO build... +When = PostTransaction +Depends = sh +Depends = coreutils +Depends = grep +Exec = /bin/sh -c "rm -- $(grep -Frl 'remove from airootfs' /etc/pacman.d/hooks/)" diff --git a/airootfs/etc/passwd b/airootfs/etc/passwd new file mode 100644 index 0000000..da8dd66 --- /dev/null +++ b/airootfs/etc/passwd @@ -0,0 +1,2 @@ +root:x:0:0:root:/root:/usr/bin/zsh +liveuser:x:1000:1000::/home/liveuser:/bin/bash diff --git a/airootfs/etc/plymouth/plymouthd.conf b/airootfs/etc/plymouth/plymouthd.conf new file mode 100644 index 0000000..4b2b1e9 --- /dev/null +++ b/airootfs/etc/plymouth/plymouthd.conf @@ -0,0 +1,5 @@ +[Daemon] +Theme=melawy-lera-sugar +DeviceScale=1 +DeviceTimeout=8 +ShowDelay=0 diff --git a/airootfs/etc/polkit-1/rules.d/49-nopasswd_global.rules b/airootfs/etc/polkit-1/rules.d/49-nopasswd_global.rules new file mode 100644 index 0000000..afc8670 --- /dev/null +++ b/airootfs/etc/polkit-1/rules.d/49-nopasswd_global.rules @@ -0,0 +1,9 @@ +/* Allow members of the wheel group to execute any actions + * without password authentication, similar to "sudo NOPASSWD:" + */ +polkit.addRule(function(action, subject) { + if (subject.isInGroup("wheel")) { + return polkit.Result.YES; + } +}); + diff --git a/airootfs/etc/resolv.conf b/airootfs/etc/resolv.conf new file mode 120000 index 0000000..3639662 --- /dev/null +++ b/airootfs/etc/resolv.conf @@ -0,0 +1 @@ +/run/systemd/resolve/stub-resolv.conf \ No newline at end of file diff --git a/airootfs/etc/sddm.conf b/airootfs/etc/sddm.conf new file mode 100644 index 0000000..a3ca40b --- /dev/null +++ b/airootfs/etc/sddm.conf @@ -0,0 +1,37 @@ +[General] +InputMethod= +Namespaces= + +[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=false + +[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 diff --git a/airootfs/etc/sddm.conf.d/autologin.conf b/airootfs/etc/sddm.conf.d/autologin.conf new file mode 100644 index 0000000..b307fa0 --- /dev/null +++ b/airootfs/etc/sddm.conf.d/autologin.conf @@ -0,0 +1,4 @@ +#[Autologin] +#Relogin=false +#User=liveuser +#Session=plasma diff --git a/airootfs/etc/sddm.conf.d/kde_settings.conf b/airootfs/etc/sddm.conf.d/kde_settings.conf new file mode 100644 index 0000000..be704d1 --- /dev/null +++ b/airootfs/etc/sddm.conf.d/kde_settings.conf @@ -0,0 +1,13 @@ +[General] +HaltCommand=/usr/bin/systemctl poweroff +Numlock=on +RebootCommand=/usr/bin/systemctl reboot + +[Theme] +Current=Melawy-Lera-Sugar +CursorTheme=Qogir-dark +Font=Noto Sans,10,-1,0,50,0,0,0,0,0 + +[Users] +MaximumUid=60513 +MinimumUid=1000 diff --git a/airootfs/etc/sddm.conf.d/tty.conf b/airootfs/etc/sddm.conf.d/tty.conf new file mode 100644 index 0000000..5f80756 --- /dev/null +++ b/airootfs/etc/sddm.conf.d/tty.conf @@ -0,0 +1,2 @@ +[X11] +MinimumVT=7 diff --git a/airootfs/etc/shadow b/airootfs/etc/shadow new file mode 100644 index 0000000..3692488 --- /dev/null +++ b/airootfs/etc/shadow @@ -0,0 +1,2 @@ +root::14871:::::: +liveuser::14871:::::: \ No newline at end of file diff --git a/airootfs/etc/ssh/sshd_config b/airootfs/etc/ssh/sshd_config new file mode 100644 index 0000000..dc22c11 --- /dev/null +++ b/airootfs/etc/ssh/sshd_config @@ -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 no + +# Kerberos options +#KerberosAuthentication no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes +#KerberosGetAFSToken no + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the KbdInteractiveAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via KbdInteractiveAuthentication may bypass +# the setting of "PermitRootLogin prohibit-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 +#PrintLastLog yes +#TCPKeepAlive yes +#PermitUserEnvironment no +#Compression delayed +#ClientAliveInterval 0 +#ClientAliveCountMax 3 +#UseDNS no +#PidFile /run/sshd.pid +#MaxStartups 10:30:100 +#PermitTunnel no +#ChrootDirectory none +#VersionAddendum none + +# no default banner path +#Banner none + +# override default of no subsystems +Subsystem sftp /usr/lib/ssh/sftp-server + +# Example of overriding settings on a per-user basis +#Match User anoncvs +# X11Forwarding no +# AllowTcpForwarding no +# PermitTTY no +# ForceCommand cvs server diff --git a/airootfs/etc/sudoers.d/g_wheel b/airootfs/etc/sudoers.d/g_wheel new file mode 100644 index 0000000..bbad988 --- /dev/null +++ b/airootfs/etc/sudoers.d/g_wheel @@ -0,0 +1 @@ +%wheel ALL=(ALL:ALL) NOPASSWD: ALL diff --git a/airootfs/etc/systemd/intel.service b/airootfs/etc/systemd/intel.service new file mode 100644 index 0000000..02d8a4c --- /dev/null +++ b/airootfs/etc/systemd/intel.service @@ -0,0 +1,10 @@ +[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 new file mode 100644 index 0000000..6e11247 --- /dev/null +++ b/airootfs/etc/systemd/journald.conf @@ -0,0 +1,44 @@ +# 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. +# +# 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. +# +# See journald.conf(5) for details. + +[Journal] +Storage=volatile +#Compress=yes +#Seal=yes +#SplitMode=uid +#SyncIntervalSec=5m +#RateLimitIntervalSec=30s +#RateLimitBurst=10000 +#SystemMaxUse= +#SystemKeepFree= +#SystemMaxFileSize= +#SystemMaxFiles=100 +#RuntimeMaxUse= +#RuntimeKeepFree= +#RuntimeMaxFileSize= +#RuntimeMaxFiles=100 +#MaxRetentionSec= +#MaxFileSec=1month +#ForwardToSyslog=no +#ForwardToKMsg=no +#ForwardToConsole=no +#ForwardToWall=yes +#TTYPath=/dev/console +#MaxLevelStore=debug +#MaxLevelSyslog=debug +#MaxLevelKMsg=notice +#MaxLevelConsole=info +#MaxLevelWall=emerg +#LineMax=48K +#ReadKMsg=yes +#Audit=yes diff --git a/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf b/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf new file mode 100644 index 0000000..b69850d --- /dev/null +++ b/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf @@ -0,0 +1,2 @@ +[Journal] +Storage=volatile diff --git a/airootfs/etc/systemd/logind.conf b/airootfs/etc/systemd/logind.conf new file mode 100644 index 0000000..72b3254 --- /dev/null +++ b/airootfs/etc/systemd/logind.conf @@ -0,0 +1,38 @@ +# 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. +# +# 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. +# +# See logind.conf(5) for details. + +[Login] +#NAutoVTs=6 +#ReserveVT=6 +#KillUserProcesses=no +#KillOnlyUsers= +#KillExcludeUsers=root +#InhibitDelayMaxSec=5 +#HandlePowerKey=poweroff +HandleSuspendKey=ignore +HandleHibernateKey=ignore +HandleLidSwitch=ignore +#HandleLidSwitchExternalPower=suspend +#HandleLidSwitchDocked=ignore +#PowerKeyIgnoreInhibited=no +#SuspendKeyIgnoreInhibited=no +#HibernateKeyIgnoreInhibited=no +#LidSwitchIgnoreInhibited=yes +#HoldoffTimeoutSec=30s +#IdleAction=ignore +#IdleActionSec=30min +#RuntimeDirectorySize=10% +#RuntimeDirectoryInodes=400k +#RemoveIPC=yes +#InhibitorsMax=8192 +#SessionsMax=8192 diff --git a/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf b/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf new file mode 100644 index 0000000..f3ecb39 --- /dev/null +++ b/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf @@ -0,0 +1,4 @@ +[Login] +HandleSuspendKey=ignore +HandleHibernateKey=ignore +HandleLidSwitch=ignore diff --git a/airootfs/etc/systemd/network/20-ethernet.network b/airootfs/etc/systemd/network/20-ethernet.network new file mode 100644 index 0000000..9ada778 --- /dev/null +++ b/airootfs/etc/systemd/network/20-ethernet.network @@ -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 diff --git a/airootfs/etc/systemd/network/20-wlan.network b/airootfs/etc/systemd/network/20-wlan.network new file mode 100644 index 0000000..601d5b8 --- /dev/null +++ b/airootfs/etc/systemd/network/20-wlan.network @@ -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 diff --git a/airootfs/etc/systemd/network/20-wwan.network b/airootfs/etc/systemd/network/20-wwan.network new file mode 100644 index 0000000..9104c24 --- /dev/null +++ b/airootfs/etc/systemd/network/20-wwan.network @@ -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 diff --git a/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator b/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator new file mode 120000 index 0000000..dc1dc0c --- /dev/null +++ b/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator @@ -0,0 +1 @@ +/dev/null \ No newline at end of file diff --git a/airootfs/etc/systemd/system/choose-mirror.service b/airootfs/etc/systemd/system/choose-mirror.service new file mode 100644 index 0000000..b6a3562 --- /dev/null +++ b/airootfs/etc/systemd/system/choose-mirror.service @@ -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 diff --git a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service b/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service new file mode 120000 index 0000000..ebc50f0 --- /dev/null +++ b/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-config.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service b/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service new file mode 120000 index 0000000..80fa3c8 --- /dev/null +++ b/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-final.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service b/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service new file mode 120000 index 0000000..dd8e9f1 --- /dev/null +++ b/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-init-local.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init.service b/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init.service new file mode 120000 index 0000000..24c7a26 --- /dev/null +++ b/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-init.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service b/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service new file mode 120000 index 0000000..dcf7c8e --- /dev/null +++ b/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/ModemManager.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service b/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service new file mode 120000 index 0000000..4c158e6 --- /dev/null +++ b/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service b/airootfs/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service new file mode 120000 index 0000000..a7e5cd4 --- /dev/null +++ b/airootfs/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/NetworkManager-dispatcher.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service b/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service new file mode 120000 index 0000000..4f6ae34 --- /dev/null +++ b/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-resolved.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service b/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service new file mode 120000 index 0000000..cd00411 --- /dev/null +++ b/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-timesyncd.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/default.target b/airootfs/etc/systemd/system/default.target new file mode 120000 index 0000000..cf9fa51 --- /dev/null +++ b/airootfs/etc/systemd/system/default.target @@ -0,0 +1 @@ +/usr/lib/systemd/system/graphical.target \ No newline at end of file diff --git a/airootfs/etc/systemd/system/display-manager.service b/airootfs/etc/systemd/system/display-manager.service new file mode 120000 index 0000000..56f1df2 --- /dev/null +++ b/airootfs/etc/systemd/system/display-manager.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/sddm.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 new file mode 100644 index 0000000..0ba0e67 --- /dev/null +++ b/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount @@ -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 diff --git a/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf new file mode 100644 index 0000000..a07a34b --- /dev/null +++ b/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf @@ -0,0 +1,4 @@ +[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 diff --git a/airootfs/etc/systemd/system/intel.service b/airootfs/etc/systemd/system/intel.service new file mode 100644 index 0000000..02d8a4c --- /dev/null +++ b/airootfs/etc/systemd/system/intel.service @@ -0,0 +1,10 @@ +[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/system/livecd-alsa-unmuter.service b/airootfs/etc/systemd/system/livecd-alsa-unmuter.service new file mode 100644 index 0000000..03db4b9 --- /dev/null +++ b/airootfs/etc/systemd/system/livecd-alsa-unmuter.service @@ -0,0 +1,13 @@ +[Unit] +Description=Unmute All Sound Card Controls For Use With The Live Arch Environment +# This needs to run after the audio device becomes available. +Wants=systemd-udev-settle.service +After=systemd-udev-settle.service sound.target +ConditionKernelCommandLine=accessibility=on + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/livecd-sound -u + +[Install] +WantedBy=sound.target diff --git a/airootfs/etc/systemd/system/livecd-talk.service b/airootfs/etc/systemd/system/livecd-talk.service new file mode 100644 index 0000000..b38df22 --- /dev/null +++ b/airootfs/etc/systemd/system/livecd-talk.service @@ -0,0 +1,20 @@ +[Unit] +Description=Screen reader service +After=livecd-alsa-unmuter.service +Before=getty@tty1.service +ConditionKernelCommandLine=accessibility=on + +[Service] +Type=oneshot +TTYPath=/dev/tty13 +ExecStartPre=/usr/bin/chvt 13 +ExecStart=/usr/local/bin/livecd-sound -p +ExecStartPost=/usr/bin/chvt 1 +ExecStartPost=systemctl start espeakup.service +StandardInput=tty +TTYVHangup=yes +TTYVTDisallocate=yes +RemainAfterExit=true + +[Install] +WantedBy=multi-user.target diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service b/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service new file mode 120000 index 0000000..dcf7c8e --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/ModemManager.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/NetworkManager.service b/airootfs/etc/systemd/system/multi-user.target.wants/NetworkManager.service new file mode 120000 index 0000000..e874a9b --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/NetworkManager.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/NetworkManager.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service b/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service new file mode 120000 index 0000000..2d8d256 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service @@ -0,0 +1 @@ +../choose-mirror.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service b/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service new file mode 120000 index 0000000..20ac7b2 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_fcopy_daemon.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service b/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service new file mode 120000 index 0000000..a7eac4a --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_kvp_daemon.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service b/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service new file mode 120000 index 0000000..eae19ef --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_vss_daemon.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service b/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service new file mode 120000 index 0000000..3625abd --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/iwd.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service b/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service new file mode 120000 index 0000000..b917481 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service @@ -0,0 +1 @@ +/etc/systemd/system/livecd-talk.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service b/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service new file mode 120000 index 0000000..d09eec6 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service @@ -0,0 +1 @@ +../pacman-init.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service b/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service new file mode 120000 index 0000000..d372729 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/reflector.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service b/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service new file mode 120000 index 0000000..d21ebd9 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/sshd.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service b/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service new file mode 120000 index 0000000..4c158e6 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service b/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service new file mode 120000 index 0000000..4f6ae34 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-resolved.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service b/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service new file mode 120000 index 0000000..cb2d560 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vboxservice.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service b/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service new file mode 120000 index 0000000..e0a11a7 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vmtoolsd.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service b/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service new file mode 120000 index 0000000..173f306 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vmware-vmblock-fuse.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service b/airootfs/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service new file mode 120000 index 0000000..b78b586 --- /dev/null +++ b/airootfs/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/NetworkManager-wait-online.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 new file mode 120000 index 0000000..7d6ad92 --- /dev/null +++ b/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service @@ -0,0 +1 @@ +/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 new file mode 100644 index 0000000..b824884 --- /dev/null +++ b/airootfs/etc/systemd/system/pacman-init.service @@ -0,0 +1,15 @@ +[Unit] +Description=Initializes Pacman keyring +Requires=etc-pacman.d-gnupg.mount +After=etc-pacman.d-gnupg.mount time-sync.target +BindsTo=etc-pacman.d-gnupg.mount +Before=archlinux-keyring-wkd-sync.service + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/pacman-key --init +ExecStart=/usr/bin/pacman-key --populate + +[Install] +WantedBy=multi-user.target diff --git a/airootfs/etc/systemd/system/reflector.service.d/archiso.conf b/airootfs/etc/systemd/system/reflector.service.d/archiso.conf new file mode 100644 index 0000000..de6664d --- /dev/null +++ b/airootfs/etc/systemd/system/reflector.service.d/archiso.conf @@ -0,0 +1,6 @@ +[Unit] +ConditionKernelCommandLine=!mirror + +[Service] +Restart=on-failure +RestartSec=10 diff --git a/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket b/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket new file mode 120000 index 0000000..51942c8 --- /dev/null +++ b/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd.socket \ No newline at end of file diff --git a/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service b/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service new file mode 120000 index 0000000..98c0fc8 --- /dev/null +++ b/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service @@ -0,0 +1 @@ +../livecd-alsa-unmuter.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service b/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service new file mode 120000 index 0000000..cabf28b --- /dev/null +++ b/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-time-wait-sync.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service b/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service new file mode 120000 index 0000000..cd00411 --- /dev/null +++ b/airootfs/etc/systemd/system/sysinit.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/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf b/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf new file mode 100644 index 0000000..c9f9bce --- /dev/null +++ b/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf @@ -0,0 +1,6 @@ +# Allow systemd-networkd-wait-online to succeed with one interface, otherwise, if multiple network interfaces exist, +# network-online.target gets needlessly delayed. +# See https://wiki.archlinux.org/title/systemd-networkd#systemd-networkd-wait-online +[Service] +ExecStart= +ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any diff --git a/airootfs/etc/vconsole.conf b/airootfs/etc/vconsole.conf new file mode 100644 index 0000000..b16edef --- /dev/null +++ b/airootfs/etc/vconsole.conf @@ -0,0 +1,3 @@ +FONT=ter-k16n +#KEYMAP=ru +KEYMAP=ruwin_alt_sh-UTF-8 diff --git a/airootfs/etc/xdg/reflector/reflector.conf b/airootfs/etc/xdg/reflector/reflector.conf new file mode 100644 index 0000000..a2cd2b6 --- /dev/null +++ b/airootfs/etc/xdg/reflector/reflector.conf @@ -0,0 +1,35 @@ +# Reflector configuration file for the systemd service. +# +# Empty lines and lines beginning with "#" are ignored. All other lines should +# contain valid reflector command-line arguments. The lines are parsed with +# Python's shlex modules so standard shell syntax should work. All arguments are +# collected into a single argument list. +# +# See "reflector --help" for details. + +# Recommended Options + +# Set the output path where the mirrorlist will be saved (--save). +#--save /etc/pacman.d/mirrorlist + +# Select the transfer protocol (--protocol). +#--protocol https + +# Select the country (--country). +# Consult the list of available countries with "reflector --list-countries" and +# select the countries nearest to you or the ones that you trust. For example: +# --country France,Germany + +# Use only the most recently synchronized mirrors (--latest). +#--latest 5 + +# Sort the mirrors by synchronization time (--sort). +#--sort age + + +-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 +--fastest 50 +--latest 50 +--sort rate +--save /etc/pacman.d/mirrorlist diff --git a/airootfs/opt/extra-drivers/packages_for_calamares b/airootfs/opt/extra-drivers/packages_for_calamares new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/airootfs/opt/extra-drivers/packages_for_calamares @@ -0,0 +1 @@ + diff --git a/airootfs/root/.automated_script.sh b/airootfs/root/.automated_script.sh new file mode 100755 index 0000000..ed3a924 --- /dev/null +++ b/airootfs/root/.automated_script.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +script_cmdline () +{ + local param + for param in $(< /proc/cmdline); do + case "${param}" in + script=*) echo "${param#*=}" ; return 0 ;; + esac + done +} + +automated_script () +{ + local script rt + script="$(script_cmdline)" + if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then + if [[ "${script}" =~ ^((http|https|ftp)://) ]]; then + curl "${script}" --retry-connrefused -s -o /tmp/startup_script >/dev/null + rt=$? + else + cp "${script}" /tmp/startup_script + rt=$? + fi + if [[ ${rt} -eq 0 ]]; then + chmod +x /tmp/startup_script + /tmp/startup_script + fi + fi +} + +if [[ $(tty) == "/dev/tty1" ]]; then + automated_script +fi diff --git a/airootfs/root/.zlogin b/airootfs/root/.zlogin new file mode 100755 index 0000000..0fb119d --- /dev/null +++ b/airootfs/root/.zlogin @@ -0,0 +1,6 @@ +# fix for screen readers +if grep -Fq 'accessibility=' /proc/cmdline &> /dev/null; then + setopt SINGLE_LINE_ZLE +fi + +~/.automated_script.sh diff --git a/airootfs/root/archives/README b/airootfs/root/archives/README new file mode 100644 index 0000000..b53540c --- /dev/null +++ b/airootfs/root/archives/README @@ -0,0 +1 @@ +place archives here to get manual installed inside customize_airootfs.sh process/script diff --git a/airootfs/root/archives/liveuser.tar.xz b/airootfs/root/archives/liveuser.tar.xz new file mode 100644 index 0000000..d2c4c74 Binary files /dev/null and b/airootfs/root/archives/liveuser.tar.xz differ diff --git a/airootfs/root/archives/skel.tar.xz b/airootfs/root/archives/skel.tar.xz new file mode 100644 index 0000000..72f93c3 Binary files /dev/null and b/airootfs/root/archives/skel.tar.xz differ diff --git a/airootfs/root/customize_airootfs.sh b/airootfs/root/customize_airootfs.sh new file mode 100755 index 0000000..22f950f --- /dev/null +++ b/airootfs/root/customize_airootfs.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash + +locale-gen + +ln -sf /usr/share/zoneinfo/UTC /etc/localtime + +usermod -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 + +chmod 750 /etc/sudoers.d +chmod 440 /etc/sudoers.d/g_wheel +chown -R 1000:1000 /home/liveuser + +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" + + +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" + + +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 + +pacman -Qs | grep "/calamares " | cut -c7- > iso_package_versions +pacman -Qs | grep "/firefox " | cut -c7- >> iso_package_versions +pacman -Qs | grep "/linux-xanmod-anbox " | cut -c7- >> iso_package_versions +pacman -Qs | grep "/mesa " | cut -c7- >> iso_package_versions +pacman -Qs | grep "/xorg-server " | cut -c7- >> iso_package_versions +pacman -Qs | grep "/nvidia-dkms " | cut -c7- >> iso_package_versions +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 + +tar -xJvf /root/archives/liveuser.tar.xz -C /home/liveuser --strip=1 --overwrite +chown -R 1000:1000 /home/liveuser + +setfacl -m u:sddm:x /home/liveuser/ +setfacl -m u:sddm:r /home/liveuser/.face.icon +setfacl -m u:sddm:r /home/liveuser/.face diff --git a/airootfs/root/wallpaper.png b/airootfs/root/wallpaper.png new file mode 100644 index 0000000..fafb0de Binary files /dev/null and b/airootfs/root/wallpaper.png differ diff --git a/airootfs/usr/bin/GPU-Intel-installer b/airootfs/usr/bin/GPU-Intel-installer new file mode 100755 index 0000000..f5b8ee8 --- /dev/null +++ b/airootfs/usr/bin/GPU-Intel-installer @@ -0,0 +1,67 @@ +#!/bin/bash + +# This app checks if an Intel graphics device in the system is of generation from 1 to 3. +# If an old Intel device is detected, app installs the xf86-video-intel package. +# This app is meant to install the package into the ISO only. +# Returns 0 (=true) if a match is found. +# Returns 1 (=false) otherwise. +# Also displays the found matching Intel device id, or a simple message if not found. + +DIE() { + echo "$progname: error: $1" >&2 + exit 0 +} + +IsIntelGeneration_1_to_3() { + # See https://en.m.wikipedia.org/wiki/List_of_Intel_graphics_processing_units. + + local id="$1" + + local generation_1to3_ids=( + 7800 1240 7121 7123 7125 1132 # gen 1 + 2562 3577 2572 3582 358E # gen 2 (table had duplicate 3582) + 2582 258A 2592 2772 27A2 27AE 29D2 29B2 29C2 A001 A011 # gen 3 + # 2972 2992 29A2 2982 2A02 2A12 2E42 2E92 2E12 2E32 2E22 2A42 # gen 4 (commented out but here if needed) + ) + + id="${id^^[a-f]}" # makes all letters uppercase in $id + + [[ "${generation_1to3_ids[*]}" =~ "$id" ]] # returns 0 if $id matches any of the listed values, returns 1 otherwise +} + +Main() { + local progname="$(basename "$0")" + + # User may give graphics item(s) to search (VGA, Display, 3D). + # By default VGA, Display, and 3D are searched. + + local input_items="VGA|Display|3D" + local data=$(lspci -nn | grep -P "$input_items") # data = info about graphics devices + local vendor_and_id + local vendor + local id + local item + local intel_vid=8086 + local pkg=xf86-video-intel + + for item in ${input_items//|/ } ; do + if [ -n "$(echo "$data" | grep -w "$item")" ] ; then + vendor_and_id=$(echo "$data" | grep "$item" | sed -E 's|.*\[([0-9a-f]+:[0-9a-f]+)\].*|\1|') # "xxxx:yyyy" + [ -n "$vendor_and_id" ] || DIE "failed finding $item info" + vendor=${vendor_and_id%:*} + if [ "$vendor" = "$intel_vid" ] ; then + id=${vendor_and_id#*:} + if IsIntelGeneration_1_to_3 "$id" ; then + echo "==> $progname: found Intel graphics device with id $id, installing package $pkg" + local pkgs=(/usr/share/packages/{$pkg,libxvmc}-*.pkg.tar.zst) + sudo pacman -U --noconfirm "${pkgs[@]}" + return 0 + fi + fi + fi + done + echo "==> $progname: No gen1..gen3 Intel graphics device was found." + return 1 # Intel graphics device not found +} + +Main "$@" diff --git a/airootfs/usr/local/bin/Installation_guide b/airootfs/usr/local/bin/Installation_guide new file mode 100755 index 0000000..4266754 --- /dev/null +++ b/airootfs/usr/local/bin/Installation_guide @@ -0,0 +1,5 @@ +#!/bin/sh +# +# SPDX-License-Identifier: GPL-3.0-or-later + +exec lynx 'https://wiki.archlinux.org/title/Installation_guide' diff --git a/airootfs/usr/local/bin/alci-displaymanager-check b/airootfs/usr/local/bin/alci-displaymanager-check new file mode 100755 index 0000000..916547f --- /dev/null +++ b/airootfs/usr/local/bin/alci-displaymanager-check @@ -0,0 +1,33 @@ +#!/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. +# +############################################################################### + +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 diff --git a/airootfs/usr/local/bin/alci-make-a-pure-arch b/airootfs/usr/local/bin/alci-make-a-pure-arch new file mode 100755 index 0000000..e2bbfa2 --- /dev/null +++ b/airootfs/usr/local/bin/alci-make-a-pure-arch @@ -0,0 +1,18 @@ +#!/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/choose-mirror b/airootfs/usr/local/bin/choose-mirror new file mode 100755 index 0000000..b021945 --- /dev/null +++ b/airootfs/usr/local/bin/choose-mirror @@ -0,0 +1,28 @@ +#!/bin/bash +# +# SPDX-License-Identifier: GPL-3.0-or-later + +get_cmdline() { + local param + for param in $(< /proc/cmdline); do + case "${param}" in + $1=*) echo "${param##*=}"; + return 0 + ;; + esac + done +} + +mirror=$(get_cmdline mirror) +[[ $mirror = auto ]] && mirror=$(get_cmdline 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 diff --git a/airootfs/usr/local/bin/displaymanager-check b/airootfs/usr/local/bin/displaymanager-check new file mode 100755 index 0000000..916547f --- /dev/null +++ b/airootfs/usr/local/bin/displaymanager-check @@ -0,0 +1,33 @@ +#!/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. +# +############################################################################### + +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 diff --git a/airootfs/usr/local/bin/fix-key b/airootfs/usr/local/bin/fix-key new file mode 120000 index 0000000..135401b --- /dev/null +++ b/airootfs/usr/local/bin/fix-key @@ -0,0 +1 @@ +fix-keys \ No newline at end of file diff --git a/airootfs/usr/local/bin/fix-keys b/airootfs/usr/local/bin/fix-keys new file mode 100755 index 0000000..a5d364a --- /dev/null +++ b/airootfs/usr/local/bin/fix-keys @@ -0,0 +1,116 @@ +#!/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 +################################################################################################################## + +Online=0 + +function check_connectivity() { + + local test_ip + local test_count + + test_ip="8.8.8.8" + test_count=1 + + if ping -c ${test_count} ${test_ip} > /dev/null; then + tput setaf 2 + echo + echo "You are online" + echo + tput sgr0 + Online=1 + else + tput setaf 1 + echo + echo "You are not connected to the internet" + echo "We can not download the latest archlinux-keyring package" + echo + echo "Make sure you are online to retrieve packages" + echo + tput sgr0 + Online=0 + fi + } + +check_connectivity + +if [ $Online -eq 1 ] ; then + tput setaf 2 + echo + echo "Installing the latest archlinux-keyring package from the internet" + echo + tput sgr0 + sudo pacman -Sy archlinux-keyring --noconfirm + echo +fi + +echo "###############################################################################" +echo "Removing the pacman databases at /var/lib/pacman/sync/*" +echo "###############################################################################" +echo +sudo rm /var/lib/pacman/sync/* +echo + +echo "###############################################################################" +echo "Removing /etc/pacman.d/gnupg folder" +echo "###############################################################################" +echo +sudo rm -rf /etc/pacman.d/gnupg/* +echo + +echo "###############################################################################" +echo "Initialize pacman keys with pacman-key --init" +echo "###############################################################################" +echo +sudo pacman-key --init +echo + +echo "###############################################################################" +echo "Populating keyring with pacman-key --populate" +echo "###############################################################################" +echo +sudo pacman-key --populate +echo + +echo "###############################################################################" +echo "Adding Ubuntu keyserver to /etc/pacman.d/gnupg/gpg.conf" +echo "###############################################################################" +echo +echo " +keyserver hkp://keyserver.ubuntu.com:80" | sudo tee --append /etc/pacman.d/gnupg/gpg.conf + +echo +echo "###############################################################################" +echo "Getting new databases with pacman -Sy" +echo "###############################################################################" +echo +sudo pacman -Sy +echo + +echo "###############################################################################" +echo "### DONE - YOU CAN CLOSE THIS WINDOW ####" +echo "###############################################################################" \ No newline at end of file diff --git a/airootfs/usr/local/bin/fixkey b/airootfs/usr/local/bin/fixkey new file mode 120000 index 0000000..135401b --- /dev/null +++ b/airootfs/usr/local/bin/fixkey @@ -0,0 +1 @@ +fix-keys \ No newline at end of file diff --git a/airootfs/usr/local/bin/fixkeys b/airootfs/usr/local/bin/fixkeys new file mode 120000 index 0000000..135401b --- /dev/null +++ b/airootfs/usr/local/bin/fixkeys @@ -0,0 +1 @@ +fix-keys \ No newline at end of file diff --git a/airootfs/usr/local/bin/get-nemesis-on-alci b/airootfs/usr/local/bin/get-nemesis-on-alci new file mode 100755 index 0000000..d0ec56b --- /dev/null +++ b/airootfs/usr/local/bin/get-nemesis-on-alci @@ -0,0 +1,51 @@ +#!/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/local/bin/livecd-sound b/airootfs/usr/local/bin/livecd-sound new file mode 100755 index 0000000..baae0d2 --- /dev/null +++ b/airootfs/usr/local/bin/livecd-sound @@ -0,0 +1,248 @@ +#!/usr/bin/env bash +# +# SPDX-License-Identifier: GPL-3.0-or-later + +usage() { + cat <<- _EOF_ + live cd sound helper script. + Usage: livecdsound [OPTION] + OPTIONS + -u, --unmute unmute all sound cards + -p, --pick select a card for speetch output + -h, --help Show this usage message + +_EOF_ +} + +bugout () { + printf "/usr/local/bin/livecdsound: programming error" + stat_fail +} + +echo_card_indices() +{ + if [ -f /proc/asound/cards ] ; then + sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' /proc/asound/cards + fi +} + +# The following functions try to set many controls. +# No card has all the controls and so some of the attempts are bound to fail. +# Because of this, the functions can't return useful status values. + +# $1 +# $2 +# $3 +unmute_and_set_level(){ + { [ "$3" ] &&[ "$2" ] && [ "$1" ] ; } || bugout + systemd-cat -t "livecdsound" printf "Setting: %s on card: %s to %s\n" "$2" "$1" "$3" + systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" unmute + return 0 +} + +# $1 +# $2 +mute_and_zero_level() +{ + { [ "$1" ] && [ "$2" ] ; } || bugout + systemd-cat -t "livecdsound" printf "Muting control: %s on card: %s\n" "$2" "$1" + systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "0%" mute + return 0 +} + +# $1 +# $2 +# $3 "on" | "off" +switch_control() +{ + { [ "$3" ] && [ "$1" ] ; } || bugout + systemd-cat -t "livecdsound" printf "Switching control: %s on card: %s to %s\n" "$2" "$1" "$3" + systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" + return 0 +} + +# $1 +sanify_levels_on_card() +{ + unmute_and_set_level "$1" "Front" "80%" + unmute_and_set_level "$1" "Master" "80%" + unmute_and_set_level "$1" "Master Mono" "80%" + unmute_and_set_level "$1" "Master Digital" "80%" # E.g., cs4237B + unmute_and_set_level "$1" "Playback" "80%" + unmute_and_set_level "$1" "Headphone" "100%" + unmute_and_set_level "$1" "PCM" "80%" + unmute_and_set_level "$1" "PCM,1" "80%" # E.g., ess1969 + unmute_and_set_level "$1" "DAC" "80%" # E.g., envy24, cs46xx + unmute_and_set_level "$1" "DAC,0" "80%" # E.g., envy24 + unmute_and_set_level "$1" "DAC,1" "80%" # E.g., envy24 + unmute_and_set_level "$1" "Synth" "80%" + unmute_and_set_level "$1" "CD" "80%" + unmute_and_set_level "$1" "PC Speaker" "100%" + + mute_and_zero_level "$1" "Mic" + mute_and_zero_level "$1" "IEC958" # Ubuntu #19648 + + # Intel P4P800-MX + switch_control "$1" "Master Playback Switch" on + switch_control "$1" "Master Surround" on + + # Trident/YMFPCI/emu10k1: + unmute_and_set_level "$1" "Wave" "80%" + unmute_and_set_level "$1" "Music" "80%" + unmute_and_set_level "$1" "AC97" "80%" + + # DRC: + unmute_and_set_level "$1" "Dynamic Range Compression" "80%" + + # Required for HDA Intel (hda-intel): + unmute_and_set_level "$1" "Front" "80%" + + # Required for SB Live 7.1/24-bit (ca0106): + unmute_and_set_level "$1" "Analog Front" "80%" + + # Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard + switch_control "$1" "IEC958 Capture Monitor" off + + # Required for hardware allowing toggles for AC97 through IEC958, + # valid values are 0, 1, 2, 3. Needs to be set to 0 for PCM1. + unmute_and_set_level "$1" "IEC958 Playback AC97-SPSA" "0" + + # Required for newer Via hardware + unmute_and_set_level "$1" "VIA DXS,0" "80%" + unmute_and_set_level "$1" "VIA DXS,1" "80%" + unmute_and_set_level "$1" "VIA DXS,2" "80%" + unmute_and_set_level "$1" "VIA DXS,3" "80%" + + # Required on some notebooks with ICH4: + switch_control "$1" "Headphone Jack Sense" off + switch_control "$1" "Line Jack Sense" off + + # Some machines need one or more of these to be on; + # others need one or more of these to be off: + + switch_control "$1" "Audigy Analog/Digital Output Jack" on + switch_control "$1" "SB Live Analog/Digital Output Jack" on + + # D1984 -- Thinkpad T61/X61 + switch_control "$1" "Speaker" on + switch_control "$1" "Headphone" on + + # HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823) + unmute_and_set_level "$1" "Digital" "80%" + + return 0 +} + +# $1 | "all" +sanify_levels() +{ + local ttsdml_returnstatus=0 + local card + case "$1" in + all) + for card in $(echo_card_indices) ; do + sanify_levels_on_card "$card" || ttsdml_returnstatus=1 + done + ;; + *) + sanify_levels_on_card "$1" || ttsdml_returnstatus=1 + ;; + esac + return $ttsdml_returnstatus +} + +# List all cards that *should* be usable for PCM audio. In my experience, +# the console speaker (handled by the pcsp driver) isn't a suitable playback +# device, so we'll exclude it. +list_non_pcsp_cards() +{ + for card in $(echo_card_indices); do + local cardfile="/proc/asound/card${card}/id" + if [ -r "$cardfile" ] && [ -f "$cardfile" ] && \ + [ "$(cat "$cardfile")" != pcsp ]; then + echo "$card" + fi + done +} + +# Properly initialize the sound card so that we have audio at boot. +unmute_all_cards() +{ + sanify_levels all +} + +is_numeric() { + local str=$1 + [[ "$str" =~ ^[0-9]+$ ]] +} + +set_default_card() { + local card=$1 + sed -e "s/%card%/$card/g" < /usr/local/share/livecd-sound/asound.conf.in \ + > /etc/asound.conf +} + +play_on_card() { + local card=$1 file=$2 + aplay -q "-Dplughw:$card,0" "$file" +} + +# If there are multiple usable sound cards, prompt the user to choose one, +# using auditory feedback. +pick_a_card() +{ + set -f + usable_cards="$(list_non_pcsp_cards)" + num_usable_cards="$(wc -w <<< "$usable_cards")" + + if [ "$num_usable_cards" -eq 1 ]; then + systemd-cat -t "livecdsound" printf "Only one sound card is detected\n" + exit 0 + fi + systemd-cat -t "livecdsound" printf "multiple sound cards detected\n" + for card in $usable_cards; do + if ! is_numeric "$card"; then + continue + fi + play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav& + done + wait + sleep 1 + for card in $usable_cards; do + if ! is_numeric "$card"; then + continue + fi + play_on_card "$card" /usr/share/livecd-sounds/beep.wav + if read -r -t 10; then + systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card" + set_default_card "$card" + break + fi +done +} + +if [[ $# -eq 0 ]]; then + echo "error: No argument passed." + exit 1 +fi +while [[ "${1}" != "" ]]; do + case ${1} in + -h|--help) + usage + exit + ;; + -u|--unmute) + systemd-cat -t "livecdsound" printf "Unmuting all cards" + unmute_all_cards + ;; + -p|--pick) + pick_a_card + ;; + *) + echo "error: Unsupported argument" + usage + exit 1 + ;; + esac + shift +done diff --git a/airootfs/usr/local/share/livecd-sound/asound.conf.in b/airootfs/usr/local/share/livecd-sound/asound.conf.in new file mode 100644 index 0000000..3f9c7aa --- /dev/null +++ b/airootfs/usr/local/share/livecd-sound/asound.conf.in @@ -0,0 +1,3 @@ +Defaults node +defaults.ctl.card %card%; +defaults.pcm.card %card%; diff --git a/airootfs/usr/share/X11/xorg.conf.d/30-touchpad.conf b/airootfs/usr/share/X11/xorg.conf.d/30-touchpad.conf new file mode 100644 index 0000000..398554e --- /dev/null +++ b/airootfs/usr/share/X11/xorg.conf.d/30-touchpad.conf @@ -0,0 +1,5 @@ +Section "InputClass" + Identifier "devname" + Driver "libinput" + Option "Tapping" "on" +EndSection diff --git a/airootfs/usr/share/packages/packages_for_calamares b/airootfs/usr/share/packages/packages_for_calamares new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/airootfs/usr/share/packages/packages_for_calamares @@ -0,0 +1 @@ + diff --git a/bootstrap_packages.x86_64 b/bootstrap_packages.x86_64 new file mode 100644 index 0000000..64966d0 --- /dev/null +++ b/bootstrap_packages.x86_64 @@ -0,0 +1,2 @@ +arch-install-scripts +base diff --git a/efiboot/loader/entries/01-archiso-x86_64-linux.conf b/efiboot/loader/entries/01-archiso-x86_64-linux.conf new file mode 100644 index 0000000..f35968c --- /dev/null +++ b/efiboot/loader/entries/01-archiso-x86_64-linux.conf @@ -0,0 +1,7 @@ +title Melawy Linux x86_64 UEFI Default +sort-key 01 +linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-xanmod-anbox +initrd /%INSTALL_DIR%/boot/intel-ucode.img +initrd /%INSTALL_DIR%/boot/amd-ucode.img +initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-xanmod-anbox.img +options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes quiet splash bgrt_disable add_efi_memmap diff --git a/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf b/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf new file mode 100644 index 0000000..fd2543b --- /dev/null +++ b/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf @@ -0,0 +1,7 @@ +title Melawy Linux x86_64 UEFI NVIDIA (latest cards only) +sort-key 02 +linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-xanmod-anbox +initrd /%INSTALL_DIR%/boot/intel-ucode.img +initrd /%INSTALL_DIR%/boot/amd-ucode.img +initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-xanmod-anbox.img +options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n nvidia nvidia-drm.modeset=1 nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nvme_load=yes module_blacklist=pcspkr quiet splash bgrt_disable add_efi_memmap diff --git a/efiboot/loader/entries/03-archiso-x86_64-efi.conf b/efiboot/loader/entries/03-archiso-x86_64-efi.conf new file mode 100644 index 0000000..996833b --- /dev/null +++ b/efiboot/loader/entries/03-archiso-x86_64-efi.conf @@ -0,0 +1,4 @@ +title Melawy Linux x86_64 UEFI EFI Default +sort-key 03 +efi /%INSTALL_DIR%/boot/x86_64/linux-xanmod-anbox.efi +options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes quiet splash bgrt_disable add_efi_memmap diff --git a/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf b/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf new file mode 100644 index 0000000..4be4b3a --- /dev/null +++ b/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf @@ -0,0 +1,4 @@ +title Melawy Linux x86_64 UEFI EFI NVIDIA (latest cards only) +sort-key 04 +efi /%INSTALL_DIR%/boot/x86_64/linux-xanmod-anbox.efi +options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n nvidia nvidia-drm.modeset=1 nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nvme_load=yes module_blacklist=pcspkr quiet splash bgrt_disable add_efi_memmap diff --git a/efiboot/loader/loader.conf b/efiboot/loader/loader.conf new file mode 100644 index 0000000..0f88f92 --- /dev/null +++ b/efiboot/loader/loader.conf @@ -0,0 +1,5 @@ +default 01-archiso-x86_64-linux.conf +timeout 10 +console-mode max +auto-entries yes +auto-firmware yes diff --git a/grub/grub.cfg b/grub/grub.cfg new file mode 100644 index 0000000..50aa5d4 --- /dev/null +++ b/grub/grub.cfg @@ -0,0 +1,87 @@ +# Load partition table and file system modules +insmod part_gpt +insmod part_msdos +insmod fat +insmod iso9660 +insmod ntfs +insmod ntfscomp +insmod exfat +insmod udf + +# Use graphics-mode output +insmod all_video +insmod font +if loadfont "${prefix}/fonts/unicode.pf2" ; then + set gfxmode="auto" + terminal_input console + terminal_output console +fi + +# Enable serial console +if serial --unit=0 --speed=115200; then + terminal_input --append serial + terminal_output --append serial +fi + +# Search for the ISO volume +if [ -z "${ARCHISO_UUID}" ]; then + if [ -z "${ARCHISO_HINT}" ]; then + regexp --set=1:ARCHISO_HINT '^\(([^)]+)\)' "${cmdpath}" + fi + search --no-floppy --set=root --file '%ARCHISO_SEARCH_FILENAME%' --hint "${ARCHISO_HINT}" + probe --set ARCHISO_UUID --fs-uuid "${root}" +fi + +# Set default menu entry +default="Melawy Linux" +timeout=15 +timeout_style=menu + +# GRUB init tune for accessibility +play 600 988 1 1319 4 + +# Menu entries + +menuentry "Melawy Linux install medium (x86_64, UEFI)" --class arch --class gnu-linux --class gnu --class os --id 'Melawy Linux' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-xanmod-anbox archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} cow_spacesize=4G copytoram=n quiet splash bgrt_disable add_efi_memmap + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux-xanmod-anbox.img +} + +menuentry "Melawy Linux install medium with speakup screen reader (x86_64, UEFI)" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'Melawy-accessibility' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-xanmod-anbox archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} accessibility=on cow_spacesize=4G copytoram=n quiet splash bgrt_disable add_efi_memmap + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux-xanmod-anbox.img +} + +if [ "${grub_platform}" == "efi" ]; then + if [ "${grub_cpu}" == "x86_64" ]; then + menuentry "Run Memtest86+ (RAM test)" --class memtest86 --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest.efi + } + menuentry "UEFI Shell" { + insmod chain + chainloader /shellx64.efi + } + elif [ "${grub_cpu}" == "i386" ]; then + menuentry "UEFI Shell" { + insmod chain + chainloader /shellia32.efi + } + fi + + menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' { + fwsetup + } +fi + +menuentry "System restart" --class reboot --class restart { + echo "System rebooting..." + reboot +} + +menuentry "System shutdown" --class shutdown --class poweroff { + echo "System shutting down..." + halt +} diff --git a/info/info.sh b/info/info.sh new file mode 100755 index 0000000..0f878dd --- /dev/null +++ b/info/info.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +list=$(cat packages.x86_64 | grep -v "^#" | grep -v "^$") + +# a=1 + +for i in $list +do +# if [[ $a == 2 ]]; then +# break +# fi + + name="${i}" +# desc=$(pacman -Ss "${i}" | grep "^ " | sed -e "s/ //g") + desc=$(pacman -Si "${i}" | grep "^ОписаниС" | cut -d":" -f2) + ru_desc=$(trans -b en:ru "${desc}") + + echo -e "${name}\n#${desc}\n# ${ru_desc}\n" >> packages_desc.x86_64 + +# a=$((a+1)) +done diff --git a/info/packages.x86_64 b/info/packages.x86_64 new file mode 100644 index 0000000..e69de29 diff --git a/mkarchiso_last_my b/mkarchiso_last_my new file mode 100755 index 0000000..16f4161 --- /dev/null +++ b/mkarchiso_last_my @@ -0,0 +1,1881 @@ +#!/usr/bin/env bash +# +# SPDX-License-Identifier: GPL-3.0-or-later + +set -e -u +shopt -s extglob + +# Control the environment +umask 0022 +export LC_ALL="C.UTF-8" +if [[ -v LANGUAGE ]]; then + # LC_ALL=C.UTF-8, unlike LC_ALL=C, does not override LANGUAGE. + # See https://sourceware.org/bugzilla/show_bug.cgi?id=16621 and https://savannah.gnu.org/bugs/?62815 + unset LANGUAGE +fi +[[ -v SOURCE_DATE_EPOCH ]] || printf -v SOURCE_DATE_EPOCH '%(%s)T' -1 +export SOURCE_DATE_EPOCH + +# Set application name from the script's file name +app_name="${0##*/}" + +# Define global variables. All of them will be overwritten later +pkg_list=() +bootstrap_pkg_list=() +quiet="" +work_dir="" +out_dir="" +gpg_key="" +gpg_sender="" +iso_name="" +iso_label="" +iso_publisher="" +iso_application="" +iso_version="" +install_dir="" +arch="" +pacman_conf="" +packages="" +bootstrap_packages="" +pacstrap_dir="" +buildmodes=() +bootmodes=() +airootfs_image_type="" +airootfs_image_tool_options=() +cert_list=() +declare -A file_permissions=() +efibootimg="" +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() { + local _msg="${1}" + [[ "${quiet}" == "y" ]] || printf '[%s] INFO: %s\n' "${app_name}" "${_msg}" +} + +# Show a WARNING message +# $1: message string +_msg_warning() { + local _msg="${1}" + printf '[%s] WARNING: %s\n' "${app_name}" "${_msg}" >&2 +} + +# Show an ERROR message then exit with status +# $1: message string +# $2: exit code number (with 0 does not exit) +_msg_error() { + local _msg="${1}" + local _error=${2} + printf '[%s] ERROR: %s\n' "${app_name}" "${_msg}" >&2 + if (( _error > 0 )); then + exit "${_error}" + fi +} + +# Show help usage, with an exit status. +# $1: exit status number. +_usage() { + IFS='' read -r -d '' usagetext < + options: + -A Set an application name for the ISO + Default: '${iso_application}' + -C pacman configuration file. + Default: '${pacman_conf}' + -D Set an install_dir. All files will by located here. + Default: '${install_dir}' + NOTE: Max 8 characters, use only [a-z0-9] + -L