Existe uma maneira de registrar quantos aplicativos de tempo estão sendo executados em primeiro plano?

1

E, eventualmente, também quando eles são iniciados e fechados e há quanto tempo eles estão sendo executados em segundo plano e em primeiro plano.

Eu não preciso disso para cada aplicativo, mas apenas para alguns. Eu posso usar um lançador personalizado de um arquivo de desktop (mas como?). Mas como tenho uma dúzia de apps para rastrear, uma solução geral seria melhor.

Obrigado antecipadamente !!

Editar : eu chamo primeiro plano quando uma janela tem o foco.

    
por Johannes Lemonde 19.12.2017 / 09:35

2 respostas

0

Não tenho conhecimento de nenhuma solução pronta para uso.

Se você estiver executando o X Window, pode facilmente escrever um script de shell baseado em esta resposta . Você teria um loop onde você executa xprop -root _NET_ACTIVE_WINDOW , recorta o ID da janela, passa para xprop -id ... , processa sua saída (por exemplo, grep para algumas chaves relevantes) e armazena em algum lugar (por exemplo, acrescentar para um arquivo de texto). Finalmente, sleep por talvez 10 segundos no loop.

Enquanto isso, escreva alguns scripts que processam os arquivos de log (ou faça o upload para um banco de dados, etc.).

Tal abordagem não pode funcionar sob Wayland devido ao seu modelo de segurança, eu tenho medo que você precisaria hackear o compositor para fazer esse registro para você.

    
por egmont 19.12.2017 / 10:36
0

Para verificar quais janelas foco você pode executar isso em um terminal:

[romano:~] 3s 130 % while true; do
xprop -root _NET_ACTIVE_WINDOW 
sleep 3
done
_NET_ACTIVE_WINDOW(WINDOW): window id # 0x3600006
_NET_ACTIVE_WINDOW(WINDOW): window id # 0x3a00010

(Observe que, se você der o comando xprop... durante a digitação, obviamente terá o ID da janela do terminal em que está digitando ...)

Em seguida, você pode ver a PID do processo que possui a janela com:

[romano:~] % xprop -id 0x3a00010 _NET_WM_PID
_NET_WM_PID(CARDINAL) = 18522

... e, em seguida, pesquise o processo com qualquer uma das ferramentas ps .

[romano:~] % ps  -p 18522  
  PID TTY          TIME CMD
18522 ?        00:04:55 firefox

Observe que isso funciona com o X11 - nenhuma ideia sobre Wayland.

    
por Rmano 19.12.2017 / 11:10