Merging casper 1.216.
[live-boot-grml.git] / scripts / live-bottom / 30accessibility
index 8701e87..75bfae4 100755 (executable)
@@ -20,103 +20,163 @@ esac
 
 # live-initramfs header
 
+if [ -n "${NOACCESSIBILITY}" ]
+then
+       exit 0
+fi
+
 . /scripts/live-functions
 
-log_begin_msg "Configuring accessibility options..."
+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
+gct ()
+{
+       if [ "${gconf_version}" ]
+       then
+               chroot /root sudo -u "${USERNAME}" gconftool-2 "${@}"
+       fi
 }
 
-kderc_addtoprefixes() {
-    if [ -e "/root/etc/kderc" ]; then
-        sed -i "s|\\(prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/\\)|\\1,$1|" /root/etc/kderc
-    fi
+remove_applet ()
+{
+       # Code to remove an applet from the default panel setup
+       # This is rather hacky, but I can't think of a one or two line regular
+       # expression to do this any more efficiently. Patches welcome. In
+       # addition, setting these via gconf also doesn't work for some reason.
+
+       local line_no prior_line next_line
+
+       line_no="$(grep -n "<string>$1</string>" /root/usr/share/gconf/defaults/05_panel-default-setup.entries | cut -f 1 -d :)"
+       [ "$line_no" ] || return
+       prior_line="$((line_no-1))"
+       next_line="$((line_no+1))"
+
+       sed -i -n "${prior_line},${next_line}!p" /root/usr/share/gconf/defaults/05_panel-default-setup.entries
+
+       chroot /root update-gconf-defaults
 }
 
 case ${ACCESS} in
-                        # Lesser Visual Impairment
-                        access=v1)
-                        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
-
-                        kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/
-                        if [ -d /root/usr/share/xubuntu-default-settings/accessibility ]; then
-                            cp -a /root/usr/share/xubuntu-default-settings/accessibility/* /root/etc/xdg/
-                        fi
-                        ;;
-                        # Moderate Visual Impairment
-                        access=v2)
-                        gct -s -t bool /desktop/gnome/interface/accessibility true
-                        gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats [orca]
-                        if [ -e /root/usr/share/pycentral/gnome-orca/site-packages/orca/settings.py ]; then
-                            sed -i '/^enableSpeech\W/ s/True/False/;/^enableMagnifier/ s/False/True/' /root/usr/share/pycentral/gnome-orca/site-packages/orca/settings.py
-                        fi
-                        gct -s -t bool /apps/gksu/disable-grab true
-                        kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/,/usr/share/kubuntu-default-settings/kde-profile/moderate-visual-impairment/
-                        ;;
-                        # Blindness
-                        access=v3)
-                        # 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 list --list-type=string /desktop/gnome/accessibility/startup/exec_ats [orca]
-                        gct -s -t bool /apps/gksu/disable-grab true
-                        ;;
-                        # Braille
-                        braille=ask)
-                        gct -s -t bool /desktop/gnome/interface/accessibility true
-                        gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats [orca]
-                        if [ -e /root/usr/share/pycentral/gnome-orca/site-packages/orca/settings.py ]; then
-                            sed -i '/^enableSpeech\W/ s/True/False/;/^enableBraille/ s/False/True/' /root/usr/share/pycentral/gnome-orca/site-packages/orca/settings.py
-                        fi
-                        gct -s -t bool /apps/gksu/disable-grab true
-                        ;;
-                        # Minor Motor Difficulties
-                        access=m1)
-                        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
-                        kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/
-                        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
-                        ;;
-                        # Motor Difficulties - pointing devices
-                        access=m2)
-                        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]
-
-                        kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/,/usr/share/kubuntu-default-settings/kde-profile/motor-difficulties-pointing-devices/
-                        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
-                        ;;
+       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 string /desktop/gnome/applications/at/visual/exec orca
+               gct -s -t bool /apps/gksu/disable-grab true
+               gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
+               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
+
+               if [ -x /root/usr/bin/orca ]
+               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 string /desktop/gnome/applications/at/visual/exec orca
+               gct -s -t string /apps/empathy/conversation/theme classic
+               gct -s -t bool /apps/gksu/disable-grab true
+               gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
+               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
+
+               remove_applet fast_user_switch
+               if [ -x /root/usr/bin/orca ]
+               then
+                       mkdir -p /root/home/$USERNAME/.orca
+                       chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.orca
+               fi
+               ;;
+
+       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 string /desktop/gnome/applications/at/visual/exec orca
+               gct -s -t bool /apps/gksu/disable-grab true
+               gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
+               gct -s -t string /apps/empathy/conversation/theme classic
+               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
+
+               if [ -x /root/usr/bin/orca ]
+               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
+                       laptop_detect
+                       chroot /root chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.orca
+               fi
+
+               remove_applet fast_user_switch
+               ;;
+
+       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