Como saber por quanto tempo meu computador não foi usado via GUI?

5

Como posso ver por quanto tempo não houve nenhuma entrada via mouse ou teclado no meu computador?

    
por Beili 25.11.2016 / 15:04

1 resposta

7

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,xprintidlepodeserusadoemscriptsparaoferecerumamaneiramaiselegantedeficardeolhonotempoocioso,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

  1. Instale xprintidle

    sudo apt-get install xprintidle
    
  2. Copie o script acima em um arquivo vazio, salve-o como show_idle.py

  3. 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

  4. Executeoindicadordeumterminal:

    python3/path/to/show_idle.py
  5. 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"
    
por Jacob Vlijm 25.11.2016 / 20:19