Не позволяйте мыши разбудить дисплеи из режима ожидания

3460
progo

Мне нравится переводить дисплеи в режим энергосбережения / ожидания, когда я на некоторое время покидаю компьютер. Было бы хорошо, если бы не сверхчувствительная мышь. Иногда драйвер читает какое-то движение, которое не видно невооруженным глазом (то есть курсор), и это нарушает энергосбережение. Было бы ждать еще 10 минут, прежде чем вернуться в режим ожидания.

Мой обходной путь - следующий скрипт, связанный с C-S-q:

xlock -startCmd 'xset dpms 2 2 2' -endCmd 'xset dpms 600 1200 1300' -mode blank -echokeys -timeelapsed +usefirst 

Используя xsetI, я устанавливаю значения в 2 секунды, прежде чем перейти в режим ожидания. Во всяком случае, это нехорошо. Иногда есть интересные состояния, которые я хочу прочитать, прежде чем вводить пароль. Я мог бы держать курсор движущимся, но он грязный. (Кстати, опция xlock mousemotionне помогает - она ​​просто скрывает курсор, но дисплеи все же загораются .)

Итак, вопрос: есть ли способ заставить дисплеи переходить в режим ожидания и оставаться там до тех пор, пока не будет нажата клавиша клавиатуры? Я использую gentoo и недавний Xorg, но я надеюсь, что ответ не должен быть специфичным для дистрибутива.

В основном ответ может быть таким же простым, как включить / отключить мышь в командной строке ? Думаю, это бы сработало, если бы DPMS не знала эту идею.

12
Если проблема заключается в аппаратном обеспечении, то решением может быть аппаратное обеспечение - переверните мышь, пока не захотите ее использовать. (Хорошо, это * было * саркастично, но вы поняли). new123456 12 лет назад 1
Неплохое предложение, но оно все равно будет читать что-то вверх ногами :) progo 12 лет назад 0
Даже самые чувствительные оптические мыши не будут регистрировать никаких движений без какого-либо объекта в пределах дюйма или около того от датчика. Если это механическая мышь, просто вытолкните мяч, чтобы добиться того же эффекта. Shinrai 12 лет назад 0
Эх. Давайте подумаем о чем-то, что не требует щелчка мышью. :) progo 12 лет назад 1
Нет, ты прав, это хороший вопрос (и поэтому я проголосовал за него). Но я согласен с @ new123456, что иногда механическое решение проще (и может быть, что никто не придет к вам по этому поводу - я не парень из Linux, так что я точно не могу). Shinrai 12 лет назад 0

2 ответа на вопрос

5
Paul Whittaker

На сайте Unix SE есть отличный пост @pbm, который освещает эту проблему.

Короче говоря, сначала используйте, xinput listчтобы получить идентификатор устройства для вашей мыши, а затем используйте

xinput --set-prop [ID#] "Device Enabled" "0" 

а также

xinput --set-prop [ID#] "Device Enabled" "1" 

отключить и включить мышь.

Я только что проверил это здесь, отключив мышь, а затем позвонив xset dpms force standby. Размахивание мышью в течение нескольких секунд ничего не мешало экрану, но нажатие одной клавиши работало нормально. Используя вторую команду, вы вернули мышь в нормальное состояние, включая настройку «Постоянное замедление», которую мне установили мои скрипты запуска по умолчанию.

Вы должны быть в состоянии передать эти две команды на -startCmdи -endCmdопций, xlockчтобы получить то, что вы после этого .

Вместо использования опции --set-prop вместе со свойством «Device Enabled / Disabled» можно также использовать опции --enable и --disable, например, xinput --enable [device] и xinput --disable [device] , thebodzio 11 лет назад 1
4
MiLo

I do it this way in Ubuntu:

#!/bin/bash # allow only one instance r=$(pidof -x -o $$ ssmonoff.sh) set -- $r if [ "${#@}" -ge 1 ]; then echo "Script already running. Exit..." exit fi dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | ( while read line; do if echo $line | grep "boolean true" &> /dev/null; then xinput --set-prop "Dell Premium USB Optical Mouse" "Device Enabled" "0" xset dpms force off else xinput --set-prop "Dell Premium USB Optical Mouse" "Device Enabled" "1" fi done ) 

Some notes:

  • I'm also forcing monitor off.
  • Better use the full name instead of ID.

I hope that this helps.

Выглядит хорошо, но я не использую dbus или gnome, поэтому не буду пробовать. progo 11 лет назад 0

Похожие вопросы