Pull to refresh

Правильный скринсейвер

Reading time4 min
Views1.8K
В этом посте я хочу предложить на суд общественности принципиально новую и вполне жизнеспособную, на мой взгляд, идею для усовершенствования механизма работы скринсейверов на рабочих станциях (без привязки к конкретным операционным системам).

Скринсейверы с незапамятных времён являеются неотъемлемой деталью программного обеспечения типовых десктопов. В последние несколько лет они уже отчасти утратили свою первоначальную функцию, — экономить ресурс мониора, зато приобрели новую. На событие активации скринсейвера определённым образом реагируют различные сервисы. Часто при активации скринсейвера автоматически происходит разлогинивание текущего пользователя для того, чтобы в его отсутствие никто не смог влезть в его работу. При включении скринсейвера, интернет-мессенджер может менять статус с online на away, а индексатор документов, антивирус и дефрагментатор файловой системы — начинать свой труд.

Алгоритм запуска скринсейвера принципиально не менялся уже более 20 лет, с момента первой своей реализации (или одной из первых реализаций среди наиболее распространённого софта) в Norton Commander. Этот алгоритм определения неактивности пользователя — простая проверка на отсутствие любых манипуляций с HMI устройствами. До сих пор его принимают де факто и реализуют во всех распространённых операционных системах. Тем не менее, у этого подхода есть свои минусы.

Всем, кто активно работает за компьютером, скорее всего известны следующие сценарии:
  • На экране выведен большой текст, сложная схема или какой-то иной большой объём информации, требующий времени на изучение. Пока мы вдумчиво рассматриваем или читаем этот контент, проходят предопределённые 5 минут и крайне некстати включается скринсейвер.
  • Мы смотрим видео в каком-то экзотическом (или не очень экзотическом) плеере. Например на Youtube прямо в браузере. Проходят 5 минут, экран гаснет на самом интересном месте презентации какого-нибудь мегапродукта.
  • Мы работаем за компьютером и вдруг кто-то звонит. Разговор занимает 4 минуты и 58 секунд. Вот мы повесили трубку, повернулись к клавиатуре, как тут...

Мелочь, а неприятно. Раздражает. Раз за разом. Подобных сценариев можно перечислить массу. Я сам натыкаюсь на это по нескольку раз в день. Ситуацию может усугублять необходимость вводить свой пароль, если при включении скринсейвера происходит временный выход из системы. А так же невозможность или нежелательность изменять настройки скринсейвера или отключать его вовсе. Компьютер может быть чужой, кроме того, из соображений безопасности возможно есть действительная необходимость, чтобы скринсейвер включался чем быстрее тем лучше, защитив машину от несанкционированного доступа во время отстутствия пользователя отлучаестя на рабочем месте.

Классический способ отслеживания присутствия пользователя, на мой взгляд, давно себя изжил и требует пересмотра. А замену ему можно сделать на основе довольно недорогого аппаратного решения — датчика присутствия. Хочу специально подчеркнуть — не датчика движения, какие используют в системах безопасноти, а именно датчика присутствия. Существует множетсво способов решить эту задачу (датчики на основе ИК или ультразвуковых излучателей, емкосных реле и пр.). Пользователь — довольно крупный объект, отследить который тем или иным способом — не очень сложная проблема.

Самым важным моментом, который необходимо учесть, остаётся удобство использования технологии. Во-первых, датчик не должен представлять собой отдельное устройство, которое занимает дополнительное место на столе или требует для себя отдельного USB порта. Лучше всего делать его вмонтированным в монитор или клавиатуру. Во-вторых, программное обеспечение должно функционировать таким образом, чтобы не требовалась калибровка устройства. Тем не менее, должна оставаться возможность настройки нюансов работы датчика, в соответствии с личными предпочтениями пользваотеля и условиями конкретного рабочего места.

При желании, проверку наличия пользователя таким способом можно комбинировать с классическим подходом: если после того, как датчик перестал чувствовать пользователя прошло заданное количество времени бездействия, скринсейвер включается. При этом, скринсейвер никогда не включится, если пользователь сидит за компьютером. Пусть даже он при этом пребывает в глубоком трансе и не шевелится. Зато стоит ему отойти — и через некоторое время экран отключится. А стоит только приблизиться к рабочему месту (не потрогать мышь, и не ткнуть пальцем в клавиатуру, а только приблизиться, сесть за стол) — всё активируется обратно. При желании так же можно сделать опциональным выход по сигналу с сенсора из режима энергосбережения, чтобы не дёргать мониор после особо длительных простоев.

Если же вернуться к вопросу сбережения ресурса, думаю, не стоит напоминать, что в большинстве случаев это уже далеко не такая актуальная проблема, как была несколько лет назад. Кроме того, возможное увеличение интервалов работы монитора не будет столь уж великим. Средний пользователь в течении рабочего дня не сидит за компьютером непрерывно, а сам рабочий день — это не 24 часа в сутки. Современные мониторы обладают ресурсом, которого хватит на столько часов работы, что монитор успеет морально устареть, прежде чем этот ресурс действительно израсходуется.
Tags:
Hubs:
Total votes 8: ↑6 and ↓2+4
Comments17

Articles