Compare commits

...

2 Commits

Author SHA1 Message Date
Storm Dragon 8815129106 Modifed I38 and convert to server to match latest images. 2026-06-30 20:23:35 -04:00
Storm Dragon 8004c888e6 Replace I38 installer with removal action
Change the configure-stormux menu from installing I38 to removing it, since new Stormux images now ship I38 by default.

Add a dedicated removal helper that disables nodm, removes installed I38/XLibre desktop packages when present, handles stale pacman locks safely, and optionally purges generated I38 user configuration.

Remove the now-unused architecture probe from the main menu script after dropping the GUI installation path.
2026-06-29 15:59:46 -04:00
3 changed files with 88 additions and 11 deletions
+26 -5
View File
@@ -13,6 +13,10 @@ dialog --backtitle "Configure Stormux" \
fi fi
sudoFlags=("${sudoFlags[@]}") sudoFlags=("${sudoFlags[@]}")
yaySudoArgs=()
if [[ ${#sudoFlags[@]} -gt 0 ]]; then
yaySudoArgs=(--sudoflags "${sudoFlags[*]}")
fi
dialog --backtitle "Configure Stormux" \ dialog --backtitle "Configure Stormux" \
--yesno "This will make catastrophic changes to your system. If you are not sure you want to do this, select no by pressing the letter n on your keyboard. Afterwards, you will only be able to login with an ssh key and there will be no screen reader.\nNote, configure-stormux will no longer be available." -1 -1 --stdout || exit 0 --yesno "This will make catastrophic changes to your system. If you are not sure you want to do this, select no by pressing the letter n on your keyboard. Afterwards, you will only be able to login with an ssh key and there will be no screen reader.\nNote, configure-stormux will no longer be available." -1 -1 --stdout || exit 0
@@ -75,38 +79,55 @@ Would you like to remove the lock and continue?" -1 -1 --stdout; then
fi fi
fi fi
for packageName in \ serverRemovalPackages=(
alsa-firmware \ alsa-firmware \
alsa-utils \ alsa-utils \
bluez \ bluez \
bluez-utils \ bluez-utils \
brltty \ brltty \
cthulhu \
espeak-ng \ espeak-ng \
fenrir \ fenrir \
fenrir-git \ fenrir-git \
gstreamer \ gstreamer \
gst-plugins-base \ gst-plugins-base \
gst-plugins-good \ gst-plugins-good \
i38 \
ii \ ii \
magic-wormhole \
nodm-dgw \
pipewire \ pipewire \
pipewire-alsa \ pipewire-alsa \
pipewire-jack \ pipewire-jack \
pipewire-pulse \ pipewire-pulse \
poppler \ poppler \
python-evdev \
python-dbus \ python-dbus \
python-pyte \ python-evdev \
python-gobject \
python-msgpack \
python-pyenchant \ python-pyenchant \
python-pyte \
python-pyperclip \ python-pyperclip \
python-tornado \
realtime-privileges \
rhvoice-voice-bdl \ rhvoice-voice-bdl \
screen \ screen \
socat \ socat \
sox \ sox \
speech-dispatcher \ speech-dispatcher \
w3m-git \
wireplumber \ wireplumber \
xdg-user-dirs \ xdg-user-dirs \
xdg-utils ; do xdg-utils \
yay -Runcds --noconfirm "$packageName" &> /dev/null xlibre-input-libinput \
xlibre-video-dummy-with-vt \
xlibre-video-fbdev \
xlibre-xserver \
xorg-xinit
)
for packageName in "${serverRemovalPackages[@]}"; do
yay "${yaySudoArgs[@]}" -Runcds --noconfirm "$packageName" &> /dev/null
done done
rm -rfv ~/.config rm -rfv ~/.config
+59
View File
@@ -0,0 +1,59 @@
#!/usr/bin/env bash
if [[ "$(whoami)" == "root" ]]; then
msgbox "Please run configure-stormux as your user, not as root."
return 1
fi
sudoFlags=("${sudoFlags[@]}")
yaySudoArgs=()
if [[ ${#sudoFlags[@]} -gt 0 ]]; then
yaySudoArgs=(--sudoflags "${sudoFlags[*]}")
fi
confirmRemoval="$(yesno "This will remove the I38 desktop, disable GUI startup, remove the XLibre desktop packages installed for I38, and delete generated I38 configuration from your account. Continue?")"
if [[ "$confirmRemoval" != "Yes" ]]; then
msgbox "I38 removal cancelled."
return 0
fi
sudo "${sudoFlags[@]}" systemctl disable --now nodm.service 2> /dev/null || true
if [[ -f /var/lib/pacman/db.lck ]]; then
removeLock="$(yesno "A pacman database lock was found at /var/lib/pacman/db.lck. If no package manager is running, it is usually safe to remove. Remove it and continue?")"
if [[ "$removeLock" == "Yes" ]]; then
sudo "${sudoFlags[@]}" rm -f /var/lib/pacman/db.lck
else
msgbox "Cannot safely remove packages while the pacman database is locked."
return 1
fi
fi
packages=(
i38
cthulhu
nodm-dgw
xlibre-input-libinput
xlibre-video-dummy-with-vt
xlibre-video-fbdev
xlibre-xserver
xorg-xinit
)
installedPackages=()
for packageName in "${packages[@]}"; do
if pacman -Q "$packageName" > /dev/null 2>&1; then
installedPackages+=("$packageName")
fi
done
if [[ ${#installedPackages[@]} -gt 0 ]]; then
yay "${yaySudoArgs[@]}" --noconfirm -Rns "${installedPackages[@]}"
fi
removeConfig="$(yesno "Delete generated I38 files from $HOME? This removes ~/.config/i3, ~/.xinitrc, ~/.xprofile, and ~/git/I38 if present.")"
if [[ "$removeConfig" == "Yes" ]]; then
rm -rf -- "$HOME/.config/i3" "$HOME/.xinitrc" "$HOME/.xprofile" "$HOME/git/I38"
fi
msgbox "I38 removal is complete. Reboot before relying on the new console-only startup state."
+3 -6
View File
@@ -62,9 +62,6 @@ fi
source .includes/functions.sh source .includes/functions.sh
# Include the dialog based UI # Include the dialog based UI
source .includes/ui.sh source .includes/ui.sh
# Get architecture
architecture="$(uname -m)"
# Make sure basic xdg directory structure is in place: # Make sure basic xdg directory structure is in place:
if [[ ! -d ~/Desktop ]]; then if [[ ! -d ~/Desktop ]]; then
xdg-user-dirs-update xdg-user-dirs-update
@@ -99,8 +96,8 @@ while [[ "$choice" != "Exit" ]]; do
yay -R --noconfirm linux-rpi yay -R --noconfirm linux-rpi
install_package linux-rpi-16k install_package linux-rpi-16k
;; ;;
"Install I38 Desktop") "Remove I38 Desktop")
source .includes/gui.sh i3 source .includes/remove-i38.sh
;; ;;
"Screen reader") "Screen reader")
source .includes/screenreader.sh source .includes/screenreader.sh
@@ -139,7 +136,7 @@ while [[ "$choice" != "Exit" ]]; do
if [[ "${raspberryPiVersion%%0*}" == "Raspberry Pi 5" ]] && ! pacman -Q linux-rpi-16k &> /dev/null ; then if [[ "${raspberryPiVersion%%0*}" == "Raspberry Pi 5" ]] && ! pacman -Q linux-rpi-16k &> /dev/null ; then
options+=("Install Raspberry Pi 5 kernel") options+=("Install Raspberry Pi 5 kernel")
fi fi
options+=("Install I38 Desktop" options+=("Remove I38 Desktop"
"Screen reader" "Screen reader"
) )
options+=("Set timezone" options+=("Set timezone"