Não deixe o mouse acordar exibido do modo de espera

12

Eu gosto de colocar meus monitores no modo de economia de energia / espera quando eu deixo o computador por um tempo. Seria ok se não fosse pelo mouse supersensível. Às vezes, o motorista lê algum movimento que não é visível a olho nu (o cursor, isto é) e quebra a economia de energia. Ele esperaria por mais 10 minutos antes de retornar ao modo de espera.

Minha solução alternativa é o seguinte script vinculado a C-S-q :

xlock -startCmd 'xset dpms 2 2 2' -endCmd 'xset dpms 600 1200 1300' -mode blank -echokeys -timeelapsed +usefirst

Ao usar xset , defino os valores para 2 segundos cada antes de ir para o modo de espera. Não é legal, de qualquer forma. Às vezes há sorte legal que eu quero ler antes de digitar a senha. Eu poderia manter o cursor em movimento, mas é complicado. (A propósito, a opção mousemotion do xlock não ajuda - apenas oculta o cursor, mas as telas disparam, no entanto.)

Então a pergunta: existe uma maneira de fazer os displays ficarem em standby e ficarem lá até que uma tecla do teclado seja pressionada? Estou executando o gentoo e o Xorg recente, mas espero que a resposta não precise ser específica da distribuição.

Basicamente a resposta pode ser tão simples quanto como habilitar / desabilitar o mouse dentro da linha de comando ? Acha que isso funcionaria se o DPMS não conhecesse a ideia.

    
por progo 24.06.2011 / 19:05

2 respostas

5

Existe um excelente post da @pbm que cobre isso, no site do Unix SE.

Em suma, primeiro use xinput list para obter o ID do dispositivo para seu mouse e, em seguida, use

xinput --set-prop [ID#] "Device Enabled" "0"

e

xinput --set-prop [ID#] "Device Enabled" "1"

para desativar e ativar o mouse.

Acabei de testar isso aqui, desabilitando o mouse e chamando xset dpms force standby . Acenando com o mouse por vários segundos não fez nada para perturbar a tela, mas pressionar uma única tecla funcionou bem. Usando o segundo comando, retornei o mouse ao normal, incluindo a configuração "desaceleração constante" que meus scripts de inicialização padrão definiam para mim.

Você deve ser capaz de passar esses dois comandos para as opções -startCmd e -endCmd para xlock para obter o que deseja.

    
por 30.06.2011 / 02:12
4

Eu faço assim no Ubuntu:

#!/bin/bash

# allow only one instance
r=$(pidof -x -o $$ ssmonoff.sh)
set -- $r
if [ "${#@}" -ge 1 ]; then
    echo "Script already running. Exit..."
    exit
fi

dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | ( while read line; do
    if echo $line | grep "boolean true" &> /dev/null; then
            xinput --set-prop "Dell Premium USB Optical Mouse" "Device Enabled" "0"
            xset dpms force off
    else
            xinput --set-prop "Dell Premium USB Optical Mouse" "Device Enabled" "1"
    fi
done )

Algumas notas:

  • Eu também estou forçando o monitor a sair.
  • Use melhor o nome completo em vez do código.

Espero que isso ajude.

    
por 25.10.2012 / 13:53