Как стать автором
Обновить

Комментарии 47

Стиль изложения понравился очень, хорошая статья
Спасибо, очень удобно.
Для тех кто скучает по хардкнопке как на EEEPC.
Пользовался программой которая по хот-кею переводит все мониторы в ждущий режим,
огромным минусом было если стол случайно зацепить или пройтись по полу то из-за движений мышки они включались.
Большое спасибо за этот спасительный метод полного выключения!
PS Если найдётся гуру, который подскажет, как бы прописать хоткей на общесистемном уровне (скажем, чтобы оно работало и без x-server'а), я буду очень благодарен.

Для этого можно использовать acpi. Если мне не изменяет память, то acpi_listen покажет код сочетания клавиш. А потом его нужно впихнуть в конфиг
Подробнее можно? Сочетание клавиш я и так знаю (точнее, клавишу). Куда прописывать-то?
думаю, что в /etc/acpi/events/
Именно так. А вот мне самое оно запихнуть в .lircrc :)
amarao, спасибо!
Вспомнилось. Linux — сконфигурировать можно всё!… и ты ***ть будешь всё конфигурировать!
Эт я с любовью.
Вы так говорите, как будто в Windows и MacOSX включение/выключение монитора с клавиатуры идёт из коробки.
Бррр… Как Вы так могли подумать?
Ну в маках да.

подскажите, как на маке это сделать "из коробки"?


UPD: ух, вот это я сдунул пыли — не сразу дату поста/коммента увидел...

а софтинку готовую написать?
Гениально! А можно ли выключить таким же способом жесткие диски? Например есть у меня винт, на который я фотки бекаплю. Нужен он мне раз в две недели. Можно его вкл/выкл подобным способом делать?
Не подобным, но можно.

#Искать все устройства SATA и включить их
ls /sys/class/scsi_host/ | sed -r «s/(host[0-9]+)/echo 0 0 0 > \/sys\/class\/scsi_host\/\1\/scan/» | sh

#Выключить диск sdb
echo 1 > /sys/block/sdb/device/delete
Вместо кавычек-елочек, разумеется, должны быть обычные.
delete не выключает шпиндель (по крайне мере у меня)
Наверное, это зависит от контроллера (материнской платы).
hdparm -Y вроде бы должен
В мане пишут, что это только для IDE дисков, кроме того, чтобы включить диск обратно нужно делать reset. Имеют в виду сброс винта или перезагрузку системы?
Из мана:

A hard or soft reset is required before the drive can be accessed again (the Linux IDE driver will automatically handle issuing a reset if/when needed).
Да, можно. sgtools, там есть выключение шпинделя.
кто-нибудь пересобрал ddccontrol под *BSD/MacOSX?

(я далёк от системного программирования и сходу у меня это не получилось).
Под мак монитор выключается по Ctrl-Shift-Eject, если вам только для этого.
нет, меня интересует именно управление Samsung'овским монитором по DDC. Samsung'овская утилита ужасна, кроме того, доступа к windows нет.

за shortcut спасибо =)
НЛО прилетело и опубликовало эту надпись здесь
Забавно, именно сегодня удосужился разобраться с ddccontrol, о котором узнал из той же статьи что и вы. В процессе разбирательств оказалось, что он у меня как-то медленно работает:
time ddccontrol dev:/dev/i2c-1 -s -r 0x10 -w +10
...

Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-1...

EDID readings:
Plug and Play ID: NEC662B [NEC Multisync 2080UX+]
Input type: Digital

Writing 0x10, 0x0a(10)...
Control 0x10: +/10/69 C [Brightness]

Saving settings...

real 0m0.748s
user 0m0.000s
sys 0m0.193s


