Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expanding setupTermuxArch so visually impaired users can install Orca screen reader (assistive technology) and have VNC support added easily. #34

Closed
SDRausty opened this issue Oct 27, 2020 · 70 comments
Labels
enhancement New feature or request no-issue-activity

Comments

@SDRausty
Copy link
Contributor

Let's expand setupTermuxArch so users can install Orca screen reader (assistive technology) and also have VNC support added easily.

_Originally posted by @JanuszChmiel in issue SDRausty/termux-archlinux#66:

Because ArchLinux is very matured Linux distro with many many modern up to date packages,it is time to extend yours script to directly support visually impaired users. And because I have been overloaded you about shared memory, it is time to show, that I can also participate by adding some important commands to you.
The option for setuptermuxarch would be Orca
When visually impaired user would start yours script with Orca word, The needed Bash script code should do The following thinks
From Termux side, no from ArchLinux Guest perspective
apt update
apt upgradeapt install pulseaudio sox
apt clean
Then The script should do The following: add those lines to The termux profile script
pulseaudio --start --exit-idle-time=-1
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1

Script should start Pulseaudio immediately after The code have been added to The script. It is important to determine, if it is possible to add those two lines one by one or if is it necessary to add some other command to ensure, that Pulseaudio will work.

From The perspective of Arch Linux guest system setup script will finish The upgrading process The code should install The following packages.
tigervnc
mate
mate-extra
orca
pulseaudio-alsa
espeak-ng
The script should add The following lines to /etc/profile
export DISPLAY=:0
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export PULSE_SERVER=127.0.0.1

The /usr/bin/mate
script should contain The following routine.

vncserver -kill :0
vncserver -extension MIT-SHM -localhost -geometry 1024x768 -depth 24 -name remote-desktop :0 -SecurityTypes=None

Then I do not know how to auto start mate-session automatically. How to detect, that tigervnc have allready finish its initialisation job.
Mate-session contain extension which is older than 1 month which do not allow to run it by typing mate-session &

If C code detect that & have been used, mate/session suspend all its sub processes. This unsoft feature have not been presented in March or April.
Problems to resolve.

  1. when all packages related to Orca support will be installed, script would had to enable assistive technologyes support and add some setting to gconf so Orca would had to run automatically when Mate-session will be loaded to RAM.
    Because Mate have been designed mainly for desktop computers, so he crucial hot keys such as ALT+F1 or ALT+F2 are not usable from Android. Scan codes differs. And visually impaired user can not use those important hot keys from Mate desktop to run Orca.
    The solution is to run mate-control-center and use hot keys settings to change The crucial keys.
    The very well accessible Android VNC client is BVNC Pro or free.
    I have bought BVNC Pro since author have prepared fully accessible GUI even with accessible keyboard and app is very fast and support hot keys combination including CAPSLOCk or others and it is very important for Orca screen readers users.

Pulseaudio-alsa is needed to enable mate sound effects. SOund effects will not work without this extension. Espeak package also depend on pulseaudio-alsa. If this feature is not presented, speech-dispatcher 0.9.1 will refuse to work with Espeak. Espeak is currently Theonlyone reliable international engine for producing speech with Orca. Because work reliably also on The speeds higher than 75 when setting it with Orca preferences.

Tigervnc support as A onlyone XVNC solution for Linux reliably combinations such as SHIFT+TAB or TAB.
My real goal is to use ARchLinux in combination with Termux to prepare fully automated solution which will allow visually impaired Android Linux users to run Mate and Orca.
Mate-power-manager must be removed.
It has issues with chroot environments and some C library display errors with long Hexadecimal number list and it is not welcomed.
FOrtunately, pacman allow us to remove this
pacman -R mate-power-manager
Seamonkey is perfectly accessible and support WEB browsing, HTML editor, E-mail client and IRC chat and address book in one process.
Many mate apps are working including archive manager, Caja. There are some issues with Mate, since mate-session communicates with system bus, as A result, console coutput contain many error because of it, but those errors are not fatal and Mate run reliably.

