Eu preciso executar o comando personalizado quando:
- O computador está ocioso por X minutos (nenhuma tecla pressionada)
- Tecla pressionada
O que eu quero alcançar, na verdade, é o recurso de economia de energia para o meu teclado.
Eu quero usar:
g413-led -a 000000
g413-led -a FFFFFF
Para ligar/desligar a luz de fundo do teclado usando https://github.com/MatMoul/g810-led .
O primeiro é bastante fácil usando um dos seguintes:
- xidle
- xprintidle
- xautolock
Por favor, aconselhe se existem maneiras melhores e mais ideais?
Mas que tal acendê-lo novamente ao pressionar a tecla ou retomar do modo inativo? Acho que executar o comando em cada pressionamento de tecla é um exagero. Existe evento para opções de economia de energia? Como funciona a economia de energia do monitor?
Posso reutilizar os mesmos eventos/tempo limite?
A solução que encontrei são os eventos DBUS.
Primeiro corro
dbus-monitor
para ver quais eventos serão acionados quando o monitor for/acordar do modo de suspensão:Primeiro tentei ir para
org.gnome.Mutter.IdleMonitor
, masuint32
os valores aumentavam constantemente, não sei por quê?Eu resolvi com StatusChanged, aqui está o script final:
Os eventos do protetor de tela também podem funcionar:
Claro, você pode colocar qualquer comando que desejar. A vantagem do primeiro script em comparação com este é que ele acende o teclado antes do login do usuário, o que facilita a digitação da senha.
A única desvantagem é que os teclados acendem após o login do usuário, não ao pressionar a tecla, mas posso viver com isso.
Eu estava experimentando:
mas não funcionou por algum motivo, provavelmente problema grep.
Minúsculo processo em segundo plano
Sua configuração parece bastante complicada para um problema simples. O que eu faria é simplesmente executar um pequeno processo de backround, verificando o tempo ocioso uma vez a cada 2 segundos ou mais, executar uma ação se o tempo ocioso exceder o limite, outra ação se ele mudar para um tempo ocioso abaixo do definido.
O roteiro:
Usar
Certifique -se de que
xprintidle
está instaladoCopie o script em um arquivo vazio, salve-o como
switch_light.py
Defina o tempo ocioso desejado para agir após:
Execute-o pelo comando:
Se tudo funcionar bem, adicione-o a Aplicativos de inicialização.
Notas)
Não pude testar pois não tenho seu teclado, mas testado com outros comandos, cumpre bem o seu papel.
Você pode usar o script com qualquer outro comando:
Apenas certifique-se de separar os argumentos como no exemplo.
Se você deseja apenas uma ação para exceder o tempo ocioso (ou o contrário), apenas comente: