[О блоге] [наверх] [пред] [2021-05-17 13:37:48+03:00] [3bc6cc43d6153271f6ea47db9020cb2d8bd1e956]
Темы: [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
    
    *** 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 будет ближе,
    ибо для него хотя бы хоть какая-то документация имеется чаще всего.