- комментарий 0:
From: kmeaw
Date: 2021-05-17 19:39:22Z
А как решить те же задачи (отключение отключения и поворот экрана) во
FreeBSD и коммерческих Unix-ах?
- комментарий 1:
From: Sergey Matveev
Date: 2021-05-17 19:50:44Z
*** kmeaw [2021-05-17 22:37]:
>А как решить те же задачи (отключение отключения и поворот экрана) во
>FreeBSD и коммерческих Unix-ах?
Да точно так же. Ни консоль, ни X11, ни DE, конечно же, никуда в них не
делись. Для консоли -- одни команды. Для X11 -- xset-ы. А если DE какие,
то наверное и в них придётся что-то править. Забавное то тут просто то,
что, казалось бы, на такие простые задачи, но несколько десятков
вариантов решения, причём большинство действительно честные и корретные.
Но вообще для X-ов мне кажется корректен только "xset s" вызов. Хотя...
а ещё надо бы дёргнуть DPMS. А ещё надо бы перманентно где-то это
сохранить. А если совсем перманентно, то наверное можно/нужно вообще
через xorg.conf как-нибудь это указать. В общем... все варианты хороши :-)
Короче не позавидуешь пользователю. Хотя я подозреваю что в Windows
последних версий это будет тоже не тривиально отключить
(17e34679ea287e53d19cd3176992bcba7fbeb2dc). А ещё у родителей, когда им
отдал свой старый ноутбук, заместо их системника ещё более древнего,
встретился с тем, что закрывая крышку он упорно хочет дрыхнуть. А её
хочется закрыть и его убрать вглубь стола, ибо подключён внешний монитор
с устройствами ввода. Проблему "решил" просто тем фактом, что Windows
должен загрузиться когда крышка уже закрыта. На работе коллега рассказал
о том что и у него такая же проблема/задача стояли и он решил точно так
же -- загружая в закрытом состоянии. Не позавидуешь пользователю.
- комментарий 2:
From: kmeaw
Date: 2021-05-17 20:35:14Z
> Хотя я подозреваю что в Windows
> последних версий это будет тоже не тривиально отключить
Я знаю стандартный способ менять эту настройку через desk.cpl и место в
реестре, куда эта настройка записывается:
HCKU:\Control Panel\Desktop\ScreenSaveActive
Но сейчас я понял, что мне совсем неизвестен механизм, который блокирует
экран, и как значение этой настройки попадает туда. Пришлось смотреть,
что именно происходит, но всё оказалось достаточно просто.
У winlogon есть специальное окно "SAS window", оконная процедура
которого вызывается user32 каждый раз, когда меняются настройки
screensaver-а. Эта процедура генерирует событие у специального объекта,
который ожидает отдельный поток, отвечающий за блокировку/гашение
экрана. Если он понимает, что настройка перешла в положение TRUE, и
пришло время гасить экран, то он оповещает user32, что заставка работает
(это отключает доставку Ctrl+Alt+Del в SAS window), читает путь до
SCRNSAVE.EXE и запускает новый процесс.
> На работе коллега рассказал
> о том что и у него такая же проблема/задача стояли и он решил точно так
> же -- загружая в закрытом состоянии.
А это можно настроить через powercfg.exe, переключив у активного профиля
настройку lidaction в 0. А вот через UI это как-то не очень просто
делалось, но должно быть где-то в powercfg.cpl.
- комментарий 3:
From: Sergey Matveev
Date: 2021-05-18 07:24:23Z
*** kmeaw [2021-05-17 23:33]:
>Я знаю стандартный способ менять эту настройку через desk.cpl и место в
>реестре, куда эта настройка записывается: [...]
>А это можно настроить через powercfg.exe
Всё это точно далеко от пользователя :-). Даже GNU/Linux будет ближе,
ибо для него хотя бы хоть какая-то документация имеется чаще всего.