Lubuntu 12.04を実行している(一見かなりエキゾチックな)Dell Latitude XT2ノートブックがあります。新規インストールです。電源ボタンを期待どおりに動作させようとしました(ログアウトダイアログを開くlubuntu-logout
)、しかし成功しない:電源ボタンは長押しで強制的に電源を切る以外何もしません。
電源ボタン自体が検出され、機能します。 xfce4-power-manager-settingsで、「確認」から電源ボタンアクションを設定すると(= open lubuntu-logout
)「シャットダウン」に、ラップトップは正常にシャットダウンします。電源ボタンを押すと認識され、正しく処理されます。
編集:問題に関連していないように見えるので、質問からたくさんの情報を削除しました。
Lubuntuでは 既知のバグ のようです。 xfce4-power-manager-settingsには、押されている電源ボタンに対して選択するいくつかのアクションがあります。 「シャットダウン」を選択すると、期待どおりに機能しますが、「確認」を選択すると、何も起こりません。
回避策は comment#1 にあります。わたしにはできる。 xfce4とLXDEの間に根本的な問題があるようです。
Green7が言ったように、(追加の)acpiデーモンで同じ動作を作成できます。彼の答えのバージョンは、ダイアログなしでPCをシャットダウンしますが、チャットで話し合ってlubuntu-logout
単にコンピューターをシャットダウンするのではなく、スクリプトから。ただし、Xへの接続を許可されているユーザーとしてログアウトアプリケーションを起動し、必要な環境変数($DISPLAY
)。 env変数はディストリビューション間で異なるように見えるため、LXDEについては注意深く調べる必要があると思います。
acpi
とacpi-support
をインストールします(まだインストールされていない場合)。
/etc/acpi/events
に移動します。powerbtn
という名前のファイルがあるはずです(ない場合は作成してください)。私のインストールのファイルの内容は次のとおりです。#/etc/acpi/events/powerbtn #これは、ユーザーが電源ボタンを押して、 #/etc/acpi/powerbtn.shを呼び出してさらに処理するときに呼び出されます。 #オプションで、プレースホルダー%eを指定できます。 #カーネルイベントメッセージ全体を通して、指定したプログラムに渡されます #指定されました。 #「ボタンの電源」に反応する必要があります。* 「。」と「button/power。*」は、 #カーネルが変更されたためです。 .sh
action
変数を編集することにより、アクションを電源ボタンに関連付けることができます。/etc/acpi/powerbtn.sh
の内容は次のとおりです。#!/ bin/sh #/etc/acpi/powerbtn.sh #電源ボタンが押されたときにシャットダウンを開始します。 ____。] [-r/usr/share/acpi-support/power-funcs] &&。 /usr/share/acpi-support/power-funcs # getXuserは、$ displaynum。 #のディスプレイに属するXユーザーを取得します。フォアグラウンドXユーザーが必要な場合は、 getXconsole! getXuser(){ user = `pinky -fw | awk '{if($ 2 == ":' $ displaynum '" || $(NF)== ":' $ displaynum '"){print $ 1;出口; }} '` if [x" $ user "= x" "]; then startx = `pgrep -n startx` if [x" $ startx "!= x" "]; then user = `ps -o user --no-headers $ startx` fi fi if [x" $ user "!= x" " ]; then userhome = `getent passwd $ user | cut -d:-f6` export XAUTHORITY = $ userhome/.Xauthority else export XAUTHORITY = "" fi export XUSER = $ user } #再開の途中ならスキップします。 test -f/var/lock/acpisleep && exit 0 #現在のXコンソールユーザーが、サスペンド/レジュームリクエストを処理する #電力管理デーモンを実行している場合、ポリシーを処理させます。 -supportの「/ usr/share/acpi-support/policy-funcs」ファイル。 [-r/usr/share/acpi-support/power-funcs] && getXconsole PMS = "gnome-settings-daemon kpowersave xfce4-power-manager" PMS = "$ PMSガイダンス-power-manager.py dalston-power-applet" if pidof x $ PMS>/dev/null; then exit Elif test "$ XUSER"!= "" && pidof dcopserver>/dev/null && test -x/usr/bin/dcop &&/usr/bin/dcop --user $ XUSER kded kded loadedModules | grep -q klaptopdaemon; then exit Elif test "$ XUSER"!= "" && test -x/usr/bin/qdbus; then kded4pid = $(pgrep -n -u $ XUSER kded4) if test "$ kded4pid"!= ""; then dbusaddr = $(su-$ XUSER -c "grep -z DBUS_SESSION_BUS_ADDRESS /proc/$kded4pid/environ") if test" $ dbusaddr "!=" "&& su-$ XUSER -c "export $ dbusaddr; qdbus org.kde.kded" | grep -q powerdevil; then exit fi fi fi #他のすべてが失敗した場合は、単純なシャットダウンを開始してください。 /sbin/shutdown -h now "電源ボタンが押されました"