From 7238cca9d6d63fb99c2c2bb5302989819a32bb1f Mon Sep 17 00:00:00 2001
From: David Runge <dvzrv@archlinux.org>
Date: Thu, 29 Oct 2020 10:52:03 +0100
Subject: [PATCH] Add accessibility support based on option flag

scripts/run_archiso.sh:
Add the `-a` option flag to add accessibility support on demand for `run_archiso`.

Not providing the specific braille chardev (hardware?) otherwise blocks running run_archiso with
`qemu-system-x86_64: -chardev braille,id=brltty: brlapi__openConnection: connect: No such file or directory`.

Fixes #77
---
 scripts/run_archiso.sh | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/scripts/run_archiso.sh b/scripts/run_archiso.sh
index 74912901..7b567843 100755
--- a/scripts/run_archiso.sh
+++ b/scripts/run_archiso.sh
@@ -21,6 +21,7 @@ Usage:
     run_archiso [options]
 
 Options:
+    -a              set accessibility support using brltty
     -b              set boot type to 'BIOS' (default)
     -d              set image type to hard disk instead of optical disc
     -h              print help
@@ -76,6 +77,13 @@ run_image() {
         )
     fi
 
+    if [[ "${accessibility}" == 'on' ]]; then
+        qemu_options+=(
+            '-chardev braille,id=brltty'
+            '-device usb-braille,id=usbbrl,chardev=brltty'
+        )
+    fi
+
     qemu-system-x86_64 \
         -boot order=d,menu=on,reboot-timeout=5000 \
         -m "size=3072,slots=0,maxmem=$((3072*1024*1024))" \
@@ -87,17 +95,15 @@ run_image() {
         -display sdl \
         -vga virtio \
         -audiodev pa,id=snd0 \
-        -chardev braille,id=brltty \
         -device ich9-intel-hda \
         -device hda-output,audiodev=snd0 \
         -device virtio-net-pci,romfile=,netdev=net0 -netdev user,id=net0 \
-        -device usb-braille,id=usbbrl,chardev=brltty \
         -machine type=q35,smm=on,accel=kvm,usb=on,pcspk-audiodev=snd0 \
         -global ICH9-LPC.disable_s3=1 \
         -enable-kvm \
         "${qemu_options[@]}" \
-        -no-reboot \
-        -serial stdio
+        -serial stdio \
+        -no-reboot
 }
 
 set_image() {
@@ -113,6 +119,7 @@ set_image() {
 }
 
 image=''
+accessibility=''
 boot_type='bios'
 mediatype='cdrom'
 secure_boot='off'
@@ -121,8 +128,11 @@ working_dir="$(mktemp -dt run_archiso.XXXXXXXXXX)"
 trap cleanup_working_dir EXIT
 
 if (( ${#@} > 0 )); then
-    while getopts 'bdhi:su' flag; do
+    while getopts 'abdhi:su' flag; do
         case "$flag" in
+            a)
+                accessibility='on'
+                ;;
             b)
                 boot_type='bios'
                 ;;
-- 
GitLab