Не дозволяйте миші прокидатися з дисплея в режимі очікування


12

Мені подобається переводити мої дисплеї в режим енергозбереження / очікування, коли я покидаю комп'ютер на деякий час. Було б добре, якби не миші надмірно чутливі. Іноді драйвер читає деяким рухом, який не видно неозброєним оком (курсор, тобто), і він порушує економію енергії. Він зачекав би ще 10 хвилин, перш ніж повернутися в режим очікування.

Мій спосіб вирішення наступного сценарію C-S-q:

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

Використовуючи, xsetя встановлював значення по 2 секунди кожна перед тим, як перейти в режим очікування. Це не приємно, все одно. Іноді є цікаві статки, які я хочу прочитати, перш ніж вводити пароль. Я міг би тримати курсор у русі, але це незручно. (До речі, опція xlock mousemotionне допомагає - вона просто приховує курсор, але екрани все-таки загоряються .)

Отже, питання: чи є спосіб перевести дисплеї в режим очікування і залишитися там, поки не буде натиснута клавіша клавіатури? Я працюю з gentoo та останнім Xorg, але сподіваюся, що відповідь не має бути специфічним для distro.

По суті, відповідь може бути такою ж простою, як включити / відключити мишу в командному рядку ? Думає, що це зробить роботу, якщо DPMS не знає ідеї.


1
Якщо проблема полягає в апаратному забезпеченні, тоді апаратне забезпечення може бути вирішенням - переверніть мишу, поки не захочете нею користуватися. (Гаразд, це було саркастично, але ви розумієте).
new123456

Непогана пропозиція, але все одно щось буде читати, перевернувши голову :)
nperson325681

Навіть найчутливіші оптичні миші не реєструють жодного руху без якогось предмета в межах приблизно дюйму або близько датчика. Якщо це механічна миша, просто висуньте м'яч, щоб досягти такого ж ефекту.
Shinrai

1
Е-е. Давайте подумаємо про те, що не потребує перевертання миші. :)
nperson325681

Ні, ти маєш рацію, це гарне питання (і саме тому я його схвалив). Але я погоджуюся з @ new123456, що іноді механічне рішення простіше (і може бути, що ніхто з вас не проходить цього питання - я не хлопець з Linux, тож, певно, не можу).
Shinrai

Відповіді:


5

На сайті 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щоб отримати те, що ви хочете.


1
Замість використання опції --set-prop разом із властивістю "Увімкнено / вимкнено" пристрою, також можна використовувати параметри --enable та - dedable, наприклад xinput --enable [пристрій] та xinput --disable [пристрій] .
thebodzio

4

Я роблю це в 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 )

Деякі примітки:

  • Я також змушую монітор вимкнути.
  • Краще використовувати повне ім’я замість ідентифікатора.

Я сподіваюся, що це допомагає.


Виглядає добре, але я не використовую dbus або gnome, тому не спробую.
nperson325681
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.