D-Bus Phase 3/4: upgrade sessiond, services, add StatusNotifierWatcher, consolidate configs
- redbear-sessiond: add Manager.Inhibit (pipe FD), CanPowerOff/CanReboot/ CanSuspend/CanHibernate/CanHybridSleep/CanSleep (return na), PowerOff/ Reboot/Suspend stubs, GetSessionByPID, ListUsers, ListSeats, ListInhibitors, ActivateSession/LockSession/UnlockSession/TerminateSession - redbear-sessiond: add Session SetIdleHint, SetLockedHint, SetType, Terminate methods; wire PauseDevice/ResumeDevice/Lock/Unlock signal emission via SignalEmitter injection; add dynamic device enumeration scanning /scheme/drm/card* and /dev/input/event* at startup - redbear-sessiond: replace infinite pending() with stoppable shutdown via tokio watch channel + control socket shutdown command - redbear-upower: add Changed signal emission with 30s periodic polling and power state snapshot comparison - redbear-notifications: add ActionInvoked signal, expand capabilities to body + body-markup + actions - redbear-polkit, redbear-udisks: replace pending() with stoppable shutdown via signal handling + watch channel - Add redbear-statusnotifierwatcher: new session bus service implementing org.freedesktop.StatusNotifierWatcher for KDE system tray - Add D-Bus activation file for StatusNotifierWatcher - KWin session.cpp: try LogindSession before NoopSession fallback - Consolidate config profiles: remove obsolete redbear-desktop, redbear-kde, redbear-live-*, redbear-minimal-*, redbear-wayland configs; simplify to three supported targets (redbear-full, redbear-mini, redbear-grub) - Update DBUS-INTEGRATION-PLAN.md and DESKTOP-STACK-CURRENT-STATUS.md with Phase 3/4 fragility assessment, KWin readiness matrix, and completeness gap analysis
This commit is contained in:
@@ -24,9 +24,6 @@ static const struct
|
||||
|
||||
std::unique_ptr<Session> Session::create()
|
||||
{
|
||||
#ifdef Q_OS_REDOX
|
||||
return NoopSession::create();
|
||||
#else
|
||||
for (const auto &sessionInfo : s_availableSessions) {
|
||||
std::unique_ptr<Session> session = sessionInfo.createFunc();
|
||||
if (session) {
|
||||
@@ -34,20 +31,19 @@ std::unique_ptr<Session> Session::create()
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
#endif
|
||||
}
|
||||
|
||||
std::unique_ptr<Session> Session::create(Type type)
|
||||
{
|
||||
#ifdef Q_OS_REDOX
|
||||
switch (type) {
|
||||
case Type::Logind:
|
||||
return NoopSession::create();
|
||||
case Type::ConsoleKit:
|
||||
return ConsoleKitSession::create();
|
||||
case Type::Noop:
|
||||
return NoopSession::create();
|
||||
for (const auto &sessionInfo : s_availableSessions) {
|
||||
if (sessionInfo.type == type) {
|
||||
if (auto session = sessionInfo.createFunc()) {
|
||||
return session;
|
||||
}
|
||||
}
|
||||
}
|
||||
return NoopSession::create();
|
||||
#else
|
||||
for (const auto &sessionInfo : s_availableSessions) {
|
||||
if (sessionInfo.type == type) {
|
||||
|
||||
Reference in New Issue
Block a user