Make x86_64 image more similar to Pi image if installer is used. Improve RHVoice fixes so they shouldn't be stale any more.
This commit is contained in:
@@ -121,14 +121,28 @@ finish_build() {
|
|||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
copy_rhvoice_english_fixes() {
|
install_rhvoice_english_fixes() {
|
||||||
local sourceDir="../files/etc/RHVoice/dicts/English"
|
local rhvoiceRepo="https://git.stormux.org/storm/rhvoice-english"
|
||||||
local targetDir="/mnt/etc/RHVoice/dicts/English"
|
local targetDir="/mnt/etc/RHVoice/dicts/English"
|
||||||
|
local tempDir
|
||||||
|
local installStatus=0
|
||||||
|
|
||||||
if [[ -d "$sourceDir" ]]; then
|
tempDir="$(mktemp -d)"
|
||||||
mkdir -p "$targetDir"
|
|
||||||
cp -a "$sourceDir/." "$targetDir/"
|
echo "Installing latest RHVoice English dictionary fixes..."
|
||||||
|
if ! git clone --depth 1 "$rhvoiceRepo" "$tempDir"; then
|
||||||
|
rm -rf "$tempDir"
|
||||||
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
mkdir -p "$targetDir"
|
||||||
|
rm -f "$targetDir/namefix.txt" "$targetDir/wordfix.txt"
|
||||||
|
if ! cp -a "$tempDir/English/." "$targetDir/"; then
|
||||||
|
installStatus=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf "$tempDir"
|
||||||
|
return "$installStatus"
|
||||||
}
|
}
|
||||||
|
|
||||||
# shellcheck disable=SC2329 # install_sas is emitted into the chroot heredoc with declare -f
|
# shellcheck disable=SC2329 # install_sas is emitted into the chroot heredoc with declare -f
|
||||||
@@ -549,7 +563,7 @@ sed -i '/^DisableSandbox/d' /etc/pacman.conf
|
|||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
copy_rhvoice_english_fixes
|
install_rhvoice_english_fixes
|
||||||
|
|
||||||
# Copy skel files to stormux user home (after user rename in chroot)
|
# Copy skel files to stormux user home (after user rename in chroot)
|
||||||
find ../files/etc/skel/ -mindepth 1 -exec cp -rv "{}" /mnt/home/stormux/ \;
|
find ../files/etc/skel/ -mindepth 1 -exec cp -rv "{}" /mnt/home/stormux/ \;
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
bifrost=buyfraust
|
|
||||||
danestange=dainstanggey
|
|
||||||
stange=stangey
|
|
||||||
kde=kaydeee
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
asus=aysus
|
|
||||||
certificate=cirtifficate
|
|
||||||
douche=doosh*
|
|
||||||
espeak=easpeak*
|
|
||||||
freenginx=freeenginex
|
|
||||||
git=ghit*
|
|
||||||
github=ghittehub
|
|
||||||
gitea=ghittee
|
|
||||||
jolla=yolla
|
|
||||||
jenux=jennux
|
|
||||||
lightnin=lighttnin
|
|
||||||
nginx=enginex
|
|
||||||
rhvoice=ahraychvoice
|
|
||||||
shit=shitt
|
|
||||||
sync=sink*
|
|
||||||
timezone=timezoan
|
|
||||||
vinux=vinnux
|
|
||||||
wench=wentch*
|
|
||||||
youngin=younggin*
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
bifrost=buyfraust
|
|
||||||
danestange=dainstanggey
|
|
||||||
stange=stangey
|
|
||||||
kde=kaydeee
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
asus=aysus
|
|
||||||
certificate=cirtifficate
|
|
||||||
douche=doosh*
|
|
||||||
espeak=easpeak*
|
|
||||||
freenginx=freeenginex
|
|
||||||
git=ghit*
|
|
||||||
github=ghittehub
|
|
||||||
gitea=ghittee
|
|
||||||
jolla=yolla
|
|
||||||
jenux=jennux
|
|
||||||
lightnin=lighttnin
|
|
||||||
nginx=enginex
|
|
||||||
rhvoice=ahraychvoice
|
|
||||||
shit=shitt
|
|
||||||
sync=sink*
|
|
||||||
timezone=timezoan
|
|
||||||
vinux=vinnux
|
|
||||||
wench=wentch*
|
|
||||||
youngin=younggin*
|
|
||||||
@@ -28,6 +28,30 @@ install_sas() {
|
|||||||
return "$installStatus"
|
return "$installStatus"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
install_rhvoice_english_fixes() {
|
||||||
|
local rhvoiceRepo="https://git.stormux.org/storm/rhvoice-english"
|
||||||
|
local targetDir="/etc/RHVoice/dicts/English"
|
||||||
|
local tempDir
|
||||||
|
local installStatus=0
|
||||||
|
|
||||||
|
tempDir="$(mktemp -d)"
|
||||||
|
|
||||||
|
echo "Installing latest RHVoice English dictionary fixes..."
|
||||||
|
if ! git clone --depth 1 "$rhvoiceRepo" "$tempDir"; then
|
||||||
|
rm -rf "$tempDir"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p "$targetDir"
|
||||||
|
rm -f "$targetDir/namefix.txt" "$targetDir/wordfix.txt"
|
||||||
|
if ! cp -a "$tempDir/English/." "$targetDir/"; then
|
||||||
|
installStatus=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf "$tempDir"
|
||||||
|
return "$installStatus"
|
||||||
|
}
|
||||||
|
|
||||||
# Initialize pacman keyring
|
# Initialize pacman keyring
|
||||||
echo "Initializing pacman keyring..."
|
echo "Initializing pacman keyring..."
|
||||||
pacman-key --init
|
pacman-key --init
|
||||||
@@ -49,6 +73,7 @@ echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
|
|||||||
locale-gen
|
locale-gen
|
||||||
|
|
||||||
install_sas
|
install_sas
|
||||||
|
install_rhvoice_english_fixes
|
||||||
|
|
||||||
# Enable system services
|
# Enable system services
|
||||||
systemctl enable NetworkManager.service
|
systemctl enable NetworkManager.service
|
||||||
|
|||||||
@@ -1348,28 +1348,32 @@ install_base_system() {
|
|||||||
# Define package groups
|
# Define package groups
|
||||||
local basePackages=(
|
local basePackages=(
|
||||||
base base-devel linux linux-firmware
|
base base-devel linux linux-firmware
|
||||||
networkmanager sudo dialog git ii rsync wget
|
networkmanager sudo dialog git ii rsync wget curl
|
||||||
bash-completion cronie openssh
|
bash-completion cronie openssh rng-tools
|
||||||
)
|
)
|
||||||
|
|
||||||
local audioPackages=(
|
local audioPackages=(
|
||||||
pipewire pipewire-alsa pipewire-pulse pipewire-jack
|
pipewire pipewire-alsa pipewire-pulse pipewire-jack
|
||||||
wireplumber alsa-utils sox
|
wireplumber alsa-utils sox gstreamer
|
||||||
|
gst-plugins-base gst-plugins-good
|
||||||
alsa-firmware sof-firmware
|
alsa-firmware sof-firmware
|
||||||
bluez bluez-utils
|
bluez bluez-utils
|
||||||
)
|
)
|
||||||
|
|
||||||
local accessibilityPackages=(
|
local accessibilityPackages=(
|
||||||
espeak-ng rhvoice-voice-bdl speech-dispatcher
|
espeak-ng rhvoice-voice-bdl speech-dispatcher
|
||||||
fenrir brltty
|
fenrir brltty cthulhu
|
||||||
)
|
)
|
||||||
|
|
||||||
local utilityPackages=(
|
local utilityPackages=(
|
||||||
vi vim nano screen magic-wormhole
|
vi vim nano screen magic-wormhole
|
||||||
man man-pages
|
man-db man-pages
|
||||||
xdg-user-dirs xdg-utils
|
xdg-user-dirs xdg-utils
|
||||||
poppler socat parted
|
poppler socat parted
|
||||||
realtime-privileges
|
realtime-privileges wireless-regdb
|
||||||
|
python-dbus python-gobject python-msgpack
|
||||||
|
python-pyenchant python-pyte python-pyperclip
|
||||||
|
python-tornado
|
||||||
)
|
)
|
||||||
|
|
||||||
# Stormux-specific packages (installed later in chroot after keyring setup)
|
# Stormux-specific packages (installed later in chroot after keyring setup)
|
||||||
@@ -1385,18 +1389,17 @@ install_base_system() {
|
|||||||
if [[ "$hasDesktop" == true ]]; then
|
if [[ "$hasDesktop" == true ]]; then
|
||||||
case "$desktopEnvironment" in
|
case "$desktopEnvironment" in
|
||||||
*)
|
*)
|
||||||
allPackages+=(xlibre-xserver xlibre-input-libinput nodm-dgw brave-bin)
|
allPackages+=(
|
||||||
|
i38 nodm-dgw xorg-xinit
|
||||||
|
xlibre-xserver xlibre-input-libinput
|
||||||
|
xlibre-video-dummy-with-vt xlibre-video-fbdev
|
||||||
|
)
|
||||||
if [[ "$installSteam" == "yes" ]]; then
|
if [[ "$installSteam" == "yes" ]]; then
|
||||||
allPackages+=(steam)
|
allPackages+=(steam)
|
||||||
fi
|
fi
|
||||||
;;&
|
;;&
|
||||||
i3)
|
i3)
|
||||||
allPackages+=(i3-wm orca python-psutil lxterminal pluma)
|
allPackages+=(xdotool)
|
||||||
allPackages+=(discount jq libnotify xfce4-notifyd pamixer playerctl)
|
|
||||||
allPackages+=(python-i3ipc python-wxpython sox yad)
|
|
||||||
allPackages+=(lxsession magic-wormhole pcmanfm)
|
|
||||||
allPackages+=(python-gobject python-pillow python-pytesseract scrot tesseract)
|
|
||||||
allPackages+=(tesseract-data-eng udiskie xorg-setxkbmap xdotool)
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@@ -1765,45 +1768,30 @@ fi
|
|||||||
|
|
||||||
# Setup desktop environment configurations
|
# Setup desktop environment configurations
|
||||||
if [[ "${desktopEnvironment}" == "i3" ]]; then
|
if [[ "${desktopEnvironment}" == "i3" ]]; then
|
||||||
firstUser="${userNames[0]}"
|
desktopUser="${autoLoginUser}"
|
||||||
|
|
||||||
# Create git directory for better organization
|
# Create git directory for better organization
|
||||||
mkdir -p /home/\$firstUser/git
|
mkdir -p /home/\$desktopUser/git
|
||||||
chown \$firstUser:users /home/\$firstUser/git
|
chown \$desktopUser:users /home/\$desktopUser/git
|
||||||
|
|
||||||
# Clone I38 to ~/git/I38
|
# Clone I38 to ~/git/I38
|
||||||
echo "Cloning I38 accessibility configuration..."
|
echo "Cloning I38 accessibility configuration..."
|
||||||
if ! sudo -u \$firstUser git clone https://git.stormux.org/storm/I38 /home/\$firstUser/git/I38; then
|
if ! sudo -u \$desktopUser git clone https://git.stormux.org/storm/I38 /home/\$desktopUser/git/I38; then
|
||||||
echo "WARNING: Failed to clone I38 repository"
|
echo "WARNING: Failed to clone I38 repository"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Run I38 setup to generate accessible i3 configuration
|
# Run I38 setup to generate accessible i3 configuration
|
||||||
if [[ -d /home/\$firstUser/git/I38 ]]; then
|
if [[ -d /home/\$desktopUser/git/I38 ]]; then
|
||||||
echo "Configuring I38 for accessibility..."
|
echo "Configuring I38 for accessibility..."
|
||||||
cd /home/\$firstUser/git/I38 || exit 1
|
cd /home/\$desktopUser/git/I38 || exit 1
|
||||||
|
|
||||||
# Ensure xdotool is available for I38 setup
|
if ! sudo -u \$desktopUser ./i38.sh -D; then
|
||||||
if ! command -v xdotool >/dev/null 2>&1; then
|
echo "WARNING: I38 default setup reported an error"
|
||||||
echo "Installing xdotool for I38..."
|
|
||||||
if ! pacman -Sy --noconfirm --needed xdotool; then
|
|
||||||
echo "WARNING: Failed to install xdotool for I38 setup"
|
|
||||||
fi
|
|
||||||
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
|
fi
|
||||||
|
|
||||||
cd - > /dev/null || exit 1
|
cd - > /dev/null || exit 1
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Initialize pacman keyring
|
# Initialize pacman keyring
|
||||||
pacman-key --init
|
pacman-key --init
|
||||||
@@ -1841,7 +1829,11 @@ $pipewireConfigCmd
|
|||||||
# Configure nodm for automatic login (only after nodm package is installed)
|
# Configure nodm for automatic login (only after nodm package is installed)
|
||||||
if [[ "${desktopEnvironment}" == "i3" ]]; then
|
if [[ "${desktopEnvironment}" == "i3" ]]; then
|
||||||
if [[ -f /etc/nodm.conf ]]; then
|
if [[ -f /etc/nodm.conf ]]; then
|
||||||
sed -i "s/{user}/${autoLoginUser}/g" /etc/nodm.conf
|
sed -i \
|
||||||
|
-e "s/{user}/${autoLoginUser}/g" \
|
||||||
|
-e "s#^NODM_USER=.*#NODM_USER='${autoLoginUser}'#" \
|
||||||
|
-e "s#^NODM_XSESSION=.*#NODM_XSESSION='/home/${autoLoginUser}/.xinitrc'#" \
|
||||||
|
/etc/nodm.conf
|
||||||
systemctl enable nodm.service
|
systemctl enable nodm.service
|
||||||
echo "Display manager (nodm) configured for ${autoLoginUser}"
|
echo "Display manager (nodm) configured for ${autoLoginUser}"
|
||||||
else
|
else
|
||||||
@@ -1849,6 +1841,18 @@ if [[ "${desktopEnvironment}" == "i3" ]]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if command -v spd-conf > /dev/null 2>&1; then
|
||||||
|
spd-conf -n -C || echo "WARNING: Speech Dispatcher system configuration failed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -f /etc/speech-dispatcher/speechd.conf ]]; then
|
||||||
|
if grep -qE '^[[:space:]]*#?[[:space:]]*DefaultModule[[:space:]]+' /etc/speech-dispatcher/speechd.conf; then
|
||||||
|
sed -i -E 's/^[[:space:]]*#?[[:space:]]*DefaultModule[[:space:]]+.*/DefaultModule rhvoice/' /etc/speech-dispatcher/speechd.conf
|
||||||
|
else
|
||||||
|
printf '\nDefaultModule rhvoice\n' >> /etc/speech-dispatcher/speechd.conf
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Create system-wide accessibility configuration
|
# Create system-wide accessibility configuration
|
||||||
cat > /etc/profile.d/stormux-accessibility.sh <<'PROFILE_EOF'
|
cat > /etc/profile.d/stormux-accessibility.sh <<'PROFILE_EOF'
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|||||||
Reference in New Issue
Block a user