summaryrefslogtreecommitdiff
path: root/scripts/live-bottom/30accessibility
blob: a1693427efc22e3cb7ec2f69e2f8807d916fa836 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#!/bin/sh

#set -e

# initramfs-tools header

PREREQ=""

prereqs()
{
	echo "${PREREQ}"
}

case "${1}" in
	prereqs)
		prereqs
		exit 0
		;;
esac

# live-initramfs header

if [ -n "${NOACCESSIBILITY}" ]
then
	exit 0
fi

. /scripts/live-functions

if [ -z "${USERNAME}" ]
then
	echo "No default user for accessibility options."
	exit 0
fi

log_begin_msg "Configuring accessibility options"

# live-initramfs script

gconf_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gconf2 2>/dev/null) || gconf_version=""

gct ()
{
	if [ "${gconf_version}" ]
	then
		chroot /root sudo -u "${USERNAME}" gconftool-2 "${@}"
	fi
}

case ${ACCESS} in
	access=v1)
		# Lesser Visual Impairment
		gct -s -t string /desktop/gnome/interface/gtk_theme HighContrastLargePrint
		gct -s -t string /desktop/gnome/interface/icon_theme HighContrast
		gct -s -t string /desktop/gnome/interface/monospace_font_name "monospace 18"
		gct -s -t string /desktop/gnome/interface/font_name "sans 18"
		gct -s -t string /apps/metacity/general/theme Atlanta
		gct -s -t string /desktop/gnome/background/picture_filename ""
		gct -s -t string /desktop/gnome/background/picture_options none
		gct -s -t string /desktop/gnome/background/primary_color \#666666
		gct -s -t string /desktop/gnome/background/secondary_color \#7F7F7F
		gct -s -t string /desktop/gnome/background/color_shading_type solid
		gct -s -t int /desktop/gnome/peripherals/mouse/cursor_size 48
		gct -s -t string /desktop/gnome/peripherals/mouse/cursor_theme whiteglass
		;;

	access=v2)
		# Moderate Visual Impairment
		gct -s -t bool /desktop/gnome/interface/accessibility true
		gct -s -t bool /desktop/gnome/applications/at/visual/startup true
		gct -s -t bool /apps/gksu/disable-grab true

		if type orca > /dev/null 2>&1
		then
			mkdir -p /root/home/${USERNAME}/.orca
			echo "import orca.settings" >> /root/home/${USERNAME}/.orca/user-settings.py
			echo "orca.settings.enableSpeech = False" >> /root/home/${USERNAME}/.orca/user-settings.py
			echo "orca.settings.enableMagnifier = True" >> /root/home/${USERNAME}/.orca/user-settings.py
			chroot /root chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.orca
		fi
		;;

	access=v3)
		# Blindness
		# Disabled for now, until we know eSpeak works.
		#gct -s -t bool /desktop/gnome/sound/enable_esd false
		gct -s -t bool /desktop/gnome/interface/accessibility true
		gct -s -t bool /desktop/gnome/applications/at/visual/startup true
		gct -s -t bool /apps/gksu/disable-grab true
		gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
		;;

	braille=ask)
		# Braille
		gct -s -t bool /desktop/gnome/interface/accessibility true
		gct -s -t bool /desktop/gnome/applications/at/visual/startup true
		gct -s -t bool /apps/gksu/disable-grab true
		gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity

		if type orca > /dev/null 2>&1
		then
			mkdir -p /root/home/${USERNAME}/.orca
			echo "import orca.settings" >> /root/home/${USERNAME}/.orca/user-settings.py
			echo "orca.settings.enableSpeech = False" >> /root/home/${USERNAME}/.orca/user-settings.py
			echo "orca.settings.enableBraille = True" >> /root/home/${USERNAME}/.orca/user-settings.py
			chroot /root chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.orca
		fi
		;;

	access=m1)
		# Minor Motor Difficulties
		gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
		gct -s -t bool /desktop/gnome/accessibility/keyboard/mousekeys_enable true
		gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
		gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep true
		gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
		gct -s -t bool /desktop/gnome/peripherals/keyboard/repeat true
		gct -s -t int /desktop/gnome/peripherals/keyboard/delay 700
		gct -s -t int /desktop/gnome/peripherals/keyboard/rate 10
		gct -s -t bool /apps/gksu/disable-grab true

		if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]
		then
			sed -i 's/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml
		fi
		;;

	access=m2)
		# Motor Difficulties - pointing devices
		gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
		gct -s -t bool /desktop/gnome/interface/accessibility true
		gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
		gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep false
		gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
		gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats [onboard]

		if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]
		then
			sed -i '/Sticky/ s/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml
		fi
		;;
esac

log_end_msg