Latest fixes for x86_64 installer. Updated README for Pi images.
This commit is contained in:
+1
-1
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user