The automated solution would be derivated from Termux Alpine or from No root Debian.
No root debian contain Xserver XSDL and thanks to unsoft AOSP modules in Android newer than 6, ckeyboards ahe very unsupported.
This is The reason why I have started to use vnc protocol instead.

@SDRausty
Copy link
Contributor Author

SDRausty commented Oct 27, 2020

The TermuxArch commands mateconf and orcaconf are added so visually impaired users can use these programs in their smartphones easier. Testing commands mateconf and orcaconf is requested.

@JanuszChmiel
Copy link

JanuszChmiel commented Oct 27, 2020 via email

@SDRausty
Copy link
Contributor Author

@JanuszChmiel for sharing. I will take a look and see what can be done.

@SDRausty
Copy link
Contributor Author

This commit 8a930a2 enhances support for orcaconf. It is ready for retesting.

Error: target not found : vncserver

Do you know what the correct package name should be for vncserver or is tigervnc sufficient?

@SDRausty
Copy link
Contributor Author

This code:

_ADDorcaconf_() {
_CFLHDR_ root/bin/orcaconf "# orcaconf contributor https://github.com/JanuszChmiel" "# Reference SDRausty/termux-archlinux#66 Let us expand setupTermuxArch so users can install Orca screen reader (assistive technology) and also have VNC sup
port added easily." cat >> root/bin/orcaconf <<- EOM [ -d $HOME/bin/lock ] && printf "%s\\n" "Already confugured orca: DONE 🏁" && exit
[ -f $HOME/bin/lock/orcaconf.lock ] && printf "%s\\n" "Already configured orca: DONE 🏁" && exit
nice -n 18 pci espeak-ng mate mate-extra orca pulseaudio-alsa tigervnc || printf ”%s\n" "failed" && exit
printf ”%s\n" "export DISPLAY=:0
export PULSE_SERVER=127.0.0.1
unset DBUS_SESSION_BUS_ADDRESS
unset SESSION_MANAGER" >> $HOME/.profile
[ ! -f $HOME/bin/lock/orcaconf.lock ] && touch $HOME/orcaconf.lock # orcaconf EOF EOM
chmod 700 root/bin/orcaconf
_ADDmateconf_() {
_CFLHDR_ root/bin/mateconf "# mateconf contributor https://github.com/JanuszChmiel " "# Reference https://github.com/SDRausty/termux-
archlinux/issues/66 Let's expand setupTermuxArch so users can install Orca screen reader (assistive technology) and also have VNC sup
port added easily." cat >> root/bin/mateconf <<- EOM vncserver -kill :0
vncserver -extension MIT-SHM -localhost -geometry 1024x768 -depth 24 -name remote-desktop :0 -SecurityTypes=None
# mateconf EOF
EOM
chmod 700 root/bin/mateconf
}
_ADDmateconf_
}

creates both mateconf and orcaconfig.

Thanks to The error, script fail to continue to work.
Error: target not found : vncserver

@JanuszChmiel thank you for sharing the command output. I think the refinement is quite an improvement over the initial version. Please run orcaconfig and let us know whether it functions as expected. As far as mateconf is concerned, it's fine to try this command too. It should be run after orcaconfig completes its task successfully. Thanks for helping to build this interesting topic.

@SDRausty SDRausty changed the title Expanding setupTermuxArch so visually impaired users can install Orca screen reader (assistive technology) and VNC support added easily. Expanding setupTermuxArch so visually impaired users can install Orca screen reader (assistive technology) and have VNC support added easily. Oct 29, 2020
@SDRausty
Copy link
Contributor Author

SDRausty commented Oct 29, 2020

@JanuszChmiel are you familiar with the exd command:
cat bin/exd; export DISPLAY=:0 PULSE_SERVER=tcp:127.0.0.1:4712

It was developed from this issue, "A few questions about Arch Linux in Termux PRoot #59". Are you familiar with the exd command?

@SDRausty
Copy link
Contributor Author

SDRausty commented Oct 29, 2020

More information about the exd command:
https://github.com/SDRausty/TermuxArch/issues?q=is%3Aissue+exd

@JanuszChmiel
Copy link

JanuszChmiel commented Nov 2, 2020 via email

