我还是不知道为什么 KDE Accessible / 屏幕阅读器自动启动以及如何通过 KDE 选项方便地阻止它。
在 KDE neon 使用的最新版本的 KDE 中,我找不到删除该软件包以确保它不会启动的方法。
我想删除或正确禁用它,因为:
- 我不需要它
- 它只会增加机器的攻击面
- 启用屏幕阅读器可能是与隐私相关的安全问题
在 Debian10/KDE 中,我请求能够通过运行sudo apt-get purge kaccessible
.
但看起来它没有作为最新 KDE neon 的 KDE Plasma 5.20 中的单独软件包安装(没有kaccess
安装软件包或类似软件包)。此外,我发现即使在 Debian 10 上,即使在清除 kaccessible: 后,kaccess 仍然会自动启动:dpkg -S /usr/bin/kaccess
说它现在是 Plasma-desktop 的一部分,但我找不到阻止它自动启动的方法。
我已经在“自动启动”设置中将其从自动启动中删除,但它是仍然自动启动(使用进程管理器/系统监视器检查启动后是否正在运行)。
一种解决方法似乎正在运行sudo chmod -x /usr/bin/kaccess
(使用 来查看其位置which kaccess
)与 KDE 连接的方式相同,这同样令人烦恼地无法由用户控制。
更新:它不再是 Debian11/KDE 中可以删除的单独软件包。
答案1
前言
正如人们对 Plasma 4 天的一款遗留软件所期望的那样,KAccess 也早于 systemd 的存在,并且仍然没有得到足够彻底的移植工作来将其与所有当前的桌面基础设施集成。事实上,当我看到你的问题并想“哦!我想我知道这个问题的答案是什么!”时,我有点惊讶。然后拉下 Yakuake 窗口,我的第一个ls
命令就是进入正确的目录,尽管距离我自己成为这个问题的受害者可能已有 6-8 年了。这是我调用的确切命令及其输出:
$ ls -lFAhkp /etc/xdg/autostart/kaccess.desktop
rw-r--r-- 1 root root 2 KiB Thu Jan 21 13:01:43 2021 kaccess.desktop
肇事者已找到
我很遗憾地向您报告,该文件是您所有挫败感的根源。据我所知,rm -f
通往地狱之门的那件事会让人很满意,但我将不得不在一个完全不同的方向上为你提供建议。原因是这样的...
该文件最近的 mtime 提醒我这样一个事实:它并不粗糙,但很可能仍然是 KDE 框架中当前包的组成部分。事实上我很快就发现这不仅仅是任何包,但不是别人,正是plasma-desktop
它本身!这意味着,如果您删除了它,那么下次您在plasma-*
发布一组新的软件包后使用软件包管理器更新系统时,该文件将回到原来的位置。幸运的是,“根据霍伊尔的说法”的合法解决方案至少是一个快速的解决方案。
在尝试杀死龙之前一定要查阅古代卷轴
整个autostart
文件夹的事情是另一个 Freedesktop.org XDG(跨桌面组)规范,恰当地命名桌面应用程序自动启动,这个小金块就藏在里面实施说明段落:
如果应用程序通过在系统范围的自动启动目录中安装 .desktop 文件来自动启动,则单个用户可以通过在其个人自动启动目录中放置同名的 .desktop 文件来禁用该应用程序的自动启动,该目录包含键 Hidden=真的。
在本规范的前面部分,有关自启动目录状态:
如果
$XDG_CONFIG_HOME
未设置,则用户帐户的自动启动目录为~/.config/autostart
。如果
$XDG_CONFIG_DIRS
未设置,则系统范围的自动启动目录为/etc/xdg/autostart
.
征服英雄归来
所有这些都清楚了,这将是我处理这种情况的方法,在足够复杂的 shell(例如 Bash 或 Z Shell)中执行,以适应所示的条件变量扩展。
确保您的用户帐户的自动启动目录确实存在。
mkdir -pv "${XDG_CONFIG_HOME:-~/.config}/autostart"
删除有问题的等离子桌面文件的副本,使其永远腐烂。
cp -iv /etc/xdg/autostart/kaccess.desktop "${XDG_CONFIG_HOME:-~/.config}/autostart"
从文件中删除为隐藏键设置值的任何现有行后,使用卷轴中的咒语诅咒它终身无能。
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"
答案2
我遇到了同样的问题,所以经过一番挖掘后,我找到了一个对我有用的解决方案,方法是编辑文件/etc/xdg/autostart/kaccess.desktop
和注释Exec=kaccess
行,或者删除整个文件,与/org.kde.kdeconnect.daemon.desktop
文件的 kdeconnect 相同。