Как-то, ИМХО, 0.7s многовато для изменения яркости, вот кнопки на корпусе монитора отрабатывают мгновенно. Это специфично мой баг или у всех так?
Никогда об этом не задумывался. Вы человек-молния? :-)
Я хочу задать клавиатурные хоткеи для изменения яркости на n ↑/↓. В реализующих их скриптах нужно прочитать текущее значение яркости (что тоже занимает 0.75с) и задать новое, итого 1.5с. Если выбирать шаг такой величины, чтобы можно было подстроить под комфортный уровень с достаточной точностью, то часто нужно будет изменять яркость на 3-4 шага. Итого 4.5-6с. А это уже ни в какие ворота, быстрее протыкать заученную комбинацию на самом мониторе. Компьютер должен летать.
сегодня удосужился разобраться с ddccontrol, о котором узнал из той же статьи что и вы.
Ту статью он же и написал. Поэтому вряд ли он узнал про ddccontrol из неё. Из комментов к той статье он только осознал, что ddccontrol можно использовать не только для управлением параметрами монитора (яркость/контрасность и т.п.), но и выполнять включение/выключение монитора. О чём и написал уже подробнее в новой статье.
Так-то!
Насколько я понимаю, там устанавливается соединение по DDC, которое не слишком быстрое… В принципе, можно расковырять ddccontrol и выковырять прямую процедуру отправки минимального значения…
strace в студию!
Вижу серию медленных ioctl'ов. Судя по-всему медленно работает обмен с DDC.

Время выполнение стабильно такое высокое?
Время выполнения колеблется не более чем на 5%. Я вот вижу, что на ioctl ушло только 0.174с, а большую часть остального времени съел nanosleep.

У вас-то сколько запрос занимает? Я тестировал ещё на другом десктопе, там задание значения яркости через dev:/dev/i2c-1 тоже занимает ~0.75 с. Но там ещё монитор доступен как pci:01:00.0-2, и при такой адресации яркость меняется совсем уж неприличные 1.6с.
Видимо, nanosleep используется для синхронизации частоты опроса. Шина просто не может работать быстрее.
Вопрос в том, можно ли сократить количество медленных запросов для выполнения не «общего опроса», а конкретной команды.
Либо закэшировать ответы, либо делать программу сервером.
Комп тоже можно не только выключать, но и включать с клавиатуры, если это поддерживает биос. У меня такая опция в биосе называлась «включение по паролю». Пароль я поставил «1», таким образом комп включался по нажатию на одну кнопку.
Удобно, когда системник под столом. Минус в том, что комп не включается, если был выдернут из розетки.
тю, да. я уже несколько лет не нажимал power на системнике, но это делается без особых знаний. а монитор выключать похоже не так тривиально.
Минус в том, что комп не включается, если был выдернут из розетки.
Это минус всех электроприборов, они не могут работать без электропитания.
Отличная работа, красноглазый брат! Спасибо!
НЛО прилетело и опубликовало эту надпись здесь
Парни, я все понимаю, но как быть тем, кто понял только суть, а как сделать не понял? Это не моя спецификация, но включать и выключать монитор клавишами клавиатуры очень хочется. Help Me!
А предыдущий топик читали? Там вроде бы понятная вводная. Но не обольщайтесь, включение/выключение через ddccontrol может и не поддерживаться, как у меня на обоих десктопах поблизости.
Нет, не читал. Спасибо, сейчас этим и займусь.
А как вы смотрите на идею подать фича-реквест в какой-нить DE (например, Gnome или KDE) или же сборщикам дистрибутивов (типа Ubuntu)? Чтобы они в будущий релиз добавили в стандартный Power Management кнопочку «Display power management (via DDC)», при нажатии на которую появлялось бы окошко для настройки управления питанием монитора по DDC.

[v] Switch on all displays, when system starts up
[v] Switch off all displays, when system shuts down
Ну и дополнительно настройка горячих клавишь для включения/выключения монитора на работающей системе.

Ведь фича же реально полезная, востребованная и, казалось бы, даже очевидная, но её до сих пор нет.
Только это всё нужно грамотно оформить, с описанием, иллюстрациями и пояснениями.
Вроде бы на сайте Ubuntu была даже возможность создать пользовательское голосование по добавлению новой фичи.
Не хотите попробовать? Мы поддержим!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации