4624077e6aca76c5d9cf1469b599e501b2c7d36f
[live-boot-grml.git] / scripts / live-bottom / 30accessibility
1 #!/bin/sh
2
3 #set -e
4
5 # initramfs-tools header
6
7 PREREQ=""
8
9 prereqs()
10 {
11         echo "${PREREQ}"
12 }
13
14 case "${1}" in
15         prereqs)
16                 prereqs
17                 exit 0
18                 ;;
19 esac
20
21 # live-initramfs header
22
23 if [ -n "${NOACCESSIBILITY}" ]
24 then
25         exit 0
26 fi
27
28 . /scripts/live-functions
29
30 if [ -z "${USERNAME}" ]
31 then
32         echo "No default user for accessibility options."
33         exit 0
34 fi
35
36 log_begin_msg "Configuring accessibility options"
37
38 # live-initramfs script
39
40 gconf_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gconf2 2>/dev/null) || gconf_version=""
41
42 gct ()
43 {
44         if [ "${gconf_version}" ]
45         then
46                 chroot /root sudo -u "${USERNAME}" gconftool-2 "${@}"
47         fi
48 }
49
50 remove_applet ()
51 {
52         # Code to remove an applet from the default panel setup
53         # This is rather hacky, but I can't think of a one or two line regular
54         # expression to do this any more efficiently. Patches welcome. In
55         # addition, setting these via gconf also doesn't work for some reason.
56
57         local line_no prior_line next_line
58
59         line_no="$(grep -n "<string>$1</string>" /root/usr/share/gconf/defaults/05_panel-default-setup.entries | cut -f 1 -d :)"
60         [ "$line_no" ] || return
61         prior_line="$((line_no-1))"
62         next_line="$((line_no+1))"
63
64         sed -i -n "${prior_line},${next_line}!p" /root/usr/share/gconf/defaults/05_panel-default-setup.entries
65
66         chroot /root update-gconf-defaults
67 }
68
69 case ${ACCESS} in
70         access=v1)
71                 # Lesser Visual Impairment
72                 gct -s -t string /desktop/gnome/interface/gtk_theme HighContrastLargePrint
73                 gct -s -t string /desktop/gnome/interface/icon_theme HighContrast
74                 gct -s -t string /desktop/gnome/interface/monospace_font_name "monospace 18"
75                 gct -s -t string /desktop/gnome/interface/font_name "sans 18"
76                 gct -s -t string /apps/metacity/general/theme Atlanta
77                 gct -s -t string /desktop/gnome/background/picture_filename ""
78                 gct -s -t string /desktop/gnome/background/picture_options none
79                 gct -s -t string /desktop/gnome/background/primary_color \#666666
80                 gct -s -t string /desktop/gnome/background/secondary_color \#7F7F7F
81                 gct -s -t string /desktop/gnome/background/color_shading_type solid
82                 gct -s -t int /desktop/gnome/peripherals/mouse/cursor_size 48
83                 gct -s -t string /desktop/gnome/peripherals/mouse/cursor_theme whiteglass
84                 ;;
85
86         access=v2)
87                 # Moderate Visual Impairment
88                 gct -s -t bool /desktop/gnome/interface/accessibility true
89                 gct -s -t bool /desktop/gnome/applications/at/visual/startup true
90                 gct -s -t string /desktop/gnome/applications/at/visual/exec orca
91                 gct -s -t bool /apps/gksu/disable-grab true
92                 gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
93                 sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /root/etc/sudoers
94
95                 if [ -x /root/usr/bin/orca ]
96                 then
97                         mkdir -p /root/home/${USERNAME}/.orca
98                         echo "import orca.settings" >> /root/home/${USERNAME}/.orca/user-settings.py
99                         echo "orca.settings.enableSpeech = False" >> /root/home/${USERNAME}/.orca/user-settings.py
100                         echo "orca.settings.enableMagnifier = True" >> /root/home/${USERNAME}/.orca/user-settings.py
101                         chroot /root chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.orca
102                 fi
103                 ;;
104
105         access=v3)
106                 # Blindness
107                 # Disabled for now, until we know eSpeak works.
108                 #gct -s -t bool /desktop/gnome/sound/enable_esd false
109                 gct -s -t bool /desktop/gnome/interface/accessibility true
110                 gct -s -t bool /desktop/gnome/applications/at/visual/startup true
111                 gct -s -t string /desktop/gnome/applications/at/visual/exec orca
112                 gct -s -t bool /apps/gksu/disable-grab true
113                 gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
114                 sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /root/etc/sudoers
115
116                 remove_applet fast_user_switch
117                 if [ -x /root/usr/bin/pulse-session ]
118                 then
119                         mkdir -p /root/var/lib/pulseaudio
120                         touch /root/var/lib/pulseaudio/pulse_a11y_nostart
121                         chroot /root chown root.root /var/lib/pulseaudio/pulse_a11y_nostart
122                         mkdir -p /root/home/$USERNAME/.pulse
123                         echo "autospawn = no" > /root/home/$USERNAME/.pulse/client.conf
124                         chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.pulse
125                 fi
126                 if [ -x /root/usr/bin/orca ]
127                 then
128                         mkdir -p /root/home/$USERNAME/.orca
129                         chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.orca
130                 fi
131                 ;;
132
133         braille=ask)
134                 # Braille
135                 gct -s -t bool /desktop/gnome/interface/accessibility true
136                 gct -s -t bool /desktop/gnome/applications/at/visual/startup true
137                 gct -s -t string /desktop/gnome/applications/at/visual/exec orca
138                 gct -s -t bool /apps/gksu/disable-grab true
139                 gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
140                 sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /root/etc/sudoers
141
142                 if [ -x /root/usr/bin/orca ]
143                 then
144                         mkdir -p /root/home/${USERNAME}/.orca
145                         echo "import orca.settings" >> /root/home/${USERNAME}/.orca/user-settings.py
146                         echo "orca.settings.enableSpeech = False" >> /root/home/${USERNAME}/.orca/user-settings.py
147                         echo "orca.settings.enableBraille = True" >> /root/home/${USERNAME}/.orca/user-settings.py
148                         laptop_detect
149                         chroot /root chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.orca
150                 fi
151
152                 if [ -x /root/usr/bin/pulse-session ]
153                 then
154                         mkdir -p /root/var/lib/pulseaudio
155                         touch /root/var/lib/pulseaudio/pulse_a11y_nostart
156                         chroot /root chown root.root /var/lib/pulseaudio/pulse_a11y_nostart
157                         mkdir -p /root/home/$USERNAME/.pulse
158                         echo "autospawn = no" > /root/home/$USERNAME/.pulse/client.conf
159                         chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.pulse
160                 fi
161
162                 remove_applet fast_user_switch
163                 ;;
164
165         access=m1)
166                 # Minor Motor Difficulties
167                 gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
168                 gct -s -t bool /desktop/gnome/accessibility/keyboard/mousekeys_enable true
169                 gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
170                 gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep true
171                 gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
172                 gct -s -t bool /desktop/gnome/peripherals/keyboard/repeat true
173                 gct -s -t int /desktop/gnome/peripherals/keyboard/delay 700
174                 gct -s -t int /desktop/gnome/peripherals/keyboard/rate 10
175                 gct -s -t bool /apps/gksu/disable-grab true
176
177                 if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]
178                 then
179                         sed -i 's/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml
180                 fi
181                 ;;
182
183         access=m2)
184                 # Motor Difficulties - pointing devices
185                 gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
186                 gct -s -t bool /desktop/gnome/interface/accessibility true
187                 gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
188                 gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep false
189                 gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
190                 gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats [onboard]
191
192                 if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]
193                 then
194                         sed -i '/Sticky/ s/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml
195                 fi
196                 ;;
197 esac
198
199 log_end_msg