| Summary: | Spectacle не может сделать снимок экрана в plasma wayland | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Sisyphus | Reporter: | Vera Blagoveschenskaya <vercha> | ||||
| Component: | kde5-spectacle | Assignee: | Sergey V Turchin <zerg> | ||||
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
| Severity: | normal | ||||||
| Priority: | P5 | CC: | aris, o.tolstov.gaz+altlinux, rider, shrek, zerg | ||||
| Version: | unstable | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| See Also: | https://bugzilla.altlinux.org/show_bug.cgi?id=44537 | ||||||
| Attachments: |
|
||||||
Пожалуйста, на p10 проблемы с приложениями KDE вешайте на zerg@altlinux.org. wayland даёт только суперпользователю подглядывать весь экран Тоже словил данный баг в simply linux (установил plasma5). В среде Wayland не делает скриншот ни одна программа (spectacle, mate, xfce). https://bugs.kde.org/show_bug.cgi?id=446628 - это решение не помогло. Workstation K, обновленный до Sisyphus wayland-1.21.0-alt1.1 kde5-spectacle-22.08.3-alt1 Ошибка воспроизводится по описанию. Ошибка всё-таки в spectacle. *** Bug 45058 has been marked as a duplicate of this bug. *** workaround:
Exec=/usr/lib/kf5/bin/spectacle
в /usr/share/kf5/kglobalaccel/org.kde.spectacle.desktop
А проблему надо искать где-то и чинить.
История такая, что в kwin/src/utils/serviceutils.h получает:
static inline QStringList fetchRestrictedDBusInterfacesFromPid(const uint pid)
{
const auto executablePath = QFileInfo(QStringLiteral("/proc/%1/exe").arg(pid)).symLinkTarget();
return fetchProcessServiceField(executablePath, s_dbusRestrictedInterfaceName);
}
Имя запускаемого файла и именно оно проверяется на доступ к снятию скриншота:
bool ScreenShotDBusInterface2::checkPermissions() const
{
if (!calledFromDBus()) {
return false;
}
const QDBusReply<uint> reply = connection().interface()->servicePid(message().service());
if (reply.isValid()) {
const uint pid = reply.value();
const auto interfaces = KWin::fetchRestrictedDBusInterfacesFromPid(pid);
if (!interfaces.contains(s_dbusInterface)) {
sendErrorReply(s_errorNotAuthorized, s_errorNotAuthorizedMessage);
return false;
}
} else {
return false;
}
return true;
}
Но мне кажется что это правильно, мало ли кто где сделал запускаемый файл с такими правами.
kde5-spectacle 22.12.1-alt2 |
Created attachment 10207 [details] scr Workstation K x86_64 kde5-spectacle-21.08.3-alt1.x86_64 1) Залогиниться в графическую сессию wayland. 2) Нажать prtscr Результат: Spectacle не может сделать снимок экрана. Воспроизводится на реальных и виртуальных машинах.