mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
* Change lazyvim and asdcontrol to packages * Remove asdcontrol and lazyvim * Add lazyvim setup * Don't trigger rebuild. We already rebuild later. * Add new pacman.conf after install * Update config to keep mirrors in mirrorlist * Add lazyvim setup back * Make webapp installer work with local images * Update tuis to work offline * Update pacman config situation * Extract the reboot segment into its own file * Explainer * Can't return in executed scripts * Add post-install * Extract the reboot segment into its own file * Fix rebase doubling up * Add run wrapper function for feedback * Redirect output to log * Move gnome updates to first-run * Add theme to first-run * Updat to try to get logging working * Create the file and give permissions * Test gsettings * Revert "Test gsettings" This reverts commit 49c27d319407f6c95fcbb4c5a2646e54b50c9ab4. * Stop logging * Add time outputs to end of logs * Rearrange some scripts to cleanup * Cleanup * Add timing to run script * Don't enable multilib for offline * Add prebuild ruby * Try spinner setup * Prevent exit 1 due to grep not matching * Update limine config to work for USB installs as well * Add offline install to env report * Fix grep pipefailure * Update logs exports to work with subshells * Fix backward logic * Attempt to fix logging again * Export chrootable for subshells * Clean up outputs * Move chrootable up * Source chroot instead * Changes for logging * Center up reboot notice * Update fixed paths * Update trap * Revert reverting precompiled ruby due to issues * Revert "Revert reverting precompiled ruby due to issues" This reverts commit c159e7dc51cfdd2fb750c49c66bc4468e1208446. * Remove junk to cleanup fixed paths now that we have relative * Add git branch check to transition beta to main * Log output * Add time output on summary screen * We don't need sudo here * Add ansi helpers to make code cleaner * Add dry-run helpers for testing * Split out some common / reused items * Add log output function * Use gum log to output cleaner * Cleanup * Update trap with options * Fix reboot and pad it * Cleanup * Add dry-run for testing * Use default $PADDING for gum * More styles * Styles and really exit * Update to new format * Add ansi vars * Update log output to prevent flickering * Fix logo exporting * Trap updates * Add exit handler * Prevent double-trapping * Update traps * Consolidate logic * Update reboot to work in chroot * Eliminate double-guard * Attempt to speed up by removing mkinitcpio hooks * Add multilib for nvidia users * Add back wireless-regdom * Remove dryrun items * Fix to be offline * Set fonts for plymouth to solve freetype2 issue * Required -y to run * Update omarchy-refresh-plymouth to account for limine changes * Update omarchy-refresh-plymouth to account for limine changes (#1575) * Required -y to run * Update omarchy-refresh-plymouth to account for limine changes --------- Co-authored-by: David Heinemeier Hansson <david@hey.com> * Update modes * Remove direct executions of .sh files * Add variable safety * Add omarchy-upload-log * Add broadcome fix for MBP * Prevent printing on screen when rebooting * Make packages list universal * Rename * Remove retry message * Fix packages target * Add system info to upload * Update variable name * Remove unnecessary executable statuses * Remove gesture default * Add bcm4360 fix to install * Add useful debug info * Add OMARCHY_PATH * Only look locally offline * Rename / rearrange files * Export so they're available to subshells * Update for alternate * Rearrange * Log install time if no arch * Add limine to packages list * Update comments * Update sizing method * Update mode switcher * Move icons to be embedded in installer * Set install mode to online * shebang and sudo * Remove deleted branch check * Elim banners * Elim verbosity * Rename LOG_FILE * Multilib on by default * Flip to positive * Switch to gnome-theme.sh for first run * Elim ansi-codes helper * Move guard up to be the first thing that's hit * Extract a couple of functions * Trim * Trim * Move back to trap * Update to single gum file * Just show total * Pulled function to a helper * Extract explaining function * Use complete conditional flows where possible * Reference variable close to its use * Use modern bash conditional syntax * Comment before function * Use a simpler shared exit headline Doesn't matter how we stopped, just that we did * CRs * Keep constants together * Style on comment * Explain QR Code * Modern bash conditional and use lowercase for all local variables * Use bash calculation syntax for numbers * Use calculation syntax where possible * cleanup was not intention revealing enough imo * Spacing * Retry won't produce something different in offline mode * Not needed * Use modern bash conditional style * String-wrapping not needed in [[ ]] * Might as well use constants for all of these * Don't need the wrapping * Move the output saving into where we're working with it * Not needed as long as we just source this * Gum is a helper * Slim down logging setup * Reflect broader scope of work * Everything should live in file * Simpler * Ordering * Style * Better separation of concerns * Stop pretending these are meant to run directly * Move all packaging execution together * No longer used in an offline centric setup * None of these are directly executable any more either * Modern bash conditional * Better name * Explain what's going on * Use modern bash conditional * Use modern bash styule * No need for bashing --------- Co-authored-by: David Heinemeier Hansson <david@hey.com> Co-authored-by: DoppioJP <jakub@doppio.jp>
116 lines
4.1 KiB
Bash
116 lines
4.1 KiB
Bash
if ! command -v limine &>/dev/null; then
|
|
# Add kernel hooks
|
|
if ! grep -Eq '^HOOKS=.*plymouth' /etc/mkinitcpio.conf; then
|
|
# Backup original mkinitcpio.conf just in case
|
|
backup_timestamp=$(date +"%Y%m%d%H%M%S")
|
|
sudo cp /etc/mkinitcpio.conf "/etc/mkinitcpio.conf.bak.${backup_timestamp}"
|
|
|
|
# Add plymouth to HOOKS array after 'base udev' or 'base systemd'
|
|
if grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base systemd"; then
|
|
sudo sed -i '/^HOOKS=/s/base systemd/base systemd plymouth/' /etc/mkinitcpio.conf
|
|
elif grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base udev"; then
|
|
sudo sed -i '/^HOOKS=/s/base udev/base udev plymouth/' /etc/mkinitcpio.conf
|
|
else
|
|
echo "Couldn't add the Plymouth hook"
|
|
fi
|
|
|
|
# Regenerate initramfs
|
|
sudo mkinitcpio -P
|
|
fi
|
|
|
|
# Add kernel parameters for Plymouth
|
|
if [ -d "/boot/loader/entries" ]; then # systemd-boot
|
|
echo "Detected systemd-boot"
|
|
|
|
for entry in /boot/loader/entries/*.conf; do
|
|
if [ -f "$entry" ]; then
|
|
# Skip fallback entries
|
|
if [[ "$(basename "$entry")" == *"fallback"* ]]; then
|
|
echo "Skipped: $(basename "$entry") (fallback entry)"
|
|
continue
|
|
fi
|
|
|
|
# Skip if splash it already present for some reason
|
|
if ! grep -q "splash" "$entry"; then
|
|
sudo sed -i '/^options/ s/$/ splash quiet/' "$entry"
|
|
else
|
|
echo "Skipped: $(basename "$entry") (splash already present)"
|
|
fi
|
|
fi
|
|
done
|
|
elif [ -f "/etc/default/grub" ]; then # Grub
|
|
echo "Detected grub"
|
|
|
|
# Backup GRUB config before modifying
|
|
backup_timestamp=$(date +"%Y%m%d%H%M%S")
|
|
sudo cp /etc/default/grub "/etc/default/grub.bak.${backup_timestamp}"
|
|
|
|
# Check if splash is already in GRUB_CMDLINE_LINUX_DEFAULT
|
|
if ! grep -q "GRUB_CMDLINE_LINUX_DEFAULT.*splash" /etc/default/grub; then
|
|
# Get current GRUB_CMDLINE_LINUX_DEFAULT value
|
|
current_cmdline=$(grep "^GRUB_CMDLINE_LINUX_DEFAULT=" /etc/default/grub | cut -d'"' -f2)
|
|
|
|
# Add splash and quiet if not present
|
|
new_cmdline="$current_cmdline"
|
|
if [[ ! "$current_cmdline" =~ splash ]]; then
|
|
new_cmdline="$new_cmdline splash"
|
|
fi
|
|
if [[ ! "$current_cmdline" =~ quiet ]]; then
|
|
new_cmdline="$new_cmdline quiet"
|
|
fi
|
|
|
|
# Trim any leading/trailing spaces
|
|
new_cmdline=$(echo "$new_cmdline" | xargs)
|
|
|
|
sudo sed -i "s/^GRUB_CMDLINE_LINUX_DEFAULT=\".*\"/GRUB_CMDLINE_LINUX_DEFAULT=\"$new_cmdline\"/" /etc/default/grub
|
|
|
|
# Regenerate grub config
|
|
sudo grub-mkconfig -o /boot/grub/grub.cfg
|
|
else
|
|
echo "GRUB already configured with splash kernel parameters"
|
|
fi
|
|
elif [ -d "/etc/cmdline.d" ]; then # UKI
|
|
echo "Detected a UKI setup"
|
|
# Relying on mkinitcpio to assemble a UKI
|
|
# https://wiki.archlinux.org/title/Unified_kernel_image
|
|
if ! grep -q splash /etc/cmdline.d/*.conf; then
|
|
# Need splash, create the omarchy file
|
|
echo "splash" | sudo tee -a /etc/cmdline.d/omarchy.conf
|
|
fi
|
|
if ! grep -q quiet /etc/cmdline.d/*.conf; then
|
|
# Need quiet, create or append the omarchy file
|
|
echo "quiet" | sudo tee -a /etc/cmdline.d/omarchy.conf
|
|
fi
|
|
elif [ -f "/etc/kernel/cmdline" ]; then # UKI Alternate
|
|
# Alternate UKI kernel cmdline location
|
|
echo "Detected a UKI setup"
|
|
|
|
# Backup kernel cmdline config before modifying
|
|
backup_timestamp=$(date +"%Y%m%d%H%M%S")
|
|
sudo cp /etc/kernel/cmdline "/etc/kernel/cmdline.bak.${backup_timestamp}"
|
|
|
|
current_cmdline=$(cat /etc/kernel/cmdline)
|
|
|
|
# Add splash and quiet if not present
|
|
new_cmdline="$current_cmdline"
|
|
if [[ ! "$current_cmdline" =~ splash ]]; then
|
|
new_cmdline="$new_cmdline splash"
|
|
fi
|
|
if [[ ! "$current_cmdline" =~ quiet ]]; then
|
|
new_cmdline="$new_cmdline quiet"
|
|
fi
|
|
|
|
# Trim any leading/trailing spaces
|
|
new_cmdline=$(echo "$new_cmdline" | xargs)
|
|
|
|
# Write new file
|
|
echo $new_cmdline | sudo tee /etc/kernel/cmdline
|
|
else
|
|
echo ""
|
|
echo " None of systemd-boot, GRUB, or UKI detected. Please manually add these kernel parameters:"
|
|
echo " - splash (to see the graphical splash screen)"
|
|
echo " - quiet (for silent boot)"
|
|
echo ""
|
|
fi
|
|
fi
|