Variável externa

1

Eu fiz um script simples para desativar meu touchpad e ligá-lo ao atalho.

enabled=true
  if enabled
    then
      xinput -disable "TouchPad" enabled=false
    else
      xinput -enable "TouchPad" enabled=true

Como posso fazer uma variável ativada externamente ou como posso criá-la em outro script e ter acesso a ela?

    
por ChickenLover 28.03.2017 / 13:33

1 resposta

4

Eu faria:

#! /bin/sh -
device=TouchPad

if
  LC_ALL=C xinput list-props "$device" |
    grep -q 'Device Enabled.*1$'
then
  xinput disable "$device"
else
  xinput enable "$device"
fi

Isso é verificar se o dispositivo está de fato ativado ou desativado, em vez de manter uma variável > que, mais cedo ou mais tarde, ficará fora de sincronia com a realidade e para a qual você precisa com um mecanismo de bloqueio exclusivo para impedir o acesso simultâneo. Essa variável teria que estar vinculada à chamada atual do servidor X (você pode usar uma propriedade na janela raiz do monitor).

Explicação: xinput list-props "$device" lista as propriedades do dispositivo (em inglês com LC_ALL=C ), uma delas é a Device Enabled one. grep procura linhas contendo Device Enabled e terminando em 1 e retorna um status de saída verdadeiro (0) se encontrado (sem exibir nada com -q ). Se encontrado (se o dispositivo estiver ativado), chamamos xinput disable e xinput enable caso contrário.

    
por 28.03.2017 / 13:46