LINUX.ORG.RU

KScreen2 и лагающий монитор

 , kscreen2,


0

1

Привет, ЛОР!

Такая ситуация: у меня два монитора и один из них слегка лагает при выходе из спящего режима. В результате, система в течение примерно секунды считает, что монитор только один, и из-за этого KDE переносит все окна на него. Потом второй просирается, но окна уже там.

По совету из интернетов выключил KScreen2 – KDEшный сервис управления экранами. Это помогло со спящим режимом, но зато теперь теряются настройки расположения мониторов при перезагрузке иксов или системы.

Скажи, ЛОР, а можно ли как-то заставить KDE не кидать окна сразу, а подождать секунду-две? Или может есть другие решения?

Возможно если прописать в параметрах ядра их то он не будет их терять, но тогда автодетект сломается.

Я, чтобы комп не считал монитор отключённым когда он в самом деле отключён, подпаял между какими-то проводами VGA-кабеля резистор, а чтобы не страдать от проблем с автодетектом - прописал его разрешение в параметрах ядра в grub.

Ещё плохой автодетект можно нейтрализовать в настройках иксов, вручную прописав все ModeLine монитору.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Автодетект работает. Проблема именно в лаге.

Кстати, появилось когда я заменил видеокарту на amd. С nvidia проблем не было.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Я про то что лаг можно убрать, припаяв резистор - комп будет считать монитор всегда подключённым. Но в то время, когда раньше был лаг, теперь будет сломанный автодетект (т.к. настоящий монитор спит и EDID не отдаст) и будет биться разрешение. Чтобы починить и его, надо прописать разрешение вручную.

А может быть достаточно просто в параметрах ядра указать что монитор подключён и резистор не нужен.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Я про то что лаг можно убрать, припаяв резистор - комп будет считать монитор всегда подключённым.

В DisplayPort? Мне кажется, это с ним работать не будет.

А может быть достаточно просто в параметрах ядра указать что монитор подключён и резистор не нужен.

Не, не вариант. Если монитора действительно нет, то система его и не должна видеть. Я хочу починить проблему, а не вставлять ещё костылей.

hateyoufeel ★★★★★
() автор топика

Если KScreen2 виден в виде конкретного процесса то попробуй прописать ему kill -STOP перед уходом в спящий режим и kill -CONT спустя 5 сек после выхода из него. Куда это прописывать зависит от дистра, в дебиане например файл можно было бы назвать /etc/pm/sleep.d/20_kscreen (chmod +x)

#!/bin/sh

kill_stop_kscreen()
{
  ...
}

kill_cont_kscreen()
{
  sleep 5
  ...
}

case "${1}" in
        hibernate|suspend)
                kill_stop_kscreen
                exit 0
                ;;
        thaw|resume)
                kill_cont_kscreen 1>> /dev/null 2>&1 &
                exit 0
                ;;
        *) exit 127 ;;
esac

Я хочу починить проблему, а не вставлять ещё костылей.

Это, разумеется, тоже костыль, но наверно с минимальными побочными эффектами. Чинить без костылей это думаю только патчить KDE, и подозреваю что в нём и так гора их присутствует штатно.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от firkax

Если KScreen2 виден в виде конкретного процесса то попробуй прописать ему kill -STOP перед уходом в спящий режим и kill -CONT спустя 5 сек после выхода из него.

Вот это уже лучше. Спасибо, сам почему-то об этом не подумал.

Патчить всё равно придётся. Проблема, как я понимаю, довольно распространённая.

hateyoufeel ★★★★★
() автор топика
29 ноября 2022 г.