Ubiquity, GNOME, and accessibility.
themuso at themuso.com
Sat Jan 19 09:32:05 GMT 2008
On Sat, Jan 19, 2008 at 12:58:41AM EST, Colin Watson wrote:
> On Tue, Jan 15, 2008 at 05:26:39PM +1100, Luke Yelavich wrote:
> > At UDS Boston, I briefly talked with Colin about accessibility, and
> > the only-ubiquity option to only launch ubiquity on the live CD. Since
> > this option will be easily made available to users in the gfxboot
> > screen re-organisation, I am writing to discuss implementing
> > accessibility for this feature, as only using Ubiquity will be
> > selectable by those who may wish to enable accessibility.
> Right, good point. If your mail filters are ready to get a substantial
> mail flood due to being a bug contact for ubiquity, I'd be happy to add
> you to the ubuntu-installer team so that you can do the ubiquity work
if you think this would make sense, ok. However, at this point, my python is not very strong, so unless there are good examples elsewhere in the code that I can learn from, perhaps it would be better if someone was reviewing my patches.
> > Since only the necessary parts of GNOME are launched along with
> > ubiquity, in order to provide wallpaper, theme, and window management,
> > all running as root, and since from my checking that this all gets run
> > by ubiquity itself, some work needs to be done, both on the ubiquity
> > side, as well as the casper side. From what I understand about the way
> > things work now, the following needs to happen.
> > * If any accessibility profile is selected, and only-ubiquity gets
> > activated, casper will have to set all gconf settings for the root
> > user.
> I think there's a decent argument that ubiquity-dm should (be told to)
> start the desktop environment bits as the 'ubuntu' user. It's not so
> much that the security properties matter here, but it would simplify
> casper's job as well as bringing the only-ubiquity environment closer to
> the environment you get when you run a full live session and then start
> ubiquity in it.
The problem here, is that at-spi will not work accross users, i.e a root user running ubiquity, but the ubuntu user running at-spi.
> > * If the accessibility profile chosen requires the use of the
> > at-spi-registryd daemon, ubiquity will have to be notified that it has
> > to run this daemon.
> For GNOME, this seems to be if /desktop/gnome/interface/accessibility is
> set in gconf. This isn't necessary in KDE, is it?
At this point, I don't know, but don't think so, as KDE doesn't offer nearly the range of accessibility support that GNOME does, certainly nothing like at-spi-registryd. However, we could look at at least implementing the theme changes that have already been implemented for the kubuntu accessibility profiles. I'll have to grab a Kubuntu image and have a play, to see what happens.
> It looks to me as if the right answer would be to modify
> ubiquity/bin/ubiquity-dm to fetch /desktop/gnome/interface/accessibility
> from the ubuntu user's gconf database, and if it's set to true then
> start at-spi-registryd before doing anything else GTK-related (so before
> setting the background). Would you take care of this?
Again, given enough example code to learn from, and given a pointer to where this needs doing, I can look into it.
> > I think the above two points are the only things that need addressing,
> > as from what I can gather, gnome-settings-daemon gets run, which sets
> > a lot of gconf settings, including those for keyboard accessibility,
> > mouse, wallpaper settings, and theme. Please feel free to correct me
> > if I am wrong.
> That's correct to the best of my knowledge. If more is needed, I'm sure
> it will become obvious rather quickly.
> > I am quite happy to work on the casper side of the implementation, and
> > am also willing to work on the parts of ubiquity that need changes
> > made, if I am pointed in the right direction. The only other question
> > is whether it would be better to make use of gconf from within
> > ubiquity, or whether it would be better to add another command-line
> > argument, to tell ubiquity that accessibility needs to be enabled.
> I'd call gconftool-2 from ubiquity-dm if using the GTK frontend and it's
> available. ubiquity already uses gconftool-2 elsewhere, so this isn't
> much of a stretch. Do wrap it inside "if
> osextras.find_on_path('gconftool-2')" (as is done in the GTK frontend)
> to avoid breaking Xubuntu, though.
Sounds reasonable. I'll have a poke at the ubiquity code at my next chance and see what I can learn from a look through.
GPG key: 0xD06320CE
Email & MSN: themuso at themuso.com
Jabber: themuso at jabber.org.au
More information about the Ubuntu-installer