@SDRausty
Copy link
Contributor Author

SDRausty commented Nov 3, 2020

You have made excellent script.

Thank you @JanuszChmiel very much. The excellency of the TermuxArch script would not be possible without help from TermuxArch users and developers like you.

I am currently testing the new TermuxArch command orcaconf in Arch Linux x86 and x86_64 with QEMU emulation; setupTermuxArch qemu. Since orcaconf also installs python, it appears prudent that the TermuxArch command csystemctl should also be integrated into orcaconf. Do you agree?

@JanuszChmiel
Copy link

JanuszChmiel commented Nov 3, 2020 via email

@SDRausty
Copy link
Contributor Author

SDRausty commented Nov 3, 2020

Screenshot_20201103-121547

@JanuszChmiel
Copy link

JanuszChmiel commented Nov 3, 2020 via email

@SDRausty
Copy link
Contributor Author

SDRausty commented Nov 3, 2020

I can only
choose The architecture. How to run some chosen architecture?

Thank you for the comment @JanuszChmiel; The option that you mentioned is awaiting future implementation.

At present setupTermuxArch qemu is a way of accessing this feature:

  1. If you are on 32-bit Android or mixed 32-bit 64-bit architecture, choose option for 4) x86 for best compatibility.
  2. If you are on 64-bit Android architecture, you can easily choose option 5) x86_64.

@SDRausty
Copy link
Contributor Author

SDRausty commented Nov 3, 2020

I agree. Command is very important too.

Implemented with this e4c644e#diff-14a8a6d6a93e31b5c315b01ec9d90f19dff8d888862fe9fb34aace02d8001805R780 commit. Thank you for sharing your opinion.

@SDRausty
Copy link
Contributor Author

SDRausty commented Nov 4, 2020

What is your impression of QEMU emulation in Android?

I would like to add one more emulator; It is called Unicon. Have you tried Unicon emulation in your smartphone?

@SDRausty
Copy link
Contributor Author

SDRausty commented Nov 4, 2020

pkg list-a|f corn

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

1195:unicorn/stable,now 1.0.1-7 aarch64 [installed]
1196:unicorn-static/stable,now 1.0.1-7 aarch64 [installed]

@SDRausty
Copy link
Contributor Author

SDRausty commented Nov 4, 2020

My goal is to allow visually impaired users with really basic Linux knowledge to have fully automated ArchLinux setup.
What could I do to make my dream real?

I very glad you are pursuing your dream right here and now 🎼 🎵 🎶

@SDRausty
Copy link
Contributor Author

SDRausty commented Nov 4, 2020

You have mentioned versions of Linux that are not Arch Linux during our conversations. Installation for many versions of Linux is supported with TermuxArch. Download and configuration is not presently implemented, and hopefully will be in the future.

The copy feature supports all versions of Linux that publish a root file system. Command setupTermuxArch h has more information:

setupTermuxArch h|f copying

56: [./path/systemimage.tar.gz [customdir]] Install directory argument is optional. Network install can be substituted by copying systemimage.tar.gz and systemimage.tar.gz.md5 files with 'setupTermuxArch ./[path/]systemimage.tar.gz' and 'setupTermuxArch /absolutepath/systemimage.tar.gz'. Both '*.tar.gz' and '*.tar.gz.md5' files are required for this process to complete successfully. Installation for many versions of Linux that publish a root file sysytem is supported with this TermuxArch festure. Download and configuration is not presently implemented, and hopefully will be in the future. Create an issue and pull request at GitHub to implement these features.

58: [systemimage.tar.gz [customdir]] Install directory argument is optional. Network install can be substituted by copying systemimage.tar.gz and systemimage.tar.gz.md5 files with 'setupTermuxArch systemimage.tar.gz'. Both '*.tar.gz' and '*.tar.gz.md5' files are required for this process to complete successfully. Installation for many versions of Linux that publish a root file sysytem is supported with this TermuxArch festure. Download and configuration is not presently implemented, and hopefully will be in the future. Create an issue and pull request at GitHub to implement these features.

@SDRausty
Copy link
Contributor Author

