Merging casper 1.160.
[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 laptop_detect ()
51 {
52         if [ -x /root/usr/bin/orca ]
53         then
54                 if chroot /root /usr/sbin/laptop-detect
55                 then
56                         mkdir -p /root/home/$USERNAME/.orca
57                         echo "orca.settings.orcaModifierKeys = orca.settings.LAPTOP_MODIFIER_KEYS" >> /root/home/$USERNAME/.orca/user-settings.py
58                         echo "orca.settings.keyboardLayout = orca.settings.GENERAL_KEYBOARD_LAYOUT_LAPTOP" >> /root/home/$USERNAME/.orca/user-settings.py
59                 fi
60         fi
61 }
62
63 remove_applet ()
64 {
65         # Code to remove an applet from the default panel setup
66         # This is rather hacky, but I can't think of a one or two line regular
67         # expression to do this any more efficiently. Patches welcome. In
68         # addition, setting these via gconf also doesn't work for some reason.
69
70         local line_no prior_line next_line
71
72         line_no="$(grep -n "<string>$1</string>" /root/usr/share/gconf/defaults/05_panel-default-setup.entries | cut -f 1 -d :)"
73         prior_line="$((line_no-1))"
74         next_line="$((line_no+1))"
75
76         sed -i -n "${prior_line},${next_line}!p" /root/usr/share/gconf/defaults/05_panel-default-setup.entries
77
78         chroot /root update-gconf-defaults
79 }
80
81 case ${ACCESS} in
82         access=v1)
83                 # Lesser Visual Impairment
84                 gct -s -t string /desktop/gnome/interface/gtk_theme HighContrastLargePrint
85                 gct -s -t string /desktop/gnome/interface/icon_theme HighContrast
86                 gct -s -t string /desktop/gnome/interface/monospace_font_name "monospace 18"
87                 gct -s -t string /desktop/gnome/interface/font_name "sans 18"
88                 gct -s -t string /apps/metacity/general/theme Atlanta
89                 gct -s -t string /desktop/gnome/background/picture_filename ""
90                 gct -s -t string /desktop/gnome/background/picture_options none
91                 gct -s -t string /desktop/gnome/background/primary_color \#666666
92                 gct -s -t string /desktop/gnome/background/secondary_color \#7F7F7F
93                 gct -s -t string /desktop/gnome/background/color_shading_type solid
94                 gct -s -t int /desktop/gnome/peripherals/mouse/cursor_size 48
95                 gct -s -t string /desktop/gnome/peripherals/mouse/cursor_theme whiteglass
96                 ;;
97
98         access=v2)
99                 # Moderate Visual Impairment
100                 gct -s -t bool /desktop/gnome/interface/accessibility true
101                 gct -s -t bool /desktop/gnome/applications/at/visual/startup true
102                 gct -s -t string /desktop/gnome/applications/at/visual/exec orca
103                 gct -s -t bool /apps/gksu/disable-grab true
104                 gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
105                 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
106
107                 if [ -x /root/usr/bin/orca ]
108                 then
109                         mkdir -p /root/home/${USERNAME}/.orca
110                         echo "import orca.settings" >> /root/home/${USERNAME}/.orca/user-settings.py
111                         echo "orca.settings.enableSpeech = False" >> /root/home/${USERNAME}/.orca/user-settings.py
112                         echo "orca.settings.enableMagnifier = True" >> /root/home/${USERNAME}/.orca/user-settings.py
113                         laptop_detect
114                         chroot /root chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.orca
115                 fi
116                 ;;
117
118         access=v3)
119                 # Blindness
120                 # Disabled for now, until we know eSpeak works.
121                 #gct -s -t bool /desktop/gnome/sound/enable_esd false
122                 gct -s -t bool /desktop/gnome/interface/accessibility true
123                 gct -s -t bool /desktop/gnome/applications/at/visual/startup true
124                 gct -s -t string /desktop/gnome/applications/at/visual/exec orca
125                 gct -s -t bool /apps/gksu/disable-grab true
126                 gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
127                 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
128
129                 remove_applet fast_user_switch
130                 laptop_detect
131                 touch /root/etc/pulse/a11y_nostart
132                 sed -i -e 's/autospawn = yes/autospawn = no/g' /root/etc/pulse/client.conf
133                 ;;
134
135         braille=ask)
136                 # Braille
137                 gct -s -t bool /desktop/gnome/interface/accessibility true
138                 gct -s -t bool /desktop/gnome/applications/at/visual/startup true
139                 gct -s -t string /desktop/gnome/applications/at/visual/exec orca
140                 gct -s -t bool /apps/gksu/disable-grab true
141                 gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
142                 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
143
144                 if [ -x /root/usr/bin/orca ]
145                 then
146                         mkdir -p /root/home/${USERNAME}/.orca
147                         echo "import orca.settings" >> /root/home/${USERNAME}/.orca/user-settings.py
148                         echo "orca.settings.enableSpeech = False" >> /root/home/${USERNAME}/.orca/user-settings.py
149                         echo "orca.settings.enableBraille = True" >> /root/home/${USERNAME}/.orca/user-settings.py
150                         laptop_detect
151                         chroot /root chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.orca
152                 fi
153
154                 remove_applet fast_user_switch
155                 ;;
156
157         access=m1)
158                 # Minor Motor Difficulties
159                 gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
160                 gct -s -t bool /desktop/gnome/accessibility/keyboard/mousekeys_enable true
161                 gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
162                 gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep true
163                 gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
164                 gct -s -t bool /desktop/gnome/peripherals/keyboard/repeat true
165                 gct -s -t int /desktop/gnome/peripherals/keyboard/delay 700
166                 gct -s -t int /desktop/gnome/peripherals/keyboard/rate 10
167                 gct -s -t bool /apps/gksu/disable-grab true
168
169                 if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]
170                 then
171                         sed -i 's/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml
172                 fi
173                 ;;
174
175         access=m2)
176                 # Motor Difficulties - pointing devices
177                 gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
178                 gct -s -t bool /desktop/gnome/interface/accessibility true
179                 gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
180                 gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep false
181                 gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
182                 gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats [onboard]
183
184                 if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]
185                 then
186                         sed -i '/Sticky/ s/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml
187                 fi
188                 ;;
189 esac
190
191 log_end_msg