Pull to refresh

Comments 30

"… обычным способом выключать монитор горячей клавишей была сломалась несколько релизов тому назад..."
Все хорошо, но для user-friendly дистра, каковым Ubuntu себя позиционирует, такая довольно важная фича должна быть.

А собственно, что стряслось со штатной функцией? Порылся сейчас из интереса на ланчпаде, но так и не нашел — ссылочку на баг если можно.
И таки да — посту зачет. skymanphp +, за то что потрудился так хорошо все оформить.

К сожалению войны в комментах сегодня лишили меня возможности плюсануть автору… Да и топику тоже, так что чисто на словах=)
Добавил плюс за вас :)
Хотя самому было бы очень интересно, как сделать аналогичное на Win7. Стоит такая же проблема на ноубтуке — хочется кнопкой отключать монитор.
Хронически не люблю сторонние утилиты, висящие в памяти и почти ничего не делающие, поэтому хотелось бы решить проблему стандартными средствами.
Но за подсказку все равно спасибо, в крайнем случае так и сделаю.
Почитали бы, для начала…
По первой ссылке (nircmd.exe) в памяти не висит, исполняет команду и закрывается.
Не досмотрел, извиняюсь.
PowerShell решение, не требующее сторонних утилит:

add-type -name Window -namespace Win32 @"
[DllImport("user32.dll")]
public static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);
"@
[Win32.Window]::SendMessage(-1, 0x0112, 0xF170, 2)
Спасибо большое, вообще сказка!
С другой стороны, PowerShell может оказаться гораздо тяжелее иных сторонних утилит.
простое и интуитивно понятное
Хм, у меня кнопка выключения монитора работает, зато сломалась кнопка Bluetooth. :(
Может немного не в тему, но у меня Caps Lock занят переключением раскладок. Настолько удобно, оказывается, то когда случайно сажусь за Windows, уходит минут 5, а то и больше на привыкание к Shift+Alt
UFO just landed and posted this here
UFO just landed and posted this here
Объясните, пожалуйста в чем смысл while True: break?
Присоединяюсь к вопросу
На CapsLock легко можно попасть случайно, вслепую нажимая Tab или Shift. Не думаю, что постоянное включение-выключение монитора продлит его здоровье (если LED-подсветка, то наверное некритично).

Кстати, зачем вообще его выключать по горячей клавише? В чем смысл? Скринсейвер и так его выключит.

И зачем while True: break тоже интересно.
Не сейвер-то выключит, но через несколько минут. Если хочется сэкономить заряд батареи, то неплохо бы выключать питание монитора на неиспользуемое время.
Некоторые разъяснения.
  • p = subprocess.Popen('gnome-screensaver-command -i'.split())
    запускает процесс, который задерживает появление заставки (опция -i = ihnibit). После выполения этой команды хранитель экрана не запустится, пока процесс не будет прерван.
  • time.sleep(1)
    Нужен для того, чтобы когда пользователь отпустит нажатую горячую клавишу — экран ложно не включился, замачая пользовательскую активность.
  • Дальше на команде display.next_event() выполнение приостанавливается и система ждет новых событий от Х-сервера (ввод с клавиатуры, движение мышкой итд), после каких выполнение продолжается и командой p.terminate() убивается запущенная ранее сохраненная инстанция задержки хранителя экрана.
Спасибо за подробные разъяснения. Но цикл-то все равно не нужен, достаточно просто оставить next_event()
Да, Вы правы. Но это workaround — не у всех сия конструкция работала. Хотя и сейчас до универсальности вряд ли дотягивает.
Впрочем, данный пост был скорее всего наглядным примером, как можно кастомизировать операционку.
root.grab(всёдокучи) нужен чтобы евенты пирлетели?
а рутового окна достаточно, если у мене там браузер в полныйэкран?
Еще бы понять, как отключить автоматическое включение отключенного монитора при нажатии кнопок на клавиатуре или использовании мыши? типичный пример использования — использование ноутбука как аудиоплеер, монитор во время прослушивания не нужен, а сменить трек или поставить паузу хочется без его включения.
> Для начала, вы должны установить, кроме самого питона
Самого Питона не нужно ставить, он уже стоит.
ну малоли, чем у человека последний апгрейд обернулся :)
Как бывший виндузятник, пользуюсь в убунте стандартным Lock screen(Alt+Ctrl+L), он заодно и экран гасит.
Sign up to leave a comment.

Articles