Priorizar aplicativos X com foco

7

Existe uma maneira de priorizar aplicativos X com foco, preferencialmente em termos de CPU e E / S?

Algo como se todos os aplicativos X estivessem voltados para a prioridade, mas quando eles ganhassem foco, voltariam para níveis normais.

Eu não quero reinventar a roda, então eu esperava que alguém já tivesse desenvolvido um aplicativo que faz isso.

    
por Clinton 16.02.2012 / 14:37

1 resposta

2

Eu escrevi um pequeno script em perl para fazer o que você pergunta: link

Ele funciona obtendo todos os IDs de janela atuais do X11 usando o comando "xlsclients -l", recebendo, por sua vez, o PID da janela com xprop. Em seguida, ele usa xprop -root para obter a janela focada no momento e, em seguida, percorre todos os PIDs para alterar seu valor agradável para 5 (mantendo o valor atualmente focalizado em 0).

Em seguida, ele insere um loop infinito que verifica novamente a janela focalizada a cada dois segundos. Se o foco da janela mudou, o valor antigo do antigo é alterado para 5 e o novo para 0. Além disso, a cada 40 segundos, ele refaz o que fez no primeiro parágrafo para que novos processos possam ser priorizados.

Esse script tem várias falhas, a mais óbvia delas é o fato de que xprop às vezes não consegue encontrar a janela atualmente focada (isso parece acontecer apenas se você estiver alternando entre as janelas muito rápido). executando uma janela a partir de um local de rede, o PID pode não estar correlacionado ao PID real em seu sistema. Dito isso, em média, o script funcionará (o perl pode lidar com alguns erros e ainda ser executado)

Eu também acho que seria mais rápido se eu escrevesse isso em c, mas eu não tenho habilidade em usar a biblioteca X11, então o perl cheio de frases é!

    
por 26.02.2012 / 06:33