A little over a year ago a blind user reached out to me to help him fix the talking arch distro. At the time, the version wasn’t compatible with the latest archiso build system and so we built a version that worked.
I’ve been working on this project for over a year and this month began building in some scripted features for blind users to complete installs without having to tab back and forth between the installer and the wiki. Also, the scripts make some changes to the default installs to turn on accessible features that normally would prevent a blind user from finishing the install on their own.
Currently I have the system built with the talking version of espeak as the default selection and I have also written a systemd service to change the fonts on both the talking and silent version to sun12x22 which helps folks with low vision get around in the terminal. (In order to run scripts in the new archiso build system, developers must add them to a systemd service now.)
I have built out the install for i3 and have it running fully accessible from the get go. I have numerous other DEs to add such as Cinnamon, Gnome, XFCE and KDE to name a few. Some of these are less or more accessible out of the box, KDE being one that I know has serious issues due to it’s reliance on QT.
The basic idea here is to have an arch install that can be built in about 20 minutes or so with the most basic options, the user can get into their main system and then customize afterwards. I just want it to get the install done, have orca running and the speech-dispatcher cooking.
Things I’m working on over the course of the next month or so:
- add more customization to packages, currently there is a broad list of packages installed, so giving more options seems wise
- build out accessible installs for Gnome, Mate and Cinnamon similar to how I have i3 running
- add more readme data and create a sub directory to house them
- add a list package option for each grouping of packages
- add a more detailed readme on github/archwiki regarding the build system and how it works
- build out more sed commands and rely less on copying over config files even if this is painful due to length (looking at you i3-sensible-terminal)
- find a fix for lightdm to handle orca so the reader actually launches so we aren’t relying on autologin for users
The project can be found at the link below. Main branch simply puts you in an arch installer with large text and defaults to voice. Testing branch includes the scripted system to speed up installs. Be warned, the partitioning script will wipe and then use the entirety of any drive you tell it to partition. You don’t have to do these steps, you can partition outside the script, mnt your stuff manually and then just do the install menus if you’d like.
It should be noted that the scripts were helped along quite a bit using Eznix’s EZarcher scripts. In particular his scripting using sgdisk was super helpful to get the partitioning done faster.
5 Likes
An update to this projects progress:
I figured out the dconf commands to push accessibility in MATE desktop last night and then learned how to add those commands using the dbus-launch. This has now been added.
I sent some info to the devs at i3 and they are going to upgrade their settings to prioritize accessible terminals so that should help a ton of folks. I hope it doesn’t break things for other people.
My partner uploaded a new i3 config which is more stripped down to just the needs of blind users and that is up on testing.
I added the following functions because repeating code is stupid:
- function to add user to sudo
- function to set autologin for lightdm
Finally, when setting up the system in MATE, I get a strange dconf error which I’m clueless about. It doesn’t appear to cause any problems, but if anyone has an idea what it means, please let me know.
It appears after adding lightdm as a service but before the other dconf additions so not sure if the service is the problem or what.
edit: I found the fix for this error, apparently I had uncommented an old broken dconf command
I’ll be pushing this code to testing tonight after doing some cleanup and applying the new functions to the i3 install.
This should allow me to get other DEs going much more quickly and then I can start adding cool stuff like readmes, more customized package lists . . . etc.
1 Like
Testing branch pushed today after updating both UEFI and Legacy scripts with changes.
Did some VM testing and everything is working properly.
Updated a lot of comments to clarify code.
Also submitted some fixes to arch wiki for the MATE section so they can update how to set up accessibility during the install process using chroot.
Added gnome support to the installer.
No GDM, because I’m a bad person
New ISO link added to readme.
1 Like
added Cinnamon to the installer. Found out Cinnamon doesn’t turn on accessibility even when using the normal dconf settings for gnome. Researching fix for this.
added new install notes system so users can see what packages are being installed for the desktop environments
Nothing pushed to git last night as I spent entirely too much time trying to figure out the cinnamon issue.
Today the goal is to get xfce up and running then revisit cinnamon over the weekend
after writing the latest update, I decided to jump back in for a few. I added a new menu entry to pacstrap the required virtual box packages and then did a git push so the code was in the repo.
got some updates done today, big changes to the menu system and function calls. XFCE is on the list for (hopefully) tomorrow
Latest updates:
Created new menu system to split notes from package list. Changed package list to show using spaces rather than newline characters. Changed case variable system to use the same variable ‘userchoice’ and then unset it for each function call.
added xfce today, fixed some silly issues and verified everything seems to be working fine on all fronts.
cinnamon has a bug we are working through but it’s installable now.
merged main branch with testing and pushed new ISO.
I think it’s ready for a tentative release so we’ll see if anyone has crazy problems with the scripted install.
light update today, did some readme updates to add some documentation on keybinds to testing. will need to revisit these and make sure they all make sense before pushing to master
Updated menu item 4 to be more descriptive.
Modified readmes for gnome and Mate to be more accurate.
New menus were updated with better documentation.
Changed the cups systemd service to the new version and pushed updated ISO as well as merged testing with main to prevent users not getting printing to to work.
Added new readme for i3 documenting a utility built into /usr/bin that allows mapping of system volume to keys. This makes changing volume quicker for blind folks when performing general activities such as surfing the web.
Changed the sed commands for updating the lightdm.conf to update the file on /mnt rather than updating a config in skel so we are now making changes to the config supplied by lightdm rather than overriding it.
apparently the archiso build system has been updated to change directory paths and also to change a lot of the way certain configs work, in addition these changes appear to break permissions in the build system so now I’m having fun debugging this with no documentation . . .sigh
spent a few hours last night figuring out the changes to archiso. I have the new version working properly. Will need to push this update today and then I can start testing menus using dialog
Pushed all changes today after some additional testing.
Merged with main as it would not work with new versions of archiso at all.
Holy cow were there a lot of changes to make.
I have been working on some backend fixes and looking into solutions before adding a bunch of stuff.
I did add a menu today that allows for the user to change the speech speed of espeakup which is a commonly requested function.
This project is running and is in maintenance / minor update mode at the moment. I’m currently working on some other items for blindcomputing.org including some tutorial vids, documenting speakup on the arch wiki and a rust app to handle bin lookups using a speak reader and gtk.
I’ll conclude updating this as it’s up and cooking if anyone wants to play with it.
Enjoy!
2 Likes