diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 85930446..dfadb69c 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -2,4 +2,3 @@ github: adi1090x ko_fi: adi1090x -liberapay: adi1090x diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 175b8942..1ec9eb26 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -3,7 +3,7 @@ Please answer the following questions for yourself before submitting an issue. >**YOU MAY DELETE THE PREREQUISITES SECTION.** -- [ ] I am using the [latest version](https://github.com/archcraft-os/releases/releases/tag/v21.10) +- [ ] I am using the [latest version](https://github.com/archcraft-os/releases/releases) - [ ] I checked the [documentation](https://wiki.archcraft.io) and found no answer - [ ] I checked to make sure that this issue has not already been filed - [ ] I'm reporting the issue to the correct repository diff --git a/.gitignore b/.gitignore index 839b8e37..c5c0b58a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ # Work Directory -/work +/profile/work # ISO Directory -/out +/profile/out diff --git a/airootfs/etc/motd b/airootfs/etc/motd deleted file mode 100644 index 6b86370e..00000000 --- a/airootfs/etc/motd +++ /dev/null @@ -1,22 +0,0 @@ -⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡃⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⠛⠳⢄⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⢀⠀⠀⢀⣿⣿⣆⠀⠀⢀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⢰⣿⣿⣾⣿⣿⣿⣿⣷⣾⣿⣷⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⡿⠛⠛⠻⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⣶⣿⣿⣿⡟⠀⠀⠀⠀⠘⣿⣿⣿⣷⡆⠀⠀⠀⢀⠀⠀⢻⣿⣿⣿⣿⣿ -⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠙⢻⣿⣿⣷⡀⠀⠀⢀⣼⣿⣿⣿⡟⠃⠀⠀⠀⠀⠉⠲⢦⣿⣿⣿⣿⣿ -⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠿⣿⣿⣿ -⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣿ -⣿⠏⠀⠀⠀⠀⣀⣠⣴⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣀⡀⠀⠀⠀⠀⠹⣿ -⢏⣀⣤⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣄⣀⠹ - -Welcome to Archcraft, A minimal linux OS based on archlinux. diff --git a/changelog.md b/changelog.md index 7445a3c6..9640d806 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,24 @@

Archcraft : Changelogs

+### January 2023 +**`Major Release`** +- Created the ISO base from scratch +- Better Network Manager Support, Various VPN plugins +- Better Bluetooth Support +- Pipewire For Sound/Audio (Systemwide, Bluetooth, Jack) +- Better Printer Support +- Almost All Audio, Video and Image Codecs +- Better File manager functionality (Mounting, Networking, Archiving, etc) +- Better multi-monitor support +- CJK fonts pre-installed +- New themes for both openbox and bspwm +- Creating user themes are super easy now +- So many minor changes, etc. + +> You need to re-install Archcraft for this update. After that, you can update to next release with `pacman` + +# + ### September 2022 **`Just a regular ISO update`** - Updated the ISO with latest packages diff --git a/grub/grub.cfg b/grub/grub.cfg deleted file mode 100644 index f167454c..00000000 --- a/grub/grub.cfg +++ /dev/null @@ -1,77 +0,0 @@ -# Load partition table and file system modules -insmod part_gpt -insmod part_msdos -insmod fat -insmod iso9660 - -# Use graphics-mode output -insmod all_video -insmod font -if loadfont "${prefix}/fonts/unicode.pf2" ; then - insmod gfxterm - set gfxmode="auto" - terminal_input console - terminal_output gfxterm -fi - -# Enable serial console -if serial --unit=0 --speed=115200; then - terminal_input --append serial - terminal_output --append serial -fi - -# Set default menu entry -default=archcraft -timeout=10 -timeout_style=menu - -# Menu entries - -menuentry "Boot Archcraft (64bit, UEFI)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraft' { - set gfxpayload=keep - search --no-floppy --set=root --label %ARCHISO_LABEL% - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G - initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img -} - -menuentry "Boot Archcraft (64bit, UEFI, Copy to RAM)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraft-ctr' { - set gfxpayload=keep - search --no-floppy --set=root --label %ARCHISO_LABEL% - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=1G - initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img -} - -menuentry "Boot Archcraft (64bit, UEFI, NVIDIA)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraft-nvidia' { - set gfxpayload=keep - search --no-floppy --set=root --label %ARCHISO_LABEL% - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G nouveau.modeset=0 modprobe.blacklist=nouveau nvidia i915.modeset=1 radeon.modeset=1 - initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img -} - -if [ "${grub_platform}" == "efi" ]; then - if [ "${grub_cpu}" == "x86_64" ]; then - menuentry "UEFI Shell" --class recovery { - insmod chain - search --no-floppy --set=root --label %ARCHISO_LABEL% - chainloader /shellx64.efi - } - elif [ "${grub_cpu}" == "i386" ]; then - menuentry "UEFI Shell" --class recovery { - insmod chain - search --no-floppy --set=root --label %ARCHISO_LABEL% - chainloader /shellia32.efi - } - fi - - menuentry 'UEFI Firmware Settings' --class recovery --id 'uefi-firmware' { - fwsetup - } -fi - -menuentry "System shutdown" --class shutdown --class poweroff { - halt -} - -menuentry "System restart" --class restart --class reboot { - reboot -} diff --git a/airootfs/etc/X11/xorg.conf.d/02-touchpad-ttc.conf b/profile/airootfs/etc/X11/xorg.conf.d/02-touchpad-ttc.conf similarity index 100% rename from airootfs/etc/X11/xorg.conf.d/02-touchpad-ttc.conf rename to profile/airootfs/etc/X11/xorg.conf.d/02-touchpad-ttc.conf diff --git a/airootfs/etc/environment b/profile/airootfs/etc/environment similarity index 80% rename from airootfs/etc/environment rename to profile/airootfs/etc/environment index 81c7e0a7..427988ab 100644 --- a/airootfs/etc/environment +++ b/profile/airootfs/etc/environment @@ -4,6 +4,5 @@ # Syntax: simple "KEY=VAL" pairs on separate lines # QT_QPA_PLATFORMTHEME=qt5ct -PATH="/usr/share/archcraft/scripts" EDITOR=nano BROWSER=firefox diff --git a/airootfs/etc/group b/profile/airootfs/etc/group similarity index 95% rename from airootfs/etc/group rename to profile/airootfs/etc/group index 1c7bf5ee..fbe9da60 100644 --- a/airootfs/etc/group +++ b/profile/airootfs/etc/group @@ -3,6 +3,7 @@ sys:x:3:bin,liveuser network:x:90:liveuser power:x:98:liveuser adm:x:999:liveuser +lp:x:992:liveuser wheel:x:998:liveuser uucp:x:987:liveuser optical:x:990:liveuser diff --git a/airootfs/etc/gshadow b/profile/airootfs/etc/gshadow similarity index 95% rename from airootfs/etc/gshadow rename to profile/airootfs/etc/gshadow index a6de646a..d1df9df4 100644 --- a/airootfs/etc/gshadow +++ b/profile/airootfs/etc/gshadow @@ -3,6 +3,7 @@ sys:!!::liveuser network:!!::liveuser power:!!::liveuser adm:!!::liveuser +lp:!!::liveuser wheel:!!::liveuser uucp:!!::liveuser optical:!!::liveuser diff --git a/airootfs/etc/hostname b/profile/airootfs/etc/hostname similarity index 100% rename from airootfs/etc/hostname rename to profile/airootfs/etc/hostname diff --git a/airootfs/etc/locale.conf b/profile/airootfs/etc/locale.conf similarity index 100% rename from airootfs/etc/locale.conf rename to profile/airootfs/etc/locale.conf diff --git a/airootfs/etc/localtime b/profile/airootfs/etc/localtime similarity index 100% rename from airootfs/etc/localtime rename to profile/airootfs/etc/localtime diff --git a/airootfs/etc/mkinitcpio.conf b/profile/airootfs/etc/mkinitcpio.conf similarity index 100% rename from airootfs/etc/mkinitcpio.conf rename to profile/airootfs/etc/mkinitcpio.conf diff --git a/airootfs/etc/mkinitcpio.d/linux.preset b/profile/airootfs/etc/mkinitcpio.d/linux.preset similarity index 100% rename from airootfs/etc/mkinitcpio.d/linux.preset rename to profile/airootfs/etc/mkinitcpio.d/linux.preset diff --git a/airootfs/etc/modprobe.d/broadcom-wl.conf b/profile/airootfs/etc/modprobe.d/broadcom-wl.conf similarity index 100% rename from airootfs/etc/modprobe.d/broadcom-wl.conf rename to profile/airootfs/etc/modprobe.d/broadcom-wl.conf diff --git a/profile/airootfs/etc/motd b/profile/airootfs/etc/motd new file mode 100644 index 00000000..1b941387 --- /dev/null +++ b/profile/airootfs/etc/motd @@ -0,0 +1,9 @@ +Welcome to Archcraft! + +Home: https://archcraft.io +Wiki: https://wiki.archcraft.io + +Developed By: Aditya Shakya  + +        + diff --git a/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook b/profile/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook similarity index 100% rename from airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook rename to profile/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook diff --git a/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook b/profile/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook similarity index 100% rename from airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook rename to profile/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook diff --git a/airootfs/etc/passwd b/profile/airootfs/etc/passwd similarity index 100% rename from airootfs/etc/passwd rename to profile/airootfs/etc/passwd diff --git a/airootfs/etc/polkit-1/localauthority/50-local.d/10-udisks.pkla b/profile/airootfs/etc/polkit-1/localauthority/50-local.d/10-udisks.pkla similarity index 100% rename from airootfs/etc/polkit-1/localauthority/50-local.d/10-udisks.pkla rename to profile/airootfs/etc/polkit-1/localauthority/50-local.d/10-udisks.pkla diff --git a/airootfs/etc/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules b/profile/airootfs/etc/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules similarity index 100% rename from airootfs/etc/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules rename to profile/airootfs/etc/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules diff --git a/airootfs/etc/polkit-1/rules.d/50-udiskie.rules b/profile/airootfs/etc/polkit-1/rules.d/50-udiskie.rules similarity index 100% rename from airootfs/etc/polkit-1/rules.d/50-udiskie.rules rename to profile/airootfs/etc/polkit-1/rules.d/50-udiskie.rules diff --git a/airootfs/etc/polkit-1/rules.d/allow-mount-internal.rules b/profile/airootfs/etc/polkit-1/rules.d/allow-mount-internal.rules similarity index 100% rename from airootfs/etc/polkit-1/rules.d/allow-mount-internal.rules rename to profile/airootfs/etc/polkit-1/rules.d/allow-mount-internal.rules diff --git a/airootfs/etc/polkit-1/rules.d/always-allow-wheel.rules b/profile/airootfs/etc/polkit-1/rules.d/always-allow-wheel.rules similarity index 100% rename from airootfs/etc/polkit-1/rules.d/always-allow-wheel.rules rename to profile/airootfs/etc/polkit-1/rules.d/always-allow-wheel.rules diff --git a/airootfs/etc/polkit-1/rules.d/udisks-no-consolekit.rules b/profile/airootfs/etc/polkit-1/rules.d/udisks-no-consolekit.rules similarity index 100% rename from airootfs/etc/polkit-1/rules.d/udisks-no-consolekit.rules rename to profile/airootfs/etc/polkit-1/rules.d/udisks-no-consolekit.rules diff --git a/airootfs/etc/resolv.conf b/profile/airootfs/etc/resolv.conf similarity index 100% rename from airootfs/etc/resolv.conf rename to profile/airootfs/etc/resolv.conf diff --git a/airootfs/etc/sddm.conf b/profile/airootfs/etc/sddm.conf similarity index 100% rename from airootfs/etc/sddm.conf rename to profile/airootfs/etc/sddm.conf diff --git a/airootfs/etc/sddm.conf.d/kde_settings.conf b/profile/airootfs/etc/sddm.conf.d/kde_settings.conf similarity index 100% rename from airootfs/etc/sddm.conf.d/kde_settings.conf rename to profile/airootfs/etc/sddm.conf.d/kde_settings.conf diff --git a/airootfs/etc/shadow b/profile/airootfs/etc/shadow similarity index 100% rename from airootfs/etc/shadow rename to profile/airootfs/etc/shadow diff --git a/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_blur.png b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_blur.png new file mode 100644 index 00000000..f155c832 Binary files /dev/null and b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_blur.png differ diff --git a/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_color.png b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_color.png new file mode 100644 index 00000000..3ed8c4c6 Binary files /dev/null and b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_color.png differ diff --git a/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_dim.png b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_dim.png new file mode 100644 index 00000000..2fecd0cc Binary files /dev/null and b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_dim.png differ diff --git a/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_dimblur.png b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_dimblur.png new file mode 100644 index 00000000..9147722c Binary files /dev/null and b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_dimblur.png differ diff --git a/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_dimpixel.png b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_dimpixel.png new file mode 100644 index 00000000..b534f315 Binary files /dev/null and b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_dimpixel.png differ diff --git a/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_pixel.png b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_pixel.png new file mode 100644 index 00000000..366032b1 Binary files /dev/null and b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_pixel.png differ diff --git a/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_resize.png b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_resize.png new file mode 100644 index 00000000..91a84aaf Binary files /dev/null and b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/lock_resize.png differ diff --git a/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_blur.png b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_blur.png new file mode 100644 index 00000000..3904afb2 Binary files /dev/null and b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_blur.png differ diff --git a/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_color.png b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_color.png new file mode 100644 index 00000000..662dd57f Binary files /dev/null and b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_color.png differ diff --git a/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_dim.png b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_dim.png new file mode 100644 index 00000000..2154cf10 Binary files /dev/null and b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_dim.png differ diff --git a/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_dimblur.png b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_dimblur.png new file mode 100644 index 00000000..19c7b35c Binary files /dev/null and b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_dimblur.png differ diff --git a/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_dimpixel.png b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_dimpixel.png new file mode 100644 index 00000000..01e2bf61 Binary files /dev/null and b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_dimpixel.png differ diff --git a/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_pixel.png b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_pixel.png new file mode 100644 index 00000000..e8354c76 Binary files /dev/null and b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_pixel.png differ diff --git a/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_resize.png b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_resize.png new file mode 100644 index 00000000..cf96c512 Binary files /dev/null and b/profile/airootfs/etc/skel/.cache/betterlockscreen/current/wall_resize.png differ diff --git a/profile/airootfs/etc/skel/.cache/rofi3.druncache b/profile/airootfs/etc/skel/.cache/rofi3.druncache new file mode 100644 index 00000000..6fff1234 --- /dev/null +++ b/profile/airootfs/etc/skel/.cache/rofi3.druncache @@ -0,0 +1,24 @@ +5 archcraft-welcome.desktop +5 calamares.desktop +5 abif.desktop +5 help-and-tips.desktop +5 about.desktop +5 Alacritty.desktop +5 firefox.desktop +5 thunar.desktop +5 geany.desktop +1 htop.desktop +1 vim.desktop +1 ranger.desktop +1 viewnior.desktop +1 xfce-settings-manager.desktop +1 xfce4-settings-editor.desktop +1 xfce4-power-manager-settings.desktop +1 xfce-keyboard-settings.desktop +1 xfce-mouse-settings.desktop +1 xfce-ui-settings.desktop +1 nitrogen.desktop +1 lxappearance.desktop +1 obconf.desktop +1 atril.desktop +1 xarchiver.desktop diff --git a/profile/airootfs/etc/skel/.config/Thunar/accels.scm b/profile/airootfs/etc/skel/.config/Thunar/accels.scm new file mode 100644 index 00000000..fc720e36 --- /dev/null +++ b/profile/airootfs/etc/skel/.config/Thunar/accels.scm @@ -0,0 +1,2 @@ +(gtk_accel_path "/ThunarActions/uca-action-1581593230771688-1" "F4") +(gtk_accel_path "/ThunarActions/uca-action-1622790717174452-1" "F3") diff --git a/profile/airootfs/etc/skel/.config/Thunar/uca.xml b/profile/airootfs/etc/skel/.config/Thunar/uca.xml new file mode 100644 index 00000000..4a6cb4df --- /dev/null +++ b/profile/airootfs/etc/skel/.config/Thunar/uca.xml @@ -0,0 +1,60 @@ + + + + + open-terminal + Open Terminal Here + 1581593230771688-1 + /usr/bin/alacritty + Example for a custom action + * + + + + + go-parent-folder + Open as root + 1622790717174452-1 + ~/.config/openbox-themes/scripts/asroot 'dbus-run-session thunar' + Open directory as root + * + + + + document-edit-sign + Edit as root + 1622790919788057-2 + ~/.config/openbox-themes/scripts/asroot 'geany %f' + Edit file as root + * + + + + kr_comparedirs + Compare + 1622791692322694-4 + meld %F + Compare files and directories with meld + * + + + + + view-preview + Set as wallpaper + 1622798756568291-1 + nitrogen --save --set-zoom-fill %f + Set wallpaper with nitrogen in openbox + * + + + + rotation-locked-landscape + Set as lockscreen + 1622799434407260-2 + notify-send 'Please wait...' && betterlockscreen -u %f + Set image as lockscreen background + * + + + diff --git a/profile/airootfs/etc/skel/.config/dconf/user b/profile/airootfs/etc/skel/.config/dconf/user new file mode 100644 index 00000000..6eef2726 Binary files /dev/null and b/profile/airootfs/etc/skel/.config/dconf/user differ diff --git a/profile/airootfs/etc/skel/.config/dunst/dunstrc b/profile/airootfs/etc/skel/.config/dunst/dunstrc new file mode 100644 index 00000000..d7d85231 --- /dev/null +++ b/profile/airootfs/etc/skel/.config/dunst/dunstrc @@ -0,0 +1,71 @@ +## Copyright (C) 2020-2022 Aditya Shakya + +[global] +monitor = 0 +follow = mouse +width = 300 +height = 80 +origin = top-right +offset = 10x48 +corner_radius = 0 +scale = 0 +notification_limit = 0 +progress_bar = true +progress_bar_height = 80 +progress_bar_frame_width = 4 +progress_bar_min_width = 300 +progress_bar_max_width = 300 +indicate_hidden = yes +transparency = 0 +separator_height = 2 +padding = 15 +horizontal_padding = 15 +text_icon_padding = 0 +frame_width = 4 +gap_size = 0 +separator_color = frame +sort = yes +idle_threshold = 120 +font = JetBrains Mono 10 +line_height = 2 +markup = full +format = %s\n%b +alignment = left +vertical_alignment = center +show_age_threshold = 60 +ellipsize = middle +ignore_newline = no +stack_duplicates = true +hide_duplicate_count = false +show_indicators = yes +enable_recursive_icon_lookup = true +icon_position = left +min_icon_size = 24 +max_icon_size = 48 +sticky_history = yes +history_length = 20 +browser = /usr/bin/xdg-open +always_run_script = true +mouse_left_click = close_current +mouse_middle_click = do_action, close_current +mouse_right_click = close_all +title = Dunst +class = Dunst + +[urgency_low] +timeout = 2 +background = "#1E2128" +foreground = "#ABB2BF" +frame_color = "#292d37" + +[urgency_normal] +timeout = 5 +background = "#1E2128" +foreground = "#ABB2BF" +frame_color = "#292d37" + +[urgency_critical] +timeout = 0 +background = "#1E2128" +foreground = "#E06B74" +frame_color = "#E06B74" diff --git a/profile/airootfs/etc/skel/.config/gtk-3.0/gtk.css b/profile/airootfs/etc/skel/.config/gtk-3.0/gtk.css new file mode 100644 index 00000000..028f0e45 --- /dev/null +++ b/profile/airootfs/etc/skel/.config/gtk-3.0/gtk.css @@ -0,0 +1,21 @@ +VteTerminal, vte-terminal { + padding: 12px; +} + +.window-frame, .window-frame:backdrop { + box-shadow: 0 0 0 black; + border-style: none; + margin: 0; + border-radius: 0; +} + +.titlebar { + border-radius: 0; +} + +undershoot.top, +undershoot.right, +undershoot.bottom, +undershoot.left { + background-image: none; +} diff --git a/profile/airootfs/etc/skel/.config/gtk-3.0/settings.ini b/profile/airootfs/etc/skel/.config/gtk-3.0/settings.ini new file mode 100644 index 00000000..5228f03c --- /dev/null +++ b/profile/airootfs/etc/skel/.config/gtk-3.0/settings.ini @@ -0,0 +1,18 @@ +[Settings] +gtk-application-prefer-dark-theme=false +gtk-enable-animations=true +gtk-font-name=Noto Sans 9 +gtk-icon-theme-name=Arc-Circle +gtk-theme-name=Arc-Dark +gtk-cursor-theme-name=Qogirr +gtk-cursor-theme-size=0 +gtk-toolbar-style=GTK_TOOLBAR_ICONS +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=0 +gtk-menu-images=1 +gtk-enable-event-sounds=0 +gtk-enable-input-feedback-sounds=0 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle=hintslight +gtk-xft-rgba=rgb diff --git a/profile/airootfs/etc/skel/.config/mimeapps.list b/profile/airootfs/etc/skel/.config/mimeapps.list new file mode 100644 index 00000000..bab23bb8 --- /dev/null +++ b/profile/airootfs/etc/skel/.config/mimeapps.list @@ -0,0 +1,14 @@ +[Added Associations] +image/png=viewnior.desktop; +image/jpeg=viewnior.desktop; +image/gif=viewnior.desktop; +image/svg+xml=viewnior.desktop; +text/x-csrc=geany.desktop; +text/plain=geany.desktop; +application/x-shellscript=geany.desktop; +application/x-theme=geany.desktop; +application/json=geany.desktop; + +[Default Applications] +image/gif=viewnior.desktop +image/svg+xml=viewnior.desktop diff --git a/profile/airootfs/etc/skel/.config/picom.conf b/profile/airootfs/etc/skel/.config/picom.conf new file mode 100644 index 00000000..0a247a3b --- /dev/null +++ b/profile/airootfs/etc/skel/.config/picom.conf @@ -0,0 +1,421 @@ +## Copyright (C) 2020-2022 Aditya Shakya + +#========================= Corners =========================# + +corner-radius = 0; +rounded-corners-exclude = [ +# "window_type = 'normal'", + "class_g ?= 'rofi'", + "class_g ?= 'polybar'", + "class_g ?= 'tint2'" +]; + +round-borders = 0; +round-borders-exclude = [ + "class_g = 'TelegramDesktop'" +]; + +# Specify a list of border width rules, in the format `PIXELS:PATTERN`, +# Note we don't make any guarantee about possible conflicts with the +# border_width set by the window manager. +# +# example: +# round-borders-rule = [ "2:class_g = 'URxvt'" ]; +# +round-borders-rule = [ + "2:class_g ?= 'URxvt'", + "2:class_g ?= 'Alacritty'", + "0:class_g ?= 'firefox'" +]; + +#========================= Shadows =========================# + +# Enabled client-side shadows on windows. Note desktop windows +# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, +# unless explicitly requested using the wintypes option. +# +shadow = true; + +# The blur radius for shadows, in pixels. (defaults to 12) +shadow-radius = 14; + +# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) +shadow-opacity = 0.30; + +# The left offset for shadows, in pixels. (defaults to -15) +shadow-offset-x = -12; + +# The top offset for shadows, in pixels. (defaults to -15) +shadow-offset-y = -12; + +# Red color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-red = 0 + +# Green color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-green = 0 + +# Blue color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-blue = 0 + +# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue) +# shadow-color = "#000000" + +# Specify a list of conditions of windows that should have no shadow. +# +# examples: +# shadow-exclude = "n:e:Notification"; +# +# shadow-exclude = [] +shadow-exclude = [ + "class_g = 'Cairo-clock'", + "class_g = 'CoverGloobus'", + "class_g = 'Tilda'", + "name ?= 'gnome-pie'", +# "class_g = 'Dmenu'", +# "class_g ?= 'rofi'", +# "class_g ?= 'polybar'", + "class_g ?= 'Plank'", + "name *= 'recordmydesktop'", + "name = 'Notification'", + "name = 'Docky'", + "name = 'Kupfer'", + "name = 'xfce4-notifyd'", + "name *= 'VLC'", + "name *= 'Chromium'", + "name *= 'Chrome'", + "class_g = 'Conky'", + "class_g = 'Kupfer'", + "class_g = 'Synapse'", + "class_g ?= 'Notify-osd'", + "class_g ?= 'Cairo-dock'", + "class_g ?= 'Xfce4-notifyd'", + "class_g ?= 'Xfce4-power-manager'", + "_GTK_FRAME_EXTENTS@:c", + "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" +]; + +# Specify a X geometry that describes the region in which shadow should not +# be painted in, such as a dock window region. Use +# shadow-exclude-reg = "x10+0+0" +# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on. +# +# shadow-exclude-reg = "" + +# Crop shadow of a window fully on a particular Xinerama screen to the screen. +# xinerama-shadow-crop = false + +#========================= Fading =========================# + +# Fade windows in/out when opening/closing and when opacity changes, +# unless no-fading-openclose is used. +fading = true; + +# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) +fade-in-step = 0.03; + +# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) +fade-out-step = 0.03; + +# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) +fade-delta = 5; + +# Specify a list of conditions of windows that should not be faded. +# don't need this, we disable fading for all normal windows with wintypes: {} +fade-exclude = [ + "class_g = 'slop'" # maim +] + +# Do not fade on window open/close. +no-fading-openclose = false + +# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. +no-fading-destroyed-argb = true + +#========================= Opacity =========================# + +# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) +# inactive-opacity = 1 +inactive-opacity = 1; + +# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) +# frame-opacity = 1.0 +frame-opacity = 1.0; + +# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows. +# inactive-opacity-override = true +inactive-opacity-override = false; + +# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) +active-opacity = 1.0; + +# Dim inactive windows. (0.0 - 1.0, defaults to 0.0) +#inactive-dim = 0.5 + +# Specify a list of conditions of windows that should always be considered focused. +# focus-exclude = [] +focus-exclude = [ + "class_g = 'Cairo-clock'", + "class_g = 'Bar'", # lemonbar + "class_g = 'slop'" # maim +]; + +# Use fixed inactive dim value, instead of adjusting according to window opacity. +# inactive-dim-fixed = 1.0 + +# Specify a list of opacity rules, in the format `PERCENT:PATTERN`, +# like `50:name *= "Firefox"`. picom-trans is recommended over this. +# Note we don't make any guarantee about possible conflicts with other +# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows. +# example: +# opacity-rule = [ "80:class_g = 'URxvt'" ]; +# +# opacity-rule = [] +opacity-rule = [ + "100:class_g = 'Bar'", # lemonbar + "100:class_g = 'slop'", # maim + "100:class_g = 'XTerm'", + "100:class_g = 'URxvt'", + "100:class_g = 'kitty'", + "100:class_g = 'Alacritty'", + "100:class_g = 'Polybar'", + "100:class_g = 'code-oss'", + "100:class_g = 'Meld'", + "100:class_g = 'TelegramDesktop'", + "100:class_g = 'Joplin'", + "100:class_g = 'firefox'", + "100:class_g = 'Thunderbird'" +]; + +#========================= Blurring =========================# + +blur: { + method = "none"; + strength = 0; +# deviation = 1.0; +# kernel = "11x11gaussian"; + background = false; + background-frame = false; + background-fixed = false; + kern = "3x3box"; +} + +# Exclude conditions for background blur. +blur-background-exclude = [ +# "window_type = 'dock'", + "window_type = 'desktop'", + "class_g = 'Plank'", + "class_g = 'slop'", + "_GTK_FRAME_EXTENTS@:c" +]; + +#========================= General Settings =========================# + +# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. +# daemon = false + +# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. +# `xrender` is the default one. +# +#experimental-backends = true; +backend = "xrender"; + +# Enable/disable VSync. +# vsync = false +vsync = true; + +# Enable remote control via D-Bus. See the *D-BUS API* section below for more details. +# dbus = false + +# Try to detect WM windows (a non-override-redirect window with no +# child that has 'WM_STATE') and mark them as active. +# +# mark-wmwin-focused = false +mark-wmwin-focused = true; + +# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. +# mark-ovredir-focused = false +mark-ovredir-focused = true; + +# Try to detect windows with rounded corners and don't consider them +# shaped windows. The accuracy is not very high, unfortunately. +# +# detect-rounded-corners = false +detect-rounded-corners = true; + +# Detect '_NET_WM_OPACITY' on client windows, useful for window managers +# not passing '_NET_WM_OPACITY' of client windows to frame windows. +# +# detect-client-opacity = false +detect-client-opacity = true; + +# Specify refresh rate of the screen. If not specified or 0, picom will +# try detecting this with X RandR extension. +# +# refresh-rate = 60 +refresh-rate = 0; + +# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, +# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, +# provided that the WM supports it. +# +# use-ewmh-active-win = false + +# Unredirect all windows if a full-screen opaque window is detected, +# to maximize performance for full-screen windows. Known to cause flickering +# when redirecting/unredirecting windows. +# +# unredir-if-possible = false + +# Delay before unredirecting the window, in milliseconds. Defaults to 0. +# unredir-if-possible-delay = 0 + +# Conditions of windows that shouldn't be considered full-screen for unredirecting screen. +# unredir-if-possible-exclude = [] + +# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows +# in the same group focused at the same time. +# +# detect-transient = false +detect-transient = true; + +# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same +# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if +# detect-transient is enabled, too. +# +# detect-client-leader = false +detect-client-leader = true; + +# Resize damaged region by a specific number of pixels. +# A positive value enlarges it while a negative one shrinks it. +# If the value is positive, those additional pixels will not be actually painted +# to screen, only used in blur calculation, and such. (Due to technical limitations, +# with use-damage, those pixels will still be incorrectly painted to screen.) +# Primarily used to fix the line corruption issues of blur, +# in which case you should use the blur radius value here +# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, +# with a 5x5 one you use `--resize-damage 2`, and so on). +# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. +# +# resize-damage = 1 + +# Specify a list of conditions of windows that should be painted with inverted color. +# Resource-hogging, and is not well tested. +# +# invert-color-include = [] + +# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. +# Might cause incorrect opacity when rendering transparent content (but never +# practically happened) and may not work with blur-background. +# My tests show a 15% performance boost. Recommended. +# +glx-no-stencil = true; + +# GLX backend: Avoid rebinding pixmap on window damage. +# Probably could improve performance on rapid window content changes, +# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). +# Recommended if it works. +# +# glx-no-rebind-pixmap = false + +# Disable the use of damage information. +# This cause the whole screen to be redrawn everytime, instead of the part of the screen +# has actually changed. Potentially degrades the performance, but might fix some artifacts. +# The opposing option is use-damage +# +# no-use-damage = false +use-damage = true; + +# Use X Sync fence to sync clients' draw calls, to make sure all draw +# calls are finished before picom starts drawing. Needed on nvidia-drivers +# with GLX backend for some users. +# +# xrender-sync-fence = false + +# GLX backend: Use specified GLSL fragment shader for rendering window contents. +# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` +# in the source tree for examples. +# +# glx-fshader-win = "" + +# Force all windows to be painted with blending. Useful if you +# have a glx-fshader-win that could turn opaque pixels transparent. +# +# force-win-blend = false + +# Do not use EWMH to detect fullscreen windows. +# Reverts to checking if a window is fullscreen based only on its size and coordinates. +# +# no-ewmh-fullscreen = false + +# Dimming bright windows so their brightness doesn't exceed this set value. +# Brightness of a window is estimated by averaging all pixels in the window, +# so this could comes with a performance hit. +# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0) +# +# max-brightness = 1.0 + +# Make transparent windows clip other windows like non-transparent windows do, +# instead of blending on top of them. +# +# transparent-clipping = false + +# Set the log level. Possible values are: +# "trace", "debug", "info", "warn", "error" +# in increasing level of importance. Case doesn't matter. +# If using the "TRACE" log level, it's better to log into a file +# using *--log-file*, since it can generate a huge stream of logs. +# +# log-level = "debug" +log-level = "info"; + +# Set the log file. +# If *--log-file* is never specified, logs will be written to stderr. +# Otherwise, logs will to written to the given file, though some of the early +# logs might still be written to the stderr. +# When setting this option from the config file, it is recommended to use an absolute path. +# +# log-file = "/path/to/your/log/file" + +# Show all X errors (for debugging) +# show-all-xerrors = false + +# Write process ID to a file. +# write-pid-path = "/path/to/your/log/file" + +# Window type settings +# +# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: +# "unknown", "desktop", "dock", "toolbar", "menu", "utility", +# "splash", "dialog", "normal", "dropdown_menu", "popup_menu", +# "tooltip", "notification", "combo", and "dnd". +# +# Following per window-type options are available: :: +# +# fade, shadow::: +# Controls window-type-specific shadow and fade settings. +# +# opacity::: +# Controls default opacity of the window type. +# +# focus::: +# Controls whether the window of this type is to be always considered focused. +# (By default, all window types except "normal" and "dialog" has this on.) +# +# full-shadow::: +# Controls whether shadow is drawn under the parts of the window that you +# normally won't be able to see. Useful when the window has parts of it +# transparent, and you want shadows in those areas. +# +# redir-ignore::: +# Controls whether this type of windows should cause screen to become +# redirected again after been unredirected. If you have unredir-if-possible +# set, and doesn't want certain window to cause unnecessary screen redirection, +# you can set this to `true`. +# +wintypes: +{ + tooltip = { fade=true; shadow=true; opacity=0.95; focus=true; full-shadow=false; }; + popup_menu = { opacity=1.0; } + dropdown_menu = { opacity=1.0; } + utility = { shadow=false; opacity=1.0; } +}; diff --git a/profile/airootfs/etc/skel/.config/rofi/config.rasi b/profile/airootfs/etc/skel/.config/rofi/config.rasi new file mode 100644 index 00000000..67ce26f6 --- /dev/null +++ b/profile/airootfs/etc/skel/.config/rofi/config.rasi @@ -0,0 +1,183 @@ +/** + * + * Copyright (C) 2020-2022 Aditya Shakya + * Configuration For Rofi Version: 1.7.3 + * + **/ + +configuration { + /*---------- General setting ----------*/ + modi: "drun,run,filebrowser,window"; + case-sensitive: false; + cycle: true; + filter: ""; + scroll-method: 0; + normalize-match: true; + show-icons: true; + icon-theme: "Zafiro"; +/* cache-dir: ;*/ + steal-focus: false; +/* dpi: -1;*/ + + /*---------- Matching setting ----------*/ + matching: "normal"; + tokenize: true; + + /*---------- SSH settings ----------*/ + ssh-client: "ssh"; + ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]"; + parse-hosts: true; + parse-known-hosts: true; + + /*---------- Drun settings ----------*/ + drun-categories: ""; + drun-match-fields: "name,generic,exec,categories,keywords"; + drun-display-format: "{name} [({generic})]"; + drun-show-actions: false; + drun-url-launcher: "xdg-open"; + drun-use-desktop-cache: false; + drun-reload-desktop-cache: false; + drun { + /** Parse user desktop files. */ + parse-user: true; + /** Parse system desktop files. */ + parse-system: true; + } + + /*---------- Run settings ----------*/ + run-command: "{cmd}"; + run-list-command: ""; + run-shell-command: "{terminal} -e {cmd}"; + + /*---------- Fallback Icon ----------*/ + run { + fallback-icon: "application-x-addon"; + } + drun { + fallback-icon: "application-x-addon"; + } + + /*---------- Window switcher settings ----------*/ + window-match-fields: "title,class,role,name,desktop"; + window-command: "wmctrl -i -R {window}"; + window-format: "{w} - {c} - {t:0}"; + window-thumbnail: false; + + /*---------- Combi settings ----------*/ +/* combi-modi: "window,run";*/ +/* combi-hide-mode-prefix: false;*/ +/* combi-display-format: "{mode} {text}";*/ + + /*---------- History and Sorting ----------*/ + disable-history: false; + sorting-method: "normal"; + max-history-size: 25; + + /*---------- Display setting ----------*/ + display-window: "Windows"; + display-windowcd: "Window CD"; + display-run: "Run"; + display-ssh: "SSH"; + display-drun: "Apps"; + display-combi: "Combi"; + display-keys: "Keys"; + display-filebrowser: "Files"; + + /*---------- Misc setting ----------*/ + terminal: "rofi-sensible-terminal"; + font: "Mono 12"; + sort: false; + threads: 0; + click-to-exit: true; +/* ignored-prefixes: "";*/ +/* pid: "/run/user/1000/rofi.pid";*/ + + /*---------- File browser settings ----------*/ + filebrowser { +/* directory: "/home";*/ + directories-first: true; + sorting-method: "name"; + } + + /*---------- Other settings ----------*/ + timeout { + action: "kb-cancel"; + delay: 0; + } + + /*---------- Keybindings ----------*/ +/* + kb-primary-paste: "Control+V,Shift+Insert"; + kb-secondary-paste: "Control+v,Insert"; + kb-clear-line: "Control+w"; + kb-move-front: "Control+a"; + kb-move-end: "Control+e"; + kb-move-word-back: "Alt+b,Control+Left"; + kb-move-word-forward: "Alt+f,Control+Right"; + kb-move-char-back: "Left,Control+b"; + kb-move-char-forward: "Right,Control+f"; + kb-remove-word-back: "Control+Alt+h,Control+BackSpace"; + kb-remove-word-forward: "Control+Alt+d"; + kb-remove-char-forward: "Delete,Control+d"; + kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h"; + kb-remove-to-eol: "Control+k"; + kb-remove-to-sol: "Control+u"; + kb-accept-entry: "Control+j,Control+m,Return,KP_Enter"; + kb-accept-custom: "Control+Return"; + kb-accept-custom-alt: "Control+Shift+Return"; + kb-accept-alt: "Shift+Return"; + kb-delete-entry: "Shift+Delete"; + kb-mode-next: "Shift+Right,Control+Tab"; + kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab"; + kb-mode-complete: "Control+l"; + kb-row-left: "Control+Page_Up"; + kb-row-right: "Control+Page_Down"; + kb-row-down: "Down,Control+n"; + kb-page-prev: "Page_Up"; + kb-page-next: "Page_Down"; + kb-row-first: "Home,KP_Home"; + kb-row-last: "End,KP_End"; + kb-row-select: "Control+space"; + kb-screenshot: "Alt+S"; + kb-ellipsize: "Alt+period"; + kb-toggle-case-sensitivity: "grave,dead_grave"; + kb-toggle-sort: "Alt+grave"; + kb-cancel: "Escape,Control+g,Control+bracketleft"; + kb-custom-1: "Alt+1"; + kb-custom-2: "Alt+2"; + kb-custom-3: "Alt+3"; + kb-custom-4: "Alt+4"; + kb-custom-5: "Alt+5"; + kb-custom-6: "Alt+6"; + kb-custom-7: "Alt+7"; + kb-custom-8: "Alt+8"; + kb-custom-9: "Alt+9"; + kb-custom-10: "Alt+0"; + kb-custom-11: "Alt+exclam"; + kb-custom-12: "Alt+at"; + kb-custom-13: "Alt+numbersign"; + kb-custom-14: "Alt+dollar"; + kb-custom-15: "Alt+percent"; + kb-custom-16: "Alt+dead_circumflex"; + kb-custom-17: "Alt+ampersand"; + kb-custom-18: "Alt+asterisk"; + kb-custom-19: "Alt+parenleft"; + kb-select-1: "Super+1"; + kb-select-2: "Super+2"; + kb-select-3: "Super+3"; + kb-select-4: "Super+4"; + kb-select-5: "Super+5"; + kb-select-6: "Super+6"; + kb-select-7: "Super+7"; + kb-select-8: "Super+8"; + kb-select-9: "Super+9"; + kb-select-10: "Super+0"; + ml-row-left: "ScrollLeft"; + ml-row-right: "ScrollRight"; + ml-row-up: "ScrollUp"; + ml-row-down: "ScrollDown"; + me-select-entry: "MousePrimary"; + me-accept-entry: "MouseDPrimary"; + me-accept-custom: "Control+MouseDPrimary"; +*/ +} diff --git a/profile/airootfs/etc/skel/.config/xfce4/terminal/terminalrc b/profile/airootfs/etc/skel/.config/xfce4/terminal/terminalrc new file mode 100644 index 00000000..ced0849a --- /dev/null +++ b/profile/airootfs/etc/skel/.config/xfce4/terminal/terminalrc @@ -0,0 +1,38 @@ +## Copyright (C) 2020-2022 Aditya Shakya + +[Configuration] +MiscAlwaysShowTabs=FALSE +MiscBell=FALSE +MiscBellUrgent=FALSE +MiscBordersDefault=TRUE +MiscCursorBlinks=TRUE +MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK +MiscDefaultGeometry=82x25 +MiscInheritGeometry=FALSE +MiscMenubarDefault=FALSE +MiscMouseAutohide=FALSE +MiscMouseWheelZoom=TRUE +MiscToolbarDefault=FALSE +MiscConfirmClose=TRUE +MiscCycleTabs=TRUE +MiscTabCloseButtons=TRUE +MiscTabCloseMiddleClick=TRUE +MiscTabPosition=GTK_POS_TOP +MiscHighlightUrls=TRUE +MiscMiddleClickOpensUri=FALSE +MiscCopyOnSelect=FALSE +MiscShowRelaunchDialog=TRUE +MiscRewrapOnResize=TRUE +MiscUseShiftArrowsToScroll=FALSE +MiscSlimTabs=TRUE +MiscNewTabAdjacent=FALSE +MiscSearchDialogOpacity=100 +MiscShowUnsafePasteDialog=TRUE +ScrollingUnlimited=TRUE +FontName=JetBrainsMono Nerd Font 10 +ScrollingBar=TERMINAL_SCROLLBAR_NONE +ColorForeground=#ababb2b2bfbf +ColorBackground=#1e1e21212828 +ColorCursor=#ababb2b2bfbf +ColorBoldUseDefault=FALSE +ColorPalette=#323236363d3d;#e0e06b6b7474;#9898c3c37979;#e5e5c0c07a7a;#6262aeaeefef;#c7c77878dddd;#5555b6b6c2c2;#ababb2b2bfbf;#505054545b5b;#eaea75757e7e;#a2a2cdcd8383;#efefcaca8484;#6c6cb8b8f9f9;#d2d28282e7e7;#5f5fc0c0cccc;#b5b5bcbcc9c9 diff --git a/profile/airootfs/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml b/profile/airootfs/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml new file mode 100644 index 00000000..6d3f8981 --- /dev/null +++ b/profile/airootfs/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/profile/airootfs/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml b/profile/airootfs/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml new file mode 100644 index 00000000..163f9913 --- /dev/null +++ b/profile/airootfs/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/profile/airootfs/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml b/profile/airootfs/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml new file mode 100644 index 00000000..044b9edb --- /dev/null +++ b/profile/airootfs/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/profile/airootfs/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml b/profile/airootfs/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml new file mode 100644 index 00000000..d92641e0 --- /dev/null +++ b/profile/airootfs/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/profile/airootfs/etc/skel/.dmrc b/profile/airootfs/etc/skel/.dmrc new file mode 100644 index 00000000..34afa532 --- /dev/null +++ b/profile/airootfs/etc/skel/.dmrc @@ -0,0 +1,3 @@ +[Desktop] +## Set Default Session +Session=openbox diff --git a/profile/airootfs/etc/skel/.face b/profile/airootfs/etc/skel/.face new file mode 100644 index 00000000..f91a97ea Binary files /dev/null and b/profile/airootfs/etc/skel/.face differ diff --git a/profile/airootfs/etc/skel/.gtkrc-2.0 b/profile/airootfs/etc/skel/.gtkrc-2.0 new file mode 100644 index 00000000..d4bc0c5a --- /dev/null +++ b/profile/airootfs/etc/skel/.gtkrc-2.0 @@ -0,0 +1,15 @@ +gtk-theme-name="Arc-Dark" +gtk-icon-theme-name="Arc-Circle" +gtk-font-name="Noto Sans 9" +gtk-cursor-theme-name="Qogirr" +gtk-cursor-theme-size=0 +gtk-toolbar-style=GTK_TOOLBAR_ICONS +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=0 +gtk-menu-images=1 +gtk-enable-event-sounds=0 +gtk-enable-input-feedback-sounds=0 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle="hintslight" +gtk-xft-rgba="rgb" diff --git a/profile/airootfs/etc/skel/.hushlogin b/profile/airootfs/etc/skel/.hushlogin new file mode 100644 index 00000000..e69de29b diff --git a/profile/airootfs/etc/skel/.icons/default/index.theme b/profile/airootfs/etc/skel/.icons/default/index.theme new file mode 100644 index 00000000..d7feea70 --- /dev/null +++ b/profile/airootfs/etc/skel/.icons/default/index.theme @@ -0,0 +1,2 @@ +[Icon Theme] +Inherits=Qogirr diff --git a/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_1.jpg b/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_1.jpg new file mode 100644 index 00000000..29485b81 Binary files /dev/null and b/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_1.jpg differ diff --git a/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_2.jpg b/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_2.jpg new file mode 100644 index 00000000..2d35a52e Binary files /dev/null and b/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_2.jpg differ diff --git a/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_3.jpg b/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_3.jpg new file mode 100644 index 00000000..dcd0d6ae Binary files /dev/null and b/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_3.jpg differ diff --git a/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_4.jpg b/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_4.jpg new file mode 100644 index 00000000..2be21572 Binary files /dev/null and b/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_4.jpg differ diff --git a/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_5.jpg b/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_5.jpg new file mode 100644 index 00000000..17633991 Binary files /dev/null and b/profile/airootfs/etc/skel/Pictures/wallpapers/wallpaper_5.jpg differ diff --git a/airootfs/etc/ssh/sshd_config b/profile/airootfs/etc/ssh/sshd_config similarity index 100% rename from airootfs/etc/ssh/sshd_config rename to profile/airootfs/etc/ssh/sshd_config diff --git a/airootfs/etc/sudoers.d/01_pw_feedback b/profile/airootfs/etc/sudoers.d/01_pw_feedback similarity index 100% rename from airootfs/etc/sudoers.d/01_pw_feedback rename to profile/airootfs/etc/sudoers.d/01_pw_feedback diff --git a/airootfs/etc/sudoers.d/02_g_wheel b/profile/airootfs/etc/sudoers.d/02_g_wheel similarity index 100% rename from airootfs/etc/sudoers.d/02_g_wheel rename to profile/airootfs/etc/sudoers.d/02_g_wheel diff --git a/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf b/profile/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf similarity index 100% rename from airootfs/etc/systemd/journald.conf.d/volatile-storage.conf rename to profile/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf diff --git a/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf b/profile/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf similarity index 100% rename from airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf rename to profile/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf diff --git a/airootfs/etc/systemd/network/20-ethernet.network b/profile/airootfs/etc/systemd/network/20-ethernet.network similarity index 100% rename from airootfs/etc/systemd/network/20-ethernet.network rename to profile/airootfs/etc/systemd/network/20-ethernet.network diff --git a/airootfs/etc/systemd/network/20-wlan.network b/profile/airootfs/etc/systemd/network/20-wlan.network similarity index 100% rename from airootfs/etc/systemd/network/20-wlan.network rename to profile/airootfs/etc/systemd/network/20-wlan.network diff --git a/airootfs/etc/systemd/network/20-wwan.network b/profile/airootfs/etc/systemd/network/20-wwan.network similarity index 100% rename from airootfs/etc/systemd/network/20-wwan.network rename to profile/airootfs/etc/systemd/network/20-wwan.network diff --git a/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator b/profile/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator similarity index 100% rename from airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator rename to profile/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator diff --git a/airootfs/etc/systemd/system/bluetooth.target.wants/bluetooth.service b/profile/airootfs/etc/systemd/system/bluetooth.target.wants/bluetooth.service similarity index 100% rename from airootfs/etc/systemd/system/bluetooth.target.wants/bluetooth.service rename to profile/airootfs/etc/systemd/system/bluetooth.target.wants/bluetooth.service diff --git a/airootfs/etc/systemd/system/choose-mirror.service b/profile/airootfs/etc/systemd/system/choose-mirror.service similarity index 100% rename from airootfs/etc/systemd/system/choose-mirror.service rename to profile/airootfs/etc/systemd/system/choose-mirror.service diff --git a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service b/profile/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service similarity index 100% rename from airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service rename to profile/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service diff --git a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service b/profile/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service similarity index 100% rename from airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service rename to profile/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service diff --git a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service b/profile/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service similarity index 100% rename from airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service rename to profile/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service diff --git a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init.service b/profile/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init.service similarity index 100% rename from airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init.service rename to profile/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init.service diff --git a/airootfs/etc/systemd/system/dbus-org.bluez.service b/profile/airootfs/etc/systemd/system/dbus-org.bluez.service similarity index 100% rename from airootfs/etc/systemd/system/dbus-org.bluez.service rename to profile/airootfs/etc/systemd/system/dbus-org.bluez.service diff --git a/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service b/profile/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service similarity index 100% rename from airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service rename to profile/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service diff --git a/airootfs/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service b/profile/airootfs/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service similarity index 100% rename from airootfs/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service rename to profile/airootfs/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service diff --git a/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service b/profile/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service similarity index 100% rename from airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service rename to profile/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service diff --git a/airootfs/etc/systemd/system/default.target b/profile/airootfs/etc/systemd/system/default.target similarity index 100% rename from airootfs/etc/systemd/system/default.target rename to profile/airootfs/etc/systemd/system/default.target diff --git a/airootfs/etc/systemd/system/display-manager.service b/profile/airootfs/etc/systemd/system/display-manager.service similarity index 100% rename from airootfs/etc/systemd/system/display-manager.service rename to profile/airootfs/etc/systemd/system/display-manager.service diff --git a/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount b/profile/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount similarity index 100% rename from airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount rename to profile/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/NetworkManager.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/NetworkManager.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/NetworkManager.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/NetworkManager.service diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/reflector.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/sshd.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/wpa_supplicant.service b/profile/airootfs/etc/systemd/system/multi-user.target.wants/wpa_supplicant.service similarity index 100% rename from airootfs/etc/systemd/system/multi-user.target.wants/wpa_supplicant.service rename to profile/airootfs/etc/systemd/system/multi-user.target.wants/wpa_supplicant.service diff --git a/airootfs/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service b/profile/airootfs/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service similarity index 100% rename from airootfs/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service rename to profile/airootfs/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service diff --git a/airootfs/etc/systemd/system/pacman-init.service b/profile/airootfs/etc/systemd/system/pacman-init.service similarity index 100% rename from airootfs/etc/systemd/system/pacman-init.service rename to profile/airootfs/etc/systemd/system/pacman-init.service diff --git a/airootfs/etc/systemd/system/reflector.service.d/archiso.conf b/profile/airootfs/etc/systemd/system/reflector.service.d/archiso.conf similarity index 100% rename from airootfs/etc/systemd/system/reflector.service.d/archiso.conf rename to profile/airootfs/etc/systemd/system/reflector.service.d/archiso.conf diff --git a/profile/airootfs/etc/systemd/system/sockets.target.wants/cups.socket b/profile/airootfs/etc/systemd/system/sockets.target.wants/cups.socket new file mode 120000 index 00000000..8015ac29 --- /dev/null +++ b/profile/airootfs/etc/systemd/system/sockets.target.wants/cups.socket @@ -0,0 +1 @@ +/usr/lib/systemd/system/cups.socket \ No newline at end of file diff --git a/airootfs/etc/udev/rules.d/70-backlight.rules b/profile/airootfs/etc/udev/rules.d/70-backlight.rules similarity index 100% rename from airootfs/etc/udev/rules.d/70-backlight.rules rename to profile/airootfs/etc/udev/rules.d/70-backlight.rules diff --git a/airootfs/etc/vconsole.conf b/profile/airootfs/etc/vconsole.conf similarity index 100% rename from airootfs/etc/vconsole.conf rename to profile/airootfs/etc/vconsole.conf diff --git a/airootfs/etc/xdg/reflector/reflector.conf b/profile/airootfs/etc/xdg/reflector/reflector.conf similarity index 100% rename from airootfs/etc/xdg/reflector/reflector.conf rename to profile/airootfs/etc/xdg/reflector/reflector.conf diff --git a/airootfs/root/.automated_script.sh b/profile/airootfs/root/.automated_script.sh similarity index 100% rename from airootfs/root/.automated_script.sh rename to profile/airootfs/root/.automated_script.sh diff --git a/airootfs/root/.zlogin b/profile/airootfs/root/.zlogin similarity index 100% rename from airootfs/root/.zlogin rename to profile/airootfs/root/.zlogin diff --git a/airootfs/root/customize_airootfs.sh b/profile/airootfs/root/customize_airootfs.sh similarity index 84% rename from airootfs/root/customize_airootfs.sh rename to profile/airootfs/root/customize_airootfs.sh index 0199d11b..b9ea5916 100755 --- a/airootfs/root/customize_airootfs.sh +++ b/profile/airootfs/root/customize_airootfs.sh @@ -27,7 +27,7 @@ _EOF_ ## -------------------------------------------------------------- ## ## Enable Parallel Downloads -sed -i -e 's|#ParallelDownloads.*|ParallelDownloads = 6|g' /etc/pacman.conf +sed -i -e 's|#ParallelDownloads.*|ParallelDownloads = 5|g' /etc/pacman.conf sed -i -e '/#\[testing\]/Q' /etc/pacman.conf ## Append archcraft repository to pacman.conf @@ -57,11 +57,8 @@ cat >> "/etc/pacman.conf" <<- EOL #[multilib-testing] #Include = /etc/pacman.d/mirrorlist - [multilib] - Include = /etc/pacman.d/mirrorlist - - [chaotic-aur] - Include = /etc/pacman.d/chaotic-mirrorlist + #[multilib] + #Include = /etc/pacman.d/mirrorlist # An example of a custom package repository. See the pacman manpage for # tips on creating your own repositories. @@ -70,11 +67,6 @@ cat >> "/etc/pacman.conf" <<- EOL #Server = file:///home/custompkgs EOL -## Enable Chaotic AUR -pacman-key --init -pacman-key --recv-key FBA220DFC880C036 --keyserver keyserver.ubuntu.com -pacman-key --lsign-key FBA220DFC880C036 - ## -------------------------------------------------------------- ## ## Set zsh as default shell for new user @@ -120,11 +112,11 @@ cat >> "/etc/skel/.config/bspwm/bspwmrc" <<- EOL sed -i -e '/## Help-App-Run-Once/Q' "\$HOME"/.config/bspwm/bspwmrc EOL + ## -------------------------------------------------------------- ## -## Set `Qogirr` as default cursor theme -sed -i -e 's|Inherits=.*|Inherits=Qogirr|g' /usr/share/icons/default/index.theme -mkdir -p /etc/skel/.icons && cp -rf /usr/share/icons/default /etc/skel/.icons/default +## Fix cursor theme +rm -rf /usr/share/icons/default ## Update xdg-user-dirs for bookmarks in thunar and pcmanfm runuser -l liveuser -c 'xdg-user-dirs-update' @@ -140,18 +132,13 @@ fi ## -------------------------------------------------------------- ## -## Fix locale issue for calamares (glibc 2.36-4) -mv /usr/share/i18n/SUPPORTED /usr/share/i18n/SUPPORTED.backup - -## -------------------------------------------------------------- ## - ## Hide Unnecessary Apps adir="/usr/share/applications" apps=(avahi-discover.desktop bssh.desktop bvnc.desktop echomixer.desktop \ envy24control.desktop exo-preferred-applications.desktop feh.desktop \ hdajackretask.desktop hdspconf.desktop hdspmixer.desktop hwmixvolume.desktop lftp.desktop \ libfm-pref-apps.desktop lxshortcut.desktop lstopo.desktop \ - networkmanager_dmenu.desktop pcmanfm-desktop-pref.desktop \ + networkmanager_dmenu.desktop nm-connection-editor.desktop pcmanfm-desktop-pref.desktop \ qv4l2.desktop qvidcap.desktop stoken-gui.desktop stoken-gui-small.desktop thunar-bulk-rename.desktop \ thunar-settings.desktop thunar-volman-settings.desktop yad-icon-browser.desktop) diff --git a/airootfs/usr/local/bin/choose-mirror b/profile/airootfs/usr/local/bin/choose-mirror similarity index 100% rename from airootfs/usr/local/bin/choose-mirror rename to profile/airootfs/usr/local/bin/choose-mirror diff --git a/profile/airootfs/usr/local/bin/xflock4 b/profile/airootfs/usr/local/bin/xflock4 new file mode 100755 index 00000000..59868c14 --- /dev/null +++ b/profile/airootfs/usr/local/bin/xflock4 @@ -0,0 +1,7 @@ +#!/usr/bin/bash + +## Copyright (C) 2020-2022 Aditya Shakya + +## Script to Lock the session by xfce-power-manager + +betterlockscreen --lock diff --git a/airootfs/var/lib/sddm/state.conf b/profile/airootfs/var/lib/sddm/state.conf similarity index 100% rename from airootfs/var/lib/sddm/state.conf rename to profile/airootfs/var/lib/sddm/state.conf diff --git a/bootstrap_packages.x86_64 b/profile/bootstrap_packages.x86_64 similarity index 100% rename from bootstrap_packages.x86_64 rename to profile/bootstrap_packages.x86_64 diff --git a/efiboot/loader/entries/01-archcraftiso-x86_64-linux.conf b/profile/efiboot/loader/entries/01-archcraftiso-x86_64-linux.conf similarity index 81% rename from efiboot/loader/entries/01-archcraftiso-x86_64-linux.conf rename to profile/efiboot/loader/entries/01-archcraftiso-x86_64-linux.conf index fea2d724..c78db77f 100644 --- a/efiboot/loader/entries/01-archcraftiso-x86_64-linux.conf +++ b/profile/efiboot/loader/entries/01-archcraftiso-x86_64-linux.conf @@ -1,7 +1,7 @@ -title Boot Archcraft (64bit, UEFI) +title Boot Archcraft (x86_64, UEFI) sort-key 01 linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux initrd /%INSTALL_DIR%/boot/intel-ucode.img initrd /%INSTALL_DIR%/boot/amd-ucode.img initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G +options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n diff --git a/efiboot/loader/entries/02-archcraftiso-x86_64-ram-linux.conf b/profile/efiboot/loader/entries/02-archcraftiso-x86_64-linux-open-source.conf similarity index 54% rename from efiboot/loader/entries/02-archcraftiso-x86_64-ram-linux.conf rename to profile/efiboot/loader/entries/02-archcraftiso-x86_64-linux-open-source.conf index 68ec80e1..6f1b1ace 100644 --- a/efiboot/loader/entries/02-archcraftiso-x86_64-ram-linux.conf +++ b/profile/efiboot/loader/entries/02-archcraftiso-x86_64-linux-open-source.conf @@ -1,7 +1,7 @@ -title Boot Archcraft (64bit, UEFI, Copy to RAM) +title Boot Archcraft (x86_64, UEFI, open source) sort-key 02 linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux initrd /%INSTALL_DIR%/boot/intel-ucode.img initrd /%INSTALL_DIR%/boot/amd-ucode.img initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=1G +options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=free nouveau.modeset=1 radeon.modeset=1 i915.modeset=1 nvme_load=yes diff --git a/efiboot/loader/entries/03-archcraftiso-x86_64-nvidia-linux.conf b/profile/efiboot/loader/entries/03-archcraftiso-x86_64-linux-no-nouveau.conf similarity index 66% rename from efiboot/loader/entries/03-archcraftiso-x86_64-nvidia-linux.conf rename to profile/efiboot/loader/entries/03-archcraftiso-x86_64-linux-no-nouveau.conf index 15bb0252..4ccaf78d 100644 --- a/efiboot/loader/entries/03-archcraftiso-x86_64-nvidia-linux.conf +++ b/profile/efiboot/loader/entries/03-archcraftiso-x86_64-linux-no-nouveau.conf @@ -1,7 +1,7 @@ -title Boot Archcraft (64bit, UEFI, NVIDIA) +title Boot Archcraft (x86_64, UEFI, open source, no nouveau) sort-key 03 linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux initrd /%INSTALL_DIR%/boot/intel-ucode.img initrd /%INSTALL_DIR%/boot/amd-ucode.img initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G nouveau.modeset=0 modprobe.blacklist=nouveau nvidia i915.modeset=1 radeon.modeset=1 +options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=freenonouveau radeon.modeset=1 i915.modeset=1 nvme_load=yes diff --git a/profile/efiboot/loader/entries/04-archcraftiso-x86_64-linux-nvidia-nouveau.conf b/profile/efiboot/loader/entries/04-archcraftiso-x86_64-linux-nvidia-nouveau.conf new file mode 100644 index 00000000..b76e3725 --- /dev/null +++ b/profile/efiboot/loader/entries/04-archcraftiso-x86_64-linux-nvidia-nouveau.conf @@ -0,0 +1,7 @@ +title Boot Archcraft (x86_64, UEFI, NVIDIA) +sort-key 04 +linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +initrd /%INSTALL_DIR%/boot/intel-ucode.img +initrd /%INSTALL_DIR%/boot/amd-ucode.img +initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=nonfree nouveau.modeset=0 radeon.modeset=1 i915.modeset=1 nvme_load=yes diff --git a/profile/efiboot/loader/entries/05-archcraftiso-x86_64-linux-nvidia-no-nouveau.conf b/profile/efiboot/loader/entries/05-archcraftiso-x86_64-linux-nvidia-no-nouveau.conf new file mode 100644 index 00000000..bdaf2656 --- /dev/null +++ b/profile/efiboot/loader/entries/05-archcraftiso-x86_64-linux-nvidia-no-nouveau.conf @@ -0,0 +1,7 @@ +title Boot Archcraft (x86_64, UEFI, NVIDIA, no nouveau) +sort-key 05 +linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +initrd /%INSTALL_DIR%/boot/intel-ucode.img +initrd /%INSTALL_DIR%/boot/amd-ucode.img +initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=nonfreenonouveau nouveau.modeset=0 radeon.modeset=1 i915.modeset=1 nvme_load=yes diff --git a/profile/efiboot/loader/entries/06-archcraftiso-x86_64-linux-nomodeset.conf b/profile/efiboot/loader/entries/06-archcraftiso-x86_64-linux-nomodeset.conf new file mode 100644 index 00000000..9ba261e4 --- /dev/null +++ b/profile/efiboot/loader/entries/06-archcraftiso-x86_64-linux-nomodeset.conf @@ -0,0 +1,7 @@ +title Boot Archcraft (x86_64, UEFI, nomodeset) +sort-key 06 +linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +initrd /%INSTALL_DIR%/boot/intel-ucode.img +initrd /%INSTALL_DIR%/boot/amd-ucode.img +initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=free nomodeset nouveau.modeset=0 radeon.modeset=0 i915.modeset=0 nvme_load=yes diff --git a/efiboot/loader/loader.conf b/profile/efiboot/loader/loader.conf similarity index 100% rename from efiboot/loader/loader.conf rename to profile/efiboot/loader/loader.conf diff --git a/profile/grub/grub.cfg b/profile/grub/grub.cfg new file mode 100644 index 00000000..525aad17 --- /dev/null +++ b/profile/grub/grub.cfg @@ -0,0 +1,97 @@ +# Load partition table and file system modules +insmod part_gpt +insmod part_msdos +insmod fat +insmod iso9660 + +# Use graphics-mode output +insmod all_video +insmod font +if loadfont "${prefix}/fonts/unicode.pf2" ; then + insmod gfxterm + set gfxmode="auto" + terminal_input console + terminal_output gfxterm +fi + +# Enable serial console +if serial --unit=0 --speed=115200; then + terminal_input --append serial + terminal_output --append serial +fi + +# Set default menu entry +default=archcraft +timeout=10 +timeout_style=menu + +# Menu entries +menuentry "Boot Archcraft (x86_64, UEFI)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraft' { + set gfxpayload=keep + search --no-floppy --set=root --label %ARCHISO_LABEL% + linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +} + +menuentry "Boot Archcraft (x86_64, UEFI, open source)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraftos' { + set gfxpayload=keep + search --no-floppy --set=root --label %ARCHISO_LABEL% + linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=free nouveau.modeset=1 radeon.modeset=1 i915.modeset=1 nvme_load=yes + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +} + +menuentry "Boot Archcraft (x86_64, UEFI, open source, no nouveau)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraftnn' { + set gfxpayload=keep + search --no-floppy --set=root --label %ARCHISO_LABEL% + linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=freenonouveau radeon.modeset=1 i915.modeset=1 nvme_load=yes + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +} + +menuentry "Boot Archcraft (x86_64, UEFI, NVIDIA)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraftpn' { + set gfxpayload=keep + search --no-floppy --set=root --label %ARCHISO_LABEL% + linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=nonfree nouveau.modeset=0 radeon.modeset=1 i915.modeset=1 nvme_load=yes + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +} + +menuentry "Boot Archcraft (x86_64, UEFI, NVIDIA, no nouveau)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraftpnn' { + set gfxpayload=keep + search --no-floppy --set=root --label %ARCHISO_LABEL% + linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=nonfreenonouveau nouveau.modeset=0 radeon.modeset=1 i915.modeset=1 nvme_load=yes + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +} + +menuentry "Boot Archcraft (x86_64, UEFI, nomodeset)" --class archcraft --class arch --class gnu-linux --class gnu --class os --id 'archcraftnm' { + set gfxpayload=keep + search --no-floppy --set=root --label %ARCHISO_LABEL% + linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=free nomodeset nouveau.modeset=0 radeon.modeset=0 i915.modeset=0 nvme_load=yes + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +} + +if [ "${grub_platform}" == "efi" ]; then + if [ "${grub_cpu}" == "x86_64" ]; then + menuentry "UEFI Shell" --class recovery { + insmod chain + search --no-floppy --set=root --label %ARCHISO_LABEL% + chainloader /shellx64.efi + } + elif [ "${grub_cpu}" == "i386" ]; then + menuentry "UEFI Shell" --class recovery { + insmod chain + search --no-floppy --set=root --label %ARCHISO_LABEL% + chainloader /shellia32.efi + } + fi + + menuentry 'UEFI Firmware Settings' --class recovery --id 'uefi-firmware' { + fwsetup + } +fi + +menuentry "System shutdown" --class shutdown --class poweroff { + halt +} + +menuentry "System restart" --class restart --class reboot { + reboot +} diff --git a/mkarchcraftiso b/profile/mkarchcraftiso similarity index 89% rename from mkarchcraftiso rename to profile/mkarchcraftiso index fab08674..0f235505 100755 --- a/mkarchcraftiso +++ b/profile/mkarchcraftiso @@ -3,10 +3,16 @@ # 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 @@ -37,8 +43,8 @@ bootmodes=() airootfs_image_type="" airootfs_image_tool_options=() cert_list=() -sign_netboot_artifacts="" 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') @@ -87,10 +93,11 @@ usage: ${app_name} [options] Default: '${iso_label}' -P Set the ISO publisher Default: '${iso_publisher}' - -c [cert ..] Provide certificates for codesigning of netboot artifacts + -c [cert ..] Provide certificates for codesigning of netboot artifacts as + well as the rootfs artifact. Multiple files are provided as quoted, space delimited list. The first file is considered as the signing certificate, - the second as the key. + the second as the key and the third as the optional certificate authority. -g Set the PGP key ID to be used for signing the rootfs image. Passed to gpg as the value for --default-key -G Set the PGP signer (must include an email address) @@ -246,14 +253,11 @@ _mkchecksum() { } # GPG sign the root file system image. -_mksignature() { - local airootfs_image_filename gpg_options=() - _msg_info "Signing rootfs image..." - if [[ -e "${isofs_dir}/${install_dir}/${arch}/airootfs.sfs" ]]; then - airootfs_image_filename="${isofs_dir}/${install_dir}/${arch}/airootfs.sfs" - elif [[ -e "${isofs_dir}/${install_dir}/${arch}/airootfs.erofs" ]]; then - airootfs_image_filename="${isofs_dir}/${install_dir}/${arch}/airootfs.erofs" - fi +_mk_pgp_signature() { + local gpg_options=() + local airootfs_image_filename="${1}" + _msg_info "Signing rootfs image using GPG..." + rm -f -- "${airootfs_image_filename}.sig" # Add gpg sender option if the value is provided [[ -z "${gpg_sender}" ]] || gpg_options+=('--sender' "${gpg_sender}") @@ -338,6 +342,15 @@ _make_packages() { exec {ARCHISO_GNUPG_FD}<>"${work_dir}/pubkey.gpg" export ARCHISO_GNUPG_FD fi + if [[ -v cert_list[0] ]]; then + exec {ARCHISO_TLS_FD}<>"${cert_list[0]}" + export ARCHISO_TLS_FD + fi + if [[ -v cert_list[2] ]]; then + exec {ARCHISO_TLSCA_FD}<>"${cert_list[2]}" + export ARCHISO_TLSCA_FD + fi + # Unset TMPDIR to work around https://bugs.archlinux.org/task/70580 @@ -348,6 +361,14 @@ _make_packages() { env -u TMPDIR pacstrap -C "${work_dir}/${buildmode}.pacman.conf" -i -c -G -M -- "${pacstrap_dir}" "${buildmode_pkg_list[@]}" fi + if [[ -v cert_list[0] ]]; then + exec {ARCHISO_TLS_FD}<&- + unset ARCHISO_TLS_FD + fi + if [[ -v cert_list[2] ]]; then + exec {ARCHISO_TLSCA_FD}<&- + unset ARCHISO_TLSCA_FD + fi if [[ -n "${gpg_key}" ]]; then exec {ARCHISO_GNUPG_FD}<&- unset ARCHISO_GNUPG_FD @@ -492,9 +513,9 @@ _make_bootmode_bios.syslinux.eltorito() { _make_boot_on_fat() { local ucode_image all_ucode_images=() _msg_info "Preparing kernel and initramfs for the FAT file system..." - mmd -i "${work_dir}/efiboot.img" \ + mmd -i "${efibootimg}" \ "::/${install_dir}" "::/${install_dir}/boot" "::/${install_dir}/boot/${arch}" - mcopy -i "${work_dir}/efiboot.img" "${pacstrap_dir}/boot/vmlinuz-"* \ + mcopy -i "${efibootimg}" "${pacstrap_dir}/boot/vmlinuz-"* \ "${pacstrap_dir}/boot/initramfs-"*".img" "::/${install_dir}/boot/${arch}/" for ucode_image in "${ucodes[@]}"; do if [[ -e "${pacstrap_dir}/boot/${ucode_image}" ]]; then @@ -502,7 +523,7 @@ _make_boot_on_fat() { fi done if (( ${#all_ucode_images[@]} )); then - mcopy -i "${work_dir}/efiboot.img" "${all_ucode_images[@]}" "::/${install_dir}/boot/" + mcopy -i "${efibootimg}" "${all_ucode_images[@]}" "::/${install_dir}/boot/" fi _msg_info "Done!" } @@ -526,32 +547,58 @@ _make_efibootimg() { )" # The FAT image must be created with mkfs.fat not mformat, as some systems have issues with mformat made images: # https://lists.gnu.org/archive/html/grub-devel/2019-04/msg00099.html - rm -f -- "${work_dir}/efiboot.img" + rm -f -- "${efibootimg}" _msg_info "Creating FAT image of size: ${imgsize_kib} KiB..." if [[ "${quiet}" == "y" ]]; then # mkfs.fat does not have a -q/--quiet option, so redirect stdout to /dev/null instead # https://github.com/dosfstools/dosfstools/issues/103 - mkfs.fat -C -n ARCHISO_EFI "${work_dir}/efiboot.img" "${imgsize_kib}" > /dev/null + mkfs.fat -C -n ARCHISO_EFI "${efibootimg}" "${imgsize_kib}" > /dev/null else - mkfs.fat -C -n ARCHISO_EFI "${work_dir}/efiboot.img" "${imgsize_kib}" + mkfs.fat -C -n ARCHISO_EFI "${efibootimg}" "${imgsize_kib}" fi # Create the default/fallback boot path in which a boot loaders will be placed later. - mmd -i "${work_dir}/efiboot.img" ::/EFI ::/EFI/BOOT + mmd -i "${efibootimg}" ::/EFI ::/EFI/BOOT } -# Copy the grub.cfg file in efiboot.img which is used by both IA32 UEFI and x64 UEFI. -_make_efibootimg_grubcfg() { - mcopy -i "${work_dir}/efiboot.img" \ - "${work_dir}/grub.cfg" ::/EFI/BOOT/grub.cfg +# Copy GRUB files to efiboot.img which is used by both IA32 UEFI and x64 UEFI. +_make_common_bootmode_grub_copy_to_efibootimg() { + local files_to_copy=() + + files_to_copy+=("${work_dir}/grub/"*) + if compgen -G "${profile}/grub/!(*.cfg)" &> /dev/null; then + files_to_copy+=("${profile}/grub/"!(*.cfg)) + fi + mcopy -i "${efibootimg}" "${files_to_copy[@]}" ::/EFI/BOOT/ } -_make_bootmode_uefi-ia32.grub.esp() { +# Copy GRUB files to efiboot.img which is used by both IA32 UEFI and x64 UEFI. +_make_common_bootmode_grub_copy_to_isofs() { + local files_to_copy=() + + files_to_copy+=("${work_dir}/grub/"*) + if compgen -G "${profile}/grub/!(*.cfg)" &> /dev/null; then + files_to_copy+=("${profile}/grub/"!(*.cfg)) + fi + install -m 0644 -- "${files_to_copy[@]}" "${isofs_dir}/EFI/BOOT/" +} + +# Prepare GRUB configuration files +_make_common_bootmode_grub_cfg(){ + local _cfg + + install -d -- "${work_dir}/grub" + # Fill GRUB configuration files - sed "s|%ARCHISO_LABEL%|${iso_label}|g; - s|%INSTALL_DIR%|${install_dir}|g; - s|%ARCH%|${arch}|g" \ - "${profile}/grub/grub.cfg" > "${work_dir}/grub.cfg" + for _cfg in "${profile}/grub/"*'.cfg'; do + sed "s|%ARCHISO_LABEL%|${iso_label}|g; + s|%INSTALL_DIR%|${install_dir}|g; + s|%ARCH%|${arch}|g" \ + "${_cfg}" > "${work_dir}/grub/${_cfg##*/}" + done + # Add all GRUB files to the list of files used to calculate the required FAT image size. + efiboot_files+=("${work_dir}/grub/" + "${profile}/grub/"!(*.cfg)) IFS='' read -r -d '' grubembedcfg <<'EOF' || true if ! [ -d "$cmdpath" ]; then @@ -564,13 +611,27 @@ fi configfile "${cmdpath}/grub.cfg" EOF printf '%s\n' "$grubembedcfg" > "${work_dir}/grub-embed.cfg" +} + +_make_bootmode_uefi-ia32.grub.esp() { + local grubmodules=() + + # Prepare configuration files + _run_once _make_common_bootmode_grub_cfg # Create EFI binary + # Module list from https://bugs.archlinux.org/task/71382#comment202911 + grubmodules=(all_video at_keyboard boot btrfs cat chain configfile echo efifwsetup efinet ext2 f2fs fat font \ + gfxmenu gfxterm gzio halt hfsplus iso9660 jpeg keylayouts linux loadenv loopback lsefi lsefimmap \ + minicmd normal part_apple part_gpt part_msdos png read reboot regexp search search_fs_file \ + search_fs_uuid search_label serial sleep tpm usb usbserial_common usbserial_ftdi usbserial_pl2303 \ + usbserial_usbdebug video xfs zstd) grub-mkstandalone -O i386-efi \ - --modules="part_gpt part_msdos fat iso9660" \ + --modules="${grubmodules[*]}" \ --locales="en@quot" \ --themes="" \ --sbat=/usr/share/grub/sbat.csv \ + --disable-shim-lock \ -o "${work_dir}/BOOTIA32.EFI" "boot/grub/grub.cfg=${work_dir}/grub-embed.cfg" # Add GRUB to the list of files used to calculate the required FAT image size. efiboot_files+=("${work_dir}/BOOTIA32.EFI" @@ -582,22 +643,19 @@ EOF elif [[ " ${bootmodes[*]} " =~ uefi-x64.grub.esp ]]; then _run_once _make_bootmode_uefi-x64.grub.esp else - efiboot_imgsize="$(du -bc "${efiboot_files[@]}" \ - 2>/dev/null | awk 'END { print $1 }')" + efiboot_imgsize="$(du -bcs -- "${efiboot_files[@]}" 2>/dev/null | awk 'END { print $1 }')" # Create a FAT image for the EFI system partition _make_efibootimg "$efiboot_imgsize" fi # Copy GRUB EFI binary to the default/fallback boot path - mcopy -i "${work_dir}/efiboot.img" \ - "${work_dir}/BOOTIA32.EFI" ::/EFI/BOOT/BOOTIA32.EFI + mcopy -i "${efibootimg}" "${work_dir}/BOOTIA32.EFI" ::/EFI/BOOT/BOOTIA32.EFI - # Copy GRUB configuration files - _run_once _make_efibootimg_grubcfg + # Copy GRUB files + _run_once _make_common_bootmode_grub_copy_to_efibootimg if [[ -e "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi" ]]; then - mcopy -i "${work_dir}/efiboot.img" \ - "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi" ::/shellia32.efi + mcopy -i "${efibootimg}" "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi" ::/shellia32.efi fi _msg_info "Done! GRUB set up for UEFI booting successfully." @@ -609,6 +667,9 @@ _make_bootmode_uefi-ia32.grub.eltorito() { # uefi-ia32.grub.eltorito has the same requirements as uefi-ia32.grub.esp _run_once _make_bootmode_uefi-ia32.grub.esp + # Prepare configuration files + _run_once _make_common_bootmode_grub_cfg + # Additionally set up systemd-boot in ISO 9660. This allows creating a medium for the live environment by using # manual partitioning and simply copying the ISO 9660 file system contents. # This is not related to El Torito booting and no firmware uses these files. @@ -616,66 +677,56 @@ _make_bootmode_uefi-ia32.grub.eltorito() { install -d -m 0755 -- "${isofs_dir}/EFI/BOOT" # Copy GRUB EFI binary to the default/fallback boot path - install -m 0644 -- "${work_dir}/BOOTIA32.EFI" \ - "${isofs_dir}/EFI/BOOT/BOOTIA32.EFI" + install -m 0644 -- "${work_dir}/BOOTIA32.EFI" "${isofs_dir}/EFI/BOOT/BOOTIA32.EFI" # Copy GRUB configuration files - install -m 0644 -- "${work_dir}/grub.cfg" "${isofs_dir}/EFI/BOOT/grub.cfg" + _run_once _make_common_bootmode_grub_copy_to_isofs # edk2-shell based UEFI shell if [[ -e "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi" ]]; then - install -m 0644 -- "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi" \ - "${isofs_dir}/shellia32.efi" + install -m 0644 -- "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi" "${isofs_dir}/shellia32.efi" fi _msg_info "Done!" } _make_bootmode_uefi-x64.grub.esp() { - # Fill Grub configuration files - sed "s|%ARCHISO_LABEL%|${iso_label}|g; - s|%INSTALL_DIR%|${install_dir}|g; - s|%ARCH%|${arch}|g" \ - "${profile}/grub/grub.cfg" > "${work_dir}/grub.cfg" + local grubmodules=() - IFS='' read -r -d '' grubembedcfg <<'EOF' || true -if ! [ -d "$cmdpath" ]; then - # On some firmware, GRUB has a wrong cmdpath when booted from an optical disc. - # https://gitlab.archlinux.org/archlinux/archiso/-/issues/183 - if regexp --set=1:isodevice '^(\([^)]+\))\/?[Ee][Ff][Ii]\/[Bb][Oo][Oo][Tt]\/?$' "$cmdpath"; then - cmdpath="${isodevice}/EFI/BOOT" - fi -fi -configfile "${cmdpath}/grub.cfg" -EOF - printf '%s\n' "$grubembedcfg" > "${work_dir}/grub-embed.cfg" + # Prepare configuration files + _run_once _make_common_bootmode_grub_cfg # Create EFI binary + # Module list from https://bugs.archlinux.org/task/71382#comment202911 + grubmodules=(all_video at_keyboard boot btrfs cat chain configfile echo efifwsetup efinet ext2 f2fs fat font \ + gfxmenu gfxterm gzio halt hfsplus iso9660 jpeg keylayouts linux loadenv loopback lsefi lsefimmap \ + minicmd normal part_apple part_gpt part_msdos png read reboot regexp search search_fs_file \ + search_fs_uuid search_label serial sleep tpm usb usbserial_common usbserial_ftdi usbserial_pl2303 \ + usbserial_usbdebug video xfs zstd) grub-mkstandalone -O x86_64-efi \ - --modules="part_gpt part_msdos fat iso9660" \ + --modules="${grubmodules[*]}" \ --locales="en@quot" \ --themes="" \ --sbat=/usr/share/grub/sbat.csv \ + --disable-shim-lock \ -o "${work_dir}/BOOTx64.EFI" "boot/grub/grub.cfg=${work_dir}/grub-embed.cfg" # Add GRUB to the list of files used to calculate the required FAT image size. efiboot_files+=("${work_dir}/BOOTx64.EFI" "${pacstrap_dir}/usr/share/edk2-shell/x64/Shell_Full.efi") - efiboot_imgsize="$(du -bc "${efiboot_files[@]}" \ - 2>/dev/null | awk 'END { print $1 }')" + efiboot_imgsize="$(du -bcs -- "${efiboot_files[@]}" 2>/dev/null | awk 'END { print $1 }')" # Create a FAT image for the EFI system partition _make_efibootimg "$efiboot_imgsize" - # Copy grub EFI binary to the default/fallback boot path - mcopy -i "${work_dir}/efiboot.img" \ - "${work_dir}/BOOTx64.EFI" ::/EFI/BOOT/BOOTx64.EFI + # Copy GRUB EFI binary to the default/fallback boot path + mcopy -i "${efibootimg}" "${work_dir}/BOOTx64.EFI" ::/EFI/BOOT/BOOTx64.EFI - _run_once _make_efibootimg_grubcfg + # Copy GRUB files + _run_once _make_common_bootmode_grub_copy_to_efibootimg if [[ -e "${pacstrap_dir}/usr/share/edk2-shell/x64/Shell_Full.efi" ]]; then - mcopy -i "${work_dir}/efiboot.img" \ - "${pacstrap_dir}/usr/share/edk2-shell/x64/Shell_Full.efi" ::/shellx64.efi + mcopy -i "${efibootimg}" "${pacstrap_dir}/usr/share/edk2-shell/x64/Shell_Full.efi" ::/shellx64.efi fi _msg_info "Done! GRUB set up for UEFI booting successfully." @@ -687,6 +738,9 @@ _make_bootmode_uefi-x64.grub.eltorito() { # uefi-x64.grub.eltorito has the same requirements as uefi-x64.grub.esp _run_once _make_bootmode_uefi-x64.grub.esp + # Prepare configuration files + _run_once _make_common_bootmode_grub_cfg + # Additionally set up systemd-boot in ISO 9660. This allows creating a medium for the live environment by using # manual partitioning and simply copying the ISO 9660 file system contents. # This is not related to El Torito booting and no firmware uses these files. @@ -694,11 +748,10 @@ _make_bootmode_uefi-x64.grub.eltorito() { install -d -m 0755 -- "${isofs_dir}/EFI/BOOT" # Copy GRUB EFI binary to the default/fallback boot path - install -m 0644 -- "${work_dir}/BOOTx64.EFI" \ - "${isofs_dir}/EFI/BOOT/BOOTx64.EFI" + install -m 0644 -- "${work_dir}/BOOTx64.EFI" "${isofs_dir}/EFI/BOOT/BOOTx64.EFI" - # Copy GRUB configuration files - install -m 0644 -- "${work_dir}/grub.cfg" "${isofs_dir}/EFI/BOOT" + # Copy GRUB files + _run_once _make_common_bootmode_grub_copy_to_isofs # edk2-shell based UEFI shell if [[ -e "${pacstrap_dir}/usr/share/edk2-shell/x64/Shell_Full.efi" ]]; then @@ -726,28 +779,28 @@ _make_bootmode_uefi-x64.systemd-boot.esp() { "${pacstrap_dir}/boot/vmlinuz-"* "${pacstrap_dir}/boot/initramfs-"*".img" "${_available_ucodes[@]}") - efiboot_imgsize="$(du -bc "${efiboot_files[@]}" \ + efiboot_imgsize="$(du -bcs -- "${efiboot_files[@]}" \ 2>/dev/null | awk 'END { print $1 }')" # Create a FAT image for the EFI system partition _make_efibootimg "$efiboot_imgsize" # Copy systemd-boot EFI binary to the default/fallback boot path - mcopy -i "${work_dir}/efiboot.img" \ + mcopy -i "${efibootimg}" \ "${pacstrap_dir}/usr/lib/systemd/boot/efi/systemd-bootx64.efi" ::/EFI/BOOT/BOOTx64.EFI # Copy systemd-boot configuration files - mmd -i "${work_dir}/efiboot.img" ::/loader ::/loader/entries - mcopy -i "${work_dir}/efiboot.img" "${profile}/efiboot/loader/loader.conf" ::/loader/ + mmd -i "${efibootimg}" ::/loader ::/loader/entries + mcopy -i "${efibootimg}" "${profile}/efiboot/loader/loader.conf" ::/loader/ for _conf in "${profile}/efiboot/loader/entries/"*".conf"; do sed "s|%ARCHISO_LABEL%|${iso_label}|g; s|%INSTALL_DIR%|${install_dir}|g; s|%ARCH%|${arch}|g" \ - "${_conf}" | mcopy -i "${work_dir}/efiboot.img" - "::/loader/entries/${_conf##*/}" + "${_conf}" | mcopy -i "${efibootimg}" - "::/loader/entries/${_conf##*/}" done # shellx64.efi is picked up automatically when on / if [[ -e "${pacstrap_dir}/usr/share/edk2-shell/x64/Shell_Full.efi" ]]; then - mcopy -i "${work_dir}/efiboot.img" \ + mcopy -i "${efibootimg}" \ "${pacstrap_dir}/usr/share/edk2-shell/x64/Shell_Full.efi" ::/shellx64.efi fi @@ -976,8 +1029,18 @@ _validate_requirements_bootmode_uefi-x64.grub.eltorito() { _prepare_airootfs_image() { _run_once "_mkairootfs_${airootfs_image_type}" _mkchecksum + + if [[ -e "${isofs_dir}/${install_dir}/${arch}/airootfs.sfs" ]]; then + airootfs_image_filename="${isofs_dir}/${install_dir}/${arch}/airootfs.sfs" + elif [[ -e "${isofs_dir}/${install_dir}/${arch}/airootfs.erofs" ]]; then + airootfs_image_filename="${isofs_dir}/${install_dir}/${arch}/airootfs.erofs" + fi + if [[ -n "${gpg_key}" ]]; then - _mksignature + _mk_pgp_signature "${airootfs_image_filename}" + fi + if [[ -v cert_list ]]; then + _cms_sign_artifact "${airootfs_image_filename}" fi } @@ -990,6 +1053,32 @@ _export_netboot_artifacts() { du -hs -- "${out_dir}/${install_dir}" } +_cms_sign_artifact() { + local artifact="${1}" + local openssl_flags=( + "-sign" + "-binary" + "-nocerts" + "-noattr" + "-outform" "DER" "-out" "${artifact}.cms.sig" + "-in" "${artifact}" + "-signer" "${cert_list[0]}" + "-inkey" "${cert_list[1]}" + ) + + if (( ${#cert_list[@]} > 2 )); then + openssl_flags+=("-certfile" "${cert_list[2]}") + fi + + _msg_info "Signing ${artifact} image using openssl cms..." + + rm -f -- "${artifact}.cms.sig" + + openssl cms "${openssl_flags[@]}" + + _msg_info "Done!" +} + # sign build artifacts for netboot _sign_netboot_artifacts() { local _file _dir @@ -1001,7 +1090,8 @@ _sign_netboot_artifacts() { _files_to_sign+=("${_dir}${_file}") fi done - for _file in "${_files_to_sign[@]}" "${_dir}${arch}/vmlinuz-"* "${_dir}${arch}/initramfs-"*.img; do + for _file in "${_files_to_sign[@]}" "${_dir}${arch}/vmlinuz-"!(*.sig) "${_dir}${arch}/initramfs-"*.img; do + rm -f -- "${_file}".ipxe.sig openssl cms \ -sign \ -binary \ @@ -1093,6 +1183,26 @@ _validate_common_requirements_buildmode_iso_netboot() { _msg_error "Packages file '${packages}' does not exist." 0 fi + if [[ -v cert_list ]]; then + # Check if the certificate files exist + for _cert in "${cert_list[@]}"; do + if [[ ! -e "${_cert}" ]]; then + (( validation_error=validation_error+1 )) + _msg_error "File '${_cert}' does not exist." 0 + fi + done + # Check if there are at least three certificate files to sign netboot and rootfs. + if (( ${#cert_list[@]} < 2 )); then + (( validation_error=validation_error+1 )) + _msg_error "Two certificates are required for codesigning netboot artifacts, but '${cert_list[*]}' is provided." 0 + fi + + if ! command -v openssl &> /dev/null; then + (( validation_error=validation_error+1 )) + _msg_error "Validating build mode '${_buildmode}': openssl is not available on this host. Install 'openssl'!" 0 + fi + fi + # Check if the specified airootfs_image_type is supported if typeset -f "_mkairootfs_${airootfs_image_type}" &> /dev/null; then if typeset -f "_validate_requirements_airootfs_image_type_${airootfs_image_type}" &> /dev/null; then @@ -1134,31 +1244,8 @@ _validate_requirements_buildmode_iso() { } _validate_requirements_buildmode_netboot() { - local _override_cert_list=() - - if [[ "${sign_netboot_artifacts}" == "y" ]]; then - # Check if the certificate files exist - for _cert in "${cert_list[@]}"; do - if [[ -e "${_cert}" ]]; then - _override_cert_list+=("$(realpath -- "${_cert}")") - else - (( validation_error=validation_error+1 )) - _msg_error "File '${_cert}' does not exist." 0 - fi - done - cert_list=("${_override_cert_list[@]}") - # Check if there are at least two certificate files - if (( ${#cert_list[@]} < 2 )); then - (( validation_error=validation_error+1 )) - _msg_error "Two certificates are required for codesigning, but '${cert_list[*]}' is provided." 0 - fi - fi _validate_common_requirements_buildmode_iso_netboot _validate_common_requirements_buildmode_all - if ! command -v openssl &> /dev/null; then - (( validation_error=validation_error+1 )) - _msg_error "Validating build mode '${_buildmode}': openssl is not available on this host. Install 'openssl'!" 0 - fi } # SYSLINUX El Torito @@ -1216,7 +1303,7 @@ _add_xorrisofs_options_uefi-x64.systemd-boot.esp() { # shellcheck disable=SC2076 [[ " ${xorrisofs_options[*]} " =~ ' -partition_offset ' ]] || xorrisofs_options+=('-partition_offset' '16') # Attach efiboot.img as a second partition and set its partition type to "EFI system partition" - xorrisofs_options+=('-append_partition' '2' 'C12A7328-F81F-11D2-BA4B-00A0C93EC93B' "${work_dir}/efiboot.img") + xorrisofs_options+=('-append_partition' '2' 'C12A7328-F81F-11D2-BA4B-00A0C93EC93B' "${efibootimg}") # Ensure GPT is used as some systems do not support UEFI booting without it # shellcheck disable=SC2076 if [[ " ${bootmodes[*]} " =~ ' bios.syslinux.mbr ' ]]; then @@ -1263,7 +1350,7 @@ _add_xorrisofs_options_uefi-x64.systemd-boot.eltorito() { # The ISO will not contain a GPT partition table, so to be able to reference efiboot.img, place it as a # file inside the ISO 9660 file system install -d -m 0755 -- "${isofs_dir}/EFI/archiso" - cp -a -- "${work_dir}/efiboot.img" "${isofs_dir}/EFI/archiso/efiboot.img" + cp -a -- "${efibootimg}" "${isofs_dir}/EFI/archiso/efiboot.img" # systemd-boot in an embedded efiboot.img via El Torito xorrisofs_options+=( # Start a new El Torito boot entry for UEFI @@ -1287,7 +1374,7 @@ _add_xorrisofs_options_uefi-x64.grub.esp() { # shellcheck disable=SC2076 [[ " ${xorrisofs_options[*]} " =~ ' -partition_offset ' ]] || xorrisofs_options+=('-partition_offset' '16') # Attach efiboot.img as a second partition and set its partition type to "EFI system partition" - xorrisofs_options+=('-append_partition' '2' 'C12A7328-F81F-11D2-BA4B-00A0C93EC93B' "${work_dir}/efiboot.img") + xorrisofs_options+=('-append_partition' '2' 'C12A7328-F81F-11D2-BA4B-00A0C93EC93B' "${efibootimg}") # Ensure GPT is used as some systems do not support UEFI booting without it # shellcheck disable=SC2076 if [[ " ${bootmodes[*]} " =~ ' bios.syslinux.mbr ' ]]; then @@ -1335,7 +1422,7 @@ _add_xorrisofs_options_uefi-x64.grub.eltorito() { # The ISO will not contain a GPT partition table, so to be able to reference efiboot.img, place it as a # file inside the ISO 9660 file system install -d -m 0755 -- "${isofs_dir}/EFI/archiso" - cp -a -- "${work_dir}/efiboot.img" "${isofs_dir}/EFI/archiso/efiboot.img" + cp -a -- "${efibootimg}" "${isofs_dir}/EFI/archiso/efiboot.img" # grub in an embedded efiboot.img via El Torito xorrisofs_options+=( # Start a new El Torito boot entry for UEFI @@ -1519,10 +1606,7 @@ _set_overrides() { fi [[ ! -v override_gpg_key ]] || gpg_key="$override_gpg_key" [[ ! -v override_gpg_sender ]] || gpg_sender="$override_gpg_sender" - if [[ -v override_cert_list ]]; then - sign_netboot_artifacts="y" - fi - [[ ! -v override_cert_list ]] || cert_list+=("${override_cert_list[@]}") + [[ ! -v override_cert_list ]] || mapfile -t cert_list < <(realpath -- "${override_cert_list[@]}") if [[ -v override_quiet ]]; then quiet="$override_quiet" elif [[ -z "$quiet" ]]; then @@ -1568,6 +1652,11 @@ _make_version() { [[ ! -e "${_os_release}" ]] || sed -i '/^IMAGE_ID=/d;/^IMAGE_VERSION=/d' "${_os_release}" printf 'IMAGE_ID=%s\nIMAGE_VERSION=%s\n' "${iso_name}" "${iso_version}" >> "${_os_release}" fi + + # Touch /usr/lib/clock-epoch to give another hint on date and time + # for systems with screwed or broken RTC. + touch -m -d"@${SOURCE_DATE_EPOCH}" -- "${pacstrap_dir}/usr/lib/clock-epoch" + _msg_info "Done!" } @@ -1648,8 +1737,16 @@ _build_buildmode_netboot() { local run_once_mode="${buildmode}" _build_iso_base + + if [[ -e "${isofs_dir}/${install_dir}/${arch}/airootfs.sfs" ]]; then + airootfs_image_filename="${isofs_dir}/${install_dir}/${arch}/airootfs.sfs" + elif [[ -e "${isofs_dir}/${install_dir}/${arch}/airootfs.erofs" ]]; then + airootfs_image_filename="${isofs_dir}/${install_dir}/${arch}/airootfs.erofs" + fi + if [[ -v cert_list ]]; then _run_once _sign_netboot_artifacts + _cms_sign_artifact "${airootfs_image_filename}" fi _run_once _export_netboot_artifacts } @@ -1658,6 +1755,7 @@ _build_buildmode_netboot() { _build_buildmode_iso() { local image_name="${iso_name}-${iso_version}-${arch}.iso" local run_once_mode="${buildmode}" + efibootimg="${work_dir}/efiboot.img" _build_iso_base _run_once _build_iso_image } diff --git a/packages.x86_64 b/profile/packages.x86_64 similarity index 61% rename from packages.x86_64 rename to profile/packages.x86_64 index d6d6b64a..b14c54ab 100644 --- a/packages.x86_64 +++ b/profile/packages.x86_64 @@ -1,5 +1,4 @@ -##-------- Base Packages ---------------------## - +## Arch Packages ------------------------------ #alsa-utils amd-ucode arch-install-scripts @@ -25,7 +24,7 @@ dosfstools e2fsprogs edk2-shell efibootmgr -espeakup +#espeakup ethtool exfatprogs f2fs-tools @@ -40,8 +39,8 @@ gptfdisk hdparm hyperv intel-ucode -ipw2100-fw -ipw2200-fw +#ipw2100-fw +#ipw2200-fw irssi iw iwd @@ -67,7 +66,6 @@ mdadm mkinitcpio mkinitcpio-archiso mkinitcpio-nfs-utils -mkinitcpio-firmware modemmanager mtools nano @@ -126,228 +124,277 @@ xfsprogs xl2tpd zsh -##-------- Xorg Packages ---------------------## -xorg -#xorg-server -#xorg-xbacklight -#xorg-fonts-misc -#xorg-xfd -#xorg-xkill -#xorg-xrandr -#xorg-xrdb -#xorg-xset -#xorg-xev -#xorg-xmodmap -#xorg-xwininfo -#xorg-xsetroot +## Bootloader ------------------------------ +os-prober +lsb-release +archcraft/grub +archcraft-grub-theme -##-------- Touchpad and Mouse ----------------## +## Splash Screen ------------------------------ +archcraft/plymouth +archcraft-plymouth-theme + +## Archcraft Specific ------------------------------ +archcraft-hooks +archcraft-mirrorlist + +## Xorg Server ------------------------------ +xorg + +## Touchpad and Mouse ------------------------------ xorg-xinput xf86-input-libinput -##-------- GPU Drivers (Intel/AMD/VM) --------## +## GPU Drivers (Intel/AMD/VM) ------------------------------ xf86-video-fbdev xf86-video-vesa xf86-video-intel xf86-video-amdgpu xf86-video-ati -##-------- GPU Drivers (Nvidia) --------------## +## GPU Drivers (Nvidia) ------------------------------ xf86-video-nouveau nvidia nvidia-utils nvidia-settings -##-------- Programs --------------------------## - -## Networking / Internet ----- -inetutils -firefox -networkmanager -networkmanager-openvpn -nethogs -nm-connection-editor - -## Bluetooth ----- -bluez -bluez-utils -blueman -pulseaudio-bluetooth - -## Printers ----- -cups -gutenprint - -## Sound ----- -alsa-plugins -alsa-tools -alsa-utils -pavucontrol -pulseaudio -pulseaudio-alsa -pulseaudio-equalizer-ladspa - -## Files ----- -ranger -highlight -trash-cli -ueberzug -thunar -thunar-archive-plugin -thunar-media-tags-plugin -thunar-volman -zip -p7zip -unzip -unrar -xarchiver -xdg-user-dirs -xdg-user-dirs-gtk - -## Images ----- -viewnior - -## Multimedia ----- -ffmpeg -ffmpegthumbnailer -mpc -mpd -mplayer -ncmpcpp -tumbler - -## Terminals ----- -alacritty -xfce4-terminal - -## Docs / Editors ----- -atril -geany -geany-plugins -vim - -## Fonts ----- -noto-fonts -noto-fonts-emoji -terminus-font -ttf-dejavu - -## System ----- -acpi -autoconf -automake -binutils -bison -calc -fakeroot -gcc -gparted -gtk-engine-murrine -gvfs -gvfs-mtp -gvfs-afc -gvfs-gphoto2 -gvfs-smb -gvfs-google -inotify-tools -jq -make -patch -pkg-config -polkit -powertop -python2 -sshfs -udisks2 -wmctrl -xclip -xdotool -xmlstarlet -yad - -## Utilities ----- -baobab -dialog -dunst -gpick -htop -lxappearance -meld -ncdu -nitrogen -plank -python-pywal -rofi -maim -slop - -## XFCE tools ----- -xfce4-power-manager -xfce4-settings -xsettingsd - -## QT Style ----- -kvantum -qt5ct - -##-------- Calamares ----------------## -boost -calamares -calamares-config - -##-------- Hypervisors --------------## +## Hypervisors ------------------------------ virtualbox-guest-utils qemu-guest-agent open-vm-tools xf86-input-vmmouse xf86-video-vmware -##-------- Grub ---------------------## -os-prober -lsb-release -archcraft/grub -archcraft-grub-theme +## System ------------------------------ -##-------- Plymouth -----------------## -archcraft/plymouth -archcraft-plymouth-theme +## Networking +networkmanager +networkmanager-openconnect +networkmanager-openvpn +networkmanager-pptp +networkmanager-strongswan +networkmanager-vpnc +network-manager-sstp +nm-connection-editor +network-manager-applet -##-------- Display Manager ----------## +## Bluetooth +bluez +bluez-utils +blueman + +## Audio +pipewire +wireplumber +pipewire-alsa +pipewire-pulse +pipewire-jack +pulsemixer +gst-plugin-pipewire + +## Video +libde265 +libdv +libmpeg2 +schroedinger +libtheora +libvpx +x264 +x265 +xvidcore +gstreamer +ffmpeg +gst-libav +gst-plugins-good +gst-plugins-ugly +gst-plugins-bad + +## Print +cups +cups-pdf +cups-filters +ghostscript +gsfonts +foomatic-db-engine +foomatic-db +gutenprint + +## Installer ------------------------------ + +## Calamares +boost +calamares +calamares-config + +## ABIF +archcraft-installer +archcraft-install-scripts + +## QT Style +kvantum +qt5ct + +## Display Manager ------------------------------ sddm -archcraft-sddm-theme-default +archcraft-sddm-theme -##-------- Archcraft Packages -------## +## Desktop ------------------------------ + +# Terminal +alacritty +xfce4-terminal + +# Apps +firefox +geany +geany-plugins +thunar +thunar-archive-plugin +thunar-media-tags-plugin +thunar-volman +viewnior +atril + +# Media +mpc +mpd +ncmpcpp +mplayer + +# Utilities +acpi +arandr +dialog +dunst +gparted +gtk-engine-murrine +inetutils +inotify-tools +jq +light +meld +nitrogen +pastel +plank +polkit +python2 +python-pywal +rofi +maim +simplescreenrecorder +slop +udisks2 +wmctrl +wmname +xclip +xcolor +xdotool +xfce4-power-manager +xfce4-settings +xmlstarlet +xsettingsd +yad + +# WMs +archcraft-openbox +archcraft-bspwm + +# Archcraft Packages archcraft-cursors archcraft-icons archcraft-themes archcraft-wallpapers archcraft-fonts -archcraft-skeleton -archcraft-bspwm -archcraft-openbox -archcraft-music -archcraft-vim -archcraft-omz -archcraft-scripts -archcraft-pixmaps -archcraft-artworks archcraft-about +archcraft-artworks +archcraft-dunst-icons +archcraft-funscripts archcraft-help +archcraft-neofetch archcraft-welcome -archcraft-hooks -archcraft-installer -archcraft-install-scripts +archcraft-music +archcraft-omz +archcraft-ranger +archcraft-vim +archcraft-config-geany +archcraft-config-music +archcraft-config-qt +archcraft-hooks-extra +archcraft-hooks-zsh -archcraft-mirrorlist -chaotic-mirrorlist -chaotic-keyring +## Functionality ------------------------------ -##-------- AUR Packages -------------## +## Fonts +noto-fonts +noto-fonts-emoji +noto-fonts-cjk +terminus-font + +## Multimedia +ffmpegthumbnailer +tumbler + +## Images +jasper +libwebp +libavif +libheif + +## Files +gvfs +gvfs-mtp +gvfs-afc +gvfs-gphoto2 +gvfs-smb +gvfs-google +highlight +trash-cli +ueberzug +xdg-user-dirs +xdg-user-dirs-gtk + +## Archives +bzip2 +gzip +lrzip +lz4 +lzip +lzop +xz +zstd +p7zip +zip +unzip +unrar +unarchiver +xarchiver + +## Misc ------------------------------ + +## Package Tools +fakeroot +make +automake +autoconf +pkgconf +patch +gcc + +## CLI Tools +htop +nethogs +ncdu +powertop +ranger +vim + +## AUR Packages betterlockscreen downgrade +gtk3-nocsd-git i3lock-color ksuperkey -light +mkinitcpio-firmware networkmanager-dmenu-git obmenu-generator perl-linux-desktopfiles @@ -356,3 +403,5 @@ polybar timeshift xfce-polkit yay + +## EOF ------------------------------ diff --git a/pacman.conf b/profile/pacman.conf similarity index 96% rename from pacman.conf rename to profile/pacman.conf index 2f6bfe98..4cdf3478 100644 --- a/pacman.conf +++ b/profile/pacman.conf @@ -77,9 +77,6 @@ LocalFileSigLevel = Optional SigLevel = Optional TrustAll Include = /etc/pacman.d/archcraft-mirrorlist -[chaotic-aur] -Include = /etc/pacman.d/chaotic-mirrorlist - [core] Include = /etc/pacman.d/mirrorlist @@ -98,8 +95,8 @@ Include = /etc/pacman.d/mirrorlist #[multilib-testing] #Include = /etc/pacman.d/mirrorlist -[multilib] -Include = /etc/pacman.d/mirrorlist +#[multilib] +#Include = /etc/pacman.d/mirrorlist # An example of a custom package repository. See the pacman manpage for # tips on creating your own repositories. diff --git a/profiledef.sh b/profile/profiledef.sh similarity index 88% rename from profiledef.sh rename to profile/profiledef.sh index 6c3e999a..a1fdd6e8 100644 --- a/profiledef.sh +++ b/profile/profiledef.sh @@ -2,7 +2,7 @@ # shellcheck disable=SC2034 iso_name="archcraft" -iso_label="archcraft_$(date +%Y%m)" +iso_label="ARCHCRAFT_$(date +%Y%m)" iso_publisher="Aditya Shakya " iso_application="Archcraft Live/Installation/Rescue CD" iso_version="$(date +%Y.%m.%d)" @@ -16,11 +16,12 @@ pacman_conf="pacman.conf" airootfs_image_type="squashfs" airootfs_image_tool_options=('-comp' 'xz' '-Xbcj' 'x86' '-b' '1M' '-Xdict-size' '1M') file_permissions=( - ["/etc/shadow"]="0:0:0400" + ["/etc/shadow"]="0:0:400" ["/etc/gshadow"]="0:0:0400" ["/etc/sudoers.d"]="0:0:750" ["/root"]="0:0:750" ["/root/.automated_script.sh"]="0:0:755" ["/root/customize_airootfs.sh"]="0:0:755" ["/usr/local/bin/choose-mirror"]="0:0:755" + ["/usr/local/bin/xflock4"]="0:0:755" ) diff --git a/syslinux/archcraftiso_head.cfg b/profile/syslinux/archcraftiso_head.cfg similarity index 76% rename from syslinux/archcraftiso_head.cfg rename to profile/syslinux/archcraftiso_head.cfg index d9ce7d41..738ee592 100644 --- a/syslinux/archcraftiso_head.cfg +++ b/profile/syslinux/archcraftiso_head.cfg @@ -5,15 +5,25 @@ MENU CLEAR MENU BACKGROUND splash.png MENU AUTOBOOT Starting Archcraft in # second{,s}. -MENU WIDTH 45 +# Menu items width +MENU WIDTH 70 +# Gap from top +MENU VSHIFT 8 +# Gap from sides +MENU HSHIFT 6 +# Gap from left MENU MARGIN 4 +# How many visible rows MENU ROWS 10 -MENU VSHIFT 10 -MENU HSHIFT 18 -MENU TABMSGROW 14 -MENU CMDLINEROW 14 -MENU HELPMSGROW 17 +# Tab message row height +MENU TABMSGROW 16 +# CMD line height +MENU CMDLINEROW 16 +# Help message row +MENU HELPMSGROW 19 +# Help message ending row MENU HELPMSGENDROW 30 + MENU HIDDEN # Title bar diff --git a/syslinux/archcraftiso_pxe-linux.cfg b/profile/syslinux/archcraftiso_pxe-linux.cfg similarity index 80% rename from syslinux/archcraftiso_pxe-linux.cfg rename to profile/syslinux/archcraftiso_pxe-linux.cfg index fd37c858..4189b5b4 100644 --- a/syslinux/archcraftiso_pxe-linux.cfg +++ b/profile/syslinux/archcraftiso_pxe-linux.cfg @@ -1,9 +1,9 @@ LABEL arch64_nbd TEXT HELP -Boot Archcraft (64bit) live medium (Using NBD). +Boot Archcraft install medium using NBD. It allows you to install Archcraft or perform system maintenance. ENDTEXT -MENU LABEL Boot Archcraft (64bit) (NBD) +MENU LABEL Boot Archcraft (x86_64, NBD) LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} checksum verify @@ -11,10 +11,10 @@ SYSAPPEND 3 LABEL arch64_nfs TEXT HELP -Boot Archcraft (64bit) live medium (Using NFS). +Boot Archcraft install medium using NFS. It allows you to install Archcraft or perform system maintenance. ENDTEXT -MENU LABEL Boot Archcraft (64bit) (x86_64, NFS) +MENU LABEL Boot Archcraft (x86_64, NFS) LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt checksum verify @@ -22,10 +22,10 @@ SYSAPPEND 3 LABEL arch64_http TEXT HELP -Boot Archcraft (64bit) live medium (Using HTTP). +Boot Archcraft install medium using HTTP. It allows you to install Archcraft or perform system maintenance. ENDTEXT -MENU LABEL Boot Archcraft (64bit) (x86_64, HTTP) +MENU LABEL Boot Archcraft (x86_64, HTTP) LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ checksum verify diff --git a/syslinux/archcraftiso_pxe.cfg b/profile/syslinux/archcraftiso_pxe.cfg similarity index 100% rename from syslinux/archcraftiso_pxe.cfg rename to profile/syslinux/archcraftiso_pxe.cfg diff --git a/profile/syslinux/archcraftiso_sys-linux.cfg b/profile/syslinux/archcraftiso_sys-linux.cfg new file mode 100644 index 00000000..b19793a5 --- /dev/null +++ b/profile/syslinux/archcraftiso_sys-linux.cfg @@ -0,0 +1,65 @@ +# Default +LABEL arch64 +TEXT HELP +Boot Archcraft install medium on BIOS. +It allows you to install Archcraft or perform system maintenance. +ENDTEXT +MENU LABEL Boot Archcraft (x86_64, BIOS) +LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n + +# Open Source +LABEL arch64free +TEXT HELP +Boot Archcraft install medium on BIOS with open source drivers. +It allows you to install Archcraft or perform system maintenance. +ENDTEXT +MENU LABEL Boot Archcraft (x86_64, BIOS, open source) +LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=free nouveau.modeset=1 radeon.modeset=1 i915.modeset=1 nvme_load=yes + +# Open Source, No Nouveau +LABEL arch64freenonouveau +TEXT HELP +Boot Archcraft install medium on BIOS with open source drivers. +It allows you to install Archcraft or perform system maintenance. +ENDTEXT +MENU LABEL Boot Archcraft (x86_64, BIOS, open source, no nouveau) +LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=freenonouveau radeon.modeset=1 i915.modeset=1 nvme_load=yes + +# NVIDIA Proprietary +LABEL arch64nonfree +TEXT HELP +Boot Archcraft install medium on BIOS with proprietary drivers (NVIDIA). +It allows you to install Archcraft or perform system maintenance. +ENDTEXT +MENU LABEL Boot Archcraft (x86_64, BIOS, NVIDIA) +LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=nonfree nouveau.modeset=0 radeon.modeset=1 i915.modeset=1 nvme_load=yes + +# NVIDIA Proprietary, No Nouveau +LABEL arch64nonfreenonouveau +TEXT HELP +Boot Archcraft install medium on BIOS with proprietary drivers (NVIDIA). +It allows you to install Archcraft or perform system maintenance. +ENDTEXT +MENU LABEL Boot Archcraft (x86_64, BIOS, NVIDIA, no nouveau) +LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=nonfreenonouveau nouveau.modeset=0 radeon.modeset=1 i915.modeset=1 nvme_load=yes + +# Nomodeset +LABEL arch64nomodeset +TEXT HELP +Boot Archcraft install medium on BIOS with nomodeset. +It allows you to install Archcraft or perform system maintenance. +ENDTEXT +MENU LABEL Boot Archcraft (x86_64, BIOS, nomodeset) +LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G copytoram=n driver=free nomodeset nouveau.modeset=0 radeon.modeset=0 i915.modeset=0 nvme_load=yes diff --git a/syslinux/archcraftiso_sys.cfg b/profile/syslinux/archcraftiso_sys.cfg similarity index 100% rename from syslinux/archcraftiso_sys.cfg rename to profile/syslinux/archcraftiso_sys.cfg diff --git a/profile/syslinux/archcraftiso_tail.cfg b/profile/syslinux/archcraftiso_tail.cfg new file mode 100644 index 00000000..b1fad5ff --- /dev/null +++ b/profile/syslinux/archcraftiso_tail.cfg @@ -0,0 +1,33 @@ +LABEL existing +TEXT HELP +Boot an existing operating system. +Press TAB to edit the disk and partition number to boot. +ENDTEXT +MENU LABEL Boot From Hard Drive +COM32 chain.c32 +APPEND hd0 0 + +LABEL hdt +TEXT HELP +Show hardware information. +Display the computer's hardware information with HDT. +ENDTEXT +MENU LABEL Hardware Information +COM32 hdt.c32 +APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz + +LABEL reboot +TEXT HELP +Reboot computer. +The computer's firmware must support APM. +ENDTEXT +MENU LABEL Reboot Computer +COM32 reboot.c32 + +LABEL poweroff +TEXT HELP +Power off computer. +The computer's firmware must support APM. +ENDTEXT +MENU LABEL Power Off Computer +COM32 poweroff.c32 diff --git a/syslinux/splash.png b/profile/syslinux/splash.png similarity index 100% rename from syslinux/splash.png rename to profile/syslinux/splash.png diff --git a/syslinux/syslinux.cfg b/profile/syslinux/syslinux.cfg similarity index 100% rename from syslinux/syslinux.cfg rename to profile/syslinux/syslinux.cfg diff --git a/syslinux/archcraftiso_sys-linux.cfg b/syslinux/archcraftiso_sys-linux.cfg deleted file mode 100644 index 5fd95d72..00000000 --- a/syslinux/archcraftiso_sys-linux.cfg +++ /dev/null @@ -1,20 +0,0 @@ -# Default -LABEL arch64 -MENU LABEL Boot Archcraft (64bit, BIOS) -LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux -INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G - -# Copy to RAM boot option -LABEL arch64-ctr -MENU LABEL Boot Archcraft (Copy to RAM) -LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux -INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=1G - -# Nvidia propritary (Non-Free) -LABEL arch64-nvidia -MENU LABEL Boot Archcraft (64bit, NVIDIA) -LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux -INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% quiet splash loglevel=3 udev.log_level=3 vt.global_cursor_default=0 cow_spacesize=5G nouveau.modeset=0 modprobe.blacklist=nouveau nvidia i915.modeset=1 radeon.modeset=1 diff --git a/syslinux/archcraftiso_tail.cfg b/syslinux/archcraftiso_tail.cfg deleted file mode 100644 index 944ff9c7..00000000 --- a/syslinux/archcraftiso_tail.cfg +++ /dev/null @@ -1,17 +0,0 @@ -LABEL existing -MENU LABEL Boot From Hard Drive -COM32 chain.c32 -APPEND hd0 0 - -LABEL hdt -MENU LABEL Hardware Information -COM32 hdt.c32 -APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz - -LABEL reboot -MENU LABEL Reboot Computer -COM32 reboot.c32 - -LABEL poweroff -MENU LABEL Power Off Computer -COM32 poweroff.c32