外部変数

外部変数

タッチパッドを無効にしてショートカットにバインドする簡単なスクリプトを作成しました。

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

外部で変数を有効にするにはどうすればよいですか?または、変数を生成して他のスクリプトからアクセスするにはどうすればよいですか?

ベストアンサー1

私はそれをします:

#! /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

つまり、別の情報を保持するのではなく、デバイスが実際に有効または無効になっていることを確認してください。変える近いうちにこれは現実と同期しなくなるので、同時アクセスを防ぐために排他的なロックメカニズムを用意する必要があります。それ変える現在のXサーバー呼び出しに関連付ける必要があります(ルートウィンドウに表示されているプロパティが利用可能です)。

説明:xinput list-props "$device"デバイスの属性(英語を含むLC_ALL=C)を一覧表示します。その一つはですDevice Enabled。以下を含めて終了する行をgrep見つけて返します。Device Enabled1本物(0)見つかった場合は終了状態(何も印刷しない-q)。見つかった場合(デバイスがアクティブな場合)、それを呼び出し、xinput disableそれxinput enable以外の場合は呼び出します。

おすすめ記事