Como ver o tempo ocioso; o tempo que o seu computador não tem entrada do mouse ou teclado
-
Para ver o tempo ocioso, você precisará do xprintidle :
sudo apt-get install xprintidle
-
Para mostrar o que o
xprintidle
faz, execute:sleep 5 && xprintidle
...quemostraotempoinativoemmilissegundos
Sevocêdesejacontinuamentemostrarotempoociosonoterminal:
whiletrue;doxprintidle&&sleep1;done
Claro,xprintidle
podeserusadoemscriptsparaoferecerumamaneiramaiselegantedeficardeolhonotempoocioso,masébasicamenteisso.
Apenaspordiversão
...Jáquefazemostudocomumindicadornosdiasdehoje,umexemplodecomomostrarotempoociosonaGUI,usandoxprintidle
:
#!/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()
Como usar
-
Instale
xprintidle
sudo apt-get install xprintidle
-
Copie o script acima em um arquivo vazio, salve-o como
show_idle.py
-
Copie o ícone abaixo (clique com o botão direito em > salvar como), salve-o como (exatamente nomeado):
idle.png
, em um único diretório do mesmo script Executeoindicadordeumterminal:
python3/path/to/show_idle.py
Sedesejar,vocêpodeadicioná-loaaplicativosdeinicialização:escolha"Dash > Aplicativos de inicialização > Adicionar. Adicione o comando:
/bin/bash -c "sleep 10 && python3 /path/to/show_idle.py"