Альтернатива ddcutil (, например, если ваш монитор не поддерживает DDC/CI, или вы не хотите загружать дополнительный модуль ядра (i2c-dev
), или у вас нет прав доступа /dev/i2c-*
), заключается в использовании красного смещения .
Красное смещение управляет цветовой температурой, но также и яркостью экрана.
Вы можете установить в файле конфигурации разную яркость (и разные цветовые температуры, если хотите )в течение дня и ночи, или вы можете изменить любой из них на лету из командной строки.
Из командной строки в ситуации с несколькими мониторами -необходимо использовать флаг -m
. Ваш основной монитор — crtc=0
, а внешний — crtc=1
. Вы также можете использовать имя вашего монитора, заданное xrandr
.
Так, например, чтобы установить яркость 70% на внешнем мониторе, вы можете запустить:
redshidft -m randr:crtc=1 -b 0.7 &
Если вы используете файл конфигурации, добавьте в него:
[randr]
screen=0
crtc=1
(Это будет crtc=0
для файла конфигурации вашего основного монитора. Этот выпуск посвящен этому.)
Если вы уже используете красное смещение на основном экране, у вас может быть 2 запущенных экземпляра красного смещения с разными настройками для каждого из ваших мониторов. Вы даже можете иметь 2 разных файла конфигурации (для загрузки второго экземпляра Redshift с флагом -c
, чтобы указать ему путь к вашему второму файлу конфигурации ).
Следует помнить, что даже после того, как вы убили экземпляр Redshift, настройки остаются активными. Чтобы вернуться к своим обычным настройкам, вам нужно запустить redshift -x
(, поэтому, опять же, для вашего внешнего монитора это будетredshift -m randr:crtc=1 -x
). Если вы убьете экземпляр, а затем запустите другой без предварительного запуска этой команды, настройки будут кумулятивными. Это немного странное поведение, но на самом деле оно имеет некоторые преимущества :в некоторых случаях, в зависимости от того, как они запущены, 2 одновременных экземпляра могут вызвать некоторое мерцание. Если это когда-нибудь произойдет, вы можете просто убить один (или оба ), чтобы решить проблему :, настройки останутся.
Все это может показаться очень сложным, но как только вы ознакомитесь с этим и настроите некоторые файлы конфигурации, или псевдонимы, или сочетания клавиш, это действительно работает очень хорошо.И если вы запустите свои экземпляры с красным смещением, например, из .xinitrc
, вам, возможно, больше не придется возиться с ним, поскольку яркость будет автоматически регулироваться в сумерках и вниз.
редактировать:Мой комментарий о том, что красное смещение не сбрасывает значения монитора по умолчанию после того, как меня убили выше, был ошибкой с моей стороны:
если осторожно попросить умереть и очистить сигналом 15 (например. kill -15
, что является значением сигнала по умолчанию для kill
), оно фактически сбрасывает все как часть очистки
если убит сигналом 9 (например. kill -9
), он остановится, ничего не сбрасывая
Это имеет смысл, но я никогда этого не осознавал. В ситуациях, когда несколько экземпляров красного смещения создают некоторое мерцание, я пользуюсь этим и запускаю, а затем немедленно убиваю (какой-либо функцией )новый экземпляр. Это, вероятно, не очень чисто... но до сих пор это работало для меня очень хорошо.
У меня получилось, вместо запуска следующей команды запуска Dockerfile:
RUN echo "sshfs#myuser@${host}:${folder} $mount_folder fuse allow_other,default_permissions,umask=0007,idmap=file,uidfile=/etc/sshfs_umap,gidfile=/etc/sshfs_gmap,nomap=ignore,StrictHostKeyChecking=no,IdentityFile=/root/.ssh/id_rsa 0 0" >> /etc/fstab
Я удаляю его и добавляю в dockerfile команду CMD, которая запускает.sh-скрипт и содержит строку:
#!/bin/sh
sshfs -o allow_other -o reconnect -o default_permissions -o 'umask=0007' -o 'idmap=file' -o 'uidfile=/etc/sshfs_umap' -o 'gidfile=/etc/sshfs_gmap' -o 'nomap=ignore' -o 'StrictHostKeyChecking=no' -o 'IdentityFile=/root/.ssh/id_rsa' myuser@$SFTP_HOST:$SFTP_ROOT_FOLDER /myfolder
#do tother things here to run your app
Это монтирует удаленную файловую систему каждый раз, когда запускается контейнер Docker. Я предполагаю, что причина, по которой /etc/fstab не запустилась, вероятно, в том, что контейнер на самом деле не загружается с нуля, потому что это контейнер... поэтому /etc/fstab никогда не запускается...