SDRausty commented Nov 4, 2020

it appears prudent that the TermuxArch command csystemctl should also be integrated into orcaconf. Do you agree?

sure I agree. Command is very important too.

It seemed to cause an error in the emulated environment very similar to the one sudo creates as well. Hence csystemctl has been dropped from orcaconf, pending further testing...

@JanuszChmiel
Copy link

JanuszChmiel commented Dec 16, 2020 via email

@JanuszChmiel
Copy link

JanuszChmiel commented Dec 16, 2020 via email

@JanuszChmiel
Copy link

JanuszChmiel commented Dec 16, 2020 via email

@JanuszChmiel
Copy link

JanuszChmiel commented Dec 16, 2020 via email

@JanuszChmiel
Copy link

JanuszChmiel commented Dec 17, 2020 via email

@SDRausty
Copy link
Contributor Author

output disappear

As boot boots mute; ⬛ :blankscreen:

@SDRausty
Copy link
Contributor Author

citing Originally posted by @xeffyr in termux/termux-app#376 (comment)

Look my answers above. No one here will bother to implement a tool for userspace image mounting. Please understand that possibilities of Termux maintainers are finite.

Those who really needs mounting as non-root can use QEMU system-mode.

citing Originally posted by @xeffyr in termux/termux-packages#6141 (comment)

Start with these:

Boot downloaded image (basic):

qemu-system-i386 -m 512M -nographic -cdrom alpine-virt-3.12.2-x86.iso

Modified to boot from URL with no local image:

qemu-system-i386 -m 512M -nographic -boot d -drive file=https://dl-cdn.alpinelinux.org/alpine/v3.12/releases/x86/alpine-virt-3.12.2-x86.iso,readonly=on,media=cdrom

In both cases output is printed directly to console as image supports serial line emulated by QEMU.
CTRL+a x to terminate VM.

qemu

Extending command line by switching to VirtIO devices (rng, nic, drives), increasing TCG cache (e.g. by -accel tcg,tb-size=512), using musl-based & non-systemd distributions like Alpine Linux makes execution under QEMU faster.


Arch Linux can be booted too, yet it is slower and ISO will require many RAM (1-2 GB, maybe more). Probably will have issues with text-only mode and you will need a VNC.

Originally posted by @SDRausty in SDRausty/termux-archlinux#74 (comment)

@JanuszChmiel
Copy link

JanuszChmiel commented Dec 18, 2020 via email

@JanuszChmiel
Copy link

JanuszChmiel commented Dec 18, 2020 via email

@SDRausty
Copy link
Contributor Author

Command taqemualpinex86.bash is ready for testing with this 3aab88c commit:

Welcome to Alpine Linux 3.12
Kernel 5.4.83-0-virt on an i686 (/dev/ttyS0)

localhost login: root
Welcome to Alpine!

The Alpine Wiki contains a large amount of how-to guides and general
information about administrating Alpine systems.
See <http://wiki.alpinelinux.org/>.

You can setup the system with the command: setup-alpine

You may change this message by editing /etc/motd.

localhost:~#

Please share your experience here.

@JanuszChmiel
Copy link

JanuszChmiel commented Dec 19, 2020 via email

@JanuszChmiel
Copy link

JanuszChmiel commented Dec 19, 2020 via email

@SDRausty
Copy link
Contributor Author

Thank you for testing and sharing.

CTRL+c do not return me to a Termux session.

[user22:58TermuxArch]$ f CTRL taqemualpinex86.bash 31:printf "%s\\n\\n" "To exit the QEMU session, please use the 'CTRL+a x' keys; Sleeping 4 seconds... " 33:printf "%s\\n\\n" "Please be patient as file '$X86REALEASE' is booting; Feel free to work at a new Termux session while this session completes its task. To exit the QEMU session, please use the CTRL+a x' keys; Sleeping 8 seconds... "

@SDRausty
Copy link
Contributor Author

SDRausty commented Dec 20, 2020

@github-actions
Copy link

github-actions bot commented Mar 1, 2021

Stale issue message

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request no-issue-activity
Projects
None yet
Development

No branches or pull requests

10 participants