Nie pozwól myszy obudzić wyświetlaczy z trybu gotowości

12

Lubię opuszczać ekrany w trybie oszczędzania energii / czuwania, kiedy opuszczam komputer na chwilę. Byłoby dobrze, gdyby nie mysz z nadwrażliwością. Czasami kierowca czyta ruchy niewidoczne gołym okiem (czyli kursorem) i przerywa oszczędzanie energii. Poczeka kolejne 10 minut, zanim wróci do trybu gotowości.

Moim obejściem jest następujący skrypt powiązany z C-S-q:

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

Za pomocą xsetustawiam wartości na 2 sekundy przed przejściem w tryb gotowości. W każdym razie to nie jest miłe. Czasami są fajne fortuny, które chcę przeczytać przed wpisaniem hasła. Mogłem utrzymać kursor w ruchu, ale jest niewyraźny. (Nawiasem mówiąc, opcja xlocka mousemotionnie pomaga - tylko ukrywa kursor, ale wyświetlacze zapalają się.)

Pytanie brzmi: czy istnieje sposób, aby ekrany przechodziły w tryb gotowości i pozostawały tam do momentu naciśnięcia klawisza? Używam Gentoo i najnowszego Xorga, ale mam nadzieję, że odpowiedź nie musi być specyficzna dla dystrybucji.

Zasadniczo odpowiedź może być tak prosta, jak włączenie / wyłączenie myszy w linii poleceń ? Uważa, że ​​wykona to zadanie, jeśli DPMS nie zna tego pomysłu.

nperson325681
źródło
1
Jeśli problemem jest sprzęt, rozwiązaniem może być sprzęt - obróć mysz, aż zechcesz go użyć. (Okej, to było sarkastyczne, ale masz rację).
new123456
Nie jest to zła sugestia, ale nadal coś by czytało, będąc do góry nogami :)
nperson325681
Nawet najbardziej wrażliwe myszy optyczne nie zarejestrują żadnego ruchu bez jakiegoś obiektu w odległości około cala od czujnika. Jeśli jest to mysz mechaniczna, wystarczy wyrzucić piłkę, aby uzyskać ten sam efekt.
Shinrai
1
Eh Pomyślmy o czymś, co nie wymaga obrócenia myszy. :)
nperson325681
Nie, masz rację, to dobre pytanie (i dlatego go głosowałem). Ale zgadzam się z @ new123456, że czasami rozwiązanie mechaniczne jest łatwiejsze (i może być tak, że nikt nie przychodzi do ciebie w tej sprawie - nie jestem facetem z Linuksa, więc na pewno nie mogę).
Shinrai

Odpowiedzi:

5

Na stronie Unix SE znajduje się świetny post autorstwa @pbm.

Krótko mówiąc, najpierw użyj, xinput listaby uzyskać identyfikator urządzenia dla myszy, a następnie użyj

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

i

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

aby wyłączyć i włączyć mysz.

Właśnie przetestowałem je tutaj, wyłączając mysz, a następnie dzwoniąc xset dpms force standby. Machanie myszką przez kilka sekund nic nie zakłóciło ekranu, ale naciśnięcie jednego klawisza działało dobrze. Użycie drugiego polecenia przywróciło mysz do normy, w tym ustawienie „stałego zwalniania” ustawione dla mnie przez domyślne skrypty startowe.

Powinieneś być w stanie przekazać te dwa polecenia do opcji -startCmdi, aby uzyskać to, czego szukasz.-endCmdxlock

Paul Whittaker
źródło
1
Zamiast używać opcji --set-prop wraz z właściwością „Device Enabled / Disabled”, można również użyć opcji --enable i --disable, np. Xinput --enable [urządzenie] i xinput --disable [urządzenie] .
thebodzio
4

Robię to w 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 )

Niektóre uwagi:

  • Wymuszam także wyłączenie monitora.
  • Lepiej użyj pełnej nazwy zamiast ID.

Mam nadzieję, że to pomoże.

MiLo
źródło
Wygląda dobrze, ale nie używam dbus ani gnome, więc go nie wypróbuję.
nperson325681,