web-dev-qa-db-ja.com

acpiキーバインディングの確認とキーボードのkeypressイベントのacpiイベントへの再マッピング

Ubuntu 18.04.1がインストールされた2つのシステムを入手しました。 2つは同様のハードウェアとソフトウェアの構成を持っていますが、一方はSBTNプレスイベントに一時停止し、もう一方は何もしません。私はgsettingsをチェックしましたが、どちらもorg.gnome.settings-daemon.plugins.power設定に似ています。 SBTNキーイベントに関連付けられている完全なキーバインディングを知りたいのですが。

これらを確認する方法と場所を教えてください。

また、キーボードのキープレスイベント(たとえば、一時停止/中断ボタンであるキーコード127)をSBTNボタン/ PWBNボタンに再マップするにはどうすればよいですか?

システムの一時停止アクションをキーボードの一時停止/中断ボタンにマップするにはどうすればよいですか?

PS:PWBNおよびSBTNのキーイベントをリッスンするためにacpi_listenを使用しており、キーが押されたことを確認できます。キーボードイベントを確認するために、xinputテストを使用しています。また、サスペンド後に同じキーを押してシステムをライブに戻す必要があります。

2
sanadell

上記のアプローチの問題は、作成されたキーボードショートカットがセッションのユーザーに適用されることです。ボタンの割り当てをすべてのユーザーで永続的にしたいので、サスペンドを実行するためにパスワードを入力したくありませんでした。

@ BarBar1234のアプローチを拡張し、スリープボタンイベントではなく電源ボタンイベントで解決するため、投稿された質問に対する正確な解決策ではありませんが、以下はうまく機能しました。

$Sudo vi /etc/acpi/events/power
event=button/power
action=/etc/acpi/suspendsys.sh

$Sudo vi /etc/acpi/suspendsys.sh
#!/bin/bash
systemctl suspend

$Sudo chmod u+x /etc/acpi/suspendsys.sh

$Sudo systemctl restart acpid
0
sanadell

まず、Sudo systemctl status acpidまたはSudo service acpid statusを使用して、他のマシンでacpiサービスが実行されているかどうかを確認します

その場合は、スリープ/サスペンドボタンを押しても反応しない別のマシンでsystemctl suspendをテストし、エラーや警告が出力されるかどうかを確認します。

カスタムキーバインドをPause/Breakキーに設定する限り、スリープ/サスペンドボタンを再マッピングしようとすると、組み込みの以前のバインドをクリアする必要があるため、systemctl suspendコマンドを実行するスクリプトにバインドします。スリープ/サスペンドキーがあれば、正しく思い出せます。つまり、スクリプトをsuspendme.shにします。

touch suspendme.sh
nano suspendme.sh

suspendme.shスクリプト内:

#!/bin/bash systemctl suspend

chmod u+x suspendme.sh
mv suspendme.sh /usr/local/bin/

そして、GnomeとUnityの両方で「システム設定」>「キーボード」>「ショートカット」>「カスタムショートカット」を使用して、ショートカットを設定できます。 +をクリックするだけで、コマンドがPauseキーで実行されるようにするには、suspendme.shを使用します。これは、/ usr/local/binにあり、パスの一部になるためです。

0
BarBar1234