diff --git a/pi4/build/README.md b/pi4/build/README.md index b467c6f..3f870a7 100644 --- a/pi4/build/README.md +++ b/pi4/build/README.md @@ -45,7 +45,7 @@ If the build is interrupted, run `sudo umount -R /mnt && sudo losetup -D` to be ## Customizing the Image - **Overlay files**: Add or edit files in `pi4/files/` using the same paths they should have inside the Pi. Example: to add a custom MOTD, edit `pi4/files/etc/motd`. - **Packages**: Edit the package list inside `pi4/build/build-stormux.sh` (search for `pacman -Su --needed`). Add or remove entries as needed, then rebuild. -- **AUR components**: The script already compiles Fenrir (`fenrir-git`), `growpartfs`, `log2ram`, and `yay`. To add more AUR packages, append them to the `aurPackages` array near the middle of the script. +- **Package sources**: The build does not fetch or compile packages from the AUR. Packages are installed from the official Arch Linux ARM repositories or the Stormux repository. The finished image includes `yay`, but it is installed as a prebuilt package from the Stormux repository and is not used during the build. - **First-boot behavior**: Modify `pi4/files/usr/local/bin/configure-stormux` to change the guided setup that runs when the image boots the first time. Remember to keep permissions sensible (`chmod 755` for scripts, `644` for configs) so rsync copies them correctly. diff --git a/x86_64/airootfs/usr/local/bin/install-stormux b/x86_64/airootfs/usr/local/bin/install-stormux index 055acd7..98c8901 100755 --- a/x86_64/airootfs/usr/local/bin/install-stormux +++ b/x86_64/airootfs/usr/local/bin/install-stormux @@ -18,7 +18,7 @@ rootPassword="" declare -a userNames=() declare -a userPasswords=() declare -a userIsAdmin=() -desktopEnvironment="" # "none", "i3", "mate" +desktopEnvironment="" # "none", "i3" hasDesktop=false # true if a desktop environment is selected timezone="" enableSsh="no" # "yes" or "no" @@ -1088,7 +1088,7 @@ gather_system_info() { # Desktop environment echo "Select desktop environment:" - local desktops=("Console only (Fenrir screen reader)" "i3 (tiling window manager)" "MATE (traditional desktop)") + local desktops=("Console only (Fenrir screen reader)" "I38 (accessible i3 desktop)") PS3="Enter desktop number: " COLUMNS=1 @@ -1100,16 +1100,10 @@ gather_system_info() { log_info "Desktop environment: none" break ;; - "i3"*) + "I38"*) desktopEnvironment="i3" hasDesktop=true - log_info "Desktop environment: i3" - break - ;; - "MATE"*) - desktopEnvironment="mate" - hasDesktop=true - log_info "Desktop environment: mate" + log_info "Desktop environment: I38" break ;; esac @@ -1209,7 +1203,11 @@ gather_system_info() { echo "Configuration summary:" echo " Hostname: $hostname" echo " Users: ${userNames[*]}" - echo " Desktop: $desktopEnvironment" + if [[ "$desktopEnvironment" == "i3" ]]; then + echo " Desktop: I38" + else + echo " Desktop: $desktopEnvironment" + fi echo " SSH enabled: $enableSsh" echo " Timezone: $timezone" echo "" @@ -1346,9 +1344,6 @@ install_base_system() { allPackages+=(python-gobject python-pillow python-pytesseract scrot tesseract) allPackages+=(tesseract-data-eng udiskie xorg-setxkbmap xdotool) ;; - mate) - allPackages+=(mate mate-extra orca python-psutil) - ;; esac fi @@ -1742,75 +1737,17 @@ fi # Run I38 setup scripts as the user # -x generates xinitrc and xprofile # Main script generates i3 config with accessibility features + play -qnV0 synth 3 pluck D3 pluck A3 pluck D4 pluck F4 pluck A4 delay 0 .1 .2 .3 .4 remix - chorus 0.9 0.9 38 0.75 0.3 0.5 -t 2>/dev/null || true if ! sudo -u \$firstUser ./i38.sh -x; then echo "WARNING: I38 xinit/xprofile setup reported an error" fi + play -qnV0 synth 3 pluck D3 pluck A3 pluck D4 pluck F4 pluck A4 delay 0 .1 .2 .3 .4 remix - chorus 0.9 0.9 38 0.75 0.3 0.5 -t 2>/dev/null || true if ! sudo -u \$firstUser ./i38.sh; then echo "WARNING: I38 main setup reported an error" fi cd - > /dev/null || exit 1 fi -elif [[ "${desktopEnvironment}" == "mate" ]]; then - firstUser="${userNames[0]}" - - # Create .xinitrc for MATE - cat > /home/\$firstUser/.xinitrc <<'XINITRC_MATE_EOF' -#!/bin/sh -# -# ~/.xinitrc -# -# Executed by startx (run your window manager from here) - -[[ -f ~/.Xresources ]] && xrdb -merge -I\$HOME ~/.Xresources - -if [ -d /etc/X11/xinit/xinitrc.d ]; then - for f in /etc/X11/xinit/xinitrc.d/*; do - [ -x "\$f" ] && . "\$f" - done - unset f -fi - -[ -f /etc/xprofile ] && . /etc/xprofile -[ -f ~/.xprofile ] && . ~/.xprofile - -exec dbus-run-session -- mate-session -XINITRC_MATE_EOF - chmod 755 /home/\$firstUser/.xinitrc - chown \$firstUser:users /home/\$firstUser/.xinitrc - - # Create .xprofile for MATE with accessibility variables - cat > /home/\$firstUser/.xprofile <<'XPROFILE_MATE_EOF' -# Accessibility variables -export ACCESSIBILITY_ENABLED=1 -export CHROME_FLAGS="--force-renderer-accessibility" -export GTK_MODULES=gail:atk-bridge -export GNOME_ACCESSIBILITY=1 -export QT_ACCESSIBILITY=1 -export QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1 -export SAL_USE_VCLPLUGIN=gtk3 - -# Enable Orca screen reader -if ! gsettings set org.gnome.desktop.a11y.applications screen-reader-enabled true; then - echo "WARNING: Could not set GNOME screen-reader-enabled flag" -fi -if ! gsettings set org.mate.interface accessibility true; then - echo "WARNING: Could not set MATE accessibility flag" -fi -if ! gsettings set org.mate.applications-at-visual startup true; then - echo "WARNING: Could not set MATE startup applications accessibility flag" -fi -XPROFILE_MATE_EOF - chmod 755 /home/\$firstUser/.xprofile - chown \$firstUser:users /home/\$firstUser/.xprofile - - # Configure speech-dispatcher for MATE - if [[ ! -d /home/\$firstUser/.config/speech-dispatcher ]]; then - if ! sudo -u \$firstUser spd-conf -n; then - echo "WARNING: Failed to initialize speech-dispatcher configuration for \$firstUser" - fi - fi -fi # Initialize pacman keyring pacman-key --init @@ -1846,7 +1783,7 @@ fi $pipewireConfigCmd # Configure nodm for automatic login (only after nodm package is installed) -if [[ "${desktopEnvironment}" == "i3" ]] || [[ "${desktopEnvironment}" == "mate" ]]; then +if [[ "${desktopEnvironment}" == "i3" ]]; then if [[ -f /etc/nodm.conf ]]; then sed -i "s/{user}/${autoLoginUser}/g" /etc/nodm.conf systemctl enable nodm.service