SDRausty / termux-archlinux

You can use setupTermuxArch.bash 📲 to install Arch Linux in Termux on Amazon, Android, Chromebook and Windows. https://sdrausty.github.io/termux-archlinux/
https://sdrausty.github.io/termux-archlinux/
Other
746 stars 75 forks source link

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

Closed JanuszChmiel closed 2 years ago

JanuszChmiel commented 4 years ago

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 commented 4 years ago

@JanuszChmiel can you share something similar to, "[Tip] Workaround to get systemctl commands working on TermuxArch" to aid expediting this request?

SDRausty commented 4 years ago

I am reading through your notes once more at the beginning of this issue. Is there a way that you could just make a simple script which does this, and share this script here?

SDRausty commented 4 years ago

If you cannot get all the pieces just right, that is not so important. Hopefully, the parts you might be missing will fall into place...

SDRausty commented 4 years ago

have VNC support added easily.

Have you tried https://github.com/angristan/openvpn-install? Here are some excerpts from the README.md file.

OpenVPN installer for Debian, Ubuntu, Fedora, CentOS and Arch Linux.

This script will let you setup your own secure VPN server in just a few seconds.

Compatibility

i386 amd64 armhf arm64
Arch Linux

I haven't gotten around to testing it. You might want to try it @JanuszChmiel. It seems to fit have VNC support added one of your request.

JanuszChmiel commented 4 years ago

Oh. It is Virtual private network setup script. No VNC. BUt never mind. I have no issues with making VNC working. Currently there is issues with responsiveness of running Speech synthesizers. If sound samples are play very fast there is not problem. One sample per 100 Milliseconds for example. but if user press keys randomly with random period of time between every letter pronounciation, there is some delay. Thid delay have something to do with Opensless protocol and sound Android binary service which react on those protocol transfers. Or there is even some sound kernel driver problem it is device specific issue. Before my Huavei 10 mate lite has got Android 8 update, sound responsiveness have been much more better, but Pokedata sys call and other file based system calls have not been so fast like on Android 8.

JanuszChmiel commented 4 years ago

And The most painfull issue which has The reason, why I have stop to use ArchLinux script and ArchLinux in general is issue with Seamonkey build in speech checker. Seamonkey addon to check spelling work, it can be installed with no issues. But thanks to issues with .so library, it can not be used. Seamonkey do not allow user to use check spelling or to choose language context sub menu. When I have executed pluma, I have got error related to hunspell.so library which ould not be loaded. If somebody very advanced C expert could look at this issue. Because spell checking is very important for Me while using Seamonkey. To test, install Pluma and some window manager such as Marco, YOu do not have to install mate at all. Load Pluma. It is necessary to install hunspell and some dictionary. I AM sure, that error, which terminal contain when Pluma is being loaded is also The cause why Seamonkey spell checker do not work.

JanuszChmiel commented 4 years ago

To install orca pacman -S orca pacman -S tigervnc Add to /etc/profile export DISPLAY=:0 pacman -S tigervnc To run VNC server securely and simpley start it by using this command vncserver -kill :0 vncserver -localhost -geometry 1024x768 -depth 24 -name remote-desktop :0 -SecurityTypes=None -extension MIT-SHM

-localhost option disable remote access so powerful hackers can not connect to VNC session remotely for example, when some user would run his loving Mate-session and some Radio player through The night.

Important is to install pulseaudio-alsa pacman -S pulseaudio-alsa and to install espeak-ng pacman -S espeak-ng

Pulseaudio-alsa is important also to allow Mate sound effects to work. X11vnc causes hydden issue with Orca. So I have decided to run tigervnc Because X11vnc has caused issues when pressing SHIFT+TAB. Orca did not detected this key stroke correctly. And Tigervnc is also faster.

SDRausty commented 4 years ago

@JanuszChmiel hopefully I will find the time to create a script shortly, and update. You wouldn't happened to have a suggested name for this installation stcript we are working on, would you?

The commands cat and ls can be used inspiration for the being sought:

