Заметил, что последние обновления привели к не работоспособности смены автоматической смены статуса в Psi. Предварительная проверка показала, что всё вроде бы нормально... Но отладка вывела на странные результаты: [sin@server src]$ ./psi Object::connect: No such slot QCA::DirWatch::watcher_changed(QString) qca-gnupg: patching DirWatch to fix failed connect PsiCon::createAccount PsiCon::createAccount IdlePlatform::secondsIdle start IdlePlatform::secondsIdle = 1371 PsiAccount::secondsIdle seconds=1, minutes=0 PsiAccount::secondsIdle seconds=1, minutes=0 IdlePlatform::secondsIdle start IdlePlatform::secondsIdle = 588 PsiAccount::secondsIdle seconds=0, minutes=0 PsiAccount::secondsIdle seconds=0, minutes=0 IdlePlatform::secondsIdle start IdlePlatform::secondsIdle = 1584 PsiAccount::secondsIdle seconds=1, minutes=0 PsiAccount::secondsIdle seconds=1, minutes=0 IdlePlatform::secondsIdle start IdlePlatform::secondsIdle = 2587 PsiAccount::secondsIdle seconds=2, minutes=0 PsiAccount::secondsIdle seconds=2, minutes=0 IdlePlatform::secondsIdle start IdlePlatform::secondsIdle = 3587 PsiAccount::secondsIdle seconds=3, minutes=0 PsiAccount::secondsIdle seconds=3, minutes=0 IdlePlatform::secondsIdle start IdlePlatform::secondsIdle = 4587 PsiAccount::secondsIdle seconds=4, minutes=0 PsiAccount::secondsIdle seconds=4, minutes=0 IdlePlatform::secondsIdle start IdlePlatform::secondsIdle = 584 PsiAccount::secondsIdle seconds=0, minutes=0 PsiAccount::secondsIdle seconds=0, minutes=0 IdlePlatform::secondsIdle start IdlePlatform::secondsIdle = 1587 PsiAccount::secondsIdle seconds=1, minutes=0 PsiAccount::secondsIdle seconds=1, minutes=0 IdlePlatform::secondsIdle start IdlePlatform::secondsIdle = 2584 PsiAccount::secondsIdle seconds=2, minutes=0 PsiAccount::secondsIdle seconds=2, minutes=0 IdlePlatform::secondsIdle start IdlePlatform::secondsIdle = 3584 PsiAccount::secondsIdle seconds=3, minutes=0 PsiAccount::secondsIdle seconds=3, minutes=0 IdlePlatform::secondsIdle start IdlePlatform::secondsIdle = 4584 PsiAccount::secondsIdle seconds=4, minutes=0 PsiAccount::secondsIdle seconds=4, minutes=0 IdlePlatform::secondsIdle start IdlePlatform::secondsIdle = 584 PsiAccount::secondsIdle seconds=0, minutes=0 PsiAccount::secondsIdle seconds=0, minutes=0 IdlePlatform::secondsIdle start IdlePlatform::secondsIdle = 1584 Получается, что в методе IdlePlatform::secondsIdle() (из idle_x11.cpp) должны получаться секунды из миллисекунд, а ему приходит время непонятно почему кратное 5 миллисекундам... Не могу понять в чём дело... То ли это особенность новых иксов, то ли настройка такая... В общем всё упёрлось в недра иксов: XScreenSaverQueryInfo(QApplication::desktop()->screen()->x11Display(), QX11Info::appRootWindow(), d->ss_info) откуда приходит это самое время простоя приложения в поле idle cтруктуры XScreenSaverInfo.
Странно, но у меня работает. Да и psi уже давным давно не обновлялся. Видимо, что-то отломали где-то в другом месте.
проверяем новую версию...
Проверял по-разному... то работает, то нет... Вообще похоже на проблемы иксы... Как видно из дебага, именно от туда странные события приходят... Хотя может такое использование иксов просто не корреткно... И, возможно, статус нужно отслеживать иначе...
Ещё более странно - работает не только у меня ;) Последняя версия, сизиф, KDE.
(In reply to comment #4) > Ещё более странно - работает не только у меня ;) > У меня тоже... иногда работает... > Последняя версия, сизиф, KDE. > Я думаю, что XScreenSaverQueryInfo() очевидно зависит от настройки screen saver'а, а следовательно использовать этот метод для отслеживания статуса может быть не всегда корректно... И версии тут уже не причём...
По идее, XScreenSaverAllocInfo и XScreenSaverQueryInfo не должны зависить от настройки ScreenSaver'а в X'ах. А вот xset может реально влиять, это надо проверить. Способ, выбранный авторами psi - весьма удобен. Тики сбрасываются на ноль при любом вводе в иксах.
Закрываю как "не баг".