Как узнать, как долго мой компьютер не использовался через графический интерфейс?
Как узнать, сколько времени на моем компьютере не было ввода с помощью мыши или клавиатуры?
1 ответ
Как увидеть простой; время, когда ваш компьютер не имеет ввода от мыши или клавиатуры
Чтобы увидеть простой, вам понадобится xprintidle:
sudo apt-get install xprintidle
Чтобы показать что
xprintidle
действительно, запустить:sleep 5 && xprintidle
... который показывает время простоя в миллисекундах
Если вы постоянно хотите показывать время простоя в терминале:
while true; do xprintidle && sleep 1; done
Конечно, xprintidle
может использоваться в сценариях, чтобы предложить более элегантный способ следить за временем простоя, но это в основном так.
Просто для удовольствия
... Так как в наши дни мы все делаем с индикатором, пример того, как показывать простой в GUI, используя xprintidle
:
#!/usr/bin/env python3
import signal
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('AppIndicator3', '0.1')
from gi.repository import Gtk, AppIndicator3, GObject
import time
from threading import Thread
import os
import subprocess
currpath = os.path.dirname(os.path.realpath(__file__))
class Indicator():
def __init__(self):
self.app = 'show_idlet'
iconpath = os.path.join(currpath, "idle.png")
self.indicator = AppIndicator3.Indicator.new(
self.app, iconpath,
AppIndicator3.IndicatorCategory.OTHER)
self.indicator.set_status(AppIndicator3.IndicatorStatus.ACTIVE)
self.indicator.set_menu(self.set_menu())
self.timer = Thread(target=self.check_recent)
self.timer.setDaemon(True)
self.timer.start()
def set_menu(self):
# quit
menu = Gtk.Menu()
item_quit = Gtk.MenuItem('Quit')
item_quit.connect('activate', self.stop)
menu.append(item_quit)
menu.show_all()
return menu
def showtime(self, section):
return (2-len(str(section)))*"0"+str(section)
def convert_time(self, time):
hrs = self.showtime(str(int(time/3600)))
mins = self.showtime(str(int((time%3600)/60)))
secs = self.showtime(str(time%60))
return hrs+":"+mins+":"+secs
def check_recent(self):
while True:
time.sleep(1)
idle = round(int(subprocess.check_output(
["xprintidle"]).decode("utf-8").strip())/1000)
GObject.idle_add(
self.indicator.set_label,
self.convert_time(idle), self.app,
priority=GObject.PRIORITY_DEFAULT
)
def stop(self, source):
Gtk.main_quit()
Indicator()
GObject.threads_init()
signal.signal(signal.SIGINT, signal.SIG_DFL)
Gtk.main()
Как пользоваться
устанавливать
xprintidle
sudo apt-get install xprintidle
Скопируйте приведенный выше скрипт в пустой файл, сохраните его как
show_idle.py
Скопируйте значок ниже (щелкните правой кнопкой мыши> сохранить как), сохраните его как (точно названный):
idle.png
в одной и той же директории, что и скриптЗапустите индикатор из терминала:
python3 /path/to/show_idle.py
Если вы хотите, вы можете добавить его в автозагрузку приложений: выберите Dash > Startup Applications > Add. Добавьте команду:
/bin/bash -c "sleep 10 && python3 /path/to/show_idle.py"