USBデバイスがudevルール(RUNコマンド)を使用してプラグインされているときにスクリプトを実行していて、notify-sendを使用して通知を表示しています。USBデバイスが接続されているときにユーザーからの入力を受け取ります
私は、ユーザーにUSBへの入力を促す必要があります。私はこれをどのようにするべきですか?
USBデバイスがudevルール(RUNコマンド)を使用してプラグインされているときにスクリプトを実行していて、notify-sendを使用して通知を表示しています。USBデバイスが接続されているときにユーザーからの入力を受け取ります
私は、ユーザーにUSBへの入力を促す必要があります。私はこれをどのようにするべきですか?
zenityを使用できます。完全なリファレンスを参照してください
USERINPUT = $(--text "何かを入力してください" zenityを使う--entry --title "プラグインUSB")
:あなたのシェルスクリプトでhttp://library.gnome.org/users/zenity/stable/あり
kdialogと呼ばれるKDE-couterpartでもあります。
あなたが実行しているXセッションはudevには分かっていないので、udevには誰に送信するのか分からず、Xに複数のアクティブセッションを実行させることができます。また、Zenityタイプのスクリプトが動作するには、現在実行中のXセッションからX-Auth Cookieが必要です。これは現在、自宅から一時的な場所に変更され、その場所をハックするための修正スクリプトはありません。
必要な作業を行う方法はたくさんありますが、作業の量によって異なります。
notify-sendは情報を表示するだけで動作しないようにします。上記の提案と同様に、入力にはzenityまたはkdialogタイプが必要です。しかしもっと重要なのは、現在のセッションが必要なので、gnome-session-propertiesを使ってスクリプトをフックすることです。そうすれば、ログインするたびにフッキングが実行されます。
これは次に、あなたがあなたのUSBデバイス
#!/bin/sh
echo "password" > /tmp/usb_notify
REPLY=`cat /tmp/usb_feedback`
# then you can do whatever you need to with the feedback
のためのudevのRUNでこれをフックすることができますのgnome-セッションpropotiesに
#!/bin/sh
mkfifo /tmp/usb_notify
mkfifo /tmp/usb_feedback
while (true) do {
CALLBACK=`cat /tmp/usb_notify`
# check CALLBACK for some specific password :) if you needed
notify-send "USB plugged in something, input something for me!";
USERINPUT=$(zenity --entry --title "USB plugged in" --text "Please enter something")
echo $USERINPUT > /tmp/usb_feedback
} done;
をフックするひとつの方法です