Você pode usar o comando xinput --test-xi2 --root
(man xinput ) , onde test-xi2
significa registrar dispositivos de entrada, e --root
é logar da assim chamada janela raiz (um conceito específico do x11) . Ele mostraria quando e qual tecla pressionada no sistema, cliques do mouse e até coordenadas de movimento do mouse. Ele resolve seus 1
e 3
pontos, você só precisa analisar esses eventos.
O ponto 2
é mais complicado. Você pode usar o comando xev -root
que monitoraria todos os eventos X no sistema, incluindo coisas como (dis) janelas aparecendo, entrando / saindo do foco de uma janela particular, etc. Você tem que analisar sua saída e mostre uma descrição legível do que está acontecendo. Btw, o comando registra as teclas pressionadas também.
Uma advertência: é, obviamente, uma grande falha de segurança, que remonta a momentos em que o Xorg foi criado, e ninguém precisava se importar. Por esta razão, atualmente o X11 está sendo substituído pelo protocolo Wayland (é na essência um X12, mas não compatível com versões anteriores, o protocolo terra é chamado de outro modo), que os WMs estão implementando o ATM. Não é um processo rápido, pois o protocolo exige muito mais do WM, mas o Fedora 25 parece finalmente ter a sessão do Wayland habilitada por padrão. KWin também está alcançando. E o seu roteiro não vai funcionar no Wayland. Isso não significa que você não possa fazer isso - eu acho que você pode. Mas você precisaria trabalhar em estreita colaboração com um determinado WM de um determinado DE, e o script não seria um script autônomo bash, mas sim um addon para um WM.