0

udev ルール (RUN コマンド) を使用して USB デバイスが接続されているときにスクリプトを実行し、notify-send を使用して通知を表示しています。

ユーザーに USB への入力を求めるプロンプトが表示されるようにします。どうすればいいですか?

4

2 に答える 2

1

実行しているXセッションはudevに認識されていないため、udevは誰に送信するかわからず、Xは複数のアクティブなセッションを実行している可能性があります。また、Zenityタイプのスクリプトを機能させるには、実行中の現在のXセッションからのX-AuthCookieも必要です。これは現在、自宅から一時的な場所に変更されており、その周りをハックするための修正スクリプトはありません。

必要なことを行う方法はたくさんありますが、それはあなたがやりたい仕事の量に依存します。

通知-表示情報のみを送信するため、機能しません。上記の提案のように、入力にはzenityまたはkdialogタイプが必要です。ただし、さらに重要なのは、現在のセッションが必要なため、スクリプトをgnome-session-propertiesでフックすることをお勧めします。そうすれば、ログインするたびにフッキングが実行されます。

これは、gnome-session-propotiesに接続するための1つの方法にすぎません。

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

次に、これをudevRUNに接続してusbデバイスに接続できます

#!/bin/sh

echo "password" > /tmp/usb_notify 
REPLY=`cat /tmp/usb_feedback` 
# then you can do whatever you need to with the feedback
于 2012-04-07T13:16:53.590 に答える
0

あなたはゼニティを使うことができます。シェルスクリプトで:

USERINPUT=$(zenity --entry --title "USB プラグイン" --text "何か入力してください")

完全なリファレンスについては、http: //library.gnome.org/users/zenity/stable/を参照してください。

kdialog と呼ばれる KDE-counterpart もあります。

于 2012-02-01T17:55:05.890 に答える