Unix-way убивает Linux

Что: 3bc6cc43d6153271f6ea47db9020cb2d8bd1e956

Когда: 2021-05-17 13:37:48+03:00

Темы: fun systemd

Unix-way убивает Linux

https://habr.com/ru/post/556124/
Сегодня появилась статья в тему моей предыдущей записи
(9b0d6b0880b1a4ef1f032aa9eeb83dfbadb87bff). С одной стороны, статья
плоха, как минимум тем, что Unix-way совершенно не призывает иметь
зоопарк. Как-раз как-бы наоборот -- иметь один инструмент для задачи,
чтобы он справлялся с ней хорошо. А с другой она верно говорит что
Unix-way пока всё ещё мешает занимать позиции на desktop-ах (предполагаю
что Unix это некая противоположность desktop-ах). Но GNU/Linux уже
продолжительное время отдаляется от Unix, так что скоро всё будет
тип-топ для пользователей. RedHat делает всё для этого.

А колоссальный зоопарк это всё же в первую очередь тема для GNU/Linux, а
не коммерческих Unix-ов, где как-раз таки любят и стремятся делать всё
под одну гребёнку. Понравилось тьма способов отключения экрана:

    "consoleblank=0" >> /sys/module/kernel/parameters/consoleblank
    "setterm -blank 0" >> /etc/rc.local
    "setterm -blank" >> /etc/init.d/boot.local
    "sleep 10 && xset s 0 0 && xset s off && exit 0" > autostart.sh
    "xset s off" >> .xsession
    'setterm -blank 0 -powersave off -powerdown 0' >> ~/.xinitrc
    DISPLAY=:0.0 xset s activate
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash consoleblank=0"
    Option "DPMS" "false" > xorg.conf
    TERM=linux setterm -blank 0 -powerdown 0  -powersave off >/dev/tty0 </dev/tty0
    apt-get remove xscreensaver
    echo -ne "\033[9;0]" >> /etc/issue
    gconftool --type int -s /apps/gnome-power-manager/backlight/idle_dim_time ***time***
    gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
        --set -t boolean /apps/gnome-screensaver/idle_activation_enabled false
    gconftool-2 --set -t boolean /apps/gnome-screensaver/idle_activation_enabled false
    gnome-screensaver-command -d
    gsettings set org.gnome.desktop.lockdown disable-lock-screen 'true'
    gsettings set org.gnome.desktop.session idle-delay 0
    gsettings set org.gnome.settings-daemon.plugins.power active false
    remove @xscreensaver -no-splash from ~/.config/lxsession/LXDE/autostart
    setterm -blank 0 -powerdown 0
    setterm -blank 0 -powersave off
    systemd-inhibit sleep 2h
    xset s 0 0 &
    xset s noblank
    xset s off && xset -dpms

а для поворота экрана:

    gsettings set org.gnome.settings-daemon.plugins.orientation active false
    xrandr -o normal
    xrandr --output HDMI1 --rotate left
    xrandr --output LVDS1 --rotate left
    xrandr --output $(xrandr |grep eDP|cut -d" " -f1) --rotate left
    xrandr --output LCD --auto
    "[output] \n name=HDMI-A-1 \n transform=90" >> weston.ini
    "display_rotate=1" >> /boot/config.txt
    "video=DSI-1:800x480@60,rotate=0" >> /boot/cmdline.txt
    snap set pi-config.display-rotate=2
    snap set pi-config.lcd-rotate=2
    "lcd_rotate=2" >> /boot/config.txt
    "display_hdmi_rotate=2 " >> /boot/config.txt
    "display_lcd_rotate=2" >> /boot/config.txt

оставить комментарий

комментарий 0:

From: kmeaw
Date: 2021-05-17 19:39:22Z

А как решить те же задачи (отключение отключения и поворот экрана) во
FreeBSD и коммерческих Unix-ах?

комментарий 1:

From: Sergey Matveev
Date: 2021-05-17 19:50:44Z


>А как решить те же задачи (отключение отключения и поворот экрана) во
>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


>Я знаю стандартный способ менять эту настройку через desk.cpl и место в
>реестре, куда эта настройка записывается: [...]
>А это можно настроить через powercfg.exe

Всё это точно далеко от пользователя :-). Даже GNU/Linux будет ближе,
ибо для него хотя бы хоть какая-то документация имеется чаще всего.

Сгенерирован: SGBlog 0.34.0