7

I'm running Debian 9.1 with KDE and KDE Accessible / the screenreader keeps appearing from time to time for some reason. I'd like to know why that is and how to prevent it from starting.
It's not listed in the autostart entries in Background Services nor in the BootUp-Manager (bum). In the Accessibility Options "Screen reader enabled" is not checked.


ps -ef | grep access gives me:

/usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
/usr/lib/kde4/libexec/kaccessibleapp

The content of /usr/share/defaults/at-spi2/accessibility.conf can be found here.

Debian issue for disabling it now is here.

5
  • Maybe you hit the shortkey of it? I think it was meta+alt+s Commented Aug 25, 2017 at 7:19
  • I don't hit such uncommon shortcuts by accident. And this is happening on multiple machines. I verified that this is the shortcut of kaccess. Furthermore it's not starting when I hit that combo. I'm referring to that blue tray icon. Commented Aug 25, 2017 at 11:40
  • 1
    Well if it is useless to you just purge it? sudo apt-get purge kaccessible Commented Aug 25, 2017 at 11:49
  • 1
    Yes, but that's not a solution. I'd like to know why it does start automatically because I didn't tell it to do so and that's strange. Commented Aug 25, 2017 at 11:57
  • 1
    Related question: unix.stackexchange.com/q/398268/9158 Commented Oct 15, 2017 at 19:01

3 Answers 3

4

It's a session D-Bus service, defined in file /usr/share/dbus-1/services/org.kde.kaccessible.service. It is started indirectly by systemd's user session manager.

See systemctl --user status.

When a GUI desktop session begins, one of the user-level services started at that time is the accessibility bus service: at-spi-dbus-bus.service. It starts at-spi-bus-launcher, which in turn starts an instance of dbus-daemon for the accessibility bus, and the actual D-Bus services of the accessibility bus, including kaccessibleapp.

In order to disable just the kaccessibleapp service, as far as I can see, the file /usr/share/dbus-1/services/org.kde.kaccessible.service would need to stop existing in that directory; there does not seem to be any other way to control the start-up of that service specifically.

If you want to disable the entire accessibility bus, run systemctl --user stop at-spi-dbus-bus.service as your regular user account, then verify nothing important to you is broken by that. If something is wrong, just logging out and back in restarts the accessibility bus again. To persistently disable the accessibility bus from starting, run systemctl --user disable at-spi-dbus-bus.service. To undo, replace disable with enable.

If some other session-level service requires the accessibility bus in its systemd configuration, the accessibility bus service may still get started to fulfill that requirement. To explicitly forbid the start of the accessibility bus even if something else requires it, run systemctl --user mask at-spi-dbus-bus.service. To undo, replace mask with unmask.

1

I had the same problem, so after some digging, I found a solution that worked for me by either editing the file /etc/xdg/autostart/kaccess.desktop and commenting Exec=kaccess line or deleting the whole file same thing for kdeconnect with /org.kde.kdeconnect.daemon.desktop file.

-1

Preamble

As one might expect from a piece of holdover software from the Plasma 4 days, KAccess also predates the existence of systemd, and is still yet to receive a thorough enough porting effort to integrate it with all of the current desktop infrastructure. In fact I'm a little amazed at the fact that when I saw your question and thought "Oh! I think I know just what the answer is to this one!" and pulled down a Yakuake window, my first ls command was to exactly the right directory despite it probably being 6-8 years since I fell victim to this issue myself. Here's the exact command I invoked and its output:

$ ls -lFAhkp /etc/xdg/autostart/kaccess.desktop rw-r--r-- 1 root root 2 KiB Thu Jan 21 13:01:43 2021  kaccess.desktop 

The Perpetrator is found

That file right there is the source of all your frustrations, I'm sorry to report. And as satisfying as I know it would be to rm -f that thing to the gates of Hades, I'm going to have to counsel you in an altogether different direction. The reason is thus...

The file's recent mtime alerted me to the fact that it wasn't cruft, but most likely still a constituent of a current package within the KDE framework. In fact I soon discovered that it's not in just any package, but none other than plasma-desktop itself! This means that if you deleted it, the next time you used the package manager to update your system following a new set of plasma-* packages being issued, the file would be right back where it was. Luckily the legitimate, "According to Hoyle" solution is a quick one, at least.

Always consult an ancient scroll before attempting to slay a dragon

The whole autostart folder thing is yet another of the Freedesktop.org XDG (Cross-Desktop Group) Specifications, aptly named Desktop Application Autostart, and this little nugget is tucked inside the Implementation Notes paragraph:

If an application autostarts by having a .desktop file installed in the system wide autostart directory, an individual user can disable the autotomatic start of this application by placing a .desktop file of the same name in its personal autostart directory which contains the key Hidden=true.

Earlier in the specification, the section on Autostart Directories states:

If $XDG_CONFIG_HOME is not set the autostart directory for a user account is ~/.config/autostart.

If $XDG_CONFIG_DIRS is not set the system-wide autostart directory is /etc/xdg/autostart.

The conquering hero returns

All that being clear, this would be my approach to the situation, executed in a sufficiently sophisticated shell such as Bash or Z Shell to accommodate the.conditional variable expansion shown.

  1. Ensure the autostart directory for your user account does, in fact, exist.

    mkdir -pv "${XDG_CONFIG_HOME:-~/.config}/autostart"

  2. Banish a copy of the offending plasma-desktop file to rot there for all eternity.

    cp -iv /etc/xdg/autostart/kaccess.desktop "${XDG_CONFIG_HOME:-~/.config}/autostart"

  3. After deleting any existing lines from the file that set a value for the Hidden key, use the spell from the scroll to curse it with a lifetime of impotence.

    grep -Eq 'Hidden\s*?=' "${XDG_CONFIG_HOME:-~/.config}/autostart/kaccess.desktop" && sed -Ei '/Hidden[[:blank:]]*?=/d' "${XDG_CONFIG_HOME:-~/.config}/autostart/kaccess.desktop"; echo "Hidden=true" >>"${XDG_CONFIG_HOME:-~/.config}/autostart/kaccess.desktop" 

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.