Вопрос сформулировать не так просто, поэтому не обессудьте. Выглядит как-то так: Допустим я в xresources куда-нибудь добавил "xset -dpms". Чтобы монитор не отключался. Но он вот назло взял и отключился. Я такой не долго думая проверяю отключен он или нет - оказывается, например, нет. Он опять включен. Где-то в жопе мира в каком-то из скриптов (где угодно, вообще говоря, хоть при запуске миднайткоммандер) он включается обратно. Возникает вопрос: где-то в Линухе есть нечто, что позволит мне поставить какую-то бряку или каким-либо иным образом узнать, где мать его это происходит ? Где в скрипте включается этот dpms ?
Если нужно подключить gdb чтобы узнать - это тоже подойдет. Вопрос глобальный. Можно-ли это сделать вообще (вообще конечно можно, сам знаю) и как ? Желательно малой кровью.
That depends. Если изначально не запускать X-Windows, закомментировав exec-[Desktop Environment] и остаться в голой command line + midnight commander, то и в этом случае, монитор станет отключаться спустя 10-15 минут. Как и где это правится на иное - не интересовался. Code: blitz@inode ~ % cat .xinitrc #!/bin/sh userresources=$HOME/.Xresources usermodmap=$HOME/.Xmodmap sysresources=/etc/X11/xinit/.Xresources sysmodmap=/etc/X11/xinit/.Xmodmap ... numlockx & exec cinnamon-session #export XDG_CURRENT_DESKTOP=Budgie:GNOME #exec budgie-desktop #exec gnome-session #exec graphene-session #exec mutter --wayland --display-server -r #exec openbox-session #exec start-lumina-desktop #exec startlxqt #exec i3 -V >> ~/i3log-$(date +'%F-%k-%M-%S') 2>&1 #exec vos-session #exec weston-launch В [Desktop Environment], как-то Cinnamon, для этого есть скрипт /usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py с опцией power. Решение в лоб - отключить time-outs. В иных [Desktop Environment] полагается, что должно присутствовать аналогичной бледной тенью того, чем силён Cinnamon. В целях эксперимента, дозволяется открыть ctrl-alt-F2 ещё одну сессию, с чистой command line и увидеть, как погаснет монитор.
Дык в том - то и дело что хер поймешь. Делаю "xset q" - пишет что заставка и dpms отключены. Через 15 минут экран потухает. Делаю последовательно xset -dpms xset s off Все работает как положено. Вывод xset q - выдает то же самое что и было. Странно... ==================== Но вопрос даже не в этом. Тоесть есть некие негласные предписания что допустим эти настройки я должен делать в xresources. Но ничто же мне не мешает сделать их где угодно, хоть при загрузке фаерфокса. Но если я так сделаю и забуду - хер потом найдешь ! И собссно вопрос в том, можно-ли в ляликсе как-то найти тот скрипт, который производит некие изменения в системе ? Если я правильно понимаю - админскими методами никак. Если я правильно понимаю - можно впарить юзеру набор скриптов, каждый из которых по отдельности ничего особого не делает но все вместе - они могут просто сформировать не то что бэкдор, оно еще будет бекконнектиться и умолять злоумышленника принять рутовые привилегии
В принципе, управление монитором происходит непосредственно в user space. Пример тому - световая температура монитора, разная. С восходом до захода Солнца, и с заходом до рассвета в данной геолокации - температура световая монитора - разная она. Так удобно и эргономично глазам, в длительной работе у экрана. Code: blitz@inode ~/.config/redshift % cat redshift.conf ; Global settings for redshift [redshift] ; Set the day and night screen temperatures temp-day=6000 temp-night=4500 ; Disable the smooth fade between temperatures when Redshift starts and stops. ; 0 will cause an immediate change between screen temperatures. ; 1 will gradually apply the new screen temperature over a couple of seconds. fade=1 ... ; Set the adjustment-method: 'randr', 'vidmode' ; type 'redshift -m list' to see all possible values. ; 'randr' is the preferred method, 'vidmode' is an older API. ; but works in some cases when 'randr' does not. ; The adjustment method settings are in a different section. ; adjustment-method=drm adjustment-method=randr blitz@inode ~/.config/redshift % cat randr.conf screen=0 И теперь, исполнение комманд xset +/- dpms с проверкой статуса xset -q, ясно показывает, что оное - не оказывает по сути никакого влияния на требуемую функциональность DPMS. Code: blitz@inode ~/.config/redshift % xset -dpms blitz@inode ~/.config/redshift % xset -q Screen Saver: prefer blanking: yes allow exposures: yes timeout: 0 cycle: 0 Colors: default colormap: 0x22 BlackPixel: 0x0 WhitePixel: 0xffffff DPMS (Energy Star): Standby: 0 Suspend: 0 Off: 0 DPMS is Disabled blitz@inode ~/.config/redshift % xset +dpms blitz@inode ~/.config/redshift % xset -q Screen Saver: prefer blanking: yes allow exposures: yes timeout: 0 cycle: 0 Colors: default colormap: 0x22 BlackPixel: 0x0 WhitePixel: 0xffffff DPMS (Energy Star): Standby: 0 Suspend: 0 Off: 0 DPMS is Enabled Monitor is On Either DPMS is enabled or disabled, in any case: Standby: 0 Suspend: 0 Off: 0
Я шаманил с gtk - оказалось Лис Огненный подхватывает системные настройки. Шаманил я прямо в ~/.config/gtk3.0 поэтому хрен его отучишь так делать. Вследствие этого если кто использует стили по умолчанию говно получается... Я ушь думал опечалиться - но такая херня редко вылезает, быстро фиксится - зато все остальное - прямо шикарно. Все сайты так и норовят выглядеть как Adwaita:dark. Менюшки чОрные, скроллы тонкие. Весьма премило получайцо. Вот думаю так и оставить...
Кстати с цветовой температурой х/з. Мне 4500 чот. не очень заходит. Достаточно темной темы. ЭЙ !!! Я вообще не об этом кстати ! Я грю это... можно как-то врубить дебугга и отладить/получить трейс скриптов, которые выполняются ?
я сам не пробовал, но возможно как идея, вот способ отслеживать системные вызовы. Можно сначала с помощью Code: strace xset q посмотреть вызовы и потом уже поставить бряк на вызов.
Ну это не совсем легальный механизм сисадминов... но да. Видимо так и придется делать (если так уже не сделано до нас).
Чтоб такая херня где-то врубалась методом "logging on"... или не знаю... Откудо я знаю ? Я всего-лишь йуный ляликсоид
Два пути: - установить трассирование по вызову /usr/lib/cinnamon-settings-диавол/csd-power, с помощью systemd и journalctl, как делаю у себя, до и во время запуска OS, после прохода initramfs. Code: blitz@inode ~ % journalctl -xb | grep -Ein "alsa|bad|couldn't|crash|disable|doesn't support|error|fail|filtered out|ignoring|invalid|line takes no |no |not found|not supported|unable|unset|warning|was not" События, беспристрастно должны отображаться в журнале journalctl, при условии что OS настроена на работу с ней. И опять же, в случае непоняток, просто посылается SIGTERM / SIGKILL процессу csd-power, из того же htop. Тогда, монитор не станет (не должен) отключаться.
Блитц, ты иностранный шпион. usr/lib/cinnamon-settings-диавол/csd-power. Зойчем ты шпионишь за нами, говнюк !