cat ~/bin/*
ls ~/bin/

I'm not sure if the results of these commands will be inspiring. Maybe they will be helpfull, and we'll find a name for this new invention/script that were working on easily.

SDRausty commented 4 years ago

If you are still thinking of the name for the configuration script, please keep in mind name collisions. We should try to keep this in mind when we can. It is important if you can begin with a letter that is not there in the ~/bin directory at all. That is all the better.

New user legibility is also important. Does the name remind itself of what the user wants to do a couple months from now? Short and sweet is beautiful in this case isn't it?

JanuszChmiel commented 4 years ago

Orcaconfig or orcaconf I Am now testing excellent yay and somebody have been so kind that he has prepared even fakeroot-tcp which do not display code run-time error after compilation. Now I Am installing Shortwave from git. Somebody have been very samrt, who has prepared this script to install yay. And yay package manager is also excellent tool. Very well done.

JanuszChmiel commented 4 years ago

It will be also very important to extend Termux Java source to support run Termux in background by using build in Battery setting Android app. This app, contain manage applications startup sub app which allow to specify, if background running for every app can be disabled or enabled. User can specify manual or automatic mode for every app. Using Ignoring battery optimisations and Wakelock is super, but not enough to ensure, that Termux app will not automatically terminate if AC adapter or other energy source will not be connected to Android 8 or newer ANdroid version based device. Especially when phone screen will be turned off automatically or if it will be turned of manually by user, Android can terminate Termux sub processes and this can damage date created by Termux. I had to purge ArchLinux because powerful Android auto terminated Termux because manual mode have not been specified in battery settings. I will open this issue on Termux app GIT branch.

SDRausty commented 4 years ago

Thank you for the suggestion @JanuszChmiel! The name orcaconf sounds very good for this configuration script. The initial version of orcaconf will be ready for testing shortly; I will share the news of the commit here when it is.

SDRausty commented 4 years ago

@JanuszChmiel you might not realize this; You are inspiring me! Thank you! One of these inspistions has been to open this QEMU implementation #25 issue. You might be wondering, "How did I accomplish this?"

Many a time I have heard from users of the environment that we choose to use in our smartphones, "It is not supported by the architecture in my device." I have received this statement from you more than once. Theoretically the QEMU issue that I mention resolves these numerous architecture requests. Please take a look at it for it might do wonders on your device, and mine too!

There is a trade-off for using QEMU, and another issue that I have run into while implementing this QEMU partially implemented feature is that all the variants do not seem to work as intended.

SDRausty commented 3 years ago

The initial version of orcaconf will be ready for testing shortly

This https://github.com/SDRausty/termux-archlinux/commit/79085cd7db090de4d86126a8f7fa9690fa993a23 commit adds commands mateconf and orcaconf. Neither has been extensively tested. You are welcome @JanuszChmiel to give these new configuration commands a try; Please share your comments here.

SDRausty commented 3 years ago

This commit https://github.com/SDRausty/termux-archlinux/commit/a60b0ac48b7b1e8bf32948110e7342a740ad43ca enhances support for orcaconf. It is ready for retesting.

SDRausty commented 3 years ago

orcaconf. It is ready for retesting.

The command orcarun can be used. It will use orcaconf if orcaconf was not used by the user to install Orca screen reader. Should the visually impaired user choose to use PRoot with QEMU architecture emulation, the new v option is currently being developed:

The user does not need to choose the optimal emulation type as this is now derived from the smartphone:

  1. 32-bit defaults to x86
  2. 64-bit defaults to x86_64

There is more information about the new setupTermuxArch option currently named visualshortcut at this https://github.com/TermuxArch/TermuxArch/issues/34 link.

SDRausty commented 3 years ago

testing excellent yay

The current tests with native architecture work ok! Usually it is one tap. Manually choose the Yes answer +tap. Then tap the screen a couple times more.

When using emulation, the tests usually fail. If not completely. "Wow, yay didn't build; and I tried and tried again and again," is often the case found on armv7l and aarch64 for x86 and x86_64 emulation. Never is it as easy as on native architecture. The PRoot root account must be employed.

This has me seeking through the alternatives to yay. This is a very time and resource consuming matter which can give dividends, both with emulated and native configuration after installation. Do you agree with these findings @JanuszChmiel?

JanuszChmiel commented 3 years ago

Yes MR Rausty, I Am fully aggreeing with yours finding related to yay. Sure. If some specific application have been allready prepared for X86 or for X64 architecture, it is really resource and time consuming to recompile it especially when talking about complex and long code. I had only problem with building locale and to have correct localisation values. Do you think, that there is A chance to make foreign architecture installation so fully automatic like when user do not type argument visualiso to The command line? So non foreign architecture is installed fully automatically with correct locale generation. Sure, I will be testing with you. makeyay work like A charn with no issues and really, Proot programmers have really added shared memory support. And system work much more stably. so I will purge my non foreign ArchLinux installation to return to our visualiso project. Please, try to add world wide server instead of asking users to use nano. Sure. Even visually impaired users can use screen reader to move char by char, but it is not so comfort task like using Windows, NVDA and other computer with some SSH cclient such as putty or Teraterm. And it will be necessary to repair add locale process. SOme binary may be do not exist inside X86 X64 system image so it will be necessary to extend this .tar image with The necessary command if it is not possible to add those commands by using pacman.

-- Tento e-mail byl zkontrolován na viry programem AVG. http://www.avg.cz

JanuszChmiel commented 3 years ago

I would like to congratulate to MR Rausty and other team members. visualorca option perfectly configures X86 X64 architecture including correct Czech language localisation setup. Very very well done to yours Bash scripting language knowledge dear MR Rausty and others. And I can continue with my experiments. And because Pulseaudio work I can perfectly continue. Localisation is OK so no Libc library wwarnings. Very well done and thank you again.

-- Tento e-mail byl zkontrolován na viry programem AVG. http://www.avg.cz

JanuszChmiel commented 3 years ago

Very important information for all not only visually impaired users! To enable reliable sound for Termux and emulated or non emulated architectures when using setupTermuxArch.bash script. while using Termux. From Termux application run The following commands: pulseaudio --start --exit-idle-time=-1 pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1

And from installed ArchLinux operating system

export PULSE_SERVER=127.0.0.1 You can use /etc/profile bash script to add those commands for Termux. Or for installed ArchLinux.

-- Tento e-mail byl zkontrolován na viry programem AVG. http://www.avg.cz

SDRausty commented 3 years ago

@JanuszChmiel please see https://serviceanimals.github.io/Harper/

I just lost (bullets) mine; Do you have a guidedog? If not, why?

SDRausty commented 3 years ago

I'm getting this error when trying to use this, ./setupTermuxArch v i x86 command; How about you?

Updating mirrorlist from https://git.archlinux32.org/packages/plain/core/pacman-mirrorlist/mirrorlist. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0Warning: Failed to create the file Warning: /data/data/com.termux/files/home/x86/etc/pacman.d/mirrorlist: No such Warning: file or directory 100 1363 100 1363 0 0 2123 0 --:--:-- --:--:-- --:--:-- 2119 curl: (23) Failure writing output to destination

JanuszChmiel commented 3 years ago

I AM getting this error too. When I Am using v option and script try to install X64 .iso image.

SDRausty commented 3 years ago

https://github.com/termux/proot/issues/141

SDRausty commented 2 years ago

VNC support added easily.

Hi, I am visually impaired I would love to use the Orca screenreader with arch with the scripts that you have provided. I have installed arch into termux and ran orcaconf in arch. It says it was successful. How do I continue? I assume I need to start a Vnc server. when I run vncserver, it says something about a display, but when I try to use a Vnc client to connect to local host it is unable to connect saying connection refused. What am I doing wrong? Any help would be greatly appreciated. Thanks.

_Originally posted by @willbilec in https://github.com/TermuxArch/TermuxArch/issues/36

github-actions[bot] commented 2 years ago

Stale issue message