Jak stwierdzić, czy użytkownik aktywnie pisze w systemie Linux?


2

Chciałbym napisać mały skrypt, aby zapytać mnie, co robię w regularnych odstępach czasu, ale nie chcę, aby skupiał się, gdy jestem w trakcie pisania wiadomości e-mail lub wpisywania hasła. Dwie opcje, które wymyśliłem, to (1) powiadomienie-wysłanie / pynotify, które pozwala mi wyskoczyć dymek powiadomienia w prawym górnym rogu ekranu, który jest idealny, ale nie wydaje się, aby zawierał pole wprowadzania tekstu; oraz (2) zenity i podobne, które wywołują okno z polem tekstowym, ale kradną ostrość, gdy to robią.


Innym sposobem na osiągnięcie celu jest skonfigurowanie menedżera okien, aby początkowo nie skupiał okna powiadomień. W ten sposób można jednak skonfigurować tylko kilka menedżerów okien.
Gilles

Odpowiedzi:


3

Aha, xprintidle wydaje się być odpowiedzią na moje nieszczęścia. Śledzi ruchy myszy i klawiatury, ale daje czas bezczynności w milisekundach, więc wydaje się wystarczająco dobry.

http://www.dtek.chalmers.se/~henoch/text/xprintidle.html

sleep 10 
echo waiting for me not to be busy
while [ "$(xprintidle)" -lt 3000 ]; do sleep 1; done
echo interrupting
(unset WINDOWID; zenity --title "Annoyer" --entry --text "Are we there yet?")

2

Jeśli w X, oto post zawierający monitory skryptów /dev/input/event:

Ważnym poleceniem jest:

sudo hexdump -e '48/1 "%x " "\n"' /dev/input/event1 | awk '( $29 == 1) { print "PRESS: " $13 } ( $29 == 0 ) { print "RELEASE: " $13 }'

Oczywiście musisz mieć sudouprawnienia, w przeciwnym razie stanie się to, co sugeruje ten post ...

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.