如何在12.04中禁用Qt辅助功能?

观察到的行为

当打开KDE会话时,托盘中会出现一个带有人体轮廓的蓝色圆形图标。它提供了“启用屏幕保护程序”、“朗读文本”和“朗读键盘”的选项。

这似乎与进程/usr/lib/kde4/libexec/kaccessibleappkaccess有关。

我并不太在意。目前一切都还好。

背景

我遇到了一个错误,并将其报告给KDE。维护者说:

堆栈跟踪还表明,您可能正在使用启用辅助功能的Qt。如果是这种情况,请在您所使用的发行版论坛上询问如何禁用Qt辅助功能,并回报是否解决了问题。

期望的行为

我希望“关闭Qt辅助功能”。这可能意味着不运行这个小程序。

已尝试的解决方案

在KDE首选项面板中查找。有一个辅助功能组(视觉提示、修饰键、键盘过滤器),似乎与"qt辅助功能"无关,没有提到小程序。
谷歌搜索,找到了一些针对旧版KDE的各种"解决方案",但都没有起作用。
在AskUbuntu上进行了搜索。有一些关于类似主题的问题,但不是这个问题。
尝试了蛮力方法。如果我杀掉包含字符串"kaccess"的进程(例如killall -v kaccessibleapp kaccess kglobalaccess),它会立即重新启动。
尝试了清除"kaccessible"软件包。
即使经过所有这些步骤,根据valgrind日志,qt辅助功能仍然处于启用状态。
结论
我如何只禁用qt辅助功能?我根本不需要它们,它们可能是第一个问题的原因。
感谢您帮助社区。

这个有进展了吗? - jasonwert
1谢谢你的询问。是的,移除一个软件包似乎解决了问题。我会提供一个答案,请给出评价。 - Stéphane Gourichon
4个回答

KDE级别的软件包维护人员提供了一个提示

如果一切都失败了,请检查哪个软件包安装 /usr/lib/x86_64-linux-gnu/qt4/plugins/accessiblebridge/libqspiaccessiblebridge.so 并尝试将其删除。如果由于依赖关系而无法删除,您可以以root用户的身份手动将文件移开,并重新启动桌面。这样应该会删除对Qt可访问性的支持。

在Ubuntu 12.04上,可以通过sudo dpkg --purge qt-at-spi来实现,这将有效地禁用Qt可访问性。

这可能有点粗暴(例如,它不允许仅为某些用户启用可访问性),但它确实回答了问题并提供了有效的解决方案,不是吗?


似乎没有起作用(显然qt-at-spi不是正确的软件包),我不得不使用@Mattmon的技巧来解决。 - razor
它在12.04 amd64上进行了测试。该软件包仍然存在于12.10版本中。您使用的是哪个发行版?您所说的“未能工作”是指什么?没有这样的软件包,还是已删除但问题仍然存在? - Stéphane Gourichon

文件 /usr/lib/kde4/libexec/kaccessibleapp 是由 kaccessible 软件包拥有的,因此解决问题的最干净的方法是:
sudo apt-get purge kaccessible

我找到了一个答案。将kaccessibleapp设置为不可执行。这样就可以防止它重新启动。
sudo chmod a-x /usr/lib/kde4/libexec/kaccessibleapp

有趣的是,这是一个小技巧(可能会导致.xsession-errors日志中出现一些错误)。但是,如果您需要为一些用户保持辅助功能启用,您可以创建一个用户组,并且只对该用户组设置可执行权限。 - Stéphane Gourichon

删除kaccessibe软件包
sudo apt-get remove kaccessible

谢谢,但是相比于@happyskeptic的回答,有什么好处呢? - Stéphane